编排·通信·终止

编排·通信·终止:用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作,以架构、轨迹与故障重放完成工程验收。

学习目标

  • 能解释“编排·通信·终止”如何用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作
  • 能区分消息信封、共享黑板、调度器、死锁、全局终止,并标出控制权、状态和副作用边界
  • 能冻结输入与版本,沿以下证据定位首个分叉:message_id、correlation_id、状态版本、读写者、调度事件、等待图、预算与终止原因
  • 能注入“两个 Agent 基于同一旧版本覆盖共享黑板,调度器未检测循环等待而无限转发消息”,完成阻断、恢复、复位和同输入重放

来源、课程身份与适用边界

“编排·通信·终止”以Anthropic 公开全文《Building effective agents》建立工程总纲,并用Anthropic 多智能体研究系统工程复盘核对本章机制。

这不是一本名为《AI Agent 开发实战》的官方出版物,也不存在官方十四章目录。平台把公开工程文章、官方开发文档和原始论文重组为 14 个工程单元;下列 112 个节点是站内课程地图。正文、代码、图表、实验与练习均为独立教学重写,模型、API、协议或安全边界变化时必须重新验证。

本单元的八个工程坐标

  • 编排·通信·终止:这是“用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作”的第 1 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
  • 小队组好了,可它们怎么真正配合起来:这是“用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作”的第 2 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
  • 通信:Agent 之间靠「消息」交流:这是“用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作”的第 3 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
  • 共享状态:给所有 Agent 一块黑板:这是“用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作”的第 4 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
  • 编排:谁先谁后、转几轮,得有人调度:这是“用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作”的第 5 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
  • 终止:什么时候必须强制收工:这是“用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作”的第 6 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
  • 动手玩:共享黑板 与 终止条件:这是“用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作”的第 7 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
  • 动手一:共享黑板好在哪:这是“用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作”的第 8 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。

术语与运行合同

本页不变量是:消息与共享状态都有版本、所有者和因果标识,终止条件覆盖成功、死锁、预算与人工接管。任何“成功”结论都要保存message_id、correlation_id、状态版本、读写者、调度事件、等待图、预算与终止原因;模型自评、最终措辞和单次 demo 都不能替代环境事实。

工程机制与反证实验

消息需要因果关联

仅凭文本内容无法可靠配对请求、响应和子任务。

动手验证:打乱消息到达顺序,确认 correlation_id 保持链路。

共享状态必须版本化

last-write-wins 会静默丢失并发更新,应使用乐观锁或合并策略。

动手验证:让两个 Agent 更新同一版本,确认第二次写入冲突。

调度器处理背压

工作者速度不同时,无限入队会消耗内存并扩大过期任务。

动手验证:限制队列和并发,观察高负载下的拒绝与恢复。

终止是全局属性

某个 Agent 没有新动作不代表系统完成,还要看队列、等待和验收。

动手验证:构造互相等待,确认死锁检测进入 blocked。

从架构到故障重放

分步1 / 3

1. 架构复杂度实验

在“编排·通信·终止”中切换简单基线、受控工作流和自主循环,先判断“用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作”是否真的需要更高自主性,再比较延迟、成本、可观测性与风险。

Architecture decision laboratory

编排·通信·终止

用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作

复杂度档位

不变量:消息与共享状态都有版本、所有者和因果标识,终止条件覆盖成功、死锁、预算与人工接管

受控工作流:只激活能够由收益证明的阶段1发布消息2读取状态3调度任务4合并版本5检测终止蓝色表示当前方案承担的责任;虚线阶段仍留在系统边界外。关键证据:message_i…
自主性46
延迟52
成本48
可观测78

最小可运行切片

async function coordinate(task: Task) {
  const state = versionedBlackboard(task);
  while (budget.remaining()) {
    const runnable = scheduler.next(state);
    if (runnable.length === 0) return classifyQuiescence(state);
    const events = await runWithLimit(runnable, 4);
    state.apply(events, { rejectStaleWrites: true });
    if (acceptance.passed(state)) return done(state);
  }
  return blocked("budget", state);
}

切片只表达“用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作”的核心合同。生产实现还要补齐持久化、超时、密钥隔离、结构化日志、幂等和批量评测;如果不能重新取得message_id、correlation_id、状态版本、读写者、调度事件、等待图、预算与终止原因,代码跑通也不能证明机制正确。

练习与答案

练习

问题 1:最小证明。 怎样用正常、边界和单故障三类样本证明“消息与共享状态都有版本、所有者和因果标识,终止条件覆盖成功、死锁、预算与人工接管”?

问题 2:节点覆盖。 编排·通信·终止、小队组好了,可它们怎么真正配合起来、通信:Agent 之间靠「消息」交流、共享状态:给所有 Agent 一块黑板、编排:谁先谁后、转几轮,得有人调度、终止:什么时候必须强制收工、动手玩:共享黑板 与 终止条件、动手一:共享黑板好在哪如何从目录词变成工程证据?

问题 3:恢复验收。 怎样证明“两个 Agent 基于同一旧版本覆盖共享黑板,调度器未检测循环等待而无限转发消息”已经修复?

本章回顾

  • “编排·通信·终止”解决的是用消息信封、共享黑板、调度器和全局终止检测组织多 Agent 协作。
  • 核心不变量是消息与共享状态都有版本、所有者和因果标识,终止条件覆盖成功、死锁、预算与人工接管。
  • 首要反例是两个 Agent 基于同一旧版本覆盖共享黑板,调度器未检测循环等待而无限转发消息。
  • 最小证据包包含message_id、correlation_id、状态版本、读写者、调度事件、等待图、预算与终止原因。

名词解释

本章出现的专业名词,用大白话再讲一遍。

消息信封

包含发送者、接收者、关联标识和载荷的通信结构。在“编排·通信·终止”中必须能按以下证据重新定位:message_id、correlation_id、状态版本、读写者、调度事件、等待图、预算与终止原因。

共享黑板

多个 Agent 读写的版本化协作状态。在“编排·通信·终止”中必须能按以下证据重新定位:message_id、correlation_id、状态版本、读写者、调度事件、等待图、预算与终止原因。

调度器

决定任务何时运行、重试或转交的组件。在“编排·通信·终止”中必须能按以下证据重新定位:message_id、correlation_id、状态版本、读写者、调度事件、等待图、预算与终止原因。

死锁

参与者互相等待且没有任务能继续的状态。在“编排·通信·终止”中必须能按以下证据重新定位:message_id、correlation_id、状态版本、读写者、调度事件、等待图、预算与终止原因。

全局终止

依据整体任务、活动工作者和消息队列判断系统退出。在“编排·通信·终止”中必须能按以下证据重新定位:message_id、correlation_id、状态版本、读写者、调度事件、等待图、预算与终止原因。

阅读导航

← 多智能体协作模式 · 评估与可观测性 →

讨论

评论区加载中…