為什麼沒人教開發者上下文管理?
本文是代理工程與AI驅動開發系列文章的第六篇,強調上下文管理是AI開發中被忽視的關鍵技能。作者認為,開發者要麼高估AI的記憶能力,要麼低估其編排能力,導致浪費時間和輸出質量下降。通過將開發上下文外部化到文件(如DEVELOPMENT_CONTEXT.md)並持續更新,可以顯著提升AI會話的效率和一致性。文章還指出,包含決策背後的推理可以防止AI無意中撤銷有意的設計選擇。
在AI驅動開發領域,上下文管理正成為一項被嚴重低估的核心技能。O'Reilly Media近日發佈的文章指出,儘管業界熱衷於討論提示工程、模型選擇、代理工作流和工具使用,但決定AI會話輸出質量的關鍵因素——上下文管理——卻鮮少有人提及。
文章作者認為,開發者對AI的能力存在雙重誤解:一方面高估其記憶容量,將大量信息塞入上下文窗口,期望AI自行處理,結果卻因幻覺或遺忘而失望;另一方面低估其編排能力,未能給予AI多步驟工作流指令,使其能協調子任務並斷點續傳。這種認知偏差導致一個典型循環:開發者將上下文窗口視為無限,塞入所有信息;當會話過長、AI開始丟失線索時,又清空一切重新開始。他們從未考慮設計工作流,讓AI基於外部化文件跨獨立會話工作。
作者以自身項目為例,展示了上下文外部化的實踐方法。在構建Octobatch(批量LLM編排器)時,他讓AI在每個文件夾中寫入開發上下文,例如ai_context/DEVELOPMENT_CONTEXT.md文件。新會話啓動時只需一行指令:“讀取ai_context/DEVELOPMENT_CONTEXT.md並自舉以繼續開發。”該文件包含加載序列,引導AI閲讀各子系統的CONTEXT.md文件。通過這種方式,AI立即瞭解項目是什麼、如何構建、當前進展和活躍故障。
更關鍵的是,上下文文件必須包含決策背後的“為什麼”。Octobatch的DEVELOPMENT_CONTEXT.md中設有“關鍵技術學習”章節,包含49條條目,每條以固定格式記錄:發生了什麼、為何重要、何時發現、在代碼何處應用。章節頂部用粗體標註:“重要:始終包含推理(‘為什麼’)。這防止未來會話‘重構’一個深思熟慮的決定。”如果沒有這條提示,AI可能會無意識地撤銷之前有意的設計選擇。
作者強調,上下文管理不僅是理論,其成本是可量化的。微軟開發者博客上有人計時,發現每天花一個小時以上向AI重新解釋其在先前會話中已知的信息。目前已有框架和託管服務為代理提供持久內存,但評估、集成和維護這些工具本身也需要成本。
文章最後指出,上下文管理的真正基礎在於:讓AI在每項任務中持續寫入和更新上下文文件。在提交代碼前,要求AI審查上下文文件確保其反映最新變更。過時的上下文與過時的文檔同樣有害,甚至更糟,因為AI正依賴它做決策。當開發者在新會話中讀去良好的DEVELOPMENT_CONTEXT.md時,AI與開發者立即對齊;沒有它,AI不得不從頭髮現一切,而重新發現總是有損的。
作者計劃在下一篇文章中提供四項具體實踐,這些實踐來自構建Quality Playbook和Octobatch的經驗,可立即應用於自己的提示、技能和代理。本文聚焦問題本身:為何上下文管理重要,以及上下文丟失如何影響AI輸出質量。