AI 智能體的高效上下文工程最佳實踐 原創
大家好,我是玄姐
上下文是 AI 智能體的關鍵但有限資源。本文將探討如何有效篩選和管理驅動 AI 智能體運行的上下文。
在應用 AI 領域,提示詞工程多年來一直是關注焦點,如今一個新術語逐漸嶄露頭角:上下文工程。使用大語言模型(LLM)構建應用,已不再是單純尋找合適的提示詞短語,而是要解決更宏觀的問題:“什么樣的上下文配置最有可能讓模型產生我們期望的行為?”
上下文指的是從大型語言模型中采樣時包含的一系列 tokens。當前的工程核心問題是,在大語言模型的固有約束下優化這些 tokens 的效用,以穩定實現預期結果。要靈活運用大語言模型,往往需要從 “上下文視角” 思考,也就是說,要考慮大模型在任何給定時刻能獲取的整體狀態,以及該狀態可能觸發的潛在行為。
本文將探索這一新興的上下文工程領域,并提供一套更完善的思維框架,幫助構建可調控、高效能的 AI 智能體。
一、上下文工程與提示詞工程的區別
在 Anthropic 公司看來,上下文工程是提示詞工程的自然演進。提示詞工程指的是通過編寫和組織語言模型指令來獲取最佳結果的方法(相關概述和實用策略可參考這里:???https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/overview??)。而上下文工程則是在語言模型推理過程中,篩選和維護最優 tokens(信息)的一系列策略,其中包括提示詞之外所有可能納入上下文的其他信息。
在語言模型應用的早期階段,提示詞設計是 AI 工程工作的核心,除日常聊天交互外,大多數使用場景都需要針對一次性分類或文本生成任務優化提示詞。顧名思義,提示詞工程的核心是如何編寫有效的提示詞,尤其是系統提示詞。但隨著我們逐漸構建功能更強大、能進行多輪推理且支持長期任務的 AI 智能體,就需要專門的策略來管理整個上下文狀態,包括系統指令、工具、模型上下文協議(MCP)、外部數據、消息歷史等。
循環運行的 AI 智能體會不斷生成可能與下一輪推理相關的數據,這些信息必須經過周期性提煉。上下文工程就是在不斷擴充的潛在信息池中,篩選出可納入有限上下文窗口的內容,是一門兼具藝術與科學性的技術。

與編寫提示詞這種一次性任務不同,上下文工程是迭代式的,每次決定向大模型傳遞什么信息時,篩選過程都會發生。
二、為什么上下文工程對構建高效 AI 智能體至關重要
盡管語言模型速度快、能處理海量數據,但我們發現它們和人類一樣,在特定情況下會注意力不集中或產生困惑。“大海撈針” 式的基準測試研究揭示了 “上下文衰減” 現象:隨著上下文窗口中的 tokens 數量增加,模型從上下文中準確召回信息的能力會下降。
雖然不同模型的衰減程度有所差異,但這是所有語言模型的共性特征。因此,上下文必須被視為一種邊際收益遞減的有限資源。就像人類的工作記憶容量有限一樣,語言模型在解析大量上下文時也有 “注意力預算”,每新增一個 token 都會消耗一部分預算,這就要求我們必須精心篩選提供給模型的 tokens。
這種注意力稀缺性源于語言模型的架構約束。語言模型基于 Transformer 架構,該架構允許每個 token 關注整個上下文中的所有其他 token,這會產生 n 個 tokens 對應 n2 個成對關系的情況。
隨著上下文長度增加,模型捕捉這些成對關系的能力會被稀釋,導致上下文規模與注意力集中度之間存在天然矛盾。此外,模型的注意力模式是從訓練數據分布中習得的,而訓練數據中短序列通常比長序列更常見,這意味著模型對長序列的上下文依賴關系缺乏足夠經驗,也缺少專門的參數支持。
位置編碼插值等技術能讓模型通過適配原始訓練的較小上下文來處理更長序列,但會在 token 位置理解上出現一定衰減。這些因素導致模型性能呈梯度下降而非斷崖式下跌:在長上下文場景下,模型仍具備較強能力,但信息檢索精度和長程推理能力會比短上下文場景有所下降。
這些現實情況意味著,要構建高效 AI 智能體,必須重視上下文工程。
三、高效上下文的核心構成
既然語言模型的注意力預算有限,優秀的上下文工程就要找到最小規模的高價值 tokens,以最大程度確保預期結果。這一原則說起來容易做起來難,下面我們將結合上下文的不同組成部分,說明該原則的實際應用。
3.1 系統提示詞
系統提示詞應極其清晰,使用簡潔直接的語言,且表述粒度要恰到好處(即 “Goldilocks 區間”),避免兩種常見誤區:一種是在提示詞中硬編碼復雜、脆弱的邏輯以強求特定智能體行為,這種方式會導致系統脆弱性增加,長期維護復雜度上升;另一種是提供模糊的高層指導,既沒有給模型明確的輸出信號,又錯誤地假設模型與人類擁有共同上下文。最優的表述粒度應實現平衡:足夠具體以有效引導行為,同時足夠靈活以賦予模型強大的啟發式決策能力。

