很多人期待长任务编程 Agent,是因为它看起来能把“我想要一个功能”直接变成 PR。我对这个期待比较谨慎。Agent 能跑更久,能自己读文件、改代码、跑测试,当然是进步。但它越能自主执行,越暴露一个老问题:需求如果写得像聊天,最后就会得到一个像聊天一样含糊的实现。
OpenAI 在 Codex 相关技术文章里讲过 agent loop、工具调用、长任务执行这些机制。我的理解是,未来的编程 Agent 会越来越像一个异步工程协作者。但协作者不是许愿池。你给它的任务描述,应该更像接口契约,而不是一句愿望。
长任务失败,很多时候不是模型不够聪明
一个简单 bug,Agent 改错了,通常还能人工纠正。但长任务不一样。它可能连续做十几步:理解需求、找文件、改接口、补测试、修类型、跑命令、再修。前面某一步理解错了,后面所有努力都会变成“错误方向上的勤奋”。
这就是为什么我不太喜欢直接给 Agent 这种任务:
帮我给系统加一个会员功能。
这句话对人也不够,对 Agent 更不够。会员有什么状态?免费用户能不能访问历史数据?订阅过期后怎么处理?支付失败是否降级?后台任务怎么补偿?这些问题不回答,Agent 只能根据常见模式猜。
把需求写成接口,Agent 才有边界
我现在更倾向于把给 Agent 的需求写成四块:目标、非目标、验收标准、验证命令。形式可以很朴素,不需要产品文档那么重。
# Goal 为现有 workspace 增加 plan 字段,支持 free/pro 两档。 # Non-goals - 不接入支付; - 不做团队席位; - 不改现有登录流程。 # Acceptance criteria - 新 workspace 默认 plan=free; - pro workspace 每月导出次数不限制; - free workspace 每月最多导出 3 次; - 超限时 API 返回 403 和明确错误码 EXPORT_LIMIT_REACHED。 # Validation pnpm test workspace-plan pnpm test export-limit pnpm typecheck
这不是为了让文档好看,而是为了减少 Agent 的自由发挥空间。非目标尤其重要。很多 AI 改代码的问题,不是没完成目标,而是顺手做了你没要求的抽象。
让 Agent 先交计划,不要直接交代码
长任务里,我会强制多一个步骤:先让 Agent 输出计划和影响范围,人工确认后再修改。比如:
先不要修改代码。请输出: 1. 需要修改的文件列表; 2. 每个文件修改原因; 3. 你认为需要新增或修改的测试; 4. 可能影响兼容性的地方; 5. 不确定的问题。
这个步骤会让节奏慢一点,但能提前暴露很多误解。如果它把 billing、workspace、auth 三个模块都列为要大改,而你只是想加一个限制字段,就该马上收窄任务。
测试是给 Agent 的刹车,不只是给人的信心
长任务 Agent 最需要的不是鼓励,而是可执行反馈。测试、类型检查、lint、静态分析,就是它的刹车系统。没有这些反馈,它会用语言解释自己为什么对;有了反馈,它至少要面对机器给出的失败。
我会在任务里明确告诉它可以运行哪些命令:
允许运行: pnpm test -- --runInBand pnpm typecheck pnpm lint 禁止运行: pnpm prisma migrate deploy rm -rf 任何生产环境部署命令
很多人忽略了“禁止运行”这一段。Agent 有工具权限后,限制和授权一样重要。尤其是涉及数据库迁移、生产部署、批量删除文件时,不能只靠模型自觉。
长任务适合做什么,不适合做什么
我认为长任务 Agent 适合这几类工作:
- 边界清楚的小功能;
- 已有模式的重复实现;
- 测试覆盖较好的重构;
- 批量修复类型错误;
- 根据明确错误日志定位问题。
不适合一开始就交给它的,是核心架构改造、含糊的新产品方向、跨多个团队约定的迁移、没有测试保护的历史模块。不是 Agent 一定做不了,而是做错后的回滚成本太高。
个人开发者的半天验证法
如果你想试长任务 Agent,不要拿最重要的项目冒险。找一个真实但低风险的任务,比如“给现有 API 增加一个错误码并补测试”。然后用同一个任务做两轮对比:
- 第一轮:只给一句自然语言需求;
- 第二轮:给目标、非目标、验收标准、验证命令。
看三个指标:它改了多少无关文件;测试是否一次通过;你 review 的时间有没有减少。这个实验比看 benchmark 更接近你的真实收益。
我的判断
长任务编程 Agent 值得持续关注,但它不会让需求消失。相反,它会惩罚含糊需求。你越希望它独立完成,就越需要把任务写成清楚的工程接口。
个人开发者现在最该练的不是“写神奇 prompt”,而是把一个功能拆成可验收、可测试、可回滚的小任务。这件事对 AI 有用,对人也有用。Agent 只是把这个老工程常识重新放大了。
资料依据:OpenAI 关于 Codex agent loop 和 long horizon tasks 的公开技术文章。本文没有声称做过完整实测,后续如果补充真实任务 diff、测试输出和 review 时间,会更有说服力。