HandoffKit:通过传递消息协调代理,而非共享内存
DynG AI 开源了 HandoffKit,这是一个 OpenAI Codex 插件,采用类似 Go 语言 goroutine 的消息传递机制来协调编码代理,而非传统的共享黑板模式。HandoffKit 将每个代理视为独立 actor,通过 mailbox、select、handoff 等原语实现无竞态协调,内部使用已实现 10 倍编码速度提升。它还与 PlatformPilot brain 互补,可独立使用。
HandoffKit 是 DynG AI 开源的 OpenAI Codex 插件,旨在通过消息传递而非共享内存来协调 LLM 代理。其设计灵感来源于 Go 语言的 goroutine 哲学:“不要通过共享内存来通信,而要通过通信来共享内存。”
该库将每个编码代理视为独立的 actor,拥有私有状态、可寻址的 mailbox 和单所有者运行循环。核心原语包括:
- Mailbox 和 Select:类似 Go 的 select,代理可以同时等待多个事件(如回复、用户中断、预算耗尽、超时),集中处理原本分散在共享状态中的协调逻辑。
- Handoff:通过所有权转移在代理间移动任务,发送者在发送后停止接触任务,从结构上消除竞态。
- Join、Quorum 和 Broker:实现扇入屏障、k-of-n 和广播模式。
- Budget:作为可等待的值,代理可在单个 select 中等待“消息或取消或预算耗尽”。
- Corpus、Compactor、Nursery 和 Tracer:分别管理共享知识、有界 handoff、监督拓扑和完整消息级跟踪。
DynG AI 内部使用 HandoffKit 已实现 10 倍编码速度提升。典型工作模式是:任务列表送入队列 mailbox,多个代理从中拉取任务,每个工作代理在隔离的 git worktree 中执行编码任务,结果通过测试套件(而非 LLM 评判)验证后汇总。
与传统共享黑板架构不同,HandoffKit 通过分离所有权和消息传递避免了竞态和重复工作。例如,在一次代码审查中,系统将仓库划分为三个不重叠的区域(运行时原语、LLM/示例集成、插件/文档),分别交给三个独立代理审查,结果自然分区,无需事后去重。
在并行修复场景中,HandoffKit 利用 git worktree 为每个工作代理创建独立分支,确保每个文件在某一时刻只被一个代理操作。修复完成后合并回主分支,实现无锁并行。
HandoffKit 目前面临的核心挑战是“handoff 损失”的有界问题:虽然存在压缩机制,但投影质量尚未解决。该项目已在 GitHub 上以 MIT 许可开放,并可作为 OpenAI Codex 插件使用,提供语言无关的指南和 Go 脚手架工具。