硬核,AI Agents 全棧技術框架綜述與未來

LLM Agents 正在變得廣泛傳播,但它們並非輕易就能創造出來,需要許多組件協同工作。以 40+ 張圖解,探索 LLM Agents 的主要組件、Multi-Agent 框架、以及 MCP 等全棧技術要點,比如:

什麼是 LLM Agent?

AI Agent 是任何可以通過傳感器感知其環境並通過執行器對環境採取行動的東西。

——羅素和諾維格,《人工智能:一種現代方法》(2016 年)

Agents 與環境互動,通常包括幾個重要組件:

這個框架適用於所有與各種環境互動的代理,比如與物理環境互動的機器人或與軟件互動的 AI Agents。

可以稍微擴展這個框架,使其適用於 “增強型 LLM”。

使用 “增強型”LLM,Agent 可以通過文本輸入觀察環境,並通過使用工具執行某些行動。

爲了選擇要採取哪些行動,LLM Agent 有一個關鍵組件:它的計劃能力。爲此,LLM 需要能夠通過鏈式思考等方法進行 “推理” 和“思考”。

利用這種推理行爲,LLM Agent 將計劃出要採取的必要行動。

這種計劃行爲使 Agent 能夠理解情況(LLM)、計劃下一步(計劃)、採取行動(工具)並跟蹤已採取的行動(記憶)。

根據系統,你可以擁有不同程度自主性的 LLM Agents。

一個系統越 “agentic”,LLM 就越能決定系統的行動方式。

將通過 LLM Agent 的三個主要組件:記憶、工具和計劃,來探索各種自主行爲的方法。

記憶

LLM 是健忘的系統,或者更準確地說,在與它們互動時,它們根本不進行任何記憶。

例如,當你問 LLM 一個問題,然後又接着問另一個問題時,它不會記得前者。

我們通常將其稱爲短期記憶,也稱爲工作記憶,它作爲(近乎)即時上下文的緩衝區。這包括 LLM 代理最近採取的行動。

然而,LLM 代理還需要跟蹤可能多達數十步的行動,而不僅僅是最近的行動。

這被稱爲長期記憶,因爲 LLM 代理理論上可能需要記住多達數十步甚至數百步。

短期記憶

實現短期記憶最直接的方法是使用模型的上下文窗口,這本質上是 LLM 可以處理的 token 數量。

較大的上下文窗口可以用來跟蹤完整的對話歷史,作爲輸入提示的一部分。

對於上下文窗口較小的模型,或者當對話歷史較大時,可以改用另一個 LLM 來總結到目前爲止發生的對話。

長期記憶

LLM Agents 的長期記憶包括需要長期保留的 Agents 過去的行動空間。

實現長期記憶的一個常見技術是將所有之前的互動、行動和對話存儲在一個外部向量數據庫中。

在構建數據庫之後,可以通過 RAG 方式檢索相關信息。

工具

工具允許給定的 LLM 要麼與外部環境(如數據庫)互動,要麼使用外部應用程序(如運行自定義代碼)。

工具通常有兩種用例:獲取數據以檢索最新信息和採取行動,比如安排會議或點餐。

要實際使用一個工具,LLM 必須生成適合給定工具的 API 的文本。我們通常期望的是可以格式化爲 JSON 的字符串,以便可以輕鬆地輸入到代碼解釋器中。

Toolformer

工具使用是一種強大的技術,可以增強 LLM 的能力並彌補它們的不足。因此,關於工具使用和學習的研究在過去幾年中迅速增加。

最早實現這一目標的技術之一被稱爲 Toolformer,這是一個訓練用於決定調用哪些 API 以及如何調用的模型。

模型上下文協議(MCP)

工具是具代理性框架的重要組成部分,允許 LLM 與世界互動並擴展其能力。然而,當你有許多不同的 API 時,啓用工具使用變得很麻煩,因爲任何工具都需要:

爲了使工具更容易在任何給定的具代理性框架中實現,Anthropic 開發了模型上下文協議(MCP)。MCP 爲天氣應用和 GitHub 等服務標準化了 API 訪問。

它由三個組件組成:

例如,假設你希望某個 LLM 應用程序總結你倉庫中的最新 5 次提交。

