![]()
Anthropic發(fā)布Claude Sonnet 4.5時順便也發(fā)了一篇文章,講的是上下文工程
![]()
Anthropic認為,隨著AI進入Agent時代,構(gòu)建語言模型的重點正在從“為提示找到正確的詞語和短語”,轉(zhuǎn)向一個更大的問題:“什么樣的上下文配置最有可能產(chǎn)生我們期望的模型行為?”,簡單來說,提示工程(Prompt Engineering)正在自然地演進為上下文工程
上下文,是AI智能體的核心動力,但它既寶貴又有限,這篇文章將深入探討一系列策略,教你如何高效地篩選與管理這些關(guān)鍵信息
上下文工程 vs. 提示工程
首先,什么是上下文工程?
Anthropic給出的定義是:為LLM在推理過程中,策劃和維護最優(yōu)信息(tokens)集合的一系列策略
它與我們熟悉的提示工程有何不同?
提示工程:主要關(guān)注如何編寫和組織LLM的指令,以獲得最佳輸出,特別是系統(tǒng)提示(System Prompt)。它的核心是“寫好提示詞”,通常應(yīng)用于單輪查詢?nèi)蝿?wù)
上下文工程:關(guān)注的是管理整個上下文狀態(tài),包括系統(tǒng)指令、工具、外部數(shù)據(jù)、歷史消息等所有可能進入上下文窗口的信息。它的核心是管理信息流,是為需要在多輪推理和更長時間跨度上運行的AI Agent量身定制的
用一張對比圖展示二者的區(qū)別:
![]()
左側(cè)的提示工程,流程簡單:系統(tǒng)提示+用戶消息,直接生成回復(fù)
右側(cè)的上下文工程,則是一個動態(tài)循環(huán):模型需要從一個包含文檔、工具、記憶文件、歷史消息等龐大的“可能上下文池”中,通過一個“策劃”環(huán)節(jié),篩選出最優(yōu)信息組合,填入有限的上下文窗口,然后才能進行思考、調(diào)用工具并生成下一步行動
這個“策劃”過程,在Agent的每一次決策循環(huán)中都會發(fā)生,是上下文工程的核心
為什么上下文工程如此重要?
Anthropic指出,盡管LLM能處理越來越大的數(shù)據(jù)量,但它們和人類一樣,在某個點上會失去焦點或感到困惑
研究已經(jīng)揭示了“上下文腐爛(Context Rot)”現(xiàn)象:隨著上下文窗口中的令牌數(shù)量增加,模型準確回憶其中信息的能力會下降
這種現(xiàn)象背后的根本原因,源于Transformer架構(gòu)的內(nèi)在限制。每個令牌都需要與上下文中的其他所有令牌建立關(guān)系,這導(dǎo)致了n2的成對關(guān)系復(fù)雜性。當上下文變長時,模型的“注意力預(yù)算(attention budget)”會被攤薄
因此,上下文是一種有限且邊際效益遞減的寶貴資源。優(yōu)秀的上下文工程,就是要找到那個能最大化期望結(jié)果可能性的、最小的高信噪比令牌集
高效上下文的“解剖”
如何進行有效的上下文工程?Anthropic從實踐層面給出了三大核心組件的指導(dǎo)原則。
1. 系統(tǒng)提示:找到恰到好處的平衡點
系統(tǒng)提示是門藝術(shù),需要避免兩個極端:
過于具體:在提示中硬編碼復(fù)雜的if-else邏輯,會導(dǎo)致系統(tǒng)脆弱,難以維護
過于模糊:給出高級別的、模糊的指導(dǎo),無法為LLM提供具體的行為信號
最佳實踐是找到一個“黃金區(qū)域”:指令既要足夠具體以有效指導(dǎo)行為,又要足夠靈活以賦予模型強大的啟發(fā)式能力
Anthropic建議將提示結(jié)構(gòu)化為不同部分(例如背景信息、指令),其核心原則是:力求用最精簡的信息,來完整地闡明預(yù)期的行為
![]()
2. 工具:像設(shè)計優(yōu)秀代碼庫一樣設(shè)計工具
工具定義了Agent與環(huán)境交互的契約。好的工具應(yīng)該像設(shè)計良好的代碼庫中的函數(shù)一樣:
自包含、功能內(nèi)聚,盡量減少功能重疊
對錯誤有魯棒性
意圖清晰,輸入?yún)?shù)描述明確、無歧義
最常見的失敗模式是“臃腫的工具集”,這會讓Agent(甚至人類工程師)難以抉擇。精簡、可行的工具集是上下文工程的關(guān)鍵
3. 示例(Few-shot Prompting):重質(zhì)而非量
提供示例是公認的最佳實踐。但Anthropic不建議將大量的邊緣案例塞進提示中
正確的做法是,策劃一組多樣化、規(guī)范化的示例,這些示例能有效地描繪出Agent的預(yù)期行為。對于LLM來說,好的示例一圖勝千言
從預(yù)加載到即時檢索:Agentic Search
傳統(tǒng)的RAG等方法,傾向于在推理前就檢索并“預(yù)加載”所有相關(guān)信息。而Anthropic觀察到一個新趨勢:“即時”上下文策略
在這種模式下,Agent只維護輕量級的標識符(如文件路徑、URL),并在運行時使用工具動態(tài)地將數(shù)據(jù)加載到上下文中。這就像人類不會記住所有信息,而是通過文件系統(tǒng)、書簽來按需檢索
Claude Code就是這種方法的實踐者。它可以通過head和tail等Bash命令分析大型數(shù)據(jù)庫,而無需將整個數(shù)據(jù)庫加載到上下文中
這種方法也支持漸進式披露,允許Agent通過探索逐步發(fā)現(xiàn)相關(guān)上下文,每次交互都會為下一次決策提供信息
當然,運行時探索比預(yù)計算慢,因此最佳策略可能是混合模式:預(yù)先檢索部分關(guān)鍵信息以提高速度,同時賦予Agent自主探索的權(quán)力
應(yīng)對長時程任務(wù)的三大策略
當任務(wù)(如大型代碼庫遷移)的持續(xù)時間遠超單個上下文窗口的容量時,需要專門的技術(shù)來維持連貫性。Anthropic分享了三種核心策略:
1. 壓縮
當對話接近上下文窗口極限時,讓模型對現(xiàn)有內(nèi)容進行總結(jié)和壓縮,然后用這個摘要開啟一個新的上下文窗口。這能以高保真度的方式提煉關(guān)鍵信息(如架構(gòu)決策、未解決的bug),同時丟棄冗余內(nèi)容(如過時的工具輸出)。最簡單的一種壓縮形式就是清理舊的工具調(diào)用和結(jié)果
2. 結(jié)構(gòu)化筆記
也稱為“智能體記憶(agentic memory)”。這是一種讓Agent定期將筆記持久化到上下文窗口之外的內(nèi)存中的技術(shù)。這些筆記可以在稍后的時間點被重新拉回上下文
Anthropic展示了一個讓Claude玩《寶可夢》的例子:Agent在沒有被明確提示的情況下,自主學(xué)會了創(chuàng)建待辦事項列表、繪制探索過的區(qū)域地圖、記錄戰(zhàn)斗策略等。當上下文重置后,它能通過讀取自己的筆記,無縫銜接之前的進度,完成長達數(shù)小時的游戲任務(wù)
3. 子智能體架構(gòu)
與其讓單個Agent維護整個項目的狀態(tài),不如讓專門的子智能體處理集中的任務(wù)。一個主智能體負責(zé)高層級的規(guī)劃和協(xié)調(diào),而子智能體則深入執(zhí)行技術(shù)工作或信息檢索,并只返回一個精煉的摘要。這種“關(guān)注點分離”的模式,在復(fù)雜研究任務(wù)中被證明比單智能體系統(tǒng)有顯著的優(yōu)勢。
如何選擇?
壓縮:適用于需要大量來回對話的任務(wù)
筆記:適用于有明確里程碑的迭代式開發(fā)任務(wù)
多智能體:適用于并行探索能帶來收益的復(fù)雜研究和分析任務(wù)
上下文工程代表了構(gòu)建LLM應(yīng)用方式的根本性轉(zhuǎn)變
隨著模型能力越來越強,挑戰(zhàn)不再僅僅是制作完美的提示,而是在每一步都深思熟慮地策劃哪些信息能進入模型有限的注意力預(yù)算
無論是為長時程任務(wù)實現(xiàn)壓縮,設(shè)計高效的工具,還是讓Agent“即時”探索環(huán)境,其指導(dǎo)原則始終如一:找到最小的高信噪比令牌集,以最大化期望結(jié)果的可能性
即使未來模型變得更加自主,將上下文視為一種寶貴的、有限的資源,仍將是構(gòu)建可靠、高效Agent的核心
參考:
https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.