隨著大型語言模型(LLM)的快速演進,智能體(Agent)開發已成為人工智能領域的前沿陣地。業界普遍將 LLM 比作新型操作系統中的中央處理器(CPU),而其有限的上下文窗口則如同隨機存取存儲器(RAM),扮演著模型的工作記憶角色。在此背景下,上下文工程(Context Engineering)應運而生,它被定義為一門精妙的藝術與科學,旨在為智能體在任務執行軌跡的每一步,精準地填充恰當信息到上下文窗口中。這一理念不僅關乎效率,更是智能體能否實現可靠、連貫、高性能表現的核心所在。
智能體在執行長期任務時,會交替進行 LLM 調用和工具調用,並根據工具反饋決定下一步行動。然而,這些長時間運行的任務和工具反饋的持續累積,極易導致令牌(token)數量膨脹,進而引發一系列問題:上下文窗口溢出、成本與延遲激增,甚至智能體性能退化。具體的性能問題包括:當幻覺或錯誤信息進入上下文並被反復引用時造成的 “上下文中毒”;上下文過長導致模型過度關注現有信息而忽略訓練所得知識的 “上下文分散”;無關信息干擾模型生成低質量響應的 “上下文混淆”;以及上下文不同部分之間信息衝突引發的 “上下文衝突”。因此,有效地管理上下文信息,成為了智能體工程師的首要任務。
上下文工程:智能體可靠性的基石#
上下文工程不僅是解決技術瓶頸的手段,更是構建可靠智能體系統的根本方法。它涵蓋了四大核心策略,以應對不同類型的上下文管理挑戰:
-
寫入上下文(Write Context):指將信息保存到上下文窗口之外,以供智能體在未來任務中調用。這包括使用 “暫存器”(scratchpad)進行會話內的筆記記錄,或通過 “記憶”(memories)機制實現跨會話的長期學習和信息持久化。例如,智能體可以通過工具調用將計劃或關鍵信息寫入文件,或利用運行時狀態對象保存信息。
-
選擇上下文(Select Context):意味著僅將與當前任務最相關的信息拉入上下文窗口。這包括從暫存器中讀取、選擇相關的記憶(如少樣本示例、指令、事實),以及利用檢索增強生成(RAG)技術從大量工具描述中篩選出最適用的工具,或從龐大知識庫中檢索所需知識。在實際應用中,混合檢索技術(如向量搜索結合詞法 / 正則搜索)和重排序(re-rank)步驟對於提升選擇精度至關重要。
-
壓縮上下文(Compress Context):旨在只保留執行任務所需的最小令牌量。常用的方法有 “上下文摘要”(Context Summarization),通過 LLM 將冗長的交互歷史或工具調用結果提煉成精簡摘要,以避免上下文過長導致的性能下降。另一種方法是 “上下文修剪”(Context Trimming),通常通過硬編碼啟發式規則或訓練過的修剪器來過濾掉不相關或不需要的信息,如刪除舊消息。
-
隔離上下文(Isolate Context):涉及將上下文分解為更小的、獨立的單元,以幫助智能體執行任務。這主要通過多智能體架構實現,每個子智能體擁有專用的上下文窗口,專注於特定子任務,從而實現關注點分離。此外,通過沙盒環境或設計具有特定模式的狀態對象,也可以將某些令牌密集型對象或工具調用的結果與 LLM 的直接上下文隔離,僅在需要時暴露。
這些策略共同構成了上下文工程的實踐框架,通過實時組裝高質量上下文(內循環)和持續優化檢索與索引策略(外循環),不斷提升智能體的適應性和效能。
多智能體系統:能力擴展與內在挑戰#
在智能體架構的選擇上,業界存在著關於單一智能體與多智能體系統效用的持續討論。
多智能體的優勢顯而易見: 多智能體系統在處理廣度優先查詢(即需要同時探索多個獨立方向的任務)時表現出色。通過讓子智能體並行操作,各自擁有獨立的上下文窗口來探索問題的不同方面,它們能夠有效突破單一智能體上下文窗口的限制,大幅提升信息收集和提煉的效率。例如,在研究任務中,多智能體系統被發現能將研究時間縮短高達 90%,並能處理比單一系統更廣泛的信息。這種分佈式架構能夠有效擴展令牌使用量,使得多智能體系統在任務價值足夠高、且需要大量並行化處理的場景中,成為實現高性能的關鍵。
然而,多智能體系統也面臨著嚴峻的挑戰:
-
可靠性與連貫性:最關鍵的挑戰在於,當多智能體處理需要緊密協調或涉及 “寫入” 操作的任務時,很容易出現 “決策衝突” 和 “上下文缺失”。例如,當多個子智能體並行生成代碼或內容時,它們基於不完全共享的上下文可能做出相互衝突的隱含決策,導致最終輸出難以整合或質量低下。實踐表明,多智能體系統在並行 “讀取” 任務(如研究)上表現更佳,而在並行 “寫入” 任務(如代碼生成)上則更為脆弱。
-
令牌成本與複雜性:多智能體架構通常會顯著增加令牌使用量,可能高達單一聊天交互的數倍甚至十數倍,這大幅提升了運行成本。此外,智能體之間的協調複雜性也會呈指數級增長,尤其是在需要實時溝通和決策互依賴的場景中。
-
調試與評估:由於智能體的動態決策和非確定性行為,多智能體系統變得異常難以調試。即使是細微的改動也可能導致行為的連鎖反應,使得傳統軟件的調試方法難以奏效。這要求採用新的可觀測性(observability)、追蹤(tracing)和評估方法,以理解智能體間的互動模式和決策流程。
以上下文工程重塑智能體架構#
面對多智能體系統的兩面性,上下文工程成為了指導其架構設計和克服挑戰的核心羅盤。
隔離策略是多智能體成功的關鍵: 在多智能體系統中,上下文隔離被視為一種高效策略。每個子智能體被賦予獨立的上下文窗口和工具集,專注於其特定的子任務。這種 “關注點分離” 不僅減少了單個上下文窗口的壓力,也使得子智能體能夠更徹底、更獨立地進行探索。例如,研究系統中的子智能體能夠並行檢索信息,然後將關鍵洞察壓縮後返回給主智能體。值得注意的是,為了確保最終輸出的連貫性,這些系統中通常會將最終的 “撰寫” 或 “合成” 工作,委託給一個單一的主智能體或專門的合成智能體來完成,從而有效避免了並行寫入可能導致的衝突。通過沙盒環境或設計具有結構化模式的狀態對象,可以進一步實現上下文隔離,將令牌密集型數據存儲在 LLM 的直接上下文之外,僅在需要時選擇性地暴露。
連貫性與歷史管理在不同架構中的應用: 對於單一智能體或那些任務高度互依賴的系統,維護全局連貫性則顯得尤為重要。這可能意味著需要共享完整的智能體軌跡,或者通過高級的記憶壓縮技術,將冗長的對話歷史或操作日誌總結為可檢索的事實,以避免上下文遺忘或混淆。例如,一些成功的單一智能體設計(如某些代碼助手)通過頻繁使用小型模型進行上下文的讀取、解析和摘要,有效地管理了長會話的連貫性,並避免了多智能體帶來的額外複雜性。寫入、選擇和壓縮等上下文工程策略,在各種智能體架構中都扮演著優化上下文質量的關鍵角色,無論是用於持久化信息、篩選工具,還是精煉歷史記錄。
實踐之路:控制、簡化與驗證#
構建健壯的智能體系統,不僅依賴於對上下文工程理論的深刻理解,更需要靈活的實踐方法、精簡的設計哲學和強大的工程工具支持。
首先,架構選擇應強調靈活性與細粒度控制。低級別的編排框架對於智能體開發者至關重要,它賦予了工程師對 LLM 輸入上下文、智能體執行步驟和順序的完全控制權。這種控制使得工程師能夠根據任務的具體需求,定制化地應用上下文工程策略,而非受限於預設的 “認知架構” 或隱藏的提示。
其次,應秉持 “大道至簡” 的設計原則。在 LLM 本身就難以調試和評估的背景下,引入額外的複雜性(如不必要的多智能體系統或複雜的 RAG 算法)只會成倍增加調試難度和系統脆弱性。對於許多應用而言,一個設計精良的單主線程智能體,輔以有效的上下文管理和小型模型進行壓縮與搜索,往往能取得極其強大且更易維護的效果。
最後,完善的工具支持是不可或缺的。一個健壯的智能體開發生態系統需要集成專門針對 LLM 系統特點的調試、可觀測性和評估工具。這些工具能夠追蹤智能體的令牌使用情況、診斷失敗模式、量化性能改進,並支持快速迭代和優化上下文工程實踐。它們提供了一個 “良性反饋循環”,幫助工程師識別最佳的上下文工程機會,實施方案,進行測試,並持續改進。
結語:走向成熟的智能體設計#
上下文工程是智能體構建者必須掌握的核心 “手藝”。它超越了單純的 “提示工程”,成為在動態系統中自動、智能地管理信息的科學。多智能體系統並非一勞永逸的解決方案,而是一個強大但有條件的工具。它的價值在於能夠高效處理特定類型的任務,特別是那些高度並行化、讀取密集型且信息量遠超單一上下文窗口的任務。
未來的智能體設計將是上下文工程與架構權衡的藝術。成功的智能體將是那些能夠根據任務特性,靈活運用寫入、選擇、壓縮、隔離等多種上下文工程策略,並在擴展能力與維護系統連貫性、可靠性之間取得精妙平衡的系統。只有這樣,我們才能構建出真正智能、高效且可控的 AI 智能體,它們將能夠駕馭複雜世界,解決人類尚未企及的問題。
參考閱讀#
- Don’t Build Multi-Agents
- How and when to build multi-agent systems
- How we built our multi-agent research system
- Context Engineering
- How to Fix Your Context
- RAG is Dead, Context Engineering is King_ — with Jeff Huber of Chroma
- What makes Claude Code so damn good (and how to recreate that magic in your agent)!
- 逆向工程 Claude Code:學習這些 Agent 技巧