AGENTS.md@src/host/orchestrator · git:20260923.4575b13 · 2026-09-23 · sha256 e6300026c64f6400

AGENTS.md@src/host/orchestrator git:20260923.4575b13A

Immutable. This exact content never changes and is served at /api/v1/blob/e6300026c64f6400.

# Orchestrator Module Rules

## 范围与职责

适用于 `src/host/orchestrator/`。

治理一次 Workflow Run 的运行时事实与生命周期:

- 管理运行实例及运行时状态;
- 驱动节点执行与状态推进;
- 管理暂停、恢复、终止、清理;
- 管理等待、子代理事件与协作状态;
- 同步运行事实到持久化层及宿主能力;
- 保证状态、生命周期和并发行为符合运行时契约。

判断归属:该修改是否改变 Workflow Run 的运行事实、状态转换、生命周期或运行时协调机制?若主要属于其他领域,应放到对应模块。

## 状态所有权

Orchestrator 是 Workflow Run 运行时状态的主要所有者。

- 运行状态只能由 orchestrator 内部语义化操作修改;
- 运行快照及核心运行事实必须有明确写入边界,同一事实不得存在多个无协调写入者;
- 模块外不得直接修改运行实例内部状态;
- 调用方表达“希望发生什么”,而非直接操作状态;
- 查询与修改接口必须明确区分;
- 对外暴露的运行状态默认只读诊断数据。

无对应语义化 API 时,应增加或调整明确的运行时操作,而不是暴露内部状态。

## 生命周期

Workflow Run 生命周期:创建 → 启动 → 推进 → 暂停/中断/恢复 → 完成/失败/停止 → 清理。

必须保证:

- 创建有明确初始化边界;
- 启动失败能清理已建立状态;
- 暂停、恢复、终止、失败、完成有明确状态语义;
- 终态释放运行资源;
- 清理逻辑幂等;
- 新增定时器、监听器、等待器等必须有释放路径。

状态转换必须集中、明确、可验证。新增状态或转换时:说明生命周期语义、检查现有转换、检查恢复/终止/清理路径、增加测试。

## 依赖边界

- 依赖方向:外部能力 → 依赖接口 / Capability / Adapter → Orchestrator → 运行时状态与生命周期。
- 仅在存在真实替换、测试隔离、模块边界或外部实现隔离需求时增加抽象,不得为形式解耦创建无职责接口层。

## 错误处理

- 运行语义错误必须有稳定、可识别的错误类型或错误码(如 `WfError`),错误信息说明:发生了什么、当前状态、缺少什么、如何修正;
- 区分业务/运行语义失败与非关键辅助操作失败。业务失败不得静默吞掉或伪装成功。
- 新增或修改稳定错误码时,同步检查调用方、Tool 层错误呈现、测试与契约。

## 核心原则

1. 运行事实由 orchestrator 统一治理,状态只有明确所有者与写入边界。
2. 状态变化必须通过语义化操作完成。
3. 生命周期必须显式、完整、可清理。
4. 运行时确定性事实与 Agent 语义判断分离。
5. 并发、取消、超时与清理必须有明确契约。
6. 外部实现经契约缝注入,不反向侵入核心状态。