LLM 代理的可視化指南
探索單代理和多代理的主要組成部分
LLM 代理正變得越來越普遍,似乎取代了我們熟悉的 “常規” 對話式 LLM。這些令人難以置信的功能並不容易創建,需要許多組件協同工作。
本文中提供了 60 多個自定義視覺對象,您將探索 LLM 代理領域、它們的主要組件,並探索多代理框架。
什麼是 LLM 代理?
=================
爲了瞭解什麼是 LLM 代理,讓我們首先探索 LLM 的基本功能。傳統上,LLM 只做下一個標記預測。
通過連續對許多 tokens 進行採樣,我們可以模擬對話並使用 LLM 爲我們的查詢提供更廣泛的答案。
然而,當我們繼續 “對話” 時,任何給定的 LLM 都會展示其主要缺點之一。它不記得對話!
LLM 經常無法完成許多其他任務,包括乘法和除法等基本數學:
這是否意味着 LLM 很糟糕?絕對不是!LLM 不需要無所不能,因爲我們可以通過外部工具、內存和檢索系統來彌補它們的缺點。
通過外部系統,可以增強 LLM 的功能。Anthropic 稱之爲 “增強的 LLM”。
例如,當面臨數學問題時,LLM 可能會決定使用適當的工具(計算器)。
那麼這個 “Augmented LLM” 是代理嗎?不,也許有點是......
讓我們從代理人的定義開始:1
代理是可以被視爲通過傳感器感知其環境並通過執行器作用於該環境的任何東西。
— Russell & Norvig,AI:一種現代方法(2016)
代理與其環境交互,通常由幾個重要組件組成:
-
環境 — 代理與之交互的世界
-
傳感器 — 用於觀察環境
-
執行器 — 用於與環境交互的工具
-
**效應器 **— 決定如何從觀察到行動的 “大腦” 或規則
此框架用於與各種環境交互的各種代理,例如機器人與其物理環境交互或與軟件交互的 AI 代理。
我們可以稍微概括一下這個框架,使其適合 “Augmented LLM”。
使用 “增強”LLM,代理可以通過文本輸入觀察環境(因爲 LLM 通常是文本模型),並通過使用工具執行某些作(如搜索 Web)。
爲了選擇要採取的行動,LLM Agent 有一個至關重要的組成部分:它的計劃能力。爲此,LLM 需要能夠通過思維鏈等方法進行 “推理” 和 “思考”。
使用這種推理行爲,LLM 代理將計劃採取必要的行動。
這種計劃行爲使代理能夠了解情況 (LLM)、計劃下一步 (計劃)、採取行動 (工具) 並跟蹤所採取的行動 (內存**)。**
根據系統的不同,您可以使用不同程度的自主權來編寫 LLM 代理。
根據你問的人,一個系統越是 “代理” 的,那麼 LLM 就越能決定它的行爲方式。
在接下來的部分中,我們將通過 LLM Agent 的三個主要組件(內存、工具和規劃**)介紹各種自主行爲方法**。
記憶
========
LLM 是健忘系統,或者更準確地說,在與它們交互時根本不執行任何記憶。
例如,當你向 LLM 提出一個問題,然後又提出另一個問題時,它不會記住前者。
我們通常將其稱爲短期記憶,也稱爲工作記憶,它充當(近)即時上下文的緩衝區。這包括 LLM 代理最近採取的行動。
但是,LLM 代理還需要跟蹤潛在的數十個步驟,而不僅僅是最近的操作。
這被稱爲長期記憶,因爲 LLM 代理理論上可能需要數十甚至數百個需要記住的步驟。
讓我們探討幾個爲這些模型提供內存的技巧。
短期記憶
啓用短期記憶最直接的方法是使用模型的上下文窗口,它本質上是 LLM 可以處理的標記數量。
上下文窗口往往至少有 8192 個令牌,有時可以擴展到數十萬個令牌!
大型上下文窗口可用於跟蹤完整的對話歷史記錄,作爲輸入提示的一部分。
只要對話歷史記錄適合 LLM 的上下文窗口,這就可以工作,並且是模仿記憶的好方法。然而,我們實際上不是真正記住對話,而是 “告訴” LLM 那次對話是什麼。
對於上下文窗口較小的模型,或者當對話歷史很大時,我們可以改用另一個 LLM 來總結到目前爲止發生的對話。
通過不斷總結對話,我們可以保持較小的對話規模。它將減少代幣的數量,同時只跟蹤最重要的信息。
長期記憶
LLM 代理中的長期記憶包括代理過去的作空間,該空間需要長時間保留。
啓用長期記憶的一種常見技術是將之前的所有交互、動作和對話存儲在外部向量數據庫中。
爲了構建這樣的數據庫,對話首先被嵌入到捕捉其含義的數字表示中。
構建數據庫後,我們可以嵌入任何給定的提示,並通過比較提示嵌入與數據庫嵌入來在向量數據庫中找到最相關的信息。
這種方法通常被稱爲檢索增強生成 (RAG)。
長期記憶還可能涉及保留來自不同會話的信息。例如,您可能希望 LLM 代理記住它在之前的會話中所做的任何研究。
不同類型的信息也可能與要存儲的不同類型的記憶相關。在心理學中,有許多類型的記憶需要區分,但 tures for Language Agents 論文將其中四種與 LLM 代理聯繫起來。2
這種差異化有助於構建代理框架。 語義內存(關於世界的事實)可能存儲在與_工作內存_(當前和最近的情況)不同的數據庫中。
工具
========
工具允許給定的 LLM 與外部環境(例如數據庫)交互或使用外部應用程序(例如運行自定義代碼)。
工具通常有兩個用例:獲取數據以檢索最新信息,以及採取行動(例如安排會議或訂購食物)。
要實際使用工具,LLM 必須生成適合給定工具的 API 的文本。我們傾向於期望字符串可以格式化爲 JSON,以便可以輕鬆地將其提供給代碼解釋器。
請注意,這不僅限於 JSON,我們也可以在代碼本身中調用該工具!
您還可以生成 LLM 可以使用的自定義函數,例如基本的乘法函數。這通常稱爲函數調用。
如果正確且廣泛地提示,某些 LLM 可以使用任何工具。工具使用是大多數當前 LLM 都能夠做到的。
訪問工具的更穩定方法是微調 LLM(稍後會詳細介紹)。
如果代理框架是固定的,則可以按給定的順序使用工具......
… 或者 LLM 可以自主選擇使用哪個工具以及何時使用。如上圖所示,LLM 代理本質上是 LLM 調用的序列(但具有自主選擇動作 / 工具 / 等)。
換句話說,中間步驟的輸出將反饋到 LLM 中以繼續處理。
工具成型機
工具使用是增強 LLM 功能並彌補其缺點的強大技術。因此,關於工具使用和學習的研究工作在過去幾年中迅速激增。
“使用大型語言模型進行工具學習:一項調查” 論文的註釋和裁剪圖片。隨着對工具使用的日益關注,(代理)LLM 有望變得更加強大。
這些研究的大部分內容不僅涉及提示 LLM 使用工具,還涉及專門訓練他們使用工具。
最早執行此作的技術之一稱爲 Toolformer,這是一個經過訓練的模型,用於決定調用哪些 API 以及如何調用。3
它通過使用和符號來指示調用工具的開始和結束。當給出提示時,例如 “什麼是 5 乘以 3?“,它會開始生成 Token,直到到達 Token。
之後,它會生成 Token,直到到達 Token,這表明 LLM 停止生成 Token。 →
然後,將調用該工具,並將輸出添加到到目前爲止生成的令牌中。
該符號表示 LLM 現在可以在必要時繼續生成。
Toolformer 通過仔細生成一個數據集來創建此行爲,該數據集包含模型可以訓練的許多工具用途。對於每個工具,都會手動創建一個 few-shot 提示,並用於對使用這些工具的輸出進行採樣。
根據工具使用、輸出和損失減少的正確性對輸出進行過濾。生成的數據集用於訓練 LLM 以遵守這種工具使用格式。
自 Toolformer 發佈以來,出現了許多令人興奮的技術,例如可以使用數千種工具的 LLM(ToolLLM4) 或可以輕鬆檢索最相關工具的 LLM (Gorilla5).
無論哪種方式,大多數當前的 LLM(2025 年初)都已經過訓練,可以通過 JSON 生成輕鬆調用工具(正如我們之前看到的那樣)。
模型上下文協議 (MCP)
工具是 Agentic 框架的重要組成部分,它允許 LLM 與世界交互並擴展其功能。但是,當您擁有許多不同的 API 時,啓用工具使用會變得很麻煩,因爲任何工具都需要:
-
手動跟蹤並饋送到 LLM
-
手動描述(包括其預期的 JSON 架構)
-
每當其 API 發生變化時手動更新
爲了使工具更容易爲任何給定的 Agentic 框架實現,Anthropic 開發了模型上下文協議 (MCP)。6MCP 對天氣應用程序和 GitHub 等服務的 API 訪問進行了標準化。
它由三個部分組成:
-
MCP 主機 — 管理連接的 LLM 應用程序(如 Cursor)
-
MCP 客戶端 — 與 MCP 服務器保持 1 對 1 連接
-
MCP 服務器 — 爲 LLM 提供上下文、工具和功能
例如,假設您希望給定的 LLM 應用程序彙總存儲庫中的 5 個最新提交。
MCP 主機(連同客戶端)將首先調用 MCP 服務器以詢問哪些工具可用。
LLM 收到信息,並可能選擇使用工具。它通過主機向 MCP 服務器發送請求,然後接收結果,包括使用的工具。
最後,LLM 接收結果並可以解析用戶的答案。
此框架通過連接到任何 LLM 應用程序都可以使用的 MCP 服務器,使創建工具變得更加容易。因此,當您創建 MCP 服務器以與 Github 交互時,任何支持 MCP 的 LLM 應用程序都可以使用它。
規劃
========
使用工具可以讓 LLM 增加其功能。它們通常使用類似 JSON 的請求進行調用。
但是,在代理系統中,LLM 如何決定使用哪種工具以及何時使用?
這就是規劃的用武之地。LLM 代理中的規劃涉及將給定的任務分解爲可作的步驟。
此計劃允許模型迭代地反映過去的行爲,並在必要時更新當前計劃。
我喜歡計劃制定時!
爲了在 LLM 代理中啓用規劃,讓我們首先看一下這項技術的基礎,即推理。
推理
規劃可作的步驟需要複雜的推理行爲。因此,LLM 必須能夠在採取下一步規劃任務之前展示這種行爲。
“推理”LLM 是那些傾向於在回答問題之前 “思考” 的 LLM。
我使用 “推理” 和“思考”這兩個術語有點鬆散,因爲我們可以爭論這是類似人類的思維,還是僅僅將答案分解爲結構化的步驟。
這種推理行爲可以通過大約兩種選擇來實現:微調 LLM 或特定的提示工程。
通過快速工程,我們可以創建 LLM 應該遵循的推理過程的示例。提供示例(也稱爲少拍提示)7) 是控制 LLM 行爲的好方法。
這種提供思維過程示例的方法稱爲 Chain-of-Thought ,可以實現更復雜的推理行爲。8
也可以在沒有任何示例(零鏡頭提示)的情況下啓用思路鏈,只需說 “讓我們一步一步的思考” 即可。9
在訓練 LLM 時,我們可以給它足夠數量的數據集,其中包括類似思想的例子,或者 LLM 可以發現自己的思維過程。
一個很好的例子是 DeepSeek-R1,其中獎勵用於指導思維過程的使用。
在 LLM 中啓用推理行爲很好,但不一定能夠規劃可行的步驟。
到目前爲止,我們關注的技術要麼展示推理行爲,要麼通過工具與環境交互。
例如,Chain-of-Thought 純粹專注於推理。
將這兩個過程結合起來的首批技術之一稱爲 ReAct(理性和行爲)。10
ReAct 通過仔細的提示工程來實現這一點。ReAct 提示描述了三個步驟:
-
思考 - 關於當前情況的推理步驟
-
操作 - 要執行的一組操作 (例如工具)
-
觀察 - 關於操作結果的推理步驟
提示本身非常簡單。
LLM 使用此提示(可用作系統提示)來引導其行爲在思想、行動和觀察的循環中工作。
它會繼續此行爲,直到作指定返回結果。通過迭代想法和觀察結果,LLM 可以規劃行動,觀察其輸出,並進行相應的調整。
因此,與具有預定義和固定步驟的代理相比,此框架使 LLM 能夠展示更多自主的代理行爲。
反思
沒有人,即使是擁有 ReAct 的 LLM,也能完美地完成每項任務。失敗是過程的一部分,只要你能反思這個過程。
ReAct 中沒有這個過程,這就是反思的用武之地。反思是一種使用語言強化來幫助代理從以前的失敗中學習的技術。11
該方法承擔三個 LLM 角色:
-
行爲者– 根據狀態觀察選擇和執行作。我們可以使用思維鏈或 ReAct 等方法。
-
評估員 – 對 Actor 生成的輸出進行評分。
-
自我反思 - 反映 Actor 採取的行動和 Evaluator 生成的分數。
添加了內存模塊以跟蹤作 (短期) 和自我反思 (長期),幫助代理從錯誤中學習並確定改進的行動。
一種類似且優雅的技術稱爲 SELF-REFINE,其中精煉輸出和生成反饋的操作被重複進行。12
同一個 LLM 負責生成初始輸出、優化輸出和反饋。
“SELF-REFINE: Iterative Refinement with Self-Feedback” 論文 的註釋圖。
有趣的是,這種自我反思的行爲,包括 Reflexion 和 SELF-REFINE,與強化學習非常相似,在強化學習中,根據輸出的質量給予獎勵。
多代理協作
===========
我們探索的單個代理有幾個問題:太多的工具可能會使選擇複雜化,上下文變得太複雜,並且任務可能需要專業化。
相反,我們可以看看 Multi-Agent,即多個 Agent(每個代理都可以訪問工具、內存和規劃)相互交互及其環境的框架:
這些多代理系統通常由專門的代理組成,每個代理都配備了自己的工具集,並由主管監督。主管管理代理之間的通信,並可以將特定任務分配給專門的代理。
每個代理可能具有不同類型的可用工具,但也可能有不同的內存系統。
在實踐中,有數十種 Multi-Agent 架構,其核心有兩個組件:
-
代理初始化 — 如何創建單個(專用)代理?
-
特工協調— 如何協調所有代理?
讓我們探索各種有趣的 Multi-Agent 框架,並重點介紹這些組件是如何實現的。
人類行爲的交互式模擬
可以說,最具影響力的,坦率地說,非常酷的多代理論文之一被稱爲 “生成代理:人類行爲的交互式模擬”。13
在本文中,他們創建了模擬可信的人類行爲的計算軟件代理,他們稱之爲 生成代理。
爲每個生成代理提供的配置文件使它們以獨特的方式運行,並有助於創建更有趣和動態的行爲。
每個代理都使用三個模塊(內存、規劃和****反射)進行初始化,這與我們之前看到的 ReAct 和 Reflexion 的核心組件非常相似。
內存模塊是此框架中最重要的組件之一。它存儲計劃和反射行爲,以及到目前爲止的所有事件。
對於任何給定的下一步或問題,都會檢索記憶並根據其新近度、重要性和相關性進行評分。得分最高的記憶將與代理共享。
生成代理的註釋圖:人類行爲的交互式模擬論文。
它們共同允許 Agent 自由地進行他們的行爲並相互交互。因此,代理編排非常少,因爲它們沒有特定的目標要努力。
交互式演示中的帶註釋圖像。
本文中有太多令人驚歎的信息片段,但我想強調他們的評估指標。14
他們的評估涉及將代理行爲的可信度作爲主要指標,由人工評估員對其進行評分。
生成代理的註釋圖:人類行爲的交互式模擬論文。
它展示了觀察、規劃和反思在這些生成代理的性能中是多麼重要。如前所述,沒有反思行爲的規劃是不完整的。
模塊化框架
無論您選擇什麼框架來創建多代理系統,它們通常由幾個要素組成,包括其配置文件、對環境的感知、內存、規劃和可用操作。1516
用於實現這些組件的常用框架是 AutoGen17、MetaGPT18 和 CAMEL19. 但是,每個框架處理每個代理之間的通信方式略有不同。
例如,使用 CAMEL 時,用戶首先創建問題並定義 AI 用戶和 AI 助手角色。AI 用戶角色代表人類用戶,將指導該過程。
之後,AI 用戶和 AI Assistant 將通過相互交互來協作解決查詢。
這種角色扮演方法支持代理之間的協作通信。
AutoGen 和 MetaGPT 有不同的溝通方式,但這一切都歸結爲這種溝通的協作性質。代理有機會相互交流和交談,以更新他們的當前狀態、目標和後續步驟。
在過去的一年裏,尤其是過去幾周,這些框架的增長呈爆炸式增長。
2025 年將是真正激動人心的一年,因爲這些框架不斷成熟和發展!
結論
========
我們的 LLM 代理之旅到此結束!希望這篇文章能更好地理解 LLM 代理是如何構建的。
要查看與 LLM 相關的更多可視化效果並支持此新聞通訊,請查看我寫的關於大型語言模型的書!
文章來源:馬騰 · 格羅特恩多爾斯
1 拉塞爾,S. J., & Norvig, P. (2016)。人工智能: 一種現代方法,皮爾遜。
2 西奧多 · 蘇默斯等人,《語言代理人的認知結構》。機器學習研究期刊(2023 年)。
3 Schick,Timo,等。"Toolformer: 語言模型可以自學使用工具。" 神經信息處理系統進展 36(2023):68339-68551。
4 秦玉佳,等. "Toolllm: 促進大型語言模型掌握 16000 多個真實世界 API。"arXiv 預印本 arXiv:2307.16789 (2023)。
5 Patil, Shishir G., 等. "猩猩: 與大規模蚜蟲相關的大型語言模型。" 神經信息處理系統進展 37(2024):12654-16565。
6 "介紹模型上下文協議"Anthropic,www.anthropic.com/news/model-context-protocol。於 2025 年 3 月 13 日查閱。
7 Mann,Ben,等。"語言模型是少見的學習者。"arXiv 預印本 arXiv:2005.14165 1 (2020):3。
8 Wei,Jason,等。“思維鏈提示在大型語言模型中引發推理。” 神經信息處理系統的進展 35(2022):24824-24837。
9 小島武等。"大型語言模型是零射擊推理者。" 神經信息處理系統的進展 35(2022):22199-22213
10 姚、順宇、趙、傑弗裏、餘、戴安、杜、南、沙夫蘭、伊扎克、納拉西姆漢、卡爾蒂克和曹、袁。ReAct: 語言模型中推理和行爲的協同作用。摘自 https://par.nsf.gov/biblio/10451467。學習表現國際會議(ICLR)。
11 Shinn, Noah, 等。"反思: 具有語言強化學習能力的語言代理人。" 神經信息處理系統進展 36(2023):8634-8652。
12 Madaan, Aman, 等。"自我完善: 帶有自我反饋的迭代完善。" 神經信息處理系統進展 36(2023):46534-46594。
13 Park, Joon Sung, 等。"生成代理: 人類行爲的交互模擬。" 第 36 屆 acm 用戶界面軟件與技術年會論文集。2023.
14 要查看一個酷炫的生成代理互動遊樂場,請點擊此鏈接: https://reverie.herokuapp.com/arXiv_Demo/
15 Wang, Lei, 等. 基於大型語言模型的自主代理調查。計算機科學前沿 18.6(2024):186345。
16 奚志恆,等. 大型語言模型代理的興起與潛力: 一項調查。科學中國信息科學 68.2(2025):121101。
17 吳慶雲,等。"Autogen: 通過多代理對話實現下一代 llm 應用程序。"arXiv 預印本 arXiv:2308.08155 (2023)。
18 洪思瑞,等. Metagpt: 多 Agent 協作框架的 Meta 編程。arXiv 預印本 arXiv:2308.00352 3.4 (2023):6。
19 李國豪等,《駱駝: 大語言模型社會中 “心靈” 的交際媒介探索》。神經信息處理系統進展 36(2023):51991-52008。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/Wx3f7bPDVMZwmxUEHLrt-g