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

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

















