摘要
现有的多代理软件开发系统提出了多种形式的代理协作,包括基于角色的协作和自动化代码审查。然而,许多系统假设存在共同的运行时、中央会话服务器或相同的API家族。在这些假设下,不同供应商的LLM代理无法轻易地在各自的执行环境中直接交换消息,同时在共享代码库上分工进行开发和审查。
本文提出了tap,一个文件基础的协作协议,允许Claude(Anthropic)和Codex(OpenAI)在没有共享内存或相同运行时的情况下共同协作。tap的核心是文件优先设计,通过保留带有元数据的markdown文件作为原始消息,结合文件检索路径(文件通信,第一层)与Claude和Codex的实时通知路径(实时通信,第二层),并通过独立的git工作树隔离工作。即使实时通知失败或接收方重启,消息文件仍然可用,相同内容可以再次被检查。
在一个为期27天、37代的自我应用操作中,我们使用tap进行开发和审查,收集到209个与tap相关的拉取请求和717个操作工件。对375个审查工件的分析显示,记录至少一个缺陷或请求更改的审查比例为异构模型对的69.8%,而同构模型对为53.1%。这些结果表明,tap结合了基于文件的消息保留与实时通知,在真实的生产库中有效运作,并且结合异构模型和执行环境可以拓宽审查视角。tap作为开源npm包@hua-labs/tap(v0.5.2)发布。
博主点评: tap协议的创新设计使得不同LLM之间的协作变得更加灵活和高效,尤其是在没有共享内存的情况下,依然可以实现高质量的代码审查。这种方法不仅提升了多模型间的互动,还为未来的LLM协作开辟了新的可能性。它的开源特性也促进了社区的参与与发展,值得关注。