工作平面
本文档的大部分内容都在说明智能体能够触及什么:访问映射、权限,以及 Permitted 与 Observed 之间的偏移。本页讨论另一半 —— 智能体和会话如何协调工作本身;此前, 站点的其他部分只把它描述为一组命令和事件。
它所要解决的问题并非假设。这个项目在自身开发过程中一直深受其扰:会话彼此不可见, 状态在会话之间分叉,工作被重复完成,决策只存在于某个人的终端中,并在终端关闭时丢失。 一个治理访问却对工作只字不提的控制平面,会让这个缺口原封不动地留在原处。
什么是工作项
Section titled “什么是工作项”工作项是具有负责人、状态和持久记录的工作单元。它既不是聊天消息,也不是别人跟踪器 里的工单:它与审计账本存放在同一存储中,因此日后可以使用与查询控制平面其他记录相同的 方式,查明它经历了什么。
它周围有三个原语:
| 原语 | 作用 |
|---|---|
| 消息 | 一个参与者持久地向另一个参与者传达内容,而不是把它广播到无人阅读的日志中 |
| 确认 | 接收者记录自己已经接手该消息。“已读”和“已回答”不再是同一个意思 |
| 交接 | 工作项的所有权发生转移,并附带转移原因 |
确认尤其值得停下来说明。协调失败,更多时候是因为消息已被看到却没有得到处理,而不是因为 它从未送达;如果系统无法区分这两种情况,也就无法告诉你实际发生了哪一种。
哪些内容如今真实存在,哪些不存在
Section titled “哪些内容如今真实存在,哪些不存在”1 · 协调仅限于一个 workflow,公共通信平面被刻意保持为未接线状态。 消息、确认和交接在
workflow 自身的执行范围内真实存在。跨越所有对象的通用通信平面没有连接;这并非一个等待
别人发现的疏漏:启动测试会断言 boot 可以接线的 authority source,并且一旦出现任何其他
来源就会失败(cmd/olivares/communicationauthorityboot_test.go、
TestBootWiresExactCommunicationRequestAuthoritySourcesOnly)。意外把它接上线会得到红色测试,
而不是等到生产环境才遭遇意外。
2 · 智能体到智能体的调度仅在目标已获授权时才会挂载。 远程工作 executor 在构造时,
前面设有审批门(cmd/olivares/wire.go);不存在仅仅因为配置文件客气地提出了请求,就把工作
调度给任意 peer 的路径。
3 · Shadow 模式和最终工作权限不存在。 不是“即将推出”,也不是“部分实现”:它们 完全缺失。如今,部署无法让工作平面对某个会话拥有最终决定权;产品中的任何内容都不应被 理解为提供了这种能力。任何假设中的实现都必须随附其有效运行的证据 —— 与现有来源进行比较的 观察窗口,而不是只增加一个版本号。
为什么要在这里写明这些限制
Section titled “为什么要在这里写明这些限制”因为另一种做法对你更糟。一个只描述设计、让你到集成时才发现边界的页面,会耗掉你整个下午; 一个把缺失的另一半称为“路线图”的页面,则会作出本项目拒绝作出的那类声明。 诚实与边界页面给出了通用规则;这里是把该规则应用到产品最新的 表面。
接下来查看哪里
Section titled “接下来查看哪里”- 模块概览 —— 编排在其他模块中的位置。
- 编排参考 —— 负责 workflow 执行的模块。
- 事件总线参考 —— 工作平面以 AsyncAPI 契约形式发出的事件。
- 构建受治理的 workflow —— 在了解该平面做什么与不做什么之后的 实践路径。