@delta-infra/cli 1.0.80 → 1.0.82

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.
Files changed (32) hide show
  1. package/README.md +429 -429
  2. package/checksums.txt +5 -5
  3. package/package.json +1 -1
  4. package/scripts/install-wizard.js +625 -625
  5. package/scripts/install.js +417 -417
  6. package/scripts/run.js +65 -65
  7. package/skills/delta-sandbox/SKILL.md +356 -356
  8. package/skills/delta-sandbox/agents/openai.yaml +4 -4
  9. package/skills/delta-sandbox/references/commands.md +56 -56
  10. package/skills/delta-sandbox/references/lifecycle.md +92 -92
  11. package/skills/delta-sandbox/references/recipes.md +133 -133
  12. package/skills/delta-science/SKILL.md +136 -150
  13. package/skills/delta-science/agents/openai.yaml +4 -4
  14. package/skills/delta-science/references/antbo.md +100 -100
  15. package/skills/delta-science/references/cli-contract.md +53 -83
  16. package/skills/delta-science/references/delta-bo.md +89 -90
  17. package/skills/delta-science/references/gsasii.md +116 -116
  18. package/skills/delta-science/references/lammps.md +66 -66
  19. package/skills/delta-science/references/ldm-bo.md +129 -130
  20. package/skills/delta-science/references/ldm.md +73 -72
  21. package/skills/delta-science/references/pubchem.md +126 -127
  22. package/skills/delta-science/references/pymatgen.md +68 -68
  23. package/skills/delta-science/references/rdkit.md +138 -139
  24. package/skills/delta-science/references/routing-index.md +36 -36
  25. package/skills/delta-science/references/strbo.md +87 -87
  26. package/skills/delta-science/references/synbo.md +198 -197
  27. package/skills/delta-science/references/workflows.md +61 -61
  28. package/skills/delta-shared/SKILL.md +95 -95
  29. package/skills/delta-shared/agents/openai.yaml +4 -4
  30. package/skills/manifest.json +19 -19
  31. package/skills/delta-science/scripts/catalog.py +0 -92
  32. package/skills/delta-science/scripts/invoke.py +0 -346
