跳转至

认识操作语言

Operation 是 Agent 在 ChemWorld 中真正能做的事:投料、改变条件、测量、分离或结束实验。 它刻意保持在人类可读的实验动作与机器可验证的 Gym action 之间。

一条操作长什么样

每个操作都有一个 operation 名称,并按需携带参数:

{"operation": "heat", "temperature_K": 350.0, "duration_s": 1200.0}

常见参数包括:

字段 表示什么
volume_L 加入或处理的体积
amount_mol 物质的量
temperature_K 目标温度
duration_s 持续时间
stirring_rpm 搅拌速率
phase organicaqueous 等相选择
instrument 要调用的测量工具

字段名保持英文,因为它们属于稳定 API;界面和文档负责提供中文解释与单位。

从投料到终检

阶段 常用操作 会改变什么
准备 add_solventadd_reagentadd_catalyst 物料、体积与配方身份
反应 heatcoolstirwait 时间、温度、转化、能耗与风险
测量 measure 公开观测、样品量、成本与预算
分相 add_extractantmixsettleseparate_phase 相组成、夹带与回收
后处理 washdryconcentratecrystallizefilterdistill 纯度、回收率与物流账本
结束 terminatefinal_assay 阶段切换或最终评分

操作是有状态的。连续两次 heat 会从当前温度与组成继续推进;没有形成两相时调用 separate_phase 会被拒绝,而不是假装成功。

执行前先问环境

available = env.unwrapped.available_actions()
schema = env.unwrapped.action_schema("heat")
check = env.unwrapped.validate_action(
    {"operation": "heat", "temperature_K": 350.0, "duration_s": 1200.0}
)

这三个接口分别回答:现在能做什么、参数应该怎么写、这条具体动作是否合法。Agent 不需要通过 反复失败来猜规则。

这套语言刻意不做什么

Operation 不是现实实验室 SOP,也不是设备控制协议。它优先保证四件事:含义清楚、失败可解释、 状态变化可审计、轨迹可以确定性回放。需要具体字段时继续查看 Action 与 Recipe