| 03 Protocol + Admission(协议与准入) |
版本化命令、当前 session(会话)状态。 |
校验 schema(结构)、协议版本、runtime 是否关闭、是否已有活动运行。 |
规范化请求和新 runId(运行标识),或类型化调用错误。 |
准入失败在运行接受前抛出;不会产生半个运行记录。 |
| 04 Run Coordinator(运行协调器) |
规范化请求、控制邮箱、Clock/IdPort(时钟/标识端口)。 |
建立 runId、attemptId、AbortController(取消控制器)和状态机。 |
待提交的 run_started。 |
同一 session 同时只有一个 active run(活动运行);取消命令幂等。 |
| 05 Input Commit(输入提交) |
run 元数据和完整 UserInput(用户输入)。 |
通过串行 append queue(追加队列)写入运行开始与用户消息。 |
durable conversation entry(持久会话条目)。 |
写入失败立即 fail closed(关闭式失败),不得继续产生模型费用或工具副作用。 |
| 06 Context Build + Budget(上下文构建与预算) |
系统提示、已提交历史、checkpoint(检查点)、Skills(技能)、AGENTS 规则、steering(引导消息)。 |
裁剪并构造不可变 bounded context snapshot(有界上下文快照),估算 token(令牌)。 |
模型请求上下文,或进入 C1 Compaction(压缩)。 |
绝不在 tool call(工具调用)与 tool result(工具结果)之间切割。 |
| 07 Model Attempt + Stream(模型尝试与流) |
稳定上下文快照、模型配置、新 attemptId。 |
调用 ModelPort(模型端口),接收流式片段并响应 AbortSignal(取消信号)。 |
transient delta(瞬时增量)、usage(用量)、完整 assistant message(助手消息)或分类错误。 |
增量可合并、可丢弃;完整消息只有形成终态后才能提交。 |
| 08 Outcome Gate(结果闸门) |
模型请求的 terminal outcome(终止结果)。 |
归类 completed(完成)、retryable(可重试)、fatal(致命)或 aborted(中止)。 |
完成进入 09;可重试进入 R1;致命/中止进入终止路径。 |
provider request end(模型请求结束)不等于整次 run end(运行结束)。 |
| 09 Assistant Commit(助手提交) |
完整 assistant message 和完整、已校验的 tool arguments(工具参数)。 |
提交助手消息并提取保持源顺序的 tool-call list(工具调用列表)。 |
无工具时产生 final candidate(最终候选);有工具时产生待审批批次。 |
流未完整或因长度截断的工具参数不得执行。 |
| 10 Policy + Approval(策略与审批) |
每个 callId、工具风险、路径范围、宿主决策。 |
执行 policy(策略)并等待 allow/deny(允许/拒绝);决策恰一次。 |
获准、拒绝或策略否决的持久决定。 |
没有审批者时默认 deny(拒绝);拒绝也要生成合成 ToolResult(工具结果)。 |
| 11 Tool Batch Scheduler(工具批次调度) |
有序调用批次和审批结果。 |
串行完成前置检查,再按并发上限启动获准工具。 |
执行计划和每个工具的 started/progress(开始/进度)事件。 |
新一轮模型请求必须等待整批工具全部进入终态。 |
| 12 Execution Control(执行控制) |
工具 schema(结构)、参数、工作目录、AbortSignal。 |
路径规范化、环境变量白名单、超时、输出上限、进程树中止。 |
原始成功值、异常、超时或中止状态。 |
执行器不自动重试;工具是否重放必须由更高层明确证明安全。 |
| 13 Terminal Normalize(终态归一化) |
成功、deny、timeout、abort、throw 或崩溃后的 unknown(未知)。 |
把所有分支归一化成 canonical ToolResult(规范工具结果)。 |
每个已提交 callId 恰好一个 terminal result(终态结果)。 |
中止也不能绕开工具结果闭合。 |
| 14 Ordering Barrier(顺序屏障) |
并发工具的整批终态结果。 |
等待全部闭合;保留 UI completion order(界面完成顺序),重排模型 source order(源顺序)。 |
适合下一轮模型上下文的有序结果向量。 |
这是并发执行与确定性历史之间的关键屏障。 |
| 15 Tool Batch Commit(工具批次提交) |
有序结果向量。 |
追加 durable tool results(持久工具结果)并刷新 turn boundary(轮次边界)。 |
合法、闭合的下一轮模型输入。 |
批次提交完成前不得开始下一次模型请求。 |
| 16 Turn Boundary(轮次边界) |
工具结果、usage、steering mailbox(引导消息邮箱)和上下文大小。 |
决定 continue(继续)、compact(压缩)或 finish(结束)。 |
compact(压缩)进入 C1;continue/finish(继续/结束)进入 17,再由 17 回到 06 或进入 18。 |
steering(引导)只在安全边界进入上下文,不打断已经提交的工具批次。 |
| 17 Continue Decision(继续决策) |
轮次状态和无工具的最终候选。 |
存在工具结果或 follow-up(后续输入)时继续,否则确认最终候选。 |
下一轮上下文或最终答案引用。 |
循环回边重新构建上下文,不复用旧的可变请求对象。 |
| 18 Durable Run Finish(持久化运行结束) |
最终答案、失败或中止结果、usage 与统计。 |
追加唯一 run_finished 并 flush(刷新)。 |
authoritative final state(权威最终状态)。 |
一个 runId 最终只能出现一个持久终态。 |
| 19 Host Projection(宿主投影) |
已持久化终态、快照、事件尾部。 |
CLI 终端输出或 GUI reducer(界面归约器)投影。 |
用户可见的最终答案、工具记录和运行状态。 |
断线后使用 lastDurableSeq(最后持久序号)重放,不依赖瞬时增量。 |