昨天刷GitHub Trending的时候,一个叫harness的项目排到了榜首,
虽然名字很朴素,但README开头那句话一点也不简单, 单个Agent做不到的事,让一群Agent一起上。再往下看,坦率讲就是个给Claude Code量身定做的编排层,不是那种什么都能套的通用框架,它把Claude Code的CLI流程当成一个个积木,需要几个就拼几个,顶上再加一个调度器决定谁干什么。
说实话,我头一个反应是这可能是一个外包项目经理。 PM接手了工作,分配给五个程序员,程序员之间不交流各自做自己的事,PM负责代码合并,不同的是这几个程序员都是Claude,不睡觉,不要加班费,需求怎么变都不会丢下键盘走人。
沿着这些线索挖下去,最近冒出来一堆类似想法的项目,
Hacker News 有一个名为 Lean-collab 的项目,其标题只是简单地说20 多个 Claude Code Agents Collaborating to Do Real Work。评论区有人说试过了确实比单个Agent快,也有人发现Agent执行后会覆盖彼此的更改,修一个bug冒出来三个新的,还有个项目叫Broccoli,走得更远,直接在Linear上面做自动化任务集成,每个任务打开一个云沙箱跑Claude,执行完直接开PR等审核,作者说团队用了四个礼拜之后,非开发人员提交的PR全都走了这个流程,开发人员也有六成走这套。
这些项目正一股脑往外冒,后面已经在形成共识了,用单个Agent写代码这事,说实话已经到天花板了,Claude Code强,Cursor强,Aider也很强,但说到底都是单线程的,但说到底都是单线程的,你让它重构一个微服务,改完就忘了之前的约定,你让它跨五个文件加个功能,它可能在循环里出不来了,有时候一行代码被悄悄改了,另外三个文件跟着炸,上下文窗口和注意力广度是有物理限制的,模型再聪明也绕不过去,Agent再强,500个文件的上下文灌进去,信息照样丢得一塌糊涂。
于是有人想出了更现实的拆法,如果一名代理无法协调多个文件,请寻找三个Agent。架构设计一人负责,代码实现一人负责,测试运行一人负责,每个Agent只看自己的那部分上下文,做完了报告给调度器,调度器再决定下一步干什么。
想法看着挺完美,动手做全是坑。先说头一个陷阱,怎么分配工作。真实项目的任务哪能天然切成互不依赖的小块,你让Agent A改了接口定义,Agent B还在用旧接口写实现, A改完了B还用旧的,冲突就来了,多Agent系统压根没法完全解决谁先谁后的依赖关系,有的方案用拓扑排序,有的共享一份状态文件,每种都有各自的别扭。
第二个陷阱是代码的组合方式。多个Agent同时改代码库,冲突概率指数级飙升,哪怕改的是不同文件,只要类型定义或数据库Schema是共享的,一处改了到处炸, Harness 使用 git worktree 进行隔离。其他方案要么文件锁排队,要么干脆让Agent一个个来,可一旦排队了,并行这事儿就没啥意思了呗。
还有个绕不开的事,钱,N个Agent并行跑就烧N倍的Token,一次中等重构的Claude Code会话随便就几十万Token出去了,三个Agent一块跑的话,按Sonnet的定价,跑一趟少说几十块,一周来个十次八次,月底账单够你愣一阵的。
再多说一句实操的感受吧,编排只是头一步,后面还有个特别拧巴的事,上下文隔离和共享它两边打架,每个Agent得拿一份 干净上下文,无关信息不能灌太多,可关键变更又得分秒不差地 同步出去,你接口的类型签名改了,负责实现的Agent得立马知道才行,既要隔离又要同步,这事不是写个编排脚本就搞定的,harness拿git worktree做隔离算一条路子,但真跑起来你会发现,worktree之间同步有延迟,分支合并老打架,这些反过来又逼着你调编排策略,跑慢了比单Agent还拉胯,跑快了冲突一堆,中间能用的那个窗口特别窄。
社区里的态度吧,两极分化,支持的人特别兴奋,觉得这就是AI编程该走的方向。 CrewAI两万多GitHub star,LangGraph成了企业搭Agent工作流的标准选择,说明多Agent这个概念真有人掏钱,反对者则更直言不讳,一个好的提醒胜过五个Agent互相打架。有程序员在Reddit上吐槽,弄了多Agent反而花在调试Agent冲突上的时间比自己写还多,有人引用微服务早期的一句老话,"分布式系统的复杂性是指数级的"。多Agent系统又走回了这条路。
说实话两边都有道理,关键看你手里活有多大。
你写个小功能改个bug啥的,一个Agent绰绰有余,多了反而碍事,可要是代码库级别的大迁移呢,JavaScript整套搬到TypeScript,或者单体拆微服务,上百个接口要写测试,单个Agent真的扛不住这事,不是笨,是注意力跟人一样有上限,你不可能同时盯着五个屏幕写代码吧。
坦率讲这事往后想还挺值得琢磨的,AI编程工具正在从那种你叫一声动一下的助手,变成你扔个目标它自己拆活分人干完了再碰头汇总的团队,差别大了去了,后者意味着AI不再只是工具了,从某个角度看已经是组织结构本身。
这事是好是坏我说不好,但有一点是肯定的,由一个Agent处理所有事情的日子即将结束。接下来的竞争是Agent之间怎么协作。
很难判断harness能不能跑出来,目前的多Agent框架多到让人眼花, Archon专注于帮助你构建代理,OpenHands提供开源SWE,LangGraph走图工作流程路线,CrewAI专注于快速入门,而AutoGen则依托微软的学术基础。各有各的路线,到头来,能活下来的一定是能真正在协作里解决冲突的那种,光表现出合作姿态没用的。
这周我找时间跑一下harness吧,跑完再跟你们聊聊实际体验到底怎么样。
来源
- harness — github.com/revfactory/harness
- lean-collab — github.com/mutable-state-inc/lean-collab
- Broccoli — github.com/besimple-oss/broccoli
4.CrewAI — github.com/crewAIInc/crewAI - LangGraph — github.com/langchain-ai/langgraph
如果觉得不错,随手点个赞、在看、转发三连吧,如果想尽早收到推送,也可以给我个星标⭐~
作者 AISet
