前言

【值得收藏】程序員必看:Anthropic雙代理架構如何讓AI Agent告別“失憶返工“,實現複雜項目自主完成_#大模型學習

當前 AI Agent的能力日益強大,開始需要承接需要數小時甚至數天才能完成的複雜任務 —— 比如:從零構建一個生產級別的 Web 應用。

但現實是,AI Agent在跨多個上下文窗口工作時,常常陷入 “失憶返工”" 半途而廢 " 的困境。

Anthropic 推出了一套針對長時運行 AI 代理的高效 harness 方案,成功解決了這一行業痛點。

一、一個令人頭疼的現實問題

想象一下:你有一個軟件開發項目,但參與的工程師每次換班都會完全失憶:不記得之前寫了什麼代碼、完成了什麼功能、遇到了什麼問題。這聽起來像噩夢,但這正是當前AI代理在長任務中面臨的真實困境。

Anthropic的研究團隊發現,即使是最先進的Claude模型,在嘗試構建複雜應用(比如克隆claude.ai網站)時,也會出現兩種典型失敗模式:

  1. 一口喫成胖子:試圖一次性完成整個項目,結果在實現中途就用光了上下文窗口,留下半成品代碼
  2. 提前交卷:看到有些功能已完成,就過早宣佈項目完成,實際上還差得遠

這背後的本質是缺乏結構化的工作框架 —— 既沒有明確的任務分解,也沒有標準化的交接機制,導致 AI 代理的工作陷入混亂。

二、雙代理架構:Initializer + Coder的絕妙配合

Anthropic的解決方案:將長任務分解為兩個專門的代理角色

2.1 Initializer Agent(初始化代理)

  • 使命:項目啓動時,初始化代理的核心任務是建立一套讓後續工作可落地、可追溯的基礎環境
  • 核心任務
  • 生成 init.sh 腳本:一鍵啓動開發服務器,解決後續代理 “不知如何運行項目” 的問題;
  • 創建 claude-progress.txt 進度文件:記錄各階段工作內容,成為跨會話的 “交接賬本”;
  • 初始化 Git 倉庫:通過版本控制留存所有修改記錄,方便後續回滾錯誤代碼;
  • 編寫結構化功能清單(feature_list.json):將用户模糊需求拆解為具體可測試的功能點(如 “用户點擊新建聊天按鈕可創建對話”),每個功能標記初始狀態為 “未通過”,明確全量需求邊界。

2.2 Coding Agent(編碼代理)

  • 使命:後續所有會話由編碼代理接手,核心原則是 “一次只做一件事,做完留好交接痕”,在每個會話中穩步推進一個功能
  • 工作流
  • 啓動會話先 “摸清狀況”:運行 pwd 確認工作目錄,讀取進度文件、Git 日誌和功能清單,快速銜接前文工作;
  • 增量開發:每次僅選擇一個優先級最高的未完成功能進行開發,避免多任務導致的混亂;
  • 嚴格測試驗證:使用瀏覽器自動化工具(如 Puppeteer)模擬人類用户進行端到端測試,僅在功能完全可用時才將狀態改為 “通過”;
  • 清潔狀態收尾:完成開發後提交 Git 版本(附詳細説明),更新進度文件,確保代碼無重大 bug、文檔完整,讓下一個代理可直接接手。

2.3 關鍵配套機制

  • 格式規範:功能清單採用 JSON 格式而非 Markdown,減少 AI 誤刪、誤改的風險;
  • 強制約束:通過明確指令禁止刪除或修改功能測試項,避免因需求遺漏導致的產品缺陷;
  • 預檢查機制:每個會話啓動時先運行基礎功能測試,若發現項目處於崩潰狀態,優先修復而非繼續開發新功能。

三、解決了長時 AI 代理的四大核心問題

問題症狀

Initializer解決方案

Coding解決方案

過早宣佈勝利

創建詳細的功能清單

每次只專注一個功能

遺留 bug 或無文檔

建立Git版本控制

會話結束時保持代碼整潔

功能未完成就標記完成

制定嚴格的測試標準

必須進行端到端測試,通過實測才可更新狀態

每次重啓都要重新探索

編寫環境初始化腳本init.sh

按標準流程快速上手

Anthropic在 claude.ai 克隆版的測試中,AI 代理能夠持續迭代 200 + 功能,每個會話都能基於前序工作穩步推進,不再出現大規模返工或需求遺漏的情況。即使遇到瀏覽器原生彈窗識別等視覺能力限制,也能通過工具調用彌補部分短板。

四、Agent未來探索方向:多代理分工與跨領域拓展

  • 多代理專業化分工:未來可能引入測試專屬代理、代碼優化代理等細分角色,進一步提升各環節效率;
  • 跨領域適配:目前方案優化於全棧 Web 開發,後續將探索把這套工程化思路應用到科研、金融建模等其他長週期任務中。