← Back to Skills Marketplace
boeingart

SynBO (Synthetic Bayesian Optimization)

by Zhenzhi Tan · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ✓ Security Clean
30
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install synbo
Description
Bayesian optimization for chemical reactions using the synbo package. This skill provides Python scripts to set up reaction spaces, build descriptors, run op...
README (SKILL.md)

synbo

Bayesian optimization for chemical reactions using the synbo package. This skill provides Python scripts to set up reaction spaces, build descriptors, run optimization, download recommended conditions, and upload results.


CRITICAL: BO Optimization Prerequisites

Before executing ANY Bayesian Optimization (synbo) tasks, you MUST sequentially verify the following 5 prerequisites. Do NOT proceed with the optimization process until ALL criteria are met:

1. Find Conda Environment and synbo package

  • Verify if conda is installed in the current environment. If not, confirm with the user to install Miniconda (see reference/installation.md).
  • Check if the synbo_env conda environment exists. If not, create it; if it exists, activate it.
  • Verify if the synbo package is installed in synbo_env. If not, run pip install synbo

2. Working Directory (project_wd) & Project Name (project_name)

  • Initial Check: Read config.json located in the skill's directory. If both project_wd and project_name are found, display the project name to the user (e.g., "Found existing project: [Project Name]") and use them.
  • If NOT found: Stop and prompt the user to input a Working Directory and a Project Name.
  • Validation & Saving (CRITICAL): Upon receiving the user's input:
    1. Verify Path: Check if the provided working directory actually exists on the local file system. If it does NOT exist, inform the user "The path is invalid/does not exist" and prompt them to re-enter it.
    2. Sanitize & Save: If the path exists, sanitize the project name (replace spaces and special characters with underscores). Then, immediately write/update the config.json file with this format: {"project_wd": "xxx", "project_name": "xxx"}.
    3. Use this path and sanitized project name to define the save_dir for all subsequent outputs.

3. Reaction Space

  • Check: Verify if standard reaction space data exists specifically within the project_wd/rxn_space directory.
  • If NOT found: Stop and prompt the user: "Reaction space data is missing in the project_wd/rxn_space directory. Please provide the standard reaction space data." Do not proceed until provided.

4. Condition Descriptors

  • Check: Verify if the corresponding Condition Descriptors exist specifically within the project_wd/descriptors directory.
  • If NOT found: Stop and prompt the user: "Condition Descriptors are missing in the project_wd/descriptors directory. Please provide the standard Condition Descriptors, OR let me know if you would like me to automatically generate them for you."

5. Optimization Metrics

  • Check: Verify if the optimization settings file (e.g., optimization_settings.json) exists directly within the project_wd directory.
  • If NOT found: Stop and prompt the user: "Optimization metrics are not defined. Please specify the target metrics you want to optimize (e.g., yield, ee), along with their optimization direction (max/min), expected numerical ranges, and relative weights (default 1.0)."
  • Validation & Saving (CRITICAL): Upon receiving the user's optimization goals, format the data and immediately save it as optimization_settings.json in the project_wd. The JSON file MUST strictly adhere to the following structure:
{
    "reagent_types": ["reagent1", "reagent2", "condition1", "condition2"],
    "opt_metrics": ["target1", "target2"],
    "opt_direct_info": [
        {
            "opt_direct": "max",
            "opt_range": [0, 100],
            "metric_weight": 1.0
        },
        {
            "opt_direct": "min",
            "opt_range": [0, 100],
            "metric_weight": 1.0
        }
    ]
}

Execution Block: You are strictly forbidden from executing any initialization (initialize), optimization (optimize), or other synbo tasks until Steps 1 through 4 are fully verified and resolved.


Reaction Space

When the user is required to provide the reaction space data, they may submit it via one of two methods:

  1. Direct Input: Providing the SMILES strings for the corresponding molecules directly in the chat.
  2. File Upload: Providing tabular files containing the SMILES strings.

Naming Conventions: It is highly recommended that the user assigns a specific name to each molecule. If no names are provided, you must automatically assign names using a sequential format based on the reagent type: {reagent_type}-1, {reagent_type}-2, etc.

Data Storage Rules: Regardless of the user's submission method, all reaction space data must be formatted and saved strictly into the project_wd/rxn_space directory.

  • Each reagent type must be saved as an individual file named {reagent_type}.csv.
  • The CSV files must contain exactly two headers: SMILES (for the SMILES strings) and name (for the molecule names).

Condition Descriptors

see [reference/get_desc.md](reference/get_desc.md)


Initialize

see [reference/initialize.md](reference/initialize.md)


Optimize

see [reference/optimize.md](reference/optimize.md)

Usage Guidance
Before installing, review the Miniconda and pip commands, prefer trusted sources and pinned versions if needed, and confirm the saved project directory is correct before letting the skill write reaction data, descriptors, settings, or optimization results.
Capability Analysis
Type: OpenClaw Skill Name: synbo Version: 0.1.0 The skill bundle provides a legitimate framework for Bayesian optimization in chemical research using the 'synbo' package. The Python scripts (scripts/get_desc.py, scripts/initialize.py, and scripts/optimize.py) handle molecular descriptor generation and optimization logic using standard libraries like RDKit and pandas, with no evidence of data exfiltration or unauthorized execution. While the installation guide (reference/installation.md) utilizes curl to download Miniconda, it points to a reputable academic mirror (Tsinghua TUNA), and the agent instructions in SKILL.md include explicit requirements for input sanitization and user confirmation before proceeding with tasks.
Capability Assessment
Purpose & Capability
The described purpose matches the included scripts: they generate descriptors, initialize sampling, run optimization, and save results in the project directory.
Instruction Scope
The instructions require prerequisite checks and user prompts before missing reaction data, descriptors, or optimization metrics are created or used.
Install Mechanism
The skill has no formal install spec, but its documentation includes user-directed conda, Miniconda, and pip installation steps using external sources and unpinned packages.
Credentials
The skill writes reaction-space files, descriptors, settings, and results under a user-provided project directory, which is expected for this workflow.
Persistence & Privilege
The skill stores project_wd and project_name in a config.json in the skill directory so future runs can reuse the project context.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install synbo
  3. After installation, invoke the skill by name or use /synbo
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Upload SynBO skills first time.
Metadata
Slug synbo
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is SynBO (Synthetic Bayesian Optimization)?

Bayesian optimization for chemical reactions using the synbo package. This skill provides Python scripts to set up reaction spaces, build descriptors, run op... It is an AI Agent Skill for Claude Code / OpenClaw, with 30 downloads so far.

How do I install SynBO (Synthetic Bayesian Optimization)?

Run "/install synbo" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is SynBO (Synthetic Bayesian Optimization) free?

Yes, SynBO (Synthetic Bayesian Optimization) is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does SynBO (Synthetic Bayesian Optimization) support?

SynBO (Synthetic Bayesian Optimization) is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created SynBO (Synthetic Bayesian Optimization)?

It is built and maintained by Zhenzhi Tan (@boeingart); the current version is v0.1.0.

💬 Comments