定义
多个 Agent 通过共享状态、知识库、任务板或工作区间接协作。
类别:信息流
结构
适用场景
长时间运行的任务、异步协作、多方共享证据、代码工作区、任务状态管理。
不适用场景
当共享状态没有版本控制、没有权限、没有过期机制时——它会腐化。
实现方法
- 分区黑板:
facts / hypotheses / tasks / artifacts / decisions(事实 / 假设 / 任务 / 产出物 / 决策)。 - 每条记录携带来源、时间戳、置信度、所有者、TTL。
- Agent 仅通过 API 读写——不直接修改全局状态。
- 将冲突事实展示为冲突集;不要静默覆盖。
最小化伪代码
TypeScript
type BlackboardItem = {
id: string;
type: "fact" | "hypothesis" | "artifact" | "decision" | "task";
content: unknown;
sourceAgent: string;
confidence?: number;
createdAt: string;
ttl?: number;
};
推荐的追踪事件
blackboard.item.createdblackboard.item.updatedblackboard.conflict.detectedblackboard.item.expired
常见失败模式
- 状态污染。
- 过期条目被当作新鲜数据。
- 多个 Agent 并发写入。
- 缺乏数据溯源。
实现检查清单
- 已定义输入/输出 schema。
- 已定义每个 Agent 的权限边界。
- 每个 Agent 调用携带 run id / trace id。
- 已定义失败、超时、取消和重试策略。
- 传递的上下文为所需最小集,而非完整历史。
- 高风险操作由审批或验证器把关。