ChemWorld 系统模型¶
本页是内部架构、数据字段和论文表述的规范性来源。 当前证据状态以
configs/current.json为准;实现存在不等于科学结论已经成立。
ChemWorld 通过统一的物理因果世界基座、实验交互运行时和任务与评测契约,把材料搜索、实验执行、 规律识别和动态适应组织为同一个实验智能问题。Agent、训练器、模型权重和 Agent 私有记忆位于这三层 之外。
训练器 / 预训练数据 / 微调
│
▼
Agent
│ 公开任务、动作、观测和历史
▼
┌────────────────────────────────────┐
│ Task and Evaluation Contract │ 要完成什么、允许看什么、怎样评价
├────────────────────────────────────┤
│ Experimental Interaction Runtime │ 实验怎样执行、测量、失败和结束
├────────────────────────────────────┤
│ Physical Causal World Substrate │ 什么物理世界存在、演化并产生结果
└────────────────────────────────────┘
ChemWorld 可以向外部训练器提供交互数据,也可以承载训练过程,但环境本身不更新 Agent 权重、不维护 Agent 信念,也不替 Agent 选择下一步实验。
三层职责¶
| 层 | 负责 | 不负责 |
|---|---|---|
| Physical Causal World Substrate | 状态、动力学、构成律、设备、仪器生成规律、约束和受控世界干预 | 任务目标、排行榜权重、Agent 信念和训练 |
| Experimental Interaction Runtime | 动作合法性、事务、生命周期、测量调用、可见反馈、失败、资源账本和轨迹 | 选择 Agent 动作、替 Agent 收尾、定义跨任务排名 |
| Task and Evaluation Contract | 公开目标、动作/观测权限、预算、终止、评分和 scenario 分布 | 修改运行时物理、向 Agent 泄露 hidden truth |
当前源码中的评分编译器仍位于 chemworld.world.scoring,但目标与权重的定义权属于 Task Contract;
运行时只执行任务提供的 scoring contract。源码命名不应被解释为物理世界自行定义研究目标。
第一层:物理因果世界基座¶
一个世界族可抽象为:
[ W=(\mathcal X,\mathcal U,T_\omega,O_\omega,C_\omega,\Delta_\omega) ]
- (\mathcal X):物料、相、温度、反应进度、设备和过程账本组成的 typed state;
- (\mathcal U):可施加的物理操作;
- (T_\omega):隐藏状态转移规律;
- (O_\omega):仪器与观测生成规律;
- (C_\omega):物理、设备和安全约束;
- (\Delta_\omega):对参数、函数形式、拓扑、材料映射或设备边界的受控干预。
世界输出物理后果、传感器结果、成本和风险,但不判断什么结果“更值得在排行榜上获胜”。当前已经 实现参数、速率律、拓扑、构成律、材料映射和部分设备边界变化;观测噪声可配置,但独立的完整 sensor-law family 尚不能作为已验证能力主张。
相同 world 配置、seed、动作序列和干预计划应能够回放。换 seed 主要检查实例随机性;切换 world/mechanism family 才能检查预先定义的规律变化。
第二层:实验交互运行时¶
一次 Experiment 是从明确初始化的样品或过程状态开始,经过一系列 Operation 与 Measurement,并以 终检、显式终止、失败或预算截断结束的一次物理运行。只有满足任务合同的 final assay 才形成可比较 的正式实验结果;失败和未完成运行仍保留在自主性分母中。
Campaign
└── Experiment
└── Operation / Measurement
运行时同时保留两个循环:
- 实验内:投料 → 操作 → 取样 → 测量 → 调整 → 终止/终检;
- 实验间:读取结果 → 更新判断 → 设计下一实验 → 比较并积累证据。
三个交互尺度共享同一运行时:
| 尺度 | 决策单位 | 当前边界 |
|---|---|---|
| Campaign Design | 一套完整 recipe 或 Experiment | 支持 BO、主动学习和 recipe-level Agent |
| Procedure Execution | 一个实验 Operation | 支持逐操作闭环、合法性和生命周期审计 |
| Process Control | 设备设定值或过程控制动作 | 当前是有界 setpoint/process-control 抽象,不声称通用高频连续控制 |
运行时负责暴露、校验和记录 closeout 语义,但在自主评测中不会替 Agent 选择 terminate 或 final assay。
如协议允许辅助收尾,必须把 Autonomous score 与 Assisted scientific score 分开报告。
第三层:任务与评测契约¶
任务可抽象为:
[ \tau=(G,\mathcal A_\tau,\mathcal O_\tau,B_\tau,S_\tau,\Gamma_\tau) ]
- (G):公开目标;
- (\mathcal A_\tau):允许的动作抽象;
- (\mathcal O_\tau):允许释放的信息;
- (B_\tau):实验、操作、测量、时间和成本预算;
- (S_\tau):评分和约束规则;
- (\Gamma_\tau):世界、干预和 reset 分布。
不同任务保留各自主指标和单位,不压成一个跨物理域总分。在线 shaping reward、正式终点、风险、成本、 信息效率、方法资源和程序自治分别记录。
规范性对象和字段¶
| 对象 | 规范定义 | 轨迹标识 |
|---|---|---|
| Task | 稳定且公开的目标、权限、预算和评分合同 | task_id、task_contract_hash |
| World | 某个隐藏物理规律实例 | world_id、mechanism_hash |
| Scenario | Task 与 World 的组合,加上初态、干预、reset、反馈条件和 seed | scenario_id |
| Campaign | 一个 Agent 在一个 Task × Scenario × Seed 上的实际研究运行 | campaign_id |
| Experiment | Campaign 内从初始化到终检、终止、失败或截断的一次运行 | experiment_index |
| Operation | 改变状态、调用测量或结束实验的一步 | operation_id、action |
| Run | 一份具体执行实例的可追踪标识 | run_id |
规范 benchmark cell 是:
[ \text{Task}\times\text{Scenario}\times\text{Agent}\times\text{Seed} ]
Trajectory v0.1 曾把带 split/objective/seed 的运行标识写入 task_id,把真正任务名写入
benchmark_task_id。v0.2 起 task_id 恢复为稳定任务合同标识,run_id 保存运行标识;
benchmark_task_id 暂时作为兼容别名保留;v0.2 writer 对五个 v0.1 别名的双写将在
chemworld-trajectory-0.3 移除,旧 trajectory 的只读支持不受该 writer 截止版本影响。
三类结果必须分开¶
Trajectory v0.2 固定三个顶层字段:
| 字段 | 含义 | 是否可被反馈消融改变 |
|---|---|---|
environment_outcome |
世界和运行时实际产生的事务、物理结果、原始观测和资源后果 | 否 |
agent_visible_observation |
此条件下真正释放给 Agent 的观测、视图和反馈 | 是,可延迟、删除或置换 |
evaluation_outcome |
评价器使用的真实 reward/终点和 scoring contract 绑定 | 否 |
旧字段 observation、reward、agent_view 和 leaderboard_score 在 v0.2 中继续作为兼容别名,但新分析
必须使用三层结果字段;连同 benchmark_task_id 的兼容双写将在 chemworld-trajectory-0.3 停止。
不得把它们混称为一个 outcome。历史 v0.1 轨迹仍可读取;新写出的轨迹统一使用 v0.2。
完整性怎样表述¶
ChemWorld 不声称穷尽化学空间、精确模拟全部材料体系或替代真实实验。完整性分为三个可审计目标:
| 完整性 | 定义 | 当前状态 |
|---|---|---|
| 结构完整性 | 隐藏世界—行动—状态演化—测量—反馈—下一实验链条闭合 | 按设计实现,并持续接受运行时控制 |
| 评测完整性 | 结果、约束、资源、适应和自主性均有分开的评价合同 | 固定世界两任务已有正式比较,机制适应跨方法实证尚未闭合 |
| 归因完整性 | 能区分不可识别、实验选择、反馈利用、行动恢复和生命周期失败 | 历史 RC28 Gate A 在冻结源码上通过;当前绑定 stale,Participant-Agent Gates B–E 待冻结执行 |
因此规范边界句是:
ChemWorld 面向选定物理化学原型追求实验交互栈的结构完整性;化学覆盖与数值保真度均为有界、 显式声明,而非穷尽。
Core、Diagnostic 与 Extended¶
这三个名字只表示评测角色,不表示三个不同引擎:
- Core:六个 serious task 的 Agent 比较环境;环境合同已就绪,其中两个旗舰任务已有冻结的 正式描述性 Participant 结果,其余任务和跨任务方法矩阵尚未冻结;
- Diagnostic:可识别性、no-change、反馈分支、反事实、适应分解和自治归因协议;当前机制 v0.3 首先覆盖 reaction-to-crystallization 与 electrochemical-conversion,并拆分静态世界识别、 有基线变化、无校准压力和性能恢复四条轨道;
- Extended:其余已注册任务、训练用途和 demos,用于说明环境覆盖,不自动承担正式排名结论。
平衡、结晶、电化学和流动都是当前比较或诊断范围内的物理原型。Core 的任务范围由当前 evaluation contract 决定;改变范围需要新的协议版本和重新验证,不能沿用旧结果。
机制理解的三级证据¶
- Declared:Agent 报告机制或 change probability;这是可审计声明,不等于内部真实信念。
- Predictive:Agent 对未执行干预给出可检验的反事实预测。
- Actionable:判断实际改变下一实验,并在固定预算内改善恢复或 regret。
当前机制协议要求先建立并认证旧世界参考,再评价变化检测与 family attribution。never 是一等
真值;reference 使用关系闭合与 campaign 内 pre-change cross-fitting,并向策略隐藏稳定前缀、
changepoint support 与证书状态。环境认证、Participant 评测和 private confirmation 使用互不重叠的
cohort。初始化即处于候选 family 的世界只进入静态识别;早期无校准变化进入非控制性压力轨。
独立 Agent predictive probe 仍是后续结果,不能追溯性写成已完成证据。
代码职责映射¶
| 包 | 职责 |
|---|---|
chemworld.foundation / physchem / world |
typed state、物理模型、世界律、场景和干预 |
chemworld.runtime / envs |
事务、操作服务、生命周期、Gymnasium 编排和公开观测 |
chemworld.tasks / task_design |
任务合同、研究问题、准入和成熟度 |
chemworld.data |
三层结果、trajectory、dataset 和 replay metadata |
chemworld.eval |
只读重放、指标、约束、资源、统计和诊断协议 |
当前主张边界¶
| 可以声称 | 不应声称 |
|---|---|
| 提供统一的世界、实验运行时和任务契约 | 覆盖所有化学与材料 |
| 支持 campaign、procedure 和有界 process-control 交互 | 已实现通用高频连续控制 |
| 支持优化、预注册识别与适应研究 | 已实现开放式机制发现 |
| 支持受控隐藏规律变化和回放 | 是真实实验室的通用数字孪生 |
| 能把结果、反馈、评价和自治拆开 | 自报机制概率等于模型内部理解 |
| 可被外部训练器使用 | ChemWorld 本身是一种训练算法 |
当前候选后端和回放控制可运行;两个旗舰任务已有正式描述性 Participant 结果。历史环境 Gate A
的当前源码绑定已过期,Participant Gates B–E、private confirmation 和外部 Bridge 尚未完成,
所以 benchmark_ready=false。所有状态句都必须服从 configs/current.json;精确进展见
证据与当前状态。