登上熱搜!Prompt不再是AI重點,新熱點是Context Engineering
最近「上下文工程」有多火?Andrej Karpathy 為其打 Call,Phil Schmid 介紹上下文工程的文章成為 Hacker News 榜首,還登上了知乎熱搜榜。
之前我們介紹了上下文工程的基本概念,今天我們來聊聊實操。
為什么關注「上下文工程」
我們很容易將 LLM 擬人化——把它們當作能夠「思考」、「理解」或「感到困惑」的超級助手。從工程學的角度來看,這是一個根本性的錯誤。LLM 并不具備信念或意圖,它是一個智能的文本生成器。
更準確的看法是:LLM 是一個通用的、不確定的函數(shù)。這個函數(shù)的工作方式是:你給它一段文本(上下文),它會生成一段新的文本(輸出)。
- 通用:意味著它能處理各種任務(如翻譯、寫代碼),無需為每個任務單獨編程。
- 不確定:意味著同樣的輸入,每次可能得到稍有不同的輸出。這是它的特點,不是毛病。
- 無狀態(tài):意味著它沒有記憶。你必須在每次輸入時,提供所有相關的背景信息,它才能「記住」對話。
這個視角至關重要,因為它明確了我們的工作重心:我們無法改變模型本身,但可以完全控制輸入。所有優(yōu)化的關鍵,在于如何構建最有效的輸入文本(即上下文),來引導模型生成我們期望的輸出。
「提示詞工程」一度很火,但它過于強調尋找一句完美的「魔法咒語」。這種方法在真實應用中并不可靠,因為「咒語」可能因模型更新而失效,且實際輸入遠比單句指令復雜。
一個更精準、更系統(tǒng)的概念是「上下文工程」。
兩者的核心區(qū)別在于:
- 提示詞工程:核心是手動構思一小段神奇的指令,如同念咒。
- 上下文工程:核心是構建一個自動化系統(tǒng),像設計一條「信息流水線」。該系統(tǒng)負責從數(shù)據(jù)庫、文檔等來源自動抓取、整合信息,并將其打包成完整的上下文,再喂給模型。
正如 Andrej Karpathy 所說,LLM 是一種新型的操作系統(tǒng)。我們的任務不是給它下達零散的命令,而是為它準備好運行所需的所有數(shù)據(jù)和環(huán)境。
上下文工程的核心要素
簡單說,「上下文工程」就是打造一個「超級輸入」的工具箱。我們聽到的各種時髦技術(比如 RAG、智能體),都只是這個工具箱里的工具而已。
目標只有一個:把最有效的信息,用最合適的格式,在最恰當?shù)臅r機,喂給模型。
以下是工具箱里的幾種核心要素:
- 指令:下達命令這是最基礎的,就是直接告訴模型該做什么。比如命令它「扮演一個專家」,或者給它看幾個例子,讓它照著學。
- 知識:賦予「記憶」 模型本身沒有記憶,所以我們要幫它記住。在聊天機器人里,就是把聊天記錄一起發(fā)給它。如果記錄太長,就做個「摘要」或者只保留最近的對話。
- 工具:
- 檢索增強生成 (RAG):給它一本「開卷考試」用的參考書為了防止模型瞎說(產(chǎn)生幻覺),我們可以讓系統(tǒng)先從我們自己的知識庫(比如公司文檔)里查找相關資料,然后把「參考資料」和問題一起交給模型,讓它根據(jù)事實來回答。
- 智能體:讓它自己去「查資料」
這是更高級的玩法。我們不再是提前準備好所有資料,而是讓一個聰明的「智能體」自己判斷需要什么信息,然后主動使用工具(比如上網(wǎng)搜索、查數(shù)據(jù)庫)去尋找答案,最后再匯總起來解決問題。
總而言之,所有這些技術,無論簡單還是復雜,都是在回答這一個問題:「怎樣才能給模型打造出最完美的輸入內容?」
上下文工程的實踐方法論
使用 LLM 更像做科學實驗,而不是搞藝術創(chuàng)作。你不能靠猜,必須通過測試來驗證。
工程師的核心能力不是寫出花哨的提示,而是懂得如何用一套科學流程來持續(xù)改進系統(tǒng)。這套流程分兩步:
第一步:從后往前規(guī)劃(定目標 → 拆任務)
從你想要的最終結果出發(fā),反向推導出系統(tǒng)的樣子。
- 先想好終點:明確定義你希望 LLM 輸出的完美答案是什么樣的(內容、格式等)。
- 再倒推需要什么原料:要得到這個完美答案,LLM 的輸入(上下文)里必須包含哪些信息?這就定義了你的系統(tǒng)需要準備的「原料包」。
- 最后設計「流水線」:規(guī)劃出能夠自動生產(chǎn)這個「原料包」的系統(tǒng)。
第二步:從前往后構建(搭積木 → 總裝)
規(guī)劃好后,開始動手搭建。關鍵是:搭好一塊,測一塊,最后再組裝。
- 先測試「數(shù)據(jù)接口」:確保能穩(wěn)定地獲取原始數(shù)據(jù)。
- 再測試「搜索功能」:單獨測試檢索模塊,看它找資料找得準不準、全不全。
- 然后測試「打包程序」:檢查那個把所有信息(指令、數(shù)據(jù))組裝成最終輸入的程序是否正常工作。
- 最后才進行「總裝測試」:當所有零件都確認無誤后,再連接起來,對整個系統(tǒng)進行端到端測試。這時,你可以完全專注于評估 LLM 的輸出質量,因為你知道它收到的輸入肯定是正確的。
核心思想就是:通過這種「先規(guī)劃、后分步搭建和測試」的嚴謹流程,我們將使用 LLM 從憑感覺的藝術,變成了有章可循的工程科學。
實踐
更具體的實踐方法,大家可以參考 Langchain 最新的博客和視頻,里面詳細介紹了上下文工程當前主流的四大核心方法,并展示了 LangChain 生態(tài)中 LangGraph 和 LangSmith 如何助力開發(fā)者高效實施上下文工程。
- 博客地址:Context Engineering for Agents
- 視頻地址:Context Engineering for Agents (LangChain)