@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.
@@ -1,65 +1,70 @@
1
- # Quantum ESPRESSO DFT 详细规则
1
+ # Quantum ESPRESSO DFT reference
2
2
 
3
- QE 用于通过 Chemistry Gateway 执行可追踪的异步 Quantum ESPRESSO 工作流。agent 只接触
4
- Gateway/Science Server contract,不运行本地 `pw.x`,不调用内部 QE 容器,也不提交 shell
5
- 命令、scheduler 脚本、`pseudo_dir`、`outdir` 或主机路径。
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
- 本 reference 对应 CLI 的真实工具为 `qe`。实际 `tools.name` 与 `tool_endpoints.name`
8
- 必须逐字取自当前 CLI catalog。下列路径是 QE 服务契约,不是可直接访问的 URL,也不是
9
- 可以自动改写的 endpoint 别名。
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`、`/healthz`、`/readyz` | 运行时、scheduler、存储和 PP 就绪 | 只读 |
16
- | `/chem/qe/v1/qe/workflow-types` | workflow catalog 和支持状态 | 只读 |
17
- | `/chem/qe/v1/pp-sets`、`/pp-locks/{digest}` | 已发布 PP profile/lock | 只读 |
18
- | `/chem/qe/v1/pp-sets:resolve` | 按 campaign 元素全集解析 PP 候选 | 只读/校验 |
19
- | `/chem/qe/v1/artifacts` | 上传、查询和下载结构/fixed-coordinate artifact | 文件/二进制 |
20
- | `/chem/qe/v1/qe/jobs` | 提交异步计算并查询 job | 远端变更 |
21
- | `/chem/qe/v1/qe/jobs/{job_id}/events`、`steps`、`logs`、`artifacts` | 读取作业过程和结果 | 只读 |
22
- | `/chem/qe/v1/qe/jobs/{job_id}:cancel`、`:retry`、`:review` | 取消、重试和科学审核 | 远端变更 |
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
- 选择新 operation 时,先使用:
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
- 再用目录返回的精确名称调用;如果 catalog 没有 schema,不猜测 operation、路径参数、
32
- 请求头或 body。
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
- 结构 artifact 上传需要 `application/octet-stream` 和 query metadata,QE job 提交要求
37
- 稳定的 `Idempotency-Key`。`science invoke` 仍只用于 JSON/query;文件通过
38
- `science file`,持久化 job 通过 `science task`:
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
- 结构 artifact;`custom-pp-upload` 同理并在 `--data` 中提供 `custom_pp_id`;
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` 提交 durable QE job,worker 将幂等键传给 Gateway;
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>` 下载原始 artifact;
46
- - 不要把结构文本、文件路径、base64、`Idempotency-Key` 或 QE service credential 当成
47
- 普通业务字段发送,也不要调用公开/私有 Gateway URL 或 `qe-cloud-compute:18020`。
48
-
49
- ## 新作业的正确顺序
50
-
51
- 1. 读取 health;需要部署诊断时再读取 readiness,并从 workflow catalog 选择当前
52
- `supported` 的 task。
53
- 2. 计算完整 `campaign_elements` 集合,使用 `pp-sets:resolve` 得到 profile;生产作业
54
- 必须使用服务返回的 `pp_set_id` 与不可变 `lock_id`,不能只凭 profile 名称推断 lock。
55
- 3. 让服务校验结构 artifact,job 只引用返回的 `sha256:<digest>` artifact ID。
56
- 4. 用稳定幂等语义提交 `qe/jobs`;接收 `202` 只代表 accepted/queued,不代表 QE 已收敛。
57
- 5. 轮询 job、events、steps、logs 和 artifacts;独立读取 `execution`、`solver`、
58
- `scientific` 三个状态。
59
- 6. 下载结果时校验每个 artifact 的 SHA-256,并分别报告 selected backend、资源 telemetry、
60
- solver 状态、scientific review 状态和 warnings。
61
-
62
- PP 解析的最小业务数据形状如下;其中值必须来自当前服务/目录,不能填入虚构的生产 lock:
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
- 作业的核心结构如下,`workflow_inputs` 必须遵循当前 task schema:
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 是默认策略,尤其适用于小/中型交互任务、PP/结构/审计/归档任务和成本敏感场景。
107
- 只有用户明确要求或项目已有 GPU 预算,并且 live catalog 返回
108
- `gpu_support_status: "verified"` 时,才使用 `gpu`;强制 GPU 不得静默回退 CPU。只有
109
- 结果明确返回 `selected_backend: "gpu"` 才能声称实际使用 GPU;`auto` 不是 GPU 使用证明。
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`:prepared/submitted/queued/running/scheduler completion/cancelled/failed;
114
- - `solver`:not started/running/converged/not converged/failed/unknown;
115
- - `scientific`:unreviewed、scientifically accepted、accepted with limitations、needs
116
- recalculation、not assessable、failed 或 archived。
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 完成不等于 solver 收敛,solver 收敛也不等于 scientific acceptance。按稳定
119
- 错误码而不是 message 分支,重点包括 `PP_SET_INCOMPLETE`、`PP_POLICY_INCOMPATIBLE`、
120
- `PP_CAPABILITY_UNKNOWN`、`ARTIFACT_MISSING`、`SOLVER_NOT_CONVERGED`、
121
- `SCIENTIFIC_GATE_FAILED`、`RESTART_INCOMPATIBLE`、`IDEMPOTENCY_CONFLICT`、
122
- `EXECUTION_BACKEND_NOT_READY`、`GPU_UNSUPPORTED` 和 `GPU_UNAVAILABLE`。
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、scheduler 日志或可解析的 QE 输出描述成科学结论或客户级性能保证。
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
- 只能通过 `delta-cli science invoke` 调用。以下业务响应位于 CLI 顶层 `data`;只按本文件
4
- 说明读取字段,不得递归搜索。这里只记录 operation schema,不授权直接 HTTP。
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`,payload 使用 `molecules:[{id,smiles}]`,不得拆成 parse 和
8
- descriptors。多个分子的全对相似度使用一次 `similarity-matrix`;排名字段固定为
9
- `a`、`b`、`similarity`,不是 `i`、`j`、`score`。
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
- 只报告业务响应实际存在的描述符。渲染 PNG 时只解码文档指定字段,并验证字节以
12
- `89 50 4e 47 0d 0a 1a 0a` 开头;不得把 JSON envelope 保存成图片。
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
- operation:`health`,无 body。
19
+ Operation: `health`; no request body.
17
20
 
18
21
  ## Parse
19
22
 
20
- operation:`parse`。
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
- operation:`descriptors`。
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
- operation:`batch-descriptors`。
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
- operation:`batch-parse-describe`。
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
- operation:`render`。
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
- operation:`fingerprint`。
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
- operation:`similarity`。
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
- operation:`similarity-matrix`。
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
- operation:`substructure`。
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 用于服务端固定 **KRAS G12D** 靶点的小分子生成式多目标优化。目标顺序固定为
4
- `[vina, activity]`:vina 越低越好,activity 越高越好。`task` 只引导候选生成,
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
- 所有调用均使用 `tool="strbo"`。生成、建议、评估和提交 job 都会消耗远端资源,只在
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
- - 同步 operation:`molecules-init`
13
- - 异步 operation:`molecules-init-job`
14
- - 仅校验 operation:`molecules-init-validate`
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": "为 KRAS G12D 生成兼顾结合与活性的候选小分子",
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
- 只需检查参数时使用 validate;正式执行不要先 validate 再提交,避免无必要调用。
25
- 成功结果应包含与 `num_initial` 数量一致的候选 SMILES。
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
- - 同步 operation:`molecules-suggest`
30
- - 异步 operation:`molecules-suggest-job`(重型任务优先)
31
- - 仅校验 operation:`molecules-suggest-validate`
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": "继续改善 KRAS G12D 的结合与活性",
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` 与 `history_ys` 必须等长;每个 `history_ys` 元素必须是两个有限数值,
48
- 顺序严格为 `[vina, activity]`。不得把预测值伪装成湿实验结果。
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
- - 同步 operation:`molecules-evaluate`
53
- - 异步 operation:`molecules-evaluate-job`
54
- - 仅校验 operation:`molecules-evaluate-validate`
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
- 成功结果中的 score 数量必须与 designs 一致,每行必须恰好有两个有限数值。任一 item
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
- 提交异步 operation 后,从当前业务响应读取非空 `job_id`,再轮询:
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
- 只有状态变为 `succeeded` 后才读取:
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` 或 `running` 不是完成;`failed` 立即结束。状态查询可按 5 秒左右间隔重复,
80
- 但提交 operation 绝不重复。单次用户任务的总等待上限为 15 分钟;超限后报告作业仍
81
- 未完成并保留 job_id,不得声称远端已取消。
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
- 调用已验证的业务响应作为下一步输入。用户只要求生成初始候选或评估给定 SMILES 时,
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
- 所有在线调用都通过 `delta-cli science invoke`,服务地址来自 CLI 的标准
4
- `base_url` 派生配置(`{base_url}/science_tool`)。这里的路径只说明业务 operation,不得据此直连 HTTP。
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
- 催化剂、碱、配体和历史得率时,即使没有提到 SynBO、BO、CLI 或字段名也使用本节。
8
- 每个用户任务最多一次 SynBO 业务调用;成功后立即结束,validation、502、504、
9
- timeout、断连或空 recommendations 均不得换参数、换模型或重试。
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
- operation:`health`,无 body。
16
+ Operation: `health`; no request body.
14
17
 
15
18
  Reports SynBO import status, Torch/CUDA runtime availability, service limits,
16
- default device, and visible CUDA devices.
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
- operation:`initialize`。
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
- operation:`optimize`。
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 的 `condition_dict` 只接受显式列表,不接受连续范围对象。对于“温度
109
- 40–100°C、催化剂用量 0.5–2.0%”并已有 60/70/80/90°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
- - 每个条件值统一为字符串,objective metric 保持数值。
141
- - 每条 `previous_results` 中的条件值必须出现在对应 `condition_dict` 列表中。
142
- - 连续范围的离散网格必须包含用户上下界和全部历史观测值;最终答案必须说明实际网格。
143
- - 将条件值显式序列化为字符串,并确保每条历史记录只使用 `condition_dict` 中列出的值。
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
- 常见原因包括条件空间过大、条件值重复、历史条件值不在 condition_dict 中、
194
- descriptor 非数值、历史行缺列、metric 非数值,以及无 GPU 时请求 CUDA。
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
- 服务端有独立于客户端的单次请求时限。GP、EHVI、高 accuracy 或共享资源繁忙可能导致
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.