機器之心報道
編輯:陳萍
AI 時代,你可能聽說過提示詞工程、RAG、記憶等術(shù)語。但是很少有人提及上下文工程(context engineering)
其實,這一術(shù)語并不新鮮,近兩年很多智能體構(gòu)建者一直在關(guān)注這個事情。至于重要性,下面這張圖很好地概括了上下文工程與提示詞工程、RAG 等的關(guān)系。
在傳統(tǒng)的提示工程中,開發(fā)者通常側(cè)重于精心設(shè)計提示語,以期得到更好的答案。然而,隨著應(yīng)用的復(fù)雜度不斷增加,逐漸顯現(xiàn)出單純依賴提示已無法滿足現(xiàn)代智能體的需求。如今,提供完整且結(jié)構(gòu)化的上下文信息比任何巧妙的提示詞更為重要。
上下文工程就是為此誕生的。
上下文工程是構(gòu)建動態(tài)系統(tǒng),以正確的格式提供合適的信息和工具,從而使得 LLM 能夠合理地完成任務(wù)。
大多數(shù)時候,當(dāng)一個智能體沒有很好地執(zhí)行任務(wù)時,根本原因是沒有向模型傳達適當(dāng)?shù)纳舷挛?、指令和工具。LLM 應(yīng)用正在從單一的提示演變?yōu)楦鼜?fù)雜、動態(tài)的智能系統(tǒng)。
因此,上下文工程正在成為 AI 工程師可以發(fā)展的最重要技能。
什么是上下文工程?
上下文工程是指構(gòu)建動態(tài)系統(tǒng),以合適的格式提供準(zhǔn)確的信息和工具,使 LLM 能夠合理完成任務(wù)。
上下文工程是一個系統(tǒng)。復(fù)雜的智能體可能需要從多個來源獲取上下文。這些上下文可能來自應(yīng)用開發(fā)者、用戶、先前的交互記錄、工具調(diào)用結(jié)果或其他外部數(shù)據(jù)。將這些內(nèi)容整合起來需要一個復(fù)雜的系統(tǒng)。
上下文工程是動態(tài)的。許多上下文信息是動態(tài)生成的。因此,構(gòu)建最終提示的邏輯也必須是動態(tài)的,而不僅僅是一個靜態(tài)模板。
必須提供準(zhǔn)確的信息。智能體系統(tǒng)表現(xiàn)不佳的常見原因往往是缺乏正確的上下文。LLM 無法「讀心」—— 因而你必須為它們提供準(zhǔn)確的信息。輸入的是垃圾,輸出的也只會是垃圾。
需要提供合適的工具。并不是在所有情況下,LLM 僅憑輸入就能夠解決任務(wù)。在這些情況下,如果你希望賦能 LLM 來完成任務(wù),你需要確保它擁有合適的工具。這些工具可以是用來查找更多信息、采取行動,或者介于兩者之間的任何東西。為 LLM 提供合適的工具和提供正確的信息一樣重要。
格式很重要。就像與人類溝通一樣,如何與 LLM 溝通也很重要。在確保 LLM 能夠使用這些工具時,工具的輸入?yún)?shù)非常重要。
為什么上下文工程很重要
當(dāng)智能體系統(tǒng)出錯時,通常是因為 LLM 出錯。從第一性原理思考,LLM 出錯有兩個原因:
- 底層模型本身出錯,模型的能力不夠;
- 底層模型沒有傳遞適當(dāng)?shù)纳舷挛囊陨烧_的輸出。
隨著技術(shù)的不斷優(yōu)化,更多情況下(尤其是當(dāng)模型變得更強大時)模型的錯誤是由第二個原因造成的。傳遞給模型的上下文可能由于以下幾種原因?qū)е滦阅芟陆担?/p>
- 缺少上下文,模型做出正確決策所需的上下文沒有被傳遞。模型不是心靈感應(yīng)的,如果沒有給它正確的上下文,它就無法知道該信息的存在。
- 上下文格式不當(dāng)。就像與人類溝通一樣,溝通方式非常重要!當(dāng)你將數(shù)據(jù)傳遞給模型時,數(shù)據(jù)的格式絕對會影響模型的響應(yīng)。
上下文工程與提示工程有何不同?
為什么要從提示工程到上下文工程轉(zhuǎn)變?早期,開發(fā)者專注于巧妙地給出提示以引導(dǎo)模型給出更好的答案。但隨著應(yīng)用變得更加復(fù)雜,現(xiàn)在越來越明顯的是,提供完整且結(jié)構(gòu)化的上下文比任何巧妙的措辭更為重要。
可以將提示工程視為上下文工程的一個子集。即使你擁有所有的上下文,如何在提示中組裝它仍然至關(guān)重要。區(qū)別在于,你不僅僅是在設(shè)計一個與單一輸入數(shù)據(jù)有效的提示,而是要處理一組動態(tài)數(shù)據(jù)并將其正確格式化。
上下文的一個關(guān)鍵部分通常是關(guān)于 LLM 應(yīng)該如何表現(xiàn)的核心指令。這通常也是提示工程的一個重要部分。
好的上下文工程應(yīng)該包括:
- 工具使用:當(dāng)一個智能體訪問外部信息時,需要擁有能夠訪問這些信息的工具。當(dāng)工具返回信息時,需要以 LLM 最容易理解的方式對其進行格式化。
- 短期記憶:如果對話持續(xù)一段時間,可以創(chuàng)建對話摘要,并在未來使用該摘要。
- 長期記憶:如果用戶在之前的對話中表達了偏好,需要獲取這些信息。
- 提示工程:在提示中清楚地列舉智能體應(yīng)該如何操作的說明。
- 檢索:動態(tài)地獲取信息,并在調(diào)用 LLM 之前將其插入到提示中。
https://blog.langchain.com/the-rise-of-context-engineering/
特別聲明:以上內(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.