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