Anthropic AI Agent 有效上下文工程

Anthropic 提出了上下文工程(context engineering)的概念,這標誌著從傳統的提示工程(prompt engineering)轉向對大型語言模型(LLM)在推理期間所提供的完整 token 集合進行策略性策劃與維護。這種方法對於構建能夠在多輪對話和長時程任務中運作的強大 AI Agent 至關重要,因為在這種情況下,管理整體狀態(包括系統指令、工具和訊息歷史紀錄)比單純優化提示詞的措辭更為重要。

上下文工程的必要性

上下文工程之所以必要,是因為 LLM 擁有有限的「注意力預算」(attention budget),並且容易受到上下文腐化(context rot)的影響,這是一種隨著上下文窗口中 token 數量增加,模型準確召回資訊的能力會下降的現象。

這種退化源於 Transformer 架構中 token 之間 $n^2$ 的成對關係,隨著上下文增長,注意力會被稀釋。此外,由於訓練數據通常由較短的序列組成,模型對於上下文範圍內的依賴關係缺乏足夠的專門參數。因此,上下文必須被視為一種邊際收益遞減的有限資源,目標是找到最小且高訊號的 token 集合,以最大化達成預期結果的可能性。

有效上下文的解剖結構

為了最大化注意力預算的效用,Anthropic 建議優化上下文的三個主要組成部分:

系統提示詞 (System Prompts)

系統提示詞應追求「正確的高度」——在脆弱、硬編碼的邏輯與過於模糊的指導之間取得平衡。它們應該足夠具體以有效引導行為,但又要具備足夠的靈活性以提供強大的啟發式方法(heuristics)。Anthropic 建議使用 XML 標籤或 Markdown 標題將提示詞組織成不同的區塊(例如:<background_information><instructions>)以區分資訊。

工具 (Tools)

工具應具備自給自足、穩健且 token 效率高的特性。常見的失敗模式是使用「臃腫的工具集」,這會為 Agent 造成歧義。策劃一個最小可行工具集可以確保在長期的互動中,對上下文進行更可靠的維護與修剪。

範例 (Examples)

開發者不應僅提供詳盡的邊緣案例列表,而應策劃一組多樣化且具代表性的範例(few-shot prompting),以描繪 Agent 預期的行為。

上下文檢索與 Agentic 搜尋

Anthropic 觀察到一種從基於 embedding 的預推理檢索,轉向「即時」(just-in-time)上下文策略的趨勢。

  • 即時檢索 (Just-in-Time Retrieval): Agent 維護輕量級的識別碼(例如:檔案路徑或網頁連結),並使用工具在運行時動態地將數據載入上下文。例如,Claude Code 透過編寫針對性的查詢並使用 headtail 等 Bash 命令來避免載入完整的數據對象,從而分析大型資料庫。
  • 漸進式揭露 (Progressive Disclosure): 這允許 Agent 透過探索來逐步發現相關的上下文,利用元數據(例如:資料夾層級結構和時間戳記)來引導後續決策。
  • 混合策略 (Hybrid Strategy): 一些 Agent 會結合預先計算的數據檢索(為了速度)與自主探索(為了深度)。Claude Code 利用此方法,預先載入 CLAUDE.md 檔案,同時使用 globgrep 進行即時導航。

管理長時程任務

對於跨越數小時或需要 token 數量超過上下文窗口的任務,Anthropic 概述了三種主要的技術來防止上下文污染:

壓縮 (Compaction)

壓縮涉及在對話接近上下文限制時對對話進行摘要,並使用該摘要重新啟動一個新窗口。在 Claude Code 中,模型會保留架構決策與未解決的 bug,同時捨棄冗餘的工具輸出。一種「輕量級」的版本是工具結果清除,即從歷史紀錄中移除舊的工具調用之原始結果。

結構化筆記 (Structured Note-Taking)

這也被稱為 Agentic 記憶,涉及 Agent 將筆記寫入持久的外部記憶(例如:NOTES.md 檔案),並在需要時將其拉回上下文。這允許 Agent 在重置後仍能維持狀態,例如 Claude 在玩 Pokémon 時能夠追蹤目標與戰鬥策略。

子 Agent 架構 (Sub-Agent Architectures)

這種架構使用一個主導 Agent 來協調高層級的規劃,而專業化的子 Agent 則處理專注的任務,並擁有乾淨的上下文窗口。子 Agent 執行深度工作並僅向主導 Agent 返回一個精簡的摘要(通常為 1,000–2,000 tokens),從而確保職責分離。

策略 最佳使用案例
壓縮 (Compaction) 需要大量來回對話流的任務
筆記 (Note-Taking) 具有明確里程碑的迭代開發
多 Agent (Multi-Agent) 需要並行探索的複雜研究與分析

Sources

相關