2026年9月10日,天气多云转晴。今天不谈宏观趋势,只想分享点实操干货:过去两周,我把自己负责的一个从零起步的SaaS项目,从“一个人开着Claude Code闷头写”彻底重构为“四条Agent流水线并行作战”,期间踩坑无数,最终实现了稳定交付,同时成本明显下降。这篇文章,就是这两周跌跌撞撞的全过程记录,以及最终验证可行的完整方案。
上个月底接了一个项目——为某个垂直行业搭建内部工具站点,包含后台管理和数据可视化面板。需求本身不算复杂,但模块划分很碎:用户权限体系、数据导入导出功能、图表展示、定时任务调度。按照以往经验,我自己手动开发,一个半星期就能拿出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:哪怕只是给自己看,也要把每个任务模块的输入、输出、接口、验收标准写得清清楚楚。这是你项目里最值钱的一份文件。声明:本文涉及的成本数据、效率提升倍数为本人实际项目运行记录及历史数据对比得出,不同项目复杂度与模型价格波动可能导致结果差异;部分背景信息参考了公开行业报告综合整理,部分数值为估算仅供参考。