这篇文章介绍了 Anthropic 如何通过借鉴人类工程师的工作流程,解决 AI 代理(Agent)在处理跨越多个上下文窗口(Context Window)的长时任务时面临的挑战。

以下是文章的核心内容总结:

1. 核心挑战:长时任务的“断层”

当 AI 代理处理需要数小时甚至数天才能完成的复杂任务(如开发一个完整的 Web 应用)时,会遇到以下问题: * 记忆缺失: 每个新的会话(Session)都是从零开始,不记得之前的进度。 * 贪多嚼不化: 代理倾向于一次性完成所有工作(One-shot),导致在实现中途耗尽上下文,留下半成品。 * 过早宣布胜利: 代理看到已有进展,容易误以为任务已完成。 * 环境混乱: 缺乏文档和测试,后续代理难以接手。

2. 解决方案:双代理协作模式

Anthropic 开发了一套方案,将任务分解为两个阶段,由具有不同提示词(Prompt)的代理执行:

A. 初始化代理 (Initializer Agent)

负责在第一轮会话中“打地基”: * 环境配置: 编写 init.sh 脚本用于启动服务器。 * 需求拆解: 创建一个 feature_list.json 文件,将大目标拆解为数百个细小功能点(如“点击新聊天按钮”),并初始标记为“失败”。 * 版本控制: 初始化 Git 仓库并记录初始状态。

B. 编码代理 (Coding Agent)

负责在后续会话中进行增量开发: * 单点突破: 每次只处理一个功能点,避免过度扩张。 * 保持环境整洁: 任务完成后必须提交 Git 并更新 claude-progress.txt 进度文件。 * 交接文档: 为下一个会话的代理留下清晰的“线索”。

3. 关键技术实践

  • 结构化进度跟踪: 使用 JSON 而非 Markdown 记录功能列表,因为模型在修改 JSON 时更不容易出错或误删内容。
  • 端到端测试: 引入浏览器自动化工具(如 Puppeteer),要求代理像真实用户一样验证功能,而不仅仅是写单元测试。
  • 标准化的“开场动作”: 规定每个新会话开始时,代理必须执行固定步骤:
    1. 运行 pwd 确认目录。
    2. 读取进度文件和 Git 日志。
    3. 运行 init.sh 启动环境并进行基础功能自检。
    4. 从功能列表中挑选优先级最高的一项开始工作。

4. 总结与启示

  • 成效: 这种方法显著提高了 AI 代理构建生产级应用的能力,减少了因“猜测进度”导致的资源浪费。
  • 未来方向: 探索多代理架构(如专门的 QA 代理、清理代理),并将此模式推广到科学研究、金融建模等其他长时任务领域。

核心结论: 要让 AI 代理完成复杂工程,不能只靠更强大的模型,还需要为它建立一套类似人类软件工程的规范和“脚手架”