第 41 章:运行中操控 Agent
可操控性是一份并发与寻址契约,不只是多塞一条 Prompt。
公开源码快照:实现细节取自 Kocoro 公开仓库
origin/main的4ec6772提交,复核日期为 2026-07-27。章节讲的是不变量;具体常量应以当前源码为准。
41.1 问题是什么
长任务执行中,用户会改变优先级。把每条追问都当新 Turn 会产生竞态;只追加文本又可能把最终回复发到错误的入站消息。消息系统还可能重放已经接收的内容。
41.2 设计原则
为活动 Run 提供 Mailbox,只在安全边界吸收追问;每条消息都携带自己的回复地址,并在继续选择工具前让模型看到新指令。Delivery Ack 只在终态回复成功送达之后才发出——这正是传输层可以丢掉重放条目的依据;它不表示 Mailbox 收下了这条消息。去重依赖持久消息身份,立即取消则走独立 Interrupt 路径。
41.3 快照证据
| 源码快照 | 观察 |
|---|---|
4ec6772 | 运行中追问会被吸收到活动上下文 |
4ec6772 | 每条入站消息分别追踪回复地址 |
4ec6772 | delivery_ack 与至少一次重放是不同状态 |
以上数值描述的是一个有日期的实现快照,不是普遍契约。
41.4 实现检查表
- 测试追问在 Checkpoint 前后到达。
- 区分取消、改向和普通上下文补充。
- 验证每个终态回复对应哪条入站消息。
41.5 本章结论
可操控性是一份并发与寻址契约,不只是多塞一条 Prompt。
这些章节应作为一个系统阅读:上下文、工具 Schema、持久化、操控、时间纪律、循环检测和并发会彼此影响。