我們建議將提示詞分成不同模塊(例如:??<background_information>???(背景信息)、??<instructions>???(指令)、??## Tool guidance???(工具使用指南)、??## Output description??(輸出說明)等),并使用 XML 標簽或 Markdown 標題來區分這些模塊,不過隨著模型能力的提升,提示詞的具體格式重要性正在降低。
無論采用何種結構,系統提示詞都應追求 “用最少的信息完整勾勒預期行為”(注:“最少” 不等于 “最短”,仍需提供足夠信息確保智能體遵循預期行為)。建議先使用最先進的模型測試極簡提示詞的表現,再根據初始測試中發現的問題,添加明確的指令和示例來優化性能。
3.2 工具
工具能讓 AI 智能體與環境交互,并在工作過程中獲取新的額外上下文。由于工具定義了智能體與信息 / 行動空間的交互規則,因此工具設計必須注重效率:一方面要返回 tokens 高效的信息,另一方面要鼓勵智能體采取高效行為。
在《為 AI 智能體編寫工具:借助 AI 智能體自身》一文中(鏈接為:???https://www.anthropic.com/engineering/writing-tools-for-agents??),我們討論過如何構建易于語言模型理解且功能重疊最少的工具。就像設計精良的代碼庫一樣,工具應具備獨立性、抗錯誤能力,且用途明確。輸入參數也應描述清晰、無歧義,并充分發揮模型的固有優勢。
最常見的誤區之一是工具集臃腫,功能覆蓋過廣,或導致智能體在選擇工具時陷入歧義。如果人類工程師都無法明確判斷特定場景下該使用哪種工具,就不能指望 AI 智能體做得更好。后文將提到,為智能體篩選 “最小可行工具集”,還能在長期交互中更可靠地維護和精簡上下文。
3.3 示例(小樣本提示)
提供示例(即小樣本提示)是眾所周知的最佳實踐,我們仍強烈推薦使用。但有些團隊會在提示詞中堆砌大量邊緣案例,試圖羅列模型在特定任務中應遵循的所有規則,這種做法并不可取。相反,我們建議篩選一組多樣化、具有代表性的示例,有效展現 AI 智能體的預期行為。對語言模型而言,示例可謂 “一圖勝千言”。
總而言之,針對上下文的各個組成部分(系統提示詞、工具、示例、消息歷史等),我們的核心建議是:用心篩選,確保上下文既信息量充足,又簡潔精煉。接下來,我們將深入探討如何在運行時動態檢索上下文。
四、上下文檢索與智能檢索
在《構建高效 AI 智能體》一文中(鏈接為:???https://www.anthropic.com/engineering/building-effective-agents??),我們強調了基于語言模型的工作流與 AI 智能體的區別。自那以后,我們傾向于用一個簡單的定義來描述智能體:能自主循環使用工具的語言模型。
通過與客戶合作,我們發現行業正逐漸聚焦于這一簡單范式。隨著底層模型能力的提升,智能體的自主化水平也在升級:更智能的模型能獨立應對復雜的問題場景,并從錯誤中恢復。
如今,工程師設計智能體上下文的思路也在發生轉變。目前,許多原生 AI 應用會采用某種基于嵌入的推理前檢索方式,為智能體提供重要的推理上下文。而隨著行業向更智能的智能體模式轉型,越來越多團隊開始用 “即時上下文” 策略來增強這些檢索系統。
“即時上下文” 策略不預先處理所有相關數據,而是讓智能體維護輕量級標識符(文件路徑、存儲的查詢語句、網頁鏈接等),并在運行時通過工具利用這些引用動態加載數據到上下文。Anthropic 的智能編碼解決方案 Claude Code 就采用了這種方法來處理大型數據庫的復雜數據分析:模型可以編寫針對性查詢、存儲結果,并利用 head 和 tail 等 Bash 命令分析海量數據,而無需將完整數據對象加載到上下文。這種方式與人類認知模式相似:我們通常不會記憶全部信息,而是通過文件系統、收件箱、書簽等外部組織和索引系統,按需檢索相關信息。
除了存儲效率,這些引用的元數據還能提供有效優化行為的機制(無論元數據是顯式提供的還是隱含的)。例如,對于在文件系統中運行的智能體,??tests???文件夾下名為??test_utils.py???的文件,與??src/core_logic.py??文件夾下同名文件的用途顯然不同。文件夾層級、命名規范、時間戳等都能提供重要信號,幫助人類和智能體理解如何、何時利用信息。
讓智能體自主導航和檢索數據,還能實現 “漸進式披露”,即智能體通過探索逐步發現相關上下文。每次交互產生的上下文都會為下一次決策提供依據:文件大小暗示復雜度,命名規范提示用途,時間戳可作為相關性的參考指標。智能體能逐層構建認知,僅在工作記憶中保留必要信息,并通過記筆記的方式實現額外的持久化存儲。這種自主管理的上下文窗口能讓智能體專注于相關信息子集,而不會被大量可能無關的信息淹沒。
當然,這種方式也存在權衡:運行時探索比檢索預計算數據更慢。此外,還需要精心設計工程實現,確保語言模型擁有合適的工具和啟發式策略,以有效導航信息環境。如果缺乏適當指導,智能體可能會因誤用工具、陷入死胡同或未能識別關鍵信息而浪費上下文資源。
在某些場景下,最高效的智能體可能會采用混合策略:預先檢索部分數據以保證速度,同時根據需要自主進行進一步探索。自主化程度的 “最佳邊界” 取決于具體任務。Claude Code 就是采用這種混合模型的智能體:CLAUDE.md 文件會預先直接納入上下文,而 glob 和 grep 等基礎工具則允許它導航環境并即時檢索文件,有效規避了索引過時和語法樹復雜的問題。
混合策略可能更適合內容動態性較低的場景,例如:法律或金融工作。隨著模型能力的提升,智能體設計將逐漸傾向于讓智能模型自主發揮作用,減少人為干預。考慮到行業的快速發展,“用最簡單的方法實現目標” 可能仍是基于 Claude 構建智能體的最佳建議。
五、長期任務的上下文工程
長期任務要求智能體在一系列行動中保持連貫性、上下文一致性和目標導向性,而這些行動的 token 數量可能會超出語言模型的上下文窗口限制。對于持續數十分鐘到數小時的任務(例如:大型代碼庫遷移或全面研究項目),智能體需要專門的技術來突破上下文窗口大小的限制。
等待更大容量的上下文窗口似乎是顯而易見的解決方案,但在可預見的未來,無論上下文窗口多大,都可能面臨上下文冗余和信息相關性的問題,至少在需要智能體發揮最佳性能的場景中是如此。為了讓智能體能有效處理長期任務,我們開發了幾種直接應對上下文冗余約束的技術:壓縮、結構化筆記和多智能體架構。
5.1 壓縮
壓縮是指當對話接近上下文窗口限制時,對內容進行總結,并使用該總結重新啟動一個新的上下文窗口。壓縮通常是上下文工程中提升長期連貫性的首要手段。其核心是高保真提煉上下文窗口內容,讓智能體能繼續工作且性能損失最小。
例如,在 Claude Code 中,我們通過將消息歷史傳遞給模型,讓模型總結并壓縮最關鍵的細節,保留架構決策、未解決的漏洞和實現細節,同時丟棄冗余的工具輸出或消息。之后,智能體可以基于這個壓縮后的上下文,再加上最近訪問過的 5 個文件繼續工作。這樣用戶就能獲得連貫的體驗,而無需擔心上下文窗口限制。
壓縮的關鍵在于判斷 “保留什么” 和 “丟棄什么”:過度壓縮可能會丟失那些當下不顯眼但后續至關重要的上下文。對于實施壓縮系統的工程師,我們建議在復雜的智能體運行軌跡上仔細調整提示詞:首先最大化召回率,確保壓縮提示詞能捕捉軌跡中的所有相關信息,然后逐步提升精度,剔除多余內容。
一個簡單有效的冗余內容處理方式是清除工具調用和結果,如果某個工具調用已深入消息歷史,智能體為何還需要查看原始結果?工具結果清除是最安全、影響最小的壓縮形式之一,最近已作為功能在 Claude 開發者平臺推出。
5.2 結構化筆記(智能記憶)
結構化筆記(又稱智能記憶)是指智能體定期將筆記存儲到上下文窗口之外的記憶空間,之后可將這些筆記重新拉回上下文窗口。
這種策略能以最小開銷實現持久化記憶。就像 Claude Code 創建待辦清單,或自定義智能體維護 NOTES.md 文件一樣,這種簡單模式能讓智能體跟蹤復雜任務的進度,保留那些在數十次工具調用后可能丟失的關鍵上下文和依賴關系。
Claude 玩《精靈寶可夢》的案例,展示了記憶在非編碼領域對智能體能力的提升:該智能體在數千步游戲過程中保持精確記錄,比如 “在 1 號道路訓練精靈寶可夢的 1234 步中,皮卡丘已升級 8 級,目標是 10 級”。無需任何關于記憶結構的提示,它就能繪制已探索區域的地圖、記住已解鎖的關鍵成就,并記錄戰斗策略,幫助自己學習哪種攻擊對不同對手最有效。
在上下文重置后,智能體會讀取自己的筆記,繼續數小時的訓練或迷宮探索。這種跨總結步驟的連貫性,讓長期策略得以實現,而這僅靠語言模型的上下文窗口是無法完成的。
在 Sonnet 4.5 版本發布時,我們在 Claude 開發者平臺推出了公測版記憶工具,通過基于文件的系統,讓智能體能更輕松地存儲和查詢上下文窗口之外的信息。這使得智能體能逐步構建知識庫、跨會話維護項目狀態,并參考過往工作成果,而無需將所有信息都保存在上下文之中。
5.3 子智能體架構
子智能體架構是突破上下文限制的另一種方式。它不依賴單個智能體維護整個項目的狀態,而是讓專門的子智能體處理特定任務,每個子智能體都擁有獨立的干凈上下文窗口。主智能體負責用高層計劃協調工作,子智能體則執行深度技術工作或使用工具查找相關信息。每個子智能體可能會進行大量探索(使用數萬個甚至更多 tokens),但最終只返回濃縮精煉的總結結果(通常為 1000-2000 個 tokens)。
這種方式實現了清晰的職責分離,詳細的檢索上下文被隔離在子智能體內部,主智能體則專注于綜合和分析結果。我們在《多智能體研究系統的構建方法》一文中(鏈接為:???https://www.anthropic.com/engineering/multi-agent-research-system??)討論過這種模式,它在復雜研究任務上的表現明顯優于單智能體系統。
選擇哪種技術取決于任務特征:
- 壓縮技術適合需要大量來回交互、需保持對話連貫性的任務;
- 筆記技術適合具有明確里程碑的迭代式開發任務;
- 多智能體架構適合需要并行探索、能從多維度分析中獲益的復雜研究和分析任務。
即使模型不斷升級,在長期交互中保持連貫性仍是構建更高效智能體的核心挑戰。
六、總結
上下文工程標志著我們使用語言模型的方式發生了根本性轉變。隨著模型能力的提升,核心挑戰已不再是編寫完美的提示詞,而是在每一步都精心篩選納入模型有限注意力預算的信息。無論是為長期任務實施壓縮技術、設計 token 高效的工具,還是讓智能體能即時探索環境,核心原則始終不變:找到最小規模的高價值 tokens,以最大程度確保預期結果。
我們介紹的這些技術將隨著模型的進步不斷演進。目前已能看到,更智能的模型需要的指令性工程更少,允許智能體擁有更高的自主性。但即使能力不斷提升,將上下文視為珍貴的有限資源,仍是構建可靠、高效 AI 智能體的核心前提。
今天就開始在 Claude 開發者平臺嘗試上下文工程吧,你還可以通過我們的記憶和上下文管理指南,獲取更多實用技巧和最佳實踐。
好了,這就是我今天想分享的內容。
?
本文轉載自??玄姐聊AGI?? 作者:玄姐

















