@delta-infra/cli 1.0.81 → 1.0.83
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 +11 -11
- package/checksums.txt +5 -5
- package/package.json +1 -1
- package/skills/delta-science/SKILL.md +90 -104
- package/skills/delta-science/references/antbo.md +58 -58
- package/skills/delta-science/references/cli-contract.md +35 -65
- package/skills/delta-science/references/delta-bo.md +8 -9
- package/skills/delta-science/references/gsasii.md +3 -3
- package/skills/delta-science/references/lammps.md +3 -3
- package/skills/delta-science/references/ldm-bo.md +11 -12
- package/skills/delta-science/references/ldm.md +73 -72
- package/skills/delta-science/references/pubchem.md +4 -5
- package/skills/delta-science/references/pymatgen.md +1 -1
- package/skills/delta-science/references/rdkit.md +3 -4
- package/skills/delta-science/references/routing-index.md +36 -36
- package/skills/delta-science/references/strbo.md +87 -87
- package/skills/delta-science/references/synbo.md +5 -4
- package/skills/delta-science/references/workflows.md +20 -20
- package/skills/manifest.json +19 -19
- package/skills/delta-science/scripts/catalog.py +0 -92
- package/skills/delta-science/scripts/invoke.py +0 -346
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# LAMMPS 详细规则
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
所有调用直接使用 `delta-cli science invoke`。LAMMPS 不从化学式、CIF 或 POSCAR 自动推断 data、原子
|
|
4
4
|
类型、势函数与边界条件。成功执行不表示物理收敛或生产可用。
|
|
5
5
|
|
|
6
6
|
## Health
|
|
@@ -60,7 +60,7 @@ Notes:
|
|
|
60
60
|
- Force-field choice is caller responsibility. The service executes explicit
|
|
61
61
|
LAMMPS input and does not infer potentials from formulas or structures.
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
最终只复制当前业务响应的 `last_thermo`、final step/temperature/total energy、
|
|
64
64
|
warnings 和用户要求的输出文件摘要。禁止把总能量除以原子数、替换步数、换算单位或
|
|
65
65
|
推测收敛性、稳定性。最小示例必须先调用 `lj-melt-example`,再把其
|
|
66
|
-
`
|
|
66
|
+
当前业务响应的 `request` 原样交给 `run`;不得传 CLI 外层 envelope。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# LDM-BO 详细规则
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
所有调用直接使用 `delta-cli science invoke`,不是本地 PDF2Dock runner。仅用于小分子 SMILES;
|
|
4
4
|
抗体、CDRH3 或 AntBO 场景必须使用 AntBO 能力边界。
|
|
5
5
|
provider、模型路径、Vina/ReaSyn/GPU/LLM 配置由服务端注入,不放入请求 JSON。
|
|
6
6
|
|
|
@@ -33,7 +33,7 @@ Typical payload:
|
|
|
33
33
|
}
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
Typical
|
|
36
|
+
Typical business response inside the documented gateway `data`:
|
|
37
37
|
|
|
38
38
|
```json
|
|
39
39
|
{
|
|
@@ -43,12 +43,12 @@ Typical native response inside gateway `data`:
|
|
|
43
43
|
}
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
LDM methods may include an `llm` diagnostics object.
|
|
47
|
-
|
|
48
|
-
`acquisition_values`
|
|
49
|
-
不得把它描述为预测 Vina、预测 objective、不确定性、置信度、expected improvement,
|
|
50
|
-
也不得自行判断“越大/越小越好”。服务未返回推荐理由时,明确写“服务未返回推荐
|
|
51
|
-
理由”,不得根据分子骨架、杂原子或模型机制补写解释。
|
|
46
|
+
LDM methods may include an `llm` diagnostics object.
|
|
47
|
+
|
|
48
|
+
`acquisition_values` 只能按业务响应原值报告。除非当前业务响应明确给出字段定义,否则
|
|
49
|
+
不得把它描述为预测 Vina、预测 objective、不确定性、置信度、expected improvement,
|
|
50
|
+
也不得自行判断“越大/越小越好”。服务未返回推荐理由时,明确写“服务未返回推荐
|
|
51
|
+
理由”,不得根据分子骨架、杂原子或模型机制补写解释。
|
|
52
52
|
|
|
53
53
|
## Full Trajectory
|
|
54
54
|
|
|
@@ -69,7 +69,7 @@ Small smoke payload:
|
|
|
69
69
|
}
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
Typical
|
|
72
|
+
Typical business response inside the documented gateway `data`:
|
|
73
73
|
|
|
74
74
|
```json
|
|
75
75
|
{
|
|
@@ -83,7 +83,7 @@ LDM methods may include `llm_trajectory`.
|
|
|
83
83
|
|
|
84
84
|
## Error Handling
|
|
85
85
|
|
|
86
|
-
The service maps
|
|
86
|
+
The service maps `bo_api` error JSON to an upstream failure. The gateway
|
|
87
87
|
returns a standard error envelope:
|
|
88
88
|
|
|
89
89
|
```json
|
|
@@ -126,5 +126,4 @@ llm_base_url
|
|
|
126
126
|
llm_api_key
|
|
127
127
|
```
|
|
128
128
|
|
|
129
|
-
The
|
|
130
|
-
defaults and schema behavior.
|
|
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
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
+
返回简洁文本。
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
# PubChem 详细规则
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
schema,不授权直接 HTTP。普通名称基础查询只调用一次 `compound-summary`;多个名称
|
|
3
|
+
只能通过 `delta-cli science invoke` 调用。本文件中的业务响应位于 CLI 顶层 `data`;
|
|
4
|
+
只按本文件说明读取字段,不得递归搜索。本文件中的 URL 只用于说明 endpoint schema,
|
|
5
|
+
不授权直接 HTTP。普通名称基础查询只调用一次 `compound-summary`;多个名称
|
|
7
6
|
只调用一次 `compound-batch-summary`,默认 body 仅包含 `identifiers` 和
|
|
8
7
|
`namespace:"name"`,不得先调用 health/schema。
|
|
9
8
|
|
|
10
|
-
结果直接从 `
|
|
9
|
+
结果直接从 `data` 投影。批量记录位于 `data.results[*]`,原始标签在 `input`,
|
|
11
10
|
属性在嵌套 `properties`。SMILES 回退顺序固定为
|
|
12
11
|
`CanonicalSMILES -> ConnectivitySMILES -> SMILES -> IsomericSMILES`。
|
|
13
12
|
PubChem `XLogP` 与 RDKit `MolLogP` 不得互换;not_found 不得用本地计算补值。
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
# RDKit 详细规则
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
`result["native"]["data"]`。这里只记录 operation schema,不授权直接 HTTP。
|
|
3
|
+
只能通过 `delta-cli science invoke` 调用。以下业务响应位于 CLI 顶层 `data`;只按本文件
|
|
4
|
+
说明读取字段,不得递归搜索。这里只记录 operation schema,不授权直接 HTTP。
|
|
6
5
|
|
|
7
6
|
一个请求只执行完成目标所需的最少调用。同时校验、规范化并计算基础描述符时使用一次
|
|
8
7
|
`batch-parse-describe`,payload 使用 `molecules:[{id,smiles}]`,不得拆成 parse 和
|
|
9
8
|
descriptors。多个分子的全对相似度使用一次 `similarity-matrix`;排名字段固定为
|
|
10
9
|
`a`、`b`、`similarity`,不是 `i`、`j`、`score`。
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
只报告业务响应实际存在的描述符。渲染 PNG 时只解码文档指定字段,并验证字节以
|
|
13
12
|
`89 50 4e 47 0d 0a 1a 0a` 开头;不得把 JSON envelope 保存成图片。
|
|
14
13
|
|
|
15
14
|
## Health
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
# Delta Science 路由索引
|
|
2
|
-
|
|
3
|
-
本文件只描述稳定的科研意图边界,不复制 Science Server 的工具和 endpoint 清单。
|
|
4
|
-
实际可用工具以 `delta-cli science list` 和 `delta-cli science endpoints list` 返回的
|
|
5
|
-
实时目录为准。
|
|
6
|
-
|
|
7
|
-
## 路由优先级
|
|
8
|
-
|
|
9
|
-
- 普通化合物名称、CID 和公共属性使用 PubChem;已有 SMILES/InChI 且需要结构计算时
|
|
10
|
-
使用 RDKit。
|
|
11
|
-
- 无机化学式、组成、CIF、POSCAR 和空间群使用 pymatgen;粉末衍射模拟或 Rietveld
|
|
12
|
-
精修使用 GSAS-II。
|
|
13
|
-
- 明确的 LAMMPS input、data 和力场任务使用 LAMMPS;不得从化学式或 CIF 猜测势函数。
|
|
14
|
-
- 通用数值、整数或分类实验变量优化使用 Delta-BO。
|
|
15
|
-
- 固定 SMILES 候选池或 PDF2Dock 轨迹使用 LDM-BO;固定 KRAS G12D 生成式优化使用
|
|
16
|
-
STRBO;反应条件与真实历史得率使用 SynBO;抗体 CDRH3 使用 AntBO。
|
|
17
|
-
- “LDM/大发现模型”是跨上述三类能力的工作流意图,先读取 `ldm.md` 决定唯一后端,
|
|
18
|
-
不是服务端 tool,也不得路由到旧 `large-discovery-model` Skill。
|
|
19
|
-
|
|
20
|
-
## 已验证 reference
|
|
21
|
-
|
|
22
|
-
- [pubchem.md](pubchem.md)
|
|
23
|
-
- [rdkit.md](rdkit.md)
|
|
24
|
-
- [pymatgen.md](pymatgen.md)
|
|
25
|
-
- [gsasii.md](gsasii.md)
|
|
26
|
-
- [lammps.md](lammps.md)
|
|
27
|
-
- [delta-bo.md](delta-bo.md)
|
|
28
|
-
- [ldm-bo.md](ldm-bo.md)
|
|
29
|
-
- [ldm.md](ldm.md)
|
|
30
|
-
- [strbo.md](strbo.md)
|
|
31
|
-
- [synbo.md](synbo.md)
|
|
32
|
-
- [antbo.md](antbo.md)
|
|
33
|
-
|
|
34
|
-
以上 reference 是已验证参数契约,不是服务端完整目录。用户明确点名新工具时,按
|
|
35
|
-
`SKILL.md` 的实时 catalog 流程发现工具和 endpoint;若目录未返回请求 schema,不猜测
|
|
36
|
-
请求体。
|
|
1
|
+
# Delta Science 路由索引
|
|
2
|
+
|
|
3
|
+
本文件只描述稳定的科研意图边界,不复制 Science Server 的工具和 endpoint 清单。
|
|
4
|
+
实际可用工具以 `delta-cli science list` 和 `delta-cli science endpoints list` 返回的
|
|
5
|
+
实时目录为准。
|
|
6
|
+
|
|
7
|
+
## 路由优先级
|
|
8
|
+
|
|
9
|
+
- 普通化合物名称、CID 和公共属性使用 PubChem;已有 SMILES/InChI 且需要结构计算时
|
|
10
|
+
使用 RDKit。
|
|
11
|
+
- 无机化学式、组成、CIF、POSCAR 和空间群使用 pymatgen;粉末衍射模拟或 Rietveld
|
|
12
|
+
精修使用 GSAS-II。
|
|
13
|
+
- 明确的 LAMMPS input、data 和力场任务使用 LAMMPS;不得从化学式或 CIF 猜测势函数。
|
|
14
|
+
- 通用数值、整数或分类实验变量优化使用 Delta-BO。
|
|
15
|
+
- 固定 SMILES 候选池或 PDF2Dock 轨迹使用 LDM-BO;固定 KRAS G12D 生成式优化使用
|
|
16
|
+
STRBO;反应条件与真实历史得率使用 SynBO;抗体 CDRH3 使用 AntBO。
|
|
17
|
+
- “LDM/大发现模型”是跨上述三类能力的工作流意图,先读取 `ldm.md` 决定唯一后端,
|
|
18
|
+
不是服务端 tool,也不得路由到旧 `large-discovery-model` Skill。
|
|
19
|
+
|
|
20
|
+
## 已验证 reference
|
|
21
|
+
|
|
22
|
+
- [pubchem.md](pubchem.md)
|
|
23
|
+
- [rdkit.md](rdkit.md)
|
|
24
|
+
- [pymatgen.md](pymatgen.md)
|
|
25
|
+
- [gsasii.md](gsasii.md)
|
|
26
|
+
- [lammps.md](lammps.md)
|
|
27
|
+
- [delta-bo.md](delta-bo.md)
|
|
28
|
+
- [ldm-bo.md](ldm-bo.md)
|
|
29
|
+
- [ldm.md](ldm.md)
|
|
30
|
+
- [strbo.md](strbo.md)
|
|
31
|
+
- [synbo.md](synbo.md)
|
|
32
|
+
- [antbo.md](antbo.md)
|
|
33
|
+
|
|
34
|
+
以上 reference 是已验证参数契约,不是服务端完整目录。用户明确点名新工具时,按
|
|
35
|
+
`SKILL.md` 的实时 catalog 流程发现工具和 endpoint;若目录未返回请求 schema,不猜测
|
|
36
|
+
请求体。
|
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
# STRBO 详细规则
|
|
2
|
-
|
|
3
|
-
STRBO 用于服务端固定 **KRAS G12D** 靶点的小分子生成式多目标优化。目标顺序固定为
|
|
4
|
-
`[vina, activity]`:vina 越低越好,activity 越高越好。`task` 只引导候选生成,
|
|
5
|
-
不会更换靶点;不得声称支持用户自定义受体。
|
|
6
|
-
|
|
7
|
-
所有调用均使用 `tool="strbo"`。生成、建议、评估和提交 job 都会消耗远端资源,只在
|
|
8
|
-
用户确实要求执行相应科研任务时调用;请求结果未知或超时时不得重试。
|
|
9
|
-
|
|
10
|
-
## 初始化
|
|
11
|
-
|
|
12
|
-
- 同步 operation:`molecules-init`
|
|
13
|
-
- 异步 operation:`molecules-init-job`
|
|
14
|
-
- 仅校验 operation:`molecules-init-validate`
|
|
15
|
-
|
|
16
|
-
```json
|
|
17
|
-
{
|
|
18
|
-
"task": "为 KRAS G12D 生成兼顾结合与活性的候选小分子",
|
|
19
|
-
"num_initial": 3,
|
|
20
|
-
"seed": 42
|
|
21
|
-
}
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
只需检查参数时使用 validate;正式执行不要先 validate 再提交,避免无必要调用。
|
|
25
|
-
成功结果应包含与 `num_initial` 数量一致的候选 SMILES。
|
|
26
|
-
|
|
27
|
-
## 建议下一批候选
|
|
28
|
-
|
|
29
|
-
- 同步 operation:`molecules-suggest`
|
|
30
|
-
- 异步 operation:`molecules-suggest-job`(重型任务优先)
|
|
31
|
-
- 仅校验 operation:`molecules-suggest-validate`
|
|
32
|
-
|
|
33
|
-
```json
|
|
34
|
-
{
|
|
35
|
-
"task": "继续改善 KRAS G12D 的结合与活性",
|
|
36
|
-
"history_xs": ["CCO", "CCN", "CCC"],
|
|
37
|
-
"history_ys": [
|
|
38
|
-
[-6.8, 0.31],
|
|
39
|
-
[-7.1, 0.42],
|
|
40
|
-
[-6.5, 0.28]
|
|
41
|
-
],
|
|
42
|
-
"num_suggestions": 2,
|
|
43
|
-
"seed": 42
|
|
44
|
-
}
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
`history_xs` 与 `history_ys` 必须等长;每个 `history_ys` 元素必须是两个有限数值,
|
|
48
|
-
顺序严格为 `[vina, activity]`。不得把预测值伪装成湿实验结果。
|
|
49
|
-
|
|
50
|
-
## 评估候选
|
|
51
|
-
|
|
52
|
-
- 同步 operation:`molecules-evaluate`
|
|
53
|
-
- 异步 operation:`molecules-evaluate-job`
|
|
54
|
-
- 仅校验 operation:`molecules-evaluate-validate`
|
|
55
|
-
|
|
56
|
-
```json
|
|
57
|
-
{
|
|
58
|
-
"designs": ["CCO", "CCN"]
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
成功结果中的 score 数量必须与 designs 一致,每行必须恰好有两个有限数值。任一 item
|
|
63
|
-
明确失败时,本轮整体按失败处理,不得只报告成功子集。
|
|
64
|
-
|
|
65
|
-
## 异步作业
|
|
66
|
-
|
|
67
|
-
提交异步 operation
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
invoke
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
只有状态变为 `succeeded` 后才读取:
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
invoke
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
`queued` 或 `running` 不是完成;`failed` 立即结束。状态查询可按 5 秒左右间隔重复,
|
|
80
|
-
但提交 operation 绝不重复。单次用户任务的总等待上限为 15 分钟;超限后报告作业仍
|
|
81
|
-
未完成并保留 job_id,不得声称远端已取消。
|
|
82
|
-
|
|
83
|
-
## 完整科研流程
|
|
84
|
-
|
|
85
|
-
用户明确要求完整迭代时按 `初始化 → 评估 → 建议 → 评估` 串行执行。每一步只使用本次
|
|
86
|
-
|
|
87
|
-
不得擅自扩展为完整循环。
|
|
1
|
+
# STRBO 详细规则
|
|
2
|
+
|
|
3
|
+
STRBO 用于服务端固定 **KRAS G12D** 靶点的小分子生成式多目标优化。目标顺序固定为
|
|
4
|
+
`[vina, activity]`:vina 越低越好,activity 越高越好。`task` 只引导候选生成,
|
|
5
|
+
不会更换靶点;不得声称支持用户自定义受体。
|
|
6
|
+
|
|
7
|
+
所有调用均使用 `tool="strbo"`。生成、建议、评估和提交 job 都会消耗远端资源,只在
|
|
8
|
+
用户确实要求执行相应科研任务时调用;请求结果未知或超时时不得重试。
|
|
9
|
+
|
|
10
|
+
## 初始化
|
|
11
|
+
|
|
12
|
+
- 同步 operation:`molecules-init`
|
|
13
|
+
- 异步 operation:`molecules-init-job`
|
|
14
|
+
- 仅校验 operation:`molecules-init-validate`
|
|
15
|
+
|
|
16
|
+
```json
|
|
17
|
+
{
|
|
18
|
+
"task": "为 KRAS G12D 生成兼顾结合与活性的候选小分子",
|
|
19
|
+
"num_initial": 3,
|
|
20
|
+
"seed": 42
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
只需检查参数时使用 validate;正式执行不要先 validate 再提交,避免无必要调用。
|
|
25
|
+
成功结果应包含与 `num_initial` 数量一致的候选 SMILES。
|
|
26
|
+
|
|
27
|
+
## 建议下一批候选
|
|
28
|
+
|
|
29
|
+
- 同步 operation:`molecules-suggest`
|
|
30
|
+
- 异步 operation:`molecules-suggest-job`(重型任务优先)
|
|
31
|
+
- 仅校验 operation:`molecules-suggest-validate`
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"task": "继续改善 KRAS G12D 的结合与活性",
|
|
36
|
+
"history_xs": ["CCO", "CCN", "CCC"],
|
|
37
|
+
"history_ys": [
|
|
38
|
+
[-6.8, 0.31],
|
|
39
|
+
[-7.1, 0.42],
|
|
40
|
+
[-6.5, 0.28]
|
|
41
|
+
],
|
|
42
|
+
"num_suggestions": 2,
|
|
43
|
+
"seed": 42
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
`history_xs` 与 `history_ys` 必须等长;每个 `history_ys` 元素必须是两个有限数值,
|
|
48
|
+
顺序严格为 `[vina, activity]`。不得把预测值伪装成湿实验结果。
|
|
49
|
+
|
|
50
|
+
## 评估候选
|
|
51
|
+
|
|
52
|
+
- 同步 operation:`molecules-evaluate`
|
|
53
|
+
- 异步 operation:`molecules-evaluate-job`
|
|
54
|
+
- 仅校验 operation:`molecules-evaluate-validate`
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"designs": ["CCO", "CCN"]
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
成功结果中的 score 数量必须与 designs 一致,每行必须恰好有两个有限数值。任一 item
|
|
63
|
+
明确失败时,本轮整体按失败处理,不得只报告成功子集。
|
|
64
|
+
|
|
65
|
+
## 异步作业
|
|
66
|
+
|
|
67
|
+
提交异步 operation 后,从当前业务响应读取非空 `job_id`,再轮询:
|
|
68
|
+
|
|
69
|
+
```text
|
|
70
|
+
delta-cli science invoke --tool strbo --endpoint job-status --params JSON
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
只有状态变为 `succeeded` 后才读取:
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
delta-cli science invoke --tool strbo --endpoint job-result --params JSON
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
`queued` 或 `running` 不是完成;`failed` 立即结束。状态查询可按 5 秒左右间隔重复,
|
|
80
|
+
但提交 operation 绝不重复。单次用户任务的总等待上限为 15 分钟;超限后报告作业仍
|
|
81
|
+
未完成并保留 job_id,不得声称远端已取消。
|
|
82
|
+
|
|
83
|
+
## 完整科研流程
|
|
84
|
+
|
|
85
|
+
用户明确要求完整迭代时按 `初始化 → 评估 → 建议 → 评估` 串行执行。每一步只使用本次
|
|
86
|
+
调用已验证的业务响应作为下一步输入。用户只要求生成初始候选或评估给定 SMILES 时,
|
|
87
|
+
不得擅自扩展为完整循环。
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# SynBO operation 参考
|
|
2
2
|
|
|
3
|
-
所有在线调用都通过 `delta-science
|
|
4
|
-
|
|
3
|
+
所有在线调用都通过 `delta-cli science invoke`,服务地址来自 CLI 的标准
|
|
4
|
+
`science_base_url` 配置。这里的路径只说明业务 operation,不得据此直连 HTTP。
|
|
5
5
|
|
|
6
6
|
用户说“优化反应条件”“推荐下一批实验”“偶联反应怎么继续做”,或给出溶剂、温度、
|
|
7
7
|
催化剂、碱、配体和历史得率时,即使没有提到 SynBO、BO、CLI 或字段名也使用本节。
|
|
@@ -140,8 +140,9 @@ SynBO 的 `condition_dict` 只接受显式列表,不接受连续范围对象
|
|
|
140
140
|
- 每个条件值统一为字符串,objective metric 保持数值。
|
|
141
141
|
- 每条 `previous_results` 中的条件值必须出现在对应 `condition_dict` 列表中。
|
|
142
142
|
- 连续范围的离散网格必须包含用户上下界和全部历史观测值;最终答案必须说明实际网格。
|
|
143
|
-
-
|
|
144
|
-
|
|
143
|
+
- 将条件值显式序列化为字符串,并确保每条历史记录只使用 `condition_dict` 中列出的值。
|
|
144
|
+
如需小数据 CPU 设置,显式传递 `accuracy:"tiny"`、`surrogate_model:"RF"`、
|
|
145
|
+
`acq_func:"UCB"` 和 `device:"cpu"`;不得假定客户端会补充默认值。
|
|
145
146
|
|
|
146
147
|
Useful optional fields:
|
|
147
148
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# 跨服务工作流
|
|
2
2
|
|
|
3
|
-
整个流程由单一 `delta-science` Skill
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
整个流程由单一 `delta-science` Skill 编排。线上调用最终执行
|
|
4
|
+
`delta-cli science invoke`,禁止直接 HTTP。可使用 subagent 协助整理输入、核对 reference
|
|
5
|
+
或展示结果,但主流程负责工具选择和所有线上调用。CLI 成功后每一步只消费对应 reference
|
|
6
|
+
定义的 `data` 响应字段。已知 reference 中没有目标 operation 时,不猜测相近 endpoint;reference
|
|
7
|
+
缺失、过期或与 CLI 返回不一致时,按 `SKILL.md` 的只读实时 catalog 流程确认。
|
|
8
8
|
|
|
9
9
|
## 单个已命名分子
|
|
10
10
|
|
|
@@ -17,7 +17,7 @@ endpoint;只有用户明确点名新工具时,才按 `SKILL.md` 的只读实
|
|
|
17
17
|
## 多分子比较
|
|
18
18
|
|
|
19
19
|
1. 用 PubChem 批量解析全部名称,请求体只包含 `identifiers` 和 `namespace:"name"`。省略 `properties`。
|
|
20
|
-
2.
|
|
20
|
+
2. 从业务响应的 `results[*]` 读取记录,并从每条记录的嵌套 `properties` 读取字段。
|
|
21
21
|
3. 未解析成功的记录要排除,并明确说明原因。
|
|
22
22
|
4. 使用 RDKit `similarity-matrix` 校验和排序两两相似度。它的 `sanitize` 已经校验输入,不要额外调用 parse。
|
|
23
23
|
5. 用 PubChem 记录的原始 `input` 作为 molecule id,并按文档顺序从嵌套属性中提取 SMILES。
|
|
@@ -29,22 +29,22 @@ endpoint;只有用户明确点名新工具时,才按 `SKILL.md` 的只读实
|
|
|
29
29
|
|
|
30
30
|
## 材料工作流
|
|
31
31
|
|
|
32
|
-
1. 使用 pymatgen 校验化学式/结构并转换 CIF
|
|
32
|
+
1. 使用 pymatgen 校验化学式/结构并转换 CIF;无机式量只能取当前业务响应 `weight`。
|
|
33
33
|
2. GSAS-II 只能接收真实 CIF 文本后再做衍射计算。
|
|
34
34
|
3. LAMMPS 只能在已有明确的力场、data 和脚本设置后运行;部署检查可以使用内置有界示例。
|
|
35
35
|
4. 从 LAMMPS 返回 pymatgen 或 GSAS-II 前,需要从弛豫结果重新构造 CIF/POSCAR。不要直接传递 LAMMPS data/dump 文件。
|
|
36
36
|
|
|
37
|
-
## 优化工作流
|
|
38
|
-
|
|
39
|
-
- 通用数值或分类实验变量:Delta-BO
|
|
40
|
-
- 固定 SMILES 候选池或 PDF2Dock/Vina+NN 轨迹:LDM-BO
|
|
41
|
-
- 固定 KRAS G12D 的生成式小分子闭环:STRBO
|
|
42
|
-
- 指定抗原的 11-aa CDRH3 闭环:AntBO
|
|
43
|
-
- 偶联反应、反应条件和带真实历史得率的下一批实验推荐:SynBO
|
|
44
|
-
|
|
45
|
-
用户以 “LDM/大发现模型” 描述任务时,必须先按 `SKILL.md` 读取 `ldm.md`,再读取唯一
|
|
46
|
-
选定后端的 reference。LDM 是工作流意图,不是 tool;禁止旧
|
|
47
|
-
`large-discovery-model`、`run_ldm_loop.py`、gateway backend 和直接 HTTP。
|
|
37
|
+
## 优化工作流
|
|
38
|
+
|
|
39
|
+
- 通用数值或分类实验变量:Delta-BO
|
|
40
|
+
- 固定 SMILES 候选池或 PDF2Dock/Vina+NN 轨迹:LDM-BO
|
|
41
|
+
- 固定 KRAS G12D 的生成式小分子闭环:STRBO
|
|
42
|
+
- 指定抗原的 11-aa CDRH3 闭环:AntBO
|
|
43
|
+
- 偶联反应、反应条件和带真实历史得率的下一批实验推荐:SynBO
|
|
44
|
+
|
|
45
|
+
用户以 “LDM/大发现模型” 描述任务时,必须先按 `SKILL.md` 读取 `ldm.md`,再读取唯一
|
|
46
|
+
选定后端的 reference。LDM 是工作流意图,不是 tool;禁止旧
|
|
47
|
+
`large-discovery-model`、`run_ldm_loop.py`、gateway backend 和直接 HTTP。
|
|
48
48
|
|
|
49
49
|
禁止为了让优化器运行而编造观测数据。用户没有提供测量结果时,只能使用初始化或随机建议模式,并明确说明它是待实验验证的建议,不是已经验证的最优条件。
|
|
50
50
|
SynBO/Delta-BO 没有返回 recommendations 时,不得用本地回归、GP、UCB 或人工排序替代。
|
|
@@ -55,7 +55,7 @@ SynBO 只接受离散条件列表。用户给连续范围时,在一次调用
|
|
|
55
55
|
2. 同一条件列在 `condition_dict` 与 `previous_results` 中统一为字符串。
|
|
56
56
|
3. 得率等 objective metric 保持数值。
|
|
57
57
|
4. 小数据 CPU 默认 `tiny + RF + UCB`,并在最终答案中报告实际离散网格。
|
|
58
|
-
5.
|
|
58
|
+
5. CLI 返回失败或业务响应为空 recommendations 时结束;不得连续尝试多种 payload 或模型。
|
|
59
59
|
|
|
60
60
|
用户未要求文件时只返回 recommendations 文本,不创建输入 CSV。必须交接时,仅把本次
|
|
61
|
-
|
|
61
|
+
成功业务响应写入当前 `WORKSPACE_ROOT/synbo_result.json`。
|