上个月底,我接了个活——给一个垂直行业做内部工具站,带后台管理和数据看板。需求不算复杂,但模块多:用户权限、数据导入导出、图表展示、定时任务。搁以前,我自己写,一周半能出个Beta。但这次我想试试纯Agent流水线,毕竟天天看别人吹多Agent牛逼,我得自己趟一趟。
一开始我延续老习惯:开一个Claude Code,把需求文档全喂进去,让它从头写到尾。第一天跑下来,效果还行,代码质量尚可,但问题很快暴露。
第一个坑:上下文爆炸。 项目到第三天,代码库到了四千多行。Claude Code单会话开始频繁“失忆”,经常是前面定义好的接口,后面它自己给改了签名,然后报错,然后它自己修,修完又把另一个地方搞坏。典型的左脚绊右脚。
第二个坑:贵。 我查了下账单,前三天烧了大概58美金的API费用(主要是Claude Sonnet 4.5和偶尔调用的Opus)。算下来按这个速度,做完这个项目光API成本就得奔着300刀去,还不算我盯着它改bug的时间。
第三个坑:慢。 单线程干活,它写代码的时候我不能让它同时去查文档或者设计数据库。所有事情排队来,一个会话卡住了,整个项目就停摆。
我意识到,问题不在模型能力,而在工作流架构。就像你让一个全栈大神同时干产品经理、架构师、码农和测试的活,他再牛也会精神分裂。我需要拆,拆成不同角色,让不同Agent各管一摊,中间定好交接协议。
我先试了最火的LangGraph。说实话,这东西功能是真的强,状态机、条件路由、人机交互,什么都有。但问题在于,配置复杂度太高了。我花了一个晚上把图结构搭好,定义了四个节点(需求分析、代码生成、测试执行、修复反馈),然后噩梦开始了:节点间的状态传递格式稍微对不上,整个图就给你跑飞;调试的时候报错信息晦涩难懂,最后我发现自己不是在写业务,是在给框架调参。这东西适合研究,不适合我这种要赶交付的。
接着试了AutoGen。它的对话模式挺有意思,多个Agent可以互相聊天。但我用下来的感受是:聊着聊着就跑题。我的“代码审查Agent”和“测试Agent”能为了一个变量命名风格争论二十轮,消耗大量token,活没干多少。而且它默认的群聊管理模式,在任务细分上不够清晰,容易变成两个Agent在台上讲相声,其他Agent在底下摸鱼。
最后我试了Claude Code自带的subagent功能。这个方向是对的,主Agent可以派生子Agent去执行特定任务,比如“去读一下payment.py这个文件,总结一下它的接口”。但我发现,如果只是把它当“高级版grep”用,效率提升有限。关键是要设计好任务颗粒度和交接物格式。
折腾了一周,烧了大概120刀试错费,最后我定下来的方案不复杂,甚至有点“返璞归真”。我没用任何重型编排框架,就靠Claude Code + 脚本化任务分发 + Git分支管理 + Codex做终审,搭了一条最土的流水线。核心思路就一句话:别让Agent做决策,只让它做执行。
我的分工是这样的:
TODO.md,里面按模块拆好任务,每个任务必须包含:输入文件路径、预期输出文件路径、核心函数签名、依赖的外部接口、验收标准(几条简单的grep命令或测试用例)。这份文件就是整条流水线的“宪法”。TODO.md里的不同模块任务。每个实例都是一个全新的Claude Code会话,工作目录是独立的feature分支。它的任务极其单纯:照着某个任务描述,写代码,跑通自己写的单元测试,然后提交PR。这里有个关键点,也是我踩过最深的一个坑:Agent之间的“自然语言”交接就是扯淡,必须订死“契约文件”。
我之前让开发Agent直接看需求文档,结果它把“用户状态”理解成了布尔型,另一个Agent却用字符串枚举。这种问题在纯人团队里靠开会能解决,在Agent团队里就是灾难。所以TODO.md里必须规定好数据字典。下面是我在TODO.md里写的一个典型条目:
## 任务 T-104: 用户状态管理模块
- **输入**: `src/models/user.py` (需新增), `db/schema.sql` (需修改)
- **输出**: `src/models/user.py` (包含User类及状态字段)
- **核心类**: `class User(BaseModel):`
- **状态定义**: `status: str = "active" | "disabled" | "pending"` (必须是这三者之一,默认"pending")
- **依赖接口**: 调用`utils/audit.py`中的`log_action(user_id, action, detail)`
- **验收标准**:
1. 运行 `pytest tests/test_user_model.py -x` 通过
2. 运行 `grep -r "user.status" src/ | wc -l` 返回大于 5
- **禁止事项**: 不允许引入新的第三方ORM框架;不允许修改数据库连接配置。
没有这张纸,多Agent就是多个傻瓜各干各的,有了这张纸,它们才叫“工人”。
这套流水线跑了一周,项目核心功能已经全部完成,目前处于收尾阶段。数据说话:
不过我得说句大实话,这活干的并没有网上吹得那么“睡觉时钱自己就赚了”。我每天还是要花至少两个小时去处理Agent的“烂摊子”:比如某个Agent在测试环境里留下了脏数据、比如两个Agent同时改了同一个配置文件导致冲突得手动合并。而且那个Codex终审Agent,偶尔还是会给出一些“看起来对,但逻辑是屎”的建议,需要我自己判断。
折腾了半个月,花了两百多刀试错费,我的结论很明确:
值得折腾的:
智商税(别碰):
TODO.md就得花半天,小项目不值得。如果你也想搞多Agent协作,别急着装框架,先按这个顺序来:
TODO.md:哪怕只是给自己看,也把每个任务模块的输入、输出、接口、验收标准写清楚。这是你项目里最值钱的一个文件。说明:本文涉及的成本数据、效率提升倍数为本人实际项目运行记录及历史数据对比得出,不同项目复杂度与模型价格波动可能导致结果差异;部分背景信息参考了公开行业报告综合整理,部分数值为估算仅供参考。