MCP 主機(與客戶端一起)將首先調用 MCP 服務器,詢問有哪些工具可用。

LLM 收到信息後,可能會選擇使用某個工具。它通過主機向 MCP 服務器發送請求,然後接收結果,包括所使用的工具。

最後,LLM 收到結果,並可以向用戶解析答案。

計劃

工具使用使 LLM 能夠增強其能力。它們通常通過類似 JSON 的請求調用。

但是,LLM 在具代理性的系統中如何決定使用哪個工具以及何時使用呢?

這就是計劃的作用。LLM 代理中的計劃涉及將給定任務分解爲可操作的步驟。

推理

計劃可操作步驟需要複雜的推理行爲。因此,LLM 必須能夠在規劃任務的下一步之前展示這種行爲。

“推理型”LLM 是那些傾向於在回答問題之前 “思考” 的 LLM。

這種推理行爲可以通過大致兩種選擇來實現:微調 LLM 或特定的提示工程。

通過提示工程,可以創建 LLM 應該遵循的推理過程的例子。提供例子是引導 LLM 行爲的好方法。

在訓練 LLM 時,可以給它足夠數量包含類似思維的例子的數據集,或者 LLM 可以發現自己的思考過程。例如 DeepSeek-R1,其中使用獎勵來引導使用思考過程。

推理與行動

在 LLM 中啓用推理行爲很好,但並不一定使其能夠規劃可操作的步驟。

到目前爲止關注的技術要麼展示推理行爲,要麼通過工具與環境互動。

例如,鏈式思考純粹關注推理。

將這兩個過程結合起來的最早技術之一被稱爲 ReAct(推理與行動)。

ReAct 通過精心設計的提示來實現這一點。ReAct 提示描述了三個步驟:

LLM 使用這個提示來引導其行爲以循環的方式進行思考、行動和觀察。

反思

沒有人,即使是具有 ReAct 的 LLM,也並非每個任務都能完美完成。失敗是過程的一部分,只要你能反思這個過程就行。

這個過程在 ReAct 中缺失,而 Reflexion 正是填補這一空白的地方, 利用 verbal reinforcement 幫助代理從之前的失敗中學習的技術。

假設了三個 LLM 角色:

Multi-Agent 協作

探索的 Single-Agent 存在幾個問題:工具太多可能會使選擇複雜化,上下文變得過於複雜,任務可能需要專業化。

相反,可以轉向 Multi-Agents,即多個 Agents 相互互動以及與它們的環境互動的框架:

這些 Multi-Agent 系統通常由專業化的代理組成,每個 Agent 都配備了自己的一套工具,並由一個主管監督。主管管理 Agent 之間的通信,並可以爲專業化的代理分配特定的任務。

每個 Agent 可能有不同的工具類型可用,也可能有不同的記憶系統。

在實踐中,有幾十種 Multi-Agent 架構,其核心有兩個組成部分:

人類行爲的交互式仿真

可以說最具影響力且坦率地說非常酷的多代理論文之一是 “Generative agents: Interactive simulacra of human behavior”。創建了可以模擬可信人類行爲的計算軟件代理,他們將其稱爲生成性代理。

每個生成性代理被賦予的檔案使它們以獨特的方式行事,並有助於創造更有趣和動態的行爲。

每個 Agent 都用三個模塊(記憶、計劃和反思)初始化,非常類似於我們之前看到的 ReAct 和 Reflexion 的核心組件。

它們共同允許代理自由地進行行爲並相互互動。因此,Agent 之間幾乎沒有協調,因爲它們沒有特定的目標需要努力實現。

模塊化框架

無論你選擇哪種框架來創建 Multi-Agent 系統,它們通常由幾個要素組成,包括其檔案、對環境的感知、記憶、計劃和可用行動。

流行框架是 AutoGen、MetaGPT 和 CAMEL。每個框架在 Agent 之間的通信方式上略有不同。但歸根結底,它們都依賴於這種協作性的溝通。Agent 有機會相互交流,以更新它們的當前狀態、目標和下一步行動。

最近幾周,這些框架的增長呈爆炸式增長。

2025 年將是令人興奮的一年,AI Agents 將迎來更多的落地,什麼時候入局 AI Agents 都不晚!

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/ymkLEvBJuKZW5a_bZZbC0A