> ## Documentation Index
> Fetch the complete documentation index at: https://automationlaboratoryprotocol.mimedal.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 执行器

> 说明如何向设备提交已验证步骤并确认真实执行结果。

执行器只接收通过仿真的中间程序。每一步执行前，它重新确认实际容器状态、设备状态和安全围栏，然后调用设备或适配层暴露的接口。接口承载方式可以是 HTTP、CLI、MCP、RPC 或 SDK。

## 输入

```json theme={null}
{
  "program_id": "program-001",
  "simulation_id": "simulation-001",
  "simulation_status": "passed",
  "steps": [
    {
      "step_id": "step-1",
      "device_id": "device-01",
      "operation_id": "add_liquid",
      "object": {"container_id": "container-01", "expected_container_status": "无盖"},
      "control": {"parameters": {"source_container_id": "source-01", "volume_mL": 0.5}},
      "system": {"expected_device_state": "idle", "execution_mode": "async"}
    }
  ]
}
```

## 执行过程

1. 确认仿真通过，且设备定义、对象和系统修订号未变化；
2. 重新确认操作的对象、控制和系统前置条件；
3. 将三段输入传递给符合 FSP 的设备接口；
4. 对同步结果立即核验；对异步任务通过实现提供的等价查询能力取得结果；
5. 仅在对象变化、控制结果和系统检查均通过时提交实际状态。

## 输出

```json theme={null}
{
  "execution_id": "execution-001",
  "program_id": "program-001",
  "steps": [
    {
      "step_id": "step-1",
      "object": {"changes": [{"container_id": "container-01", "after_state": {"sample_status": "液体"}}]},
      "control": {"operation_id": "add_liquid", "status": "succeeded", "diagnostics": []},
      "system": {"device_state": "idle", "task": {"task_id": "task-001", "status": "succeeded"}, "notices": []}
    }
  ]
}
```

失败、取消或未知结果时，执行器不得提交预期成功状态，必须保存设备可确认的对象状态、控制诊断和系统注意事项。
