@delta-infra/cli 1.1.16 → 1.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -9
- package/checksums.txt +5 -5
- package/package.json +1 -1
- package/skills/delta-sandbox/SKILL.md +278 -276
- package/skills/delta-sandbox/agents/openai.yaml +3 -3
- package/skills/delta-sandbox/references/commands.md +45 -45
- package/skills/delta-sandbox/references/lifecycle.md +61 -61
- package/skills/delta-sandbox/references/recipes.md +66 -66
- package/skills/delta-science/AGENTS.md +2 -2
- package/skills/delta-science/SKILL.md +181 -139
- package/skills/delta-science/agents/openai.yaml +2 -2
- package/skills/delta-science/references/antbo.md +52 -47
- package/skills/delta-science/references/delta-bo.md +22 -19
- package/skills/delta-science/references/gsasii.md +14 -12
- package/skills/delta-science/references/lammps.md +13 -11
- package/skills/delta-science/references/ldm-bo.md +14 -11
- package/skills/delta-science/references/materials-design.md +80 -68
- package/skills/delta-science/references/pubchem.md +18 -16
- package/skills/delta-science/references/pymatgen.md +10 -9
- package/skills/delta-science/references/qe.md +72 -63
- package/skills/delta-science/references/rdkit.md +22 -19
- package/skills/delta-science/references/strbo.md +44 -36
- package/skills/delta-science/references/synbo.md +30 -27
- package/skills/delta-science/references/xrd.md +197 -186
- package/skills/delta-shared/SKILL.md +60 -58
- package/skills/delta-shared/agents/openai.yaml +3 -3
|
@@ -1,65 +1,70 @@
|
|
|
1
|
-
# Quantum ESPRESSO DFT
|
|
1
|
+
# Quantum ESPRESSO DFT reference
|
|
2
2
|
|
|
3
|
-
QE
|
|
4
|
-
Gateway/Science Server contract
|
|
5
|
-
|
|
3
|
+
Use QE to run traceable, asynchronous Quantum ESPRESSO workflows through Chemistry Gateway.
|
|
4
|
+
The agent interacts only with the Gateway/Science Server contract: it does not run local `pw.x`,
|
|
5
|
+
call internal QE containers, or submit shell commands, scheduler scripts, `pseudo_dir`, `outdir`
|
|
6
|
+
or host paths.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
The actual CLI tool for this reference is `qe`. Copy `tools.name` and `tool_endpoints.name`
|
|
9
|
+
exactly from the current CLI catalogue. The paths below describe the QE service contract; they
|
|
10
|
+
are not URLs to access directly or endpoint aliases that may be rewritten automatically.
|
|
10
11
|
|
|
11
|
-
##
|
|
12
|
+
## Capability groups
|
|
12
13
|
|
|
13
|
-
|
|
|
14
|
+
| Service path | Purpose | Type |
|
|
14
15
|
| --- | --- | --- |
|
|
15
|
-
| `/chem/qe/health
|
|
16
|
-
| `/chem/qe/v1/qe/workflow-types` |
|
|
17
|
-
| `/chem/qe/v1/pp-sets
|
|
18
|
-
| `/chem/qe/v1/pp-sets:resolve` |
|
|
19
|
-
| `/chem/qe/v1/artifacts` |
|
|
20
|
-
| `/chem/qe/v1/qe/jobs` |
|
|
21
|
-
| `/chem/qe/v1/qe/jobs/{job_id}/events
|
|
22
|
-
| `/chem/qe/v1/qe/jobs/{job_id}:cancel
|
|
16
|
+
| `/chem/qe/health`, `/healthz`, `/readyz` | Runtime, scheduler, storage and PP readiness | Read-only |
|
|
17
|
+
| `/chem/qe/v1/qe/workflow-types` | Workflow catalogue and support status | Read-only |
|
|
18
|
+
| `/chem/qe/v1/pp-sets`, `/pp-locks/{digest}` | Published PP profiles/locks | Read-only |
|
|
19
|
+
| `/chem/qe/v1/pp-sets:resolve` | Resolve PP candidates for the complete set of campaign elements | Read-only/validation |
|
|
20
|
+
| `/chem/qe/v1/artifacts` | Upload, query and download structure/fixed-coordinate artifacts | File/binary |
|
|
21
|
+
| `/chem/qe/v1/qe/jobs` | Submit asynchronous calculations and query jobs | Remote mutation |
|
|
22
|
+
| `/chem/qe/v1/qe/jobs/{job_id}/events`, `steps`, `logs`, `artifacts` | Read job progress and results | Read-only |
|
|
23
|
+
| `/chem/qe/v1/qe/jobs/{job_id}:cancel`, `:retry`, `:review` | Cancel, retry and scientifically review a job | Remote mutation |
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
When selecting a new operation, first run:
|
|
25
26
|
|
|
26
27
|
```text
|
|
27
28
|
delta-cli science list
|
|
28
29
|
delta-cli science endpoints list <exact tool name>
|
|
29
30
|
```
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
Then call it using the exact names returned by the catalogue. If the catalogue has no schema, do
|
|
33
|
+
not guess the operation, path parameters, headers or body.
|
|
33
34
|
|
|
34
|
-
## CLI
|
|
35
|
+
## CLI file and idempotency boundaries
|
|
35
36
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
`science file
|
|
37
|
+
Structure artifact uploads require `application/octet-stream` and query metadata; QE job
|
|
38
|
+
submission requires a stable `Idempotency-Key`. `science invoke` remains for JSON/query only;
|
|
39
|
+
send files through `science file` and persistent jobs through `science task`:
|
|
39
40
|
|
|
40
|
-
- `delta-cli science file invoke --tool qe --endpoint artifact-upload --file <path>`
|
|
41
|
-
|
|
41
|
+
- `delta-cli science file invoke --tool qe --endpoint artifact-upload --file <path>` uploads
|
|
42
|
+
a structure artifact; for `custom-pp-upload`, also provide `custom_pp_id` in `--data`;
|
|
42
43
|
- `delta-cli science task submit --tool qe --operation job-submit --input JSON
|
|
43
|
-
--idempotency-key KEY`
|
|
44
|
+
--idempotency-key KEY` submits a durable QE job; the worker passes the idempotency key to Gateway;
|
|
44
45
|
- `delta-cli science file download --tool qe --endpoint artifact-content --params JSON
|
|
45
|
-
--output <path>`
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
##
|
|
50
|
-
|
|
51
|
-
1.
|
|
52
|
-
`supported`
|
|
53
|
-
2.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
46
|
+
--output <path>` downloads a raw artifact;
|
|
47
|
+
- Do not send structure text, file paths, base64, `Idempotency-Key` or QE service credentials as
|
|
48
|
+
ordinary business fields, and do not call public or private Gateway URLs or `qe-cloud-compute:18020`.
|
|
49
|
+
|
|
50
|
+
## Correct sequence for a new job
|
|
51
|
+
|
|
52
|
+
1. Read health. Read readiness only when diagnosing the deployment, and choose a currently
|
|
53
|
+
`supported` task from the workflow catalogue.
|
|
54
|
+
2. Determine the complete `campaign_elements` set and use `pp-sets:resolve` to obtain a profile.
|
|
55
|
+
Production jobs must use the returned `pp_set_id` and immutable `lock_id`; do not infer the
|
|
56
|
+
lock from the profile name alone.
|
|
57
|
+
3. Ask the service to validate the structure artifact. The job must reference only the returned
|
|
58
|
+
`sha256:<digest>` artifact ID.
|
|
59
|
+
4. Submit to `qe/jobs` with stable idempotency semantics. A `202` response means accepted/queued,
|
|
60
|
+
not that QE has converged.
|
|
61
|
+
5. Poll the job, events, steps, logs and artifacts; read the `execution`, `solver` and
|
|
62
|
+
`scientific` states independently.
|
|
63
|
+
6. Verify each artifact's SHA-256 when downloading results. Report the selected backend, resource
|
|
64
|
+
telemetry, solver state, scientific review state and warnings separately.
|
|
65
|
+
|
|
66
|
+
The minimum business-data shape for PP resolution is shown below. Values must come from the
|
|
67
|
+
current service/catalogue; do not insert a fabricated production lock:
|
|
63
68
|
|
|
64
69
|
```json
|
|
65
70
|
{
|
|
@@ -70,7 +75,7 @@ PP 解析的最小业务数据形状如下;其中值必须来自当前服务/
|
|
|
70
75
|
}
|
|
71
76
|
```
|
|
72
77
|
|
|
73
|
-
|
|
78
|
+
The core job structure is shown below. `workflow_inputs` must follow the current task schema:
|
|
74
79
|
|
|
75
80
|
```json
|
|
76
81
|
{
|
|
@@ -101,25 +106,29 @@ PP 解析的最小业务数据形状如下;其中值必须来自当前服务/
|
|
|
101
106
|
}
|
|
102
107
|
```
|
|
103
108
|
|
|
104
|
-
## CPU/GPU
|
|
109
|
+
## CPU/GPU and state interpretation
|
|
105
110
|
|
|
106
|
-
CPU
|
|
107
|
-
|
|
108
|
-
`gpu_support_status: "verified"
|
|
109
|
-
|
|
111
|
+
CPU is the default, particularly for small or medium interactive jobs, PP/structure/audit/archive
|
|
112
|
+
jobs, and cost-sensitive work. Use `gpu` only when the user explicitly requests it or the project
|
|
113
|
+
already has a GPU budget, and the live catalogue returns `gpu_support_status: "verified"`. Do not
|
|
114
|
+
silently fall back to CPU when GPU is required. Claim that GPU was used only when the result
|
|
115
|
+
explicitly returns `selected_backend: "gpu"`; `auto` does not prove GPU use.
|
|
110
116
|
|
|
111
|
-
|
|
117
|
+
Keep the three state channels separate:
|
|
112
118
|
|
|
113
|
-
- `execution
|
|
114
|
-
- `solver
|
|
115
|
-
- `scientific
|
|
116
|
-
recalculation
|
|
119
|
+
- `execution`: prepared/submitted/queued/running/scheduler completion/cancelled/failed;
|
|
120
|
+
- `solver`: not started/running/converged/not converged/failed/unknown;
|
|
121
|
+
- `scientific`: unreviewed, scientifically accepted, accepted with limitations, needs
|
|
122
|
+
recalculation, not assessable, failed or archived.
|
|
117
123
|
|
|
118
|
-
scheduler
|
|
119
|
-
|
|
120
|
-
`
|
|
121
|
-
`
|
|
122
|
-
`
|
|
124
|
+
scheduler completion does not mean solver convergence, and solver convergence does not mean
|
|
125
|
+
scientific acceptance. Branch on stable error codes rather than messages. Key codes include
|
|
126
|
+
`PP_SET_INCOMPLETE`, `PP_POLICY_INCOMPATIBLE`,
|
|
127
|
+
`PP_CAPABILITY_UNKNOWN`, `ARTIFACT_MISSING`, `SOLVER_NOT_CONVERGED`,
|
|
128
|
+
`SCIENTIFIC_GATE_FAILED`, `RESTART_INCOMPATIBLE`, `IDEMPOTENCY_CONFLICT`,
|
|
129
|
+
`EXECUTION_BACKEND_NOT_READY`, `GPU_UNSUPPORTED` and `GPU_UNAVAILABLE`.
|
|
123
130
|
|
|
124
|
-
|
|
125
|
-
GPU smoke test
|
|
131
|
+
Submission, cancellation, retry and review are remote mutations and require the user's explicit
|
|
132
|
+
authorisation. Do not retry when the outcome is unknown. Do not describe a GPU smoke test,
|
|
133
|
+
scheduler log or parseable QE output as a scientific conclusion or a customer-level performance
|
|
134
|
+
guarantee.
|
|
@@ -1,23 +1,26 @@
|
|
|
1
|
-
# RDKit
|
|
1
|
+
# RDKit reference
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Call this tool only through `delta-cli science invoke`. Business responses are in the top-level
|
|
4
|
+
CLI `data`; read only the fields described here and do not search recursively. This document
|
|
5
|
+
records operation schemas and does not authorise direct HTTP access.
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
`batch-parse-describe
|
|
8
|
-
descriptors
|
|
9
|
-
`a
|
|
7
|
+
Make only the calls needed to meet the request. To validate, canonicalise and calculate basic
|
|
8
|
+
descriptors in one request, use `batch-parse-describe` with the `molecules:[{id,smiles}]` payload;
|
|
9
|
+
do not split it into parse and descriptors calls. For all-pairs similarity across multiple
|
|
10
|
+
molecules, use one `similarity-matrix` call. Its fixed ranking fields are `a`, `b` and
|
|
11
|
+
`similarity`, not `i`, `j` or `score`.
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
Report only descriptors actually present in the business response. When rendering a PNG, decode
|
|
14
|
+
only the field specified in the documentation and verify that the bytes begin with
|
|
15
|
+
`89 50 4e 47 0d 0a 1a 0a`; do not save a JSON envelope as an image.
|
|
13
16
|
|
|
14
17
|
## Health
|
|
15
18
|
|
|
16
|
-
|
|
19
|
+
Operation: `health`; no request body.
|
|
17
20
|
|
|
18
21
|
## Parse
|
|
19
22
|
|
|
20
|
-
|
|
23
|
+
Operation: `parse`.
|
|
21
24
|
|
|
22
25
|
```json
|
|
23
26
|
{"input": "CCO", "format": "smiles", "sanitize": true}
|
|
@@ -31,7 +34,7 @@ Key response fields in `data`: `valid`, `canonical_smiles`, `formula`,
|
|
|
31
34
|
|
|
32
35
|
## Descriptors
|
|
33
36
|
|
|
34
|
-
|
|
37
|
+
Operation: `descriptors`.
|
|
35
38
|
|
|
36
39
|
```json
|
|
37
40
|
{"smiles": "CCO", "descriptor_set": "basic", "sanitize": true}
|
|
@@ -44,7 +47,7 @@ operation:`descriptors`。
|
|
|
44
47
|
|
|
45
48
|
## Batch Descriptors
|
|
46
49
|
|
|
47
|
-
|
|
50
|
+
Operation: `batch-descriptors`.
|
|
48
51
|
|
|
49
52
|
```json
|
|
50
53
|
{"smiles": ["CCO", "c1ccccc1"], "descriptor_set": "basic", "sanitize": true}
|
|
@@ -54,7 +57,7 @@ Limits: 1-500 SMILES.
|
|
|
54
57
|
|
|
55
58
|
## Batch Parse Describe
|
|
56
59
|
|
|
57
|
-
|
|
60
|
+
Operation: `batch-parse-describe`.
|
|
58
61
|
|
|
59
62
|
```json
|
|
60
63
|
{
|
|
@@ -74,7 +77,7 @@ fields, `descriptors`, optional `fingerprint_metadata`, `on_bits`, `bit_count`,
|
|
|
74
77
|
|
|
75
78
|
## Render
|
|
76
79
|
|
|
77
|
-
|
|
80
|
+
Operation: `render`.
|
|
78
81
|
|
|
79
82
|
```json
|
|
80
83
|
{"smiles": "CCO", "image_format": "svg", "width": 450, "height": 320}
|
|
@@ -85,7 +88,7 @@ Width/height range: 150-2000.
|
|
|
85
88
|
|
|
86
89
|
## Fingerprint
|
|
87
90
|
|
|
88
|
-
|
|
91
|
+
Operation: `fingerprint`.
|
|
89
92
|
|
|
90
93
|
```json
|
|
91
94
|
{"smiles": "CCO", "radius": 2, "n_bits": 2048}
|
|
@@ -95,7 +98,7 @@ Morgan fingerprint parameters: `radius` 1-6, `n_bits` 128-8192.
|
|
|
95
98
|
|
|
96
99
|
## Similarity
|
|
97
100
|
|
|
98
|
-
|
|
101
|
+
Operation: `similarity`.
|
|
99
102
|
|
|
100
103
|
```json
|
|
101
104
|
{"query_smiles": "CCO", "target_smiles": "CCCO", "radius": 2, "n_bits": 2048}
|
|
@@ -105,7 +108,7 @@ Returns Tanimoto similarity.
|
|
|
105
108
|
|
|
106
109
|
## Similarity Matrix
|
|
107
110
|
|
|
108
|
-
|
|
111
|
+
Operation: `similarity-matrix`.
|
|
109
112
|
|
|
110
113
|
```json
|
|
111
114
|
{
|
|
@@ -129,7 +132,7 @@ Do not expect `i`, `j`, or `score` fields.
|
|
|
129
132
|
|
|
130
133
|
## Substructure
|
|
131
134
|
|
|
132
|
-
|
|
135
|
+
Operation: `substructure`.
|
|
133
136
|
|
|
134
137
|
```json
|
|
135
138
|
{"query_smarts": "c1ccccc1", "target_smiles": ["c1ccccc1", "CCO"]}
|
|
@@ -1,38 +1,41 @@
|
|
|
1
|
-
# STRBO
|
|
1
|
+
# STRBO reference
|
|
2
2
|
|
|
3
|
-
STRBO
|
|
4
|
-
`[vina, activity]
|
|
5
|
-
|
|
3
|
+
STRBO performs generative multi-objective optimisation for the server-fixed **KRAS G12D**
|
|
4
|
+
target. The objective order is fixed as `[vina, activity]`: lower Vina is better and higher
|
|
5
|
+
activity is better. `task` guides candidate generation but does not change the target; do not
|
|
6
|
+
claim that user-defined receptors are supported.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
Use `tool="strbo"` for every call. Generation, suggestion, evaluation and job submission consume
|
|
9
|
+
remote resources, so call them only when the user actually asks for the relevant research task.
|
|
10
|
+
Do not retry if the outcome is unknown or the request times out.
|
|
9
11
|
|
|
10
|
-
##
|
|
12
|
+
## Initialisation
|
|
11
13
|
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
14
|
+
- Synchronous operation: `molecules-init`
|
|
15
|
+
- Asynchronous operation: `molecules-init-job`
|
|
16
|
+
- Validation-only operation: `molecules-init-validate`
|
|
15
17
|
|
|
16
18
|
```json
|
|
17
19
|
{
|
|
18
|
-
"task": "
|
|
20
|
+
"task": "Generate candidate small molecules for KRAS G12D that balance binding and activity",
|
|
19
21
|
"num_initial": 3,
|
|
20
22
|
"seed": 42
|
|
21
23
|
}
|
|
22
24
|
```
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
Use validate only when you need to check parameters. For a full run, do not validate before
|
|
27
|
+
submitting; that would make an unnecessary call. A successful result should contain the same
|
|
28
|
+
number of candidate SMILES as `num_initial`.
|
|
26
29
|
|
|
27
|
-
##
|
|
30
|
+
## Suggest the next batch of candidates
|
|
28
31
|
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
+
- Synchronous operation: `molecules-suggest`
|
|
33
|
+
- Asynchronous operation: `molecules-suggest-job` (prefer it for heavy tasks)
|
|
34
|
+
- Validation-only operation: `molecules-suggest-validate`
|
|
32
35
|
|
|
33
36
|
```json
|
|
34
37
|
{
|
|
35
|
-
"task": "
|
|
38
|
+
"task": "Continue improving binding and activity for KRAS G12D",
|
|
36
39
|
"history_xs": ["CCO", "CCN", "CCC"],
|
|
37
40
|
"history_ys": [
|
|
38
41
|
[-6.8, 0.31],
|
|
@@ -44,14 +47,14 @@ STRBO 用于服务端固定 **KRAS G12D** 靶点的小分子生成式多目标
|
|
|
44
47
|
}
|
|
45
48
|
```
|
|
46
49
|
|
|
47
|
-
`history_xs`
|
|
48
|
-
|
|
50
|
+
`history_xs` and `history_ys` must have the same length. Each `history_ys` item must contain two
|
|
51
|
+
finite numbers in the exact order `[vina, activity]`. Do not present predictions as wet-lab results.
|
|
49
52
|
|
|
50
|
-
##
|
|
53
|
+
## Evaluate candidates
|
|
51
54
|
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
+
- Synchronous operation: `molecules-evaluate`
|
|
56
|
+
- Asynchronous operation: `molecules-evaluate-job`
|
|
57
|
+
- Validation-only operation: `molecules-evaluate-validate`
|
|
55
58
|
|
|
56
59
|
```json
|
|
57
60
|
{
|
|
@@ -59,29 +62,34 @@ STRBO 用于服务端固定 **KRAS G12D** 靶点的小分子生成式多目标
|
|
|
59
62
|
}
|
|
60
63
|
```
|
|
61
64
|
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
The number of scores in a successful result must match the number of designs, with exactly two
|
|
66
|
+
finite numbers per row. If any item explicitly fails, treat the entire run as failed; do not
|
|
67
|
+
report only the successful subset.
|
|
64
68
|
|
|
65
|
-
##
|
|
69
|
+
## Asynchronous jobs
|
|
66
70
|
|
|
67
|
-
|
|
71
|
+
After submitting an asynchronous operation, read a non-empty `job_id` from the current business
|
|
72
|
+
response, then poll:
|
|
68
73
|
|
|
69
74
|
```text
|
|
70
75
|
delta-cli science invoke --tool strbo --endpoint job-status --params JSON
|
|
71
76
|
```
|
|
72
77
|
|
|
73
|
-
|
|
78
|
+
Read the result only once the status changes to `succeeded`:
|
|
74
79
|
|
|
75
80
|
```text
|
|
76
81
|
delta-cli science invoke --tool strbo --endpoint job-result --params JSON
|
|
77
82
|
```
|
|
78
83
|
|
|
79
|
-
`queued`
|
|
80
|
-
|
|
81
|
-
|
|
84
|
+
`queued` and `running` do not mean the job is complete; stop immediately on `failed`. Status
|
|
85
|
+
queries may be repeated at intervals of about five seconds, but never repeat the submission
|
|
86
|
+
operation. The total wait for one user task is limited to 15 minutes. If that limit is reached,
|
|
87
|
+
report that the job is still incomplete and retain its `job_id`; do not claim it was cancelled
|
|
88
|
+
remotely.
|
|
82
89
|
|
|
83
|
-
##
|
|
90
|
+
## Complete research workflow
|
|
84
91
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
92
|
+
When the user explicitly asks for a complete iteration, run `initialise → evaluate → suggest →
|
|
93
|
+
evaluate` sequentially. Use only verified business responses from the current calls as inputs to
|
|
94
|
+
the next step. If the user asks only for initial candidates or evaluation of supplied SMILES, do
|
|
95
|
+
not expand the task into a full loop.
|
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
# SynBO operation
|
|
1
|
+
# SynBO operation reference
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
`base_url`
|
|
3
|
+
Make all online calls with `delta-cli science invoke`; the service address comes from the CLI's
|
|
4
|
+
standard `base_url` configuration (`{base_url}/science_tool`). The paths here describe business
|
|
5
|
+
operations only and do not authorise direct HTTP access.
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
Use this section when the user asks to optimise reaction conditions, recommend the next batch of
|
|
8
|
+
experiments, continue a coupling reaction, or provides solvents, temperatures, catalysts, bases,
|
|
9
|
+
ligands and historical yields—even if they do not mention SynBO, BO, the CLI or field names. Make
|
|
10
|
+
at most one SynBO business call per user task. Stop immediately after success; for validation
|
|
11
|
+
errors, 502, 504, timeouts, disconnections or empty recommendations, do not change parameters or
|
|
12
|
+
models, or retry.
|
|
10
13
|
|
|
11
14
|
## Health
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
Operation: `health`; no request body.
|
|
14
17
|
|
|
15
18
|
Reports SynBO import status, Torch/CUDA runtime availability, service limits,
|
|
16
|
-
default device
|
|
19
|
+
default device and visible CUDA devices.
|
|
17
20
|
|
|
18
21
|
Important fields inside gateway `data`:
|
|
19
22
|
|
|
@@ -46,7 +49,7 @@ Important fields inside gateway `data`:
|
|
|
46
49
|
|
|
47
50
|
## Initialize
|
|
48
51
|
|
|
49
|
-
|
|
52
|
+
Operation: `initialize`.
|
|
50
53
|
|
|
51
54
|
Use for initial condition sampling when no measured previous results exist.
|
|
52
55
|
|
|
@@ -74,7 +77,7 @@ Supported `sampling_method` values: `sobol`, `random`, `lhs`, `kmeans`.
|
|
|
74
77
|
|
|
75
78
|
## Optimize
|
|
76
79
|
|
|
77
|
-
|
|
80
|
+
Operation: `optimize`.
|
|
78
81
|
|
|
79
82
|
Use after measured experiment rows are available. Each previous row must contain
|
|
80
83
|
all condition columns and all objective metric columns.
|
|
@@ -103,11 +106,11 @@ Request body:
|
|
|
103
106
|
}
|
|
104
107
|
```
|
|
105
108
|
|
|
106
|
-
###
|
|
109
|
+
### Discretise numeric conditions first
|
|
107
110
|
|
|
108
|
-
SynBO
|
|
109
|
-
40–100°C
|
|
110
|
-
0.5/1.0/1.5/2.0
|
|
111
|
+
SynBO's `condition_dict` accepts explicit lists only; it does not accept continuous range
|
|
112
|
+
objects. For a task with a temperature range of 40–100°C and catalyst loading of 0.5–2.0%, with
|
|
113
|
+
historical values at 60/70/80/90°C and 0.5/1.0/1.5/2.0%, use:
|
|
111
114
|
|
|
112
115
|
```json
|
|
113
116
|
{
|
|
@@ -135,14 +138,12 @@ SynBO 的 `condition_dict` 只接受显式列表,不接受连续范围对象
|
|
|
135
138
|
}
|
|
136
139
|
```
|
|
137
140
|
|
|
138
|
-
|
|
141
|
+
Constraints:
|
|
139
142
|
|
|
140
|
-
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
如需小数据 CPU 设置,显式传递 `accuracy:"tiny"`、`surrogate_model:"RF"`、
|
|
145
|
-
`acq_func:"UCB"` 和 `device:"cpu"`;不得假定客户端会补充默认值。
|
|
143
|
+
- Represent every condition value as a string and keep objective metrics numeric.
|
|
144
|
+
- Every condition value in each `previous_results` row must appear in the corresponding `condition_dict` list.
|
|
145
|
+
- The discretised grid for a continuous range must include the user's lower and upper bounds and all historical observations. State the actual grid in the final answer.
|
|
146
|
+
- Serialise condition values explicitly as strings, and ensure each historical row uses only values listed in `condition_dict`. For a small-data CPU configuration, pass `accuracy:"tiny"`, `surrogate_model:"RF"`, `acq_func:"UCB"` and `device:"cpu"` explicitly; do not assume the client supplies defaults.
|
|
146
147
|
|
|
147
148
|
Useful optional fields:
|
|
148
149
|
|
|
@@ -190,9 +191,11 @@ Gateway errors have the standard envelope:
|
|
|
190
191
|
}
|
|
191
192
|
```
|
|
192
193
|
|
|
193
|
-
|
|
194
|
-
|
|
194
|
+
Common causes include an oversized condition space, duplicate condition values, historical
|
|
195
|
+
condition values absent from `condition_dict`, non-numeric descriptors, missing columns in
|
|
196
|
+
historical rows, non-numeric metrics, and a CUDA request when no GPU is available.
|
|
195
197
|
|
|
196
|
-
|
|
197
|
-
timeout
|
|
198
|
-
|
|
198
|
+
The server has a per-request timeout independent of the client. GP, EHVI, high accuracy or busy
|
|
199
|
+
shared resources may cause a timeout. Do not automatically change parameters and retry during an
|
|
200
|
+
ordinary user task. Report “no recommendations were produced”, preserve the error, and let the
|
|
201
|
+
user decide whether to start a separate, explicitly requested regression test.
|