Run:作者声明
Run 是 YAML、JSON 或 TOML 中的人类可读入口。它选择 schema、名称、后端、运行策略、Scenario、控制策略、插件和显式覆盖。Run 应表达“这次运行选择什么”,而不是复制所有组件细节。
yaml
schema: fastsim/2
name: kitchen-evaluation
backend: isaaclab
runtime:
physics_hz: 60
control_hz: 30
seed: 7
scenario:
use: scenario://kitchen/evaluation
plugins:
recorder:
use: plugin://official/record
ExecutionPlan:唯一执行权威
编译器展开 Project 与 Registry,解析组件 release 和后端 variant,验证插件 binding、频率与资源,并生成深层不可变的 ExecutionPlan。Plan 中保存规范化 Scenario、运行策略、已解析实体、插件绑定和 provenance。
源码 Run 发生变化时需要重新编译;Runtime 不应继续持有原始配置字典并在中途读取新字段。
Lock:可验证的复现边界
Lock 固化组件准确版本、Manifest、资源摘要和 plan digest。它用于部署、审计与复现实验,回答“这次真正执行了什么”,而不是替代 Run 成为新的编辑格式。
| 产物 | 主要读者 | 是否适合手工编辑 | 生命周期 |
|---|---|---|---|
| Run | 项目作者 | 是 | 随项目修改 |
| ExecutionPlan | Runtime、诊断工具 | 否 | 每次编译生成 |
| Lock | 部署、复现、审计 | 不建议 | 随批准的输入固定 |
失败应出现在哪里
语法、字段、组件冲突、资源 digest、能力或插件契约问题应尽量在编译阶段失败。运行阶段只处理确实依赖实时世界的状态与操作错误。