LangChain1.0教程:給智能體加上記憶功能、工具與中間件
在這個視頻中我介紹了如何給智能體添加記憶,以及中間件和工具的使用方法。
記憶
對于智能體來說,記憶(memory)非常關(guān)鍵——它讓智能體能夠記住過去的交互、從反饋中學(xué)習(xí)、并根據(jù)用戶偏好進行調(diào)整。
當(dāng)智能體處理越來越復(fù)雜的任務(wù)并與用戶多次交互時,這種能力對效率和用戶體驗都至關(guān)重要。
?? 短期記憶(Short-term memory)允許應(yīng)用程序在單個線程或會話中記住先前的交互。
一個 線程(thread) 組織了一次會話中的多輪交互,類似于電子郵件中“會話”將多條消息歸為同一主題。
智能體默認使用 AgentState 管理短期記憶,我們可以通過 messages 鍵訪問消息列表。
在聊天應(yīng)用中,消息會在用戶輸入與模型回復(fù)之間交替,形成一個不斷增長的消息列表。
不過,長對話會給當(dāng)前的 LLM 帶來挑戰(zhàn):
- 整個對話歷史可能 無法完全放入模型的上下文窗口(context window);
- 這會導(dǎo)致上下文丟失或生成錯誤。
即使模型支持較長的上下文,大多數(shù) LLM 在處理長上下文時仍表現(xiàn)不佳:
- 它們可能被舊的、無關(guān)的信息“分心”;
- 計算變慢;
- 成本上升。
由于上下文窗口有限,許多應(yīng)用會采用技術(shù)手段來移除或“遺忘”陳舊信息,以保證性能。
中間件
我們可以通過中間件(middleware)控制和自定義智能體執(zhí)行的每個步驟。
中間件提供了一種更嚴格地控制智能體內(nèi)部運行機制的方法。

工具
許多 AI 應(yīng)用程序通過自然語言與用戶交互。然而,在某些使用場景中,模型需要直接與外部系統(tǒng)(例如 API、數(shù)據(jù)庫 或 文件系統(tǒng))進行交互,這時就需要使用結(jié)構(gòu)化輸入。
工具(Tool) 是智能體用來執(zhí)行動作的組件。它們通過允許模型使用定義良好的輸入和輸出與外部世界交互,從而擴展了模型的能力。
一個工具封裝了一個可調(diào)用的函數(shù)以及它的輸入模式(input schema)。這些工具可以被傳遞給兼容的聊天模型,使模型能夠自行決定是否調(diào)用某個工具以及使用哪些參數(shù)。
在這種場景下,工具調(diào)用(tool calling) 讓模型能夠生成符合特定輸入結(jié)構(gòu)的請求。
本文轉(zhuǎn)載自??PyTorch研習(xí)社??,作者:南七無名式

