@@ -1,66 +1,66 @@
1
- # LAMMPS 详细规则
2
-
3
- 所有调用只走统一 wrapper。LAMMPS 不从化学式、CIF 或 POSCAR 自动推断 data、原子
4
- 类型、势函数与边界条件。成功执行不表示物理收敛或生产可用。
5
-
6
- ## Health
7
-
8
- operation:`health`,无 body。
9
-
10
- Key response fields in `data`: `status`, `service`, `lammps_available`,
11
- `metadata`, and `limits`.
12
-
13
- 只有用户明确要求健康检查时才调用;不要在模拟前自动增加 health。
14
-
15
- ## Built-In Lennard-Jones Example
16
-
17
- operation:`lj-melt-example`。
18
-
19
- Returns a complete `request` payload for the `run` operation, plus workflow notes
20
- showing where pymatgen and GSAS-II fit around LAMMPS.
21
-
22
- ## Run
23
-
24
- operation:`run`。
25
-
26
- ```json
27
- {
28
- "input_script": "<LAMMPS input script>",
29
- "files": [
30
- {"path": "system.data", "content": "<LAMMPS data file text>", "encoding": "text"}
31
- ],
32
- "timeout_seconds": 30,
33
- "max_thermo_rows": 1000,
34
- "log_tail_lines": 200,
35
- "output_files": ["dump.lammpstrj", "final.data"],
36
- "include_log": true,
37
- "include_stdout": false,
38
- "include_stderr": false
39
- }
40
- ```
41
-
42
- `files` are written into a fresh job working directory before LAMMPS starts.
43
- `encoding` can be `text` or `base64`.
44
-
45
- The response includes parsed thermo rows, the final thermo row, atom count when
46
- detectable, log tail, warnings, and requested output files. Text output files
47
- return `content`; binary output files return `content_base64`.
48
-
49
- Notes:
50
-
51
- - Use relative file paths only.
52
- - The service rejects unsafe commands such as `shell`, `python`, `plugin`, and
53
- `jump` by default.
54
- - `include <relative-file>` is allowed when the included file is supplied in
55
- `files`; absolute paths, parent-directory traversal, URLs, and `jump` loops
56
- are rejected.
57
- - Dump/data products are returned as raw requested output files, not structured
58
- parsed atom-frame objects.
59
- - The gateway is synchronous; keep interactive runs short.
60
- - Force-field choice is caller responsibility. The service executes explicit
61
- LAMMPS input and does not infer potentials from formulas or structures.
62
-
63
- 最终只复制当前 native 的 `last_thermo`、final step/temperature/total energy、
64
- warnings 和用户要求的输出文件摘要。禁止把总能量除以原子数、替换步数、换算单位或
65
- 推测收敛性、稳定性。最小示例必须先调用 `lj-melt-example`,再把其
66
- `native["request"]` 原样交给 `run`;不得传 wrapper 外层 envelope。
1
+ # LAMMPS 详细规则
2
+
3
+ 所有调用直接使用 `delta-cli science invoke`。LAMMPS 不从化学式、CIF 或 POSCAR 自动推断 data、原子
4
+ 类型、势函数与边界条件。成功执行不表示物理收敛或生产可用。
5
+
6
+ ## Health
7
+
8
+ operation:`health`,无 body。
9
+
10
+ Key response fields in `data`: `status`, `service`, `lammps_available`,
11
+ `metadata`, and `limits`.
12
+
13
+ 只有用户明确要求健康检查时才调用;不要在模拟前自动增加 health。
14
+
15
+ ## Built-In Lennard-Jones Example
16
+
17
+ operation:`lj-melt-example`。
18
+
19
+ Returns a complete `request` payload for the `run` operation, plus workflow notes
20
+ showing where pymatgen and GSAS-II fit around LAMMPS.
21
+
22
+ ## Run
23
+
24
+ operation:`run`。
25
+
26
+ ```json
27
+ {
28
+ "input_script": "<LAMMPS input script>",
29
+ "files": [
30
+ {"path": "system.data", "content": "<LAMMPS data file text>", "encoding": "text"}
31
+ ],
32
+ "timeout_seconds": 30,
33
+ "max_thermo_rows": 1000,
34
+ "log_tail_lines": 200,
35
+ "output_files": ["dump.lammpstrj", "final.data"],
36
+ "include_log": true,
37
+ "include_stdout": false,
38
+ "include_stderr": false
39
+ }
40
+ ```
41
+
42
+ `files` are written into a fresh job working directory before LAMMPS starts.
43
+ `encoding` can be `text` or `base64`.
44
+
45
+ The response includes parsed thermo rows, the final thermo row, atom count when
46
+ detectable, log tail, warnings, and requested output files. Text output files
47
+ return `content`; binary output files return `content_base64`.
48
+
49
+ Notes:
50
+
51
+ - Use relative file paths only.
52
+ - The service rejects unsafe commands such as `shell`, `python`, `plugin`, and
53
+ `jump` by default.
54
+ - `include <relative-file>` is allowed when the included file is supplied in
55
+ `files`; absolute paths, parent-directory traversal, URLs, and `jump` loops
56
+ are rejected.
57
+ - Dump/data products are returned as raw requested output files, not structured
58
+ parsed atom-frame objects.
59
+ - The gateway is synchronous; keep interactive runs short.
60
+ - Force-field choice is caller responsibility. The service executes explicit
61
+ LAMMPS input and does not infer potentials from formulas or structures.
62
+
63
+ 最终只复制当前业务响应的 `last_thermo`、final step/temperature/total energy、
64
+ warnings 和用户要求的输出文件摘要。禁止把总能量除以原子数、替换步数、换算单位或
65
+ 推测收敛性、稳定性。最小示例必须先调用 `lj-melt-example`,再把其
66
+ 当前业务响应的 `request` 原样交给 `run`;不得传 CLI 外层 envelope。
@@ -1,130 +1,129 @@
1
- # LDM-BO 详细规则
2
-
3
- 所有调用只走统一 wrapper,不是本地 PDF2Dock runner。仅用于小分子 SMILES;
4
- 抗体、CDRH3 或 AntBO 场景必须使用 AntBO 能力边界。
5
- provider、模型路径、Vina/ReaSyn/GPU/LLM 配置由服务端注入,不放入请求 JSON。
6
-
7
- ## Health
8
-
9
- operation:`health`,无 body。
10
-
11
- The response reports whether the adapter can see the mounted PDF2Dock
12
- interpreter, `bo_api.py`, Vina binary, ReaSyn repo/interpreter/checkpoints, NN
13
- model files, cache directory, GPU settings, and LLM configuration. Missing LLM
14
- settings degrade health because LDM methods need them.
15
-
16
- ## One-Step Recommend
17
-
18
- operation:`recommend`。
19
-
20
- Wraps `bo_api.recommend_next_smiles`.
21
-
22
- Typical payload:
23
-
24
- ```json
25
- {
26
- "method": "bo-tanimoto",
27
- "pool": ["CCO", "CCN", "CCC"],
28
- "history": [
29
- {"smiles": "CCO", "scores": [-7.1]},
30
- {"smiles": "CCN", "scores": [-6.8]}
31
- ],
32
- "batch_size": 1
33
- }
34
- ```
35
-
36
- Typical native response inside gateway `data`:
37
-
38
- ```json
39
- {
40
- "recommendations": ["CCC"],
41
- "acquisition_values": [0.12],
42
- "n_objectives": 1
43
- }
44
- ```
45
-
46
- LDM methods may include an `llm` diagnostics object.
47
-
48
- `acquisition_values` 只能按 native 原值报告。除非当前 native 明确给出字段定义,否则
49
- 不得把它描述为预测 Vina、预测 objective、不确定性、置信度、expected improvement,
50
- 也不得自行判断“越大/越小越好”。服务未返回推荐理由时,明确写“服务未返回推荐
51
- 理由”,不得根据分子骨架、杂原子或模型机制补写解释。
52
-
53
- ## Full Trajectory
54
-
55
- operation:`trajectory`。
56
-
57
- Wraps `bo_api.run_search_trajectory`.
58
-
59
- Small smoke payload:
60
-
61
- ```json
62
- {
63
- "method": "bo-tanimoto",
64
- "seed": 42,
65
- "seed-smiles": "CCO,CCN,CCC",
66
- "num-evaluations": 4,
67
- "batch-size": 1,
68
- "objective": "vina+nn"
69
- }
70
- ```
71
-
72
- Typical native response inside gateway `data`:
73
-
74
- ```json
75
- {
76
- "config": {},
77
- "history": [],
78
- "summary": {}
79
- }
80
- ```
81
-
82
- LDM methods may include `llm_trajectory`.
83
-
84
- ## Error Handling
85
-
86
- The service maps native `bo_api` error JSON to an upstream failure. The gateway
87
- returns a standard error envelope:
88
-
89
- ```json
90
- {
91
- "code": 1,
92
- "message": "AutoDock Vina executable not found...",
93
- "data": {
94
- "endpoint": "/v1/trajectory",
95
- "ldm_bo_response": {
96
- "error": "...",
97
- "error_type": "ValueError",
98
- "traceback": "Traceback ..."
99
- }
100
- }
101
- }
102
- ```
103
-
104
- Common causes are missing Vina, missing ReaSyn, wrong Python interpreter, CUDA
105
- device mismatch, missing LLM credentials for LDM methods, or an unwritable Vina
106
- cache directory.
107
-
108
- ## Provider Settings
109
-
110
- Do not send provider settings in request JSON. The adapter reads these from
111
- deployment config and passes them as Python kwargs to `bo_api`:
112
-
113
- ```text
114
- vina_bin
115
- vina_cache_dir
116
- vina_max_workers
117
- gp_device
118
- reasyn_repo
119
- reasyn_python_bin
120
- reasyn_model_path
121
- reasyn_devices
122
- nn_model_path
123
- nn_metadata_path
124
- llm_model
125
- llm_base_url
126
- llm_api_key
127
- ```
128
-
129
- The wrapper intentionally preserves user payloads and lets `bo_api` own native
130
- defaults and schema behavior.
1
+ # LDM-BO 详细规则
2
+
3
+ 所有调用直接使用 `delta-cli science invoke`,不是本地 PDF2Dock runner。仅用于小分子 SMILES;
4
+ 抗体、CDRH3 或 AntBO 场景必须使用 AntBO 能力边界。
5
+ provider、模型路径、Vina/ReaSyn/GPU/LLM 配置由服务端注入,不放入请求 JSON。
6
+
7
+ ## Health
8
+
9
+ operation:`health`,无 body。
10
+
11
+ The response reports whether the adapter can see the mounted PDF2Dock
12
+ interpreter, `bo_api.py`, Vina binary, ReaSyn repo/interpreter/checkpoints, NN
13
+ model files, cache directory, GPU settings, and LLM configuration. Missing LLM
14
+ settings degrade health because LDM methods need them.
15
+
16
+ ## One-Step Recommend
17
+
18
+ operation:`recommend`。
19
+
20
+ Wraps `bo_api.recommend_next_smiles`.
21
+
22
+ Typical payload:
23
+
24
+ ```json
25
+ {
26
+ "method": "bo-tanimoto",
27
+ "pool": ["CCO", "CCN", "CCC"],
28
+ "history": [
29
+ {"smiles": "CCO", "scores": [-7.1]},
30
+ {"smiles": "CCN", "scores": [-6.8]}
31
+ ],
32
+ "batch_size": 1
33
+ }
34
+ ```
35
+
36
+ Typical business response inside the documented gateway `data`:
37
+
38
+ ```json
39
+ {
40
+ "recommendations": ["CCC"],
41
+ "acquisition_values": [0.12],
42
+ "n_objectives": 1
43
+ }
44
+ ```
45
+
46
+ LDM methods may include an `llm` diagnostics object.
47
+
48
+ `acquisition_values` 只能按业务响应原值报告。除非当前业务响应明确给出字段定义,否则
49
+ 不得把它描述为预测 Vina、预测 objective、不确定性、置信度、expected improvement,
50
+ 也不得自行判断“越大/越小越好”。服务未返回推荐理由时,明确写“服务未返回推荐
51
+ 理由”,不得根据分子骨架、杂原子或模型机制补写解释。
52
+
53
+ ## Full Trajectory
54
+
55
+ operation:`trajectory`。
56
+
57
+ Wraps `bo_api.run_search_trajectory`.
58
+
59
+ Small smoke payload:
60
+
61
+ ```json
62
+ {
63
+ "method": "bo-tanimoto",
64
+ "seed": 42,
65
+ "seed-smiles": "CCO,CCN,CCC",
66
+ "num-evaluations": 4,
67
+ "batch-size": 1,
68
+ "objective": "vina+nn"
69
+ }
70
+ ```
71
+
72
+ Typical business response inside the documented gateway `data`:
73
+
74
+ ```json
75
+ {
76
+ "config": {},
77
+ "history": [],
78
+ "summary": {}
79
+ }
80
+ ```
81
+
82
+ LDM methods may include `llm_trajectory`.
83
+
84
+ ## Error Handling
85
+
86
+ The service maps `bo_api` error JSON to an upstream failure. The gateway
87
+ returns a standard error envelope:
88
+
89
+ ```json
90
+ {
91
+ "code": 1,
92
+ "message": "AutoDock Vina executable not found...",
93
+ "data": {
94
+ "endpoint": "/v1/trajectory",
95
+ "ldm_bo_response": {
96
+ "error": "...",
97
+ "error_type": "ValueError",
98
+ "traceback": "Traceback ..."
99
+ }
100
+ }
101
+ }
102
+ ```
103
+
104
+ Common causes are missing Vina, missing ReaSyn, wrong Python interpreter, CUDA
105
+ device mismatch, missing LLM credentials for LDM methods, or an unwritable Vina
106
+ cache directory.
107
+
108
+ ## Provider Settings
109
+
110
+ Do not send provider settings in request JSON. The adapter reads these from
111
+ deployment config and passes them as Python kwargs to `bo_api`:
112
+
113
+ ```text
114
+ vina_bin
115
+ vina_cache_dir
116
+ vina_max_workers
117
+ gp_device
118
+ reasyn_repo
119
+ reasyn_python_bin
120
+ reasyn_model_path
121
+ reasyn_devices
122
+ nn_model_path
123
+ nn_metadata_path
124
+ llm_model
125
+ llm_base_url
126
+ llm_api_key
127
+ ```
128
+
129
+ The CLI forwards the user payload; `bo_api` owns business defaults and schema behavior.
@@ -1,72 +1,73 @@
1
- # LDM 科研工作流
2
-
3
- 这里的 **LDM / 大发现模型** 是用户可见的科研工作流名称,不是可以直接访问网关的
4
- tool。在线计算必须先按任务语义选择 `ldm-bo`、`strbo` 或 `antbo`,再通过统一 wrapper
5
- 调用 Delta CLI;禁止运行旧 `large-discovery-model` Skill、`run_ldm_loop.py`、gateway
6
- backend、`stream_widget` 中的联网命令或任何 HTTP 客户端。
7
-
8
- ## 路由
9
-
10
- | 用户目标 | 实际 tool | 需要同时读取 |
11
- | --- | --- | --- |
12
- | 在给定 SMILES 候选池中推荐下一批,或运行 PDF2Dock/Vina+NN 轨迹 | `ldm-bo` | `references/ldm-bo.md` |
13
- | 围绕服务端固定 KRAS G12D 生成、评估并迭代小分子 | `strbo` | `references/strbo.md` |
14
- | 为指定抗原生成、评估并迭代 11-aa CDRH3 | `antbo` | `references/antbo.md` |
15
-
16
- 不得因为用户只说“LDM”“药物发现”就自动选择后端。根据实体、已有数据和目标判断;
17
- 仍无法区分时,结束并说明需要用户确认“小分子候选池、KRAS G12D 生成优化或抗体
18
- CDRH3”中的哪一种。
19
-
20
- ## 最小执行范围
21
-
22
- - 用户只要求检查参数时,只调用相应 `*-validate` operation。
23
- - 用户只要求评估已有候选时,只调用 evaluate,不生成新候选。
24
- - 用户只要求推荐下一批且已经给出历史记录时,只调用 suggest/recommend。
25
- - 用户明确要求“完整迭代优化”时,才运行初始化、评估、建议、再评估的闭环。
26
- - 用户未给轮数时,STRBO/AntBO 最多执行一个建议轮次;不得沿用旧 Skill 的 6/8 轮
27
- 隐式默认值。LDM-BO `trajectory` 的评估次数必须来自用户,缺失时先要求确认。
28
-
29
- 生成、评估、建议和 trajectory 都会消耗远端资源。一次自然语言中的“帮我优化”视为
30
- 执行授权,但不得擅自扩大候选数、轮数或切换后端。
31
-
32
- ## STRBO 完整闭环
33
-
34
- 1. 调用 `molecules-init` 或 `molecules-init-job`,取得初始 SMILES。
35
- 2. 调用 `molecules-evaluate` 或对应异步 operation,取得 `[vina, activity]`。
36
- 3. 使用当前成功 native 中的 SMILES 和 scores 构造 `history_xs/history_ys`。
37
- 4. 调用一次 `molecules-suggest-job`,按 STRBO reference 轮询至成功。
38
- 5. 只评估新建议,并把结果与当前任务内历史合并后返回。
39
-
40
- 提交 operation 不得重试。任一步失败、超时或返回数量不一致,立即结束;不得用旧
41
- gateway、离线 mock、本地 RDKit/Vina 或模型猜测补全。
42
-
43
- ## AntBO 完整闭环
44
-
45
- 1. 用户必须提供抗原;未提供时不得替用户选择。
46
- 2. 必要时调用一次 `ldm-health`,确认抗原与 CDRH3 长度约束。
47
- 3. 调用 `ldm-init` 取得初始 CDRH3,再调用 `evaluate` 取得结合能。
48
- 4. 使用当前成功 native 构造一维 `history_ys`,调用一次 `ldm-suggest`。
49
- 5. 只评估新建议,并返回当前任务内的候选与结合能。
50
-
51
- 不得把 AntBO 的一维 score 改成 STRBO 的二维 score,也不得把 CDRH3 交给小分子
52
- LDM-BO。
53
-
54
- ## 固定候选池与轨迹
55
-
56
- - 已有候选池和历史分数,要求下一批:使用 `ldm-bo/recommend`。
57
- - 用户明确要求完整 PDF2Dock/Vina+NN 搜索并给出评估次数:使用
58
- `ldm-bo/trajectory`。
59
- - 不得把 `ldm-bo` 的 provider、模型路径、密钥、GPU 或 Vina 配置放进请求;这些由
60
- Science Server 管理。
61
-
62
- ## 结果与展示
63
-
64
- 只报告当前 Delta CLI native 中真实存在的候选、目标值、warnings、job_id、状态和
65
- 服务端 provenance。不得自行添加相似度阈值、机制解释、湿实验结论或“最优”断言;
66
- 只有在方向明确且比较集合完整时,才能按实际目标值指出当前集合中的最好候选。
67
- 推荐结果中的 acquisition value 不是预测目标值、置信度或推荐理由;除非 native
68
- 明确给出语义和方向,否则只作为原始采集函数值报告。
69
-
70
- LDM 的仪表盘是展示层,不是计算入口。用户明确要求图表时,先完成一次 CLI 计算,
71
- 再让外层使用同一份已验证结果绘图;禁止为了仪表盘再次提交远端任务。普通请求直接
72
- 返回简洁文本。
1
+ # LDM 科研工作流
2
+
3
+ 这里的 **LDM / 大发现模型** 是用户可见的科研工作流名称,不是可以直接访问网关的
4
+ tool。在线计算必须先按任务语义选择 `ldm-bo`、`strbo` 或 `antbo`,再通过
5
+ `delta-cli science invoke`
6
+ 调用 Delta CLI;禁止运行旧 `large-discovery-model` Skill、`run_ldm_loop.py`、gateway
7
+ backend、`stream_widget` 中的联网命令或任何 HTTP 客户端。
8
+
9
+ ## 路由
10
+
11
+ | 用户目标 | 实际 tool | 需要同时读取 |
12
+ | --- | --- | --- |
13
+ | 在给定 SMILES 候选池中推荐下一批,或运行 PDF2Dock/Vina+NN 轨迹 | `ldm-bo` | `references/ldm-bo.md` |
14
+ | 围绕服务端固定 KRAS G12D 生成、评估并迭代小分子 | `strbo` | `references/strbo.md` |
15
+ | 为指定抗原生成、评估并迭代 11-aa CDRH3 | `antbo` | `references/antbo.md` |
16
+
17
+ 不得因为用户只说“LDM”“药物发现”就自动选择后端。根据实体、已有数据和目标判断;
18
+ 仍无法区分时,结束并说明需要用户确认“小分子候选池、KRAS G12D 生成优化或抗体
19
+ CDRH3”中的哪一种。
20
+
21
+ ## 最小执行范围
22
+
23
+ - 用户只要求检查参数时,只调用相应 `*-validate` operation。
24
+ - 用户只要求评估已有候选时,只调用 evaluate,不生成新候选。
25
+ - 用户只要求推荐下一批且已经给出历史记录时,只调用 suggest/recommend。
26
+ - 用户明确要求“完整迭代优化”时,才运行初始化、评估、建议、再评估的闭环。
27
+ - 用户未给轮数时,STRBO/AntBO 最多执行一个建议轮次;不得沿用旧 Skill 的 6/8 轮
28
+ 隐式默认值。LDM-BO `trajectory` 的评估次数必须来自用户,缺失时先要求确认。
29
+
30
+ 生成、评估、建议和 trajectory 都会消耗远端资源。一次自然语言中的“帮我优化”视为
31
+ 执行授权,但不得擅自扩大候选数、轮数或切换后端。
32
+
33
+ ## STRBO 完整闭环
34
+
35
+ 1. 调用 `molecules-init` 或 `molecules-init-job`,取得初始 SMILES。
36
+ 2. 调用 `molecules-evaluate` 或对应异步 operation,取得 `[vina, activity]`。
37
+ 3. 使用当前成功业务响应中的 SMILES 和 scores 构造 `history_xs/history_ys`。
38
+ 4. 调用一次 `molecules-suggest-job`,按 STRBO reference 轮询至成功。
39
+ 5. 只评估新建议,并把结果与当前任务内历史合并后返回。
40
+
41
+ 提交 operation 不得重试。任一步失败、超时或返回数量不一致,立即结束;不得用旧
42
+ gateway、离线 mock、本地 RDKit/Vina 或模型猜测补全。
43
+
44
+ ## AntBO 完整闭环
45
+
46
+ 1. 用户必须提供抗原;未提供时不得替用户选择。
47
+ 2. 必要时调用一次 `ldm-health`,确认抗原与 CDRH3 长度约束。
48
+ 3. 调用 `ldm-init` 取得初始 CDRH3,再调用 `evaluate` 取得结合能。
49
+ 4. 使用当前成功业务响应构造一维 `history_ys`,调用一次 `ldm-suggest`。
50
+ 5. 只评估新建议,并返回当前任务内的候选与结合能。
51
+
52
+ 不得把 AntBO 的一维 score 改成 STRBO 的二维 score,也不得把 CDRH3 交给小分子
53
+ LDM-BO。
54
+
55
+ ## 固定候选池与轨迹
56
+
57
+ - 已有候选池和历史分数,要求下一批:使用 `ldm-bo/recommend`。
58
+ - 用户明确要求完整 PDF2Dock/Vina+NN 搜索并给出评估次数:使用
59
+ `ldm-bo/trajectory`。
60
+ - 不得把 `ldm-bo` 的 provider、模型路径、密钥、GPU 或 Vina 配置放进请求;这些由
61
+ Science Server 管理。
62
+
63
+ ## 结果与展示
64
+
65
+ 只报告当前 Delta CLI 业务响应中真实存在的候选、目标值、warnings、job_id、状态和
66
+ 服务端 provenance。不得自行添加相似度阈值、机制解释、湿实验结论或“最优”断言;
67
+ 只有在方向明确且比较集合完整时,才能按实际目标值指出当前集合中的最好候选。
68
+ 推荐结果中的 acquisition value 不是预测目标值、置信度或推荐理由;除非业务响应
69
+ 明确给出语义和方向,否则只作为原始采集函数值报告。
70
+
71
+ LDM 的仪表盘是展示层,不是计算入口。用户明确要求图表时,先完成一次 CLI 计算,
72
+ 再让外层使用同一份已验证结果绘图;禁止为了仪表盘再次提交远端任务。普通请求直接
73
+ 返回简洁文本。