LLM Research Findings - LLM Agent(大型語言模型代理)

本篇目標


什麼是 LLM Agent?

LLM Agent(大型語言模型代理)是指結合了 LLM(如 ChatGPT)與其他模組(例如規劃記憶工具使用)的系統。這類代理可以完成複雜任務,因為它們不只是聊天機器人,而是具備「執行計劃、查找資料、記住上下文」等能力的智慧體。


LLM 在 Agent 中的角色是什麼?

LLM 就像是代理的「大腦」,負責:

  • 理解任務或問題
  • 規劃解題流程
  • 呼叫外部工具(例如搜尋引擎、資料庫)
  • 整合資訊並產出答案

簡單任務:只用 LLM 就能完成

範例問題:

2023 年美國的每日平均熱量攝取是多少?

這類問題,如果 LLM 本身就知道答案,就可以直接回答。如果不知道,也可以使用一種稱為 RAG(檢索增強生成) 的技術,讓 LLM 從資料庫中找資料來輔助回答。


複雜任務:需要 LLM Agent

範例問題:

過去十年美國成人每日平均熱量攝取的趨勢是什麼?這對肥胖率有什麼影響?請提供趨勢圖。

這類問題就太複雜,單靠 LLM 或 RAG 系統可能不夠,因為需要:

  1. 拆解問題為子任務
  2. 查詢多個資料來源(如健康報告、API、資料庫)
  3. 繪製圖表來呈現趨勢
  4. 記住前面執行過的步驟

建構 LLM Agent 的模組

要解決這類複雜任務,我們可以建構一個擁有下列模組的 LLM Agent:

模組 功能說明
搜尋工具 可查找健康相關資訊
資料庫存取 包含公開或私人的健康數據
程式碼工具(Code Interpreter) 可根據資料繪製圖表或進行計算
規劃模組(Planning) 幫助代理分階段執行任務
記憶模組(Memory) 保留上下文與任務進度的狀態

LLM Agent 架構簡介(LLM Agent Framework)

組成模組

一個典型的 LLM Agent 框架,包含以下幾個核心組件

組件 說明
使用者請求 使用者輸入的問題或任務
代理(Agent/大腦) LLM 作為主控中樞,協調各模組運作
規劃模組(Planning) 幫助代理規劃下一步的行動
記憶模組(Memory) 記錄代理的歷史行為與上下文資料

Agent(代理 / 大腦)

LLM Agent 的核心是一個 大型語言模型(LLM),它扮演:

  • 任務協調者:決定解題策略、執行順序
  • 工具使用者:呼叫資料庫、API、繪圖工具等資源
  • 語言回應者:最終與使用者溝通並回應

如何啟動一個 Agent?

建立一個 Agent,通常會使用「提示模板(Prompt Template)」來設定其啟動規則,包括:

  • 能使用的工具與說明
  • 操作流程指引
  • 背景設定(可選)

Agent 的人格設定(Profile)

雖然不是必須,但你可以幫 Agent 設定一個人格(Profile),讓它在執行任務時有固定角色風格,例如:

  • 角色設定(如:數據分析師、健康顧問)
  • 語氣風格(如:溫柔、嚴謹)
  • 背景資訊(如:年齡、教育、地區)

這些設定會寫進 Prompt 內,幫助模型更好地完成任務。

根據 [Wang et al., 2023],建立 Agent 人格的方式有三種:

  • 手工設計(Handcrafted)
  • LLM 自動生成(LLM-generated)
  • 資料驅動(Data-driven)

LLM Agent 中的「規劃模組」(Planning)

無回饋規劃(Planning Without Feedback)

這種規劃方式會讓 LLM 在一開始就把整個任務「拆解成步驟」,依序解決。

  • 一次性規劃所有步驟
  • 透過 LLM 拆解任務
  • 常見技術:
    • Chain of Thought:單一路線推理
    • Tree of Thoughts:多路分支推理

Wang et al., 2023


有回饋規劃(Planning With Feedback)

當任務變得複雜、流程變長或有不確定情況,LLM 就需要能夠根據「過去的行動」進行反思與調整。

  • 能反思過去執行狀況
  • 修正行動計劃
  • 提升結果品質

常見策略:ReAct 與 Reflexion

ReAct 策略讓 LLM 在執行任務時交替進行:

  1. 思考(Thought)
  2. 行動(Action)
  3. 觀察(Observation)

這樣能根據「觀察結果」調整下一步。

下圖展示了 ReAct 的一個範例以及執行問答所涉及的不同步驟:


LLM Agent 的記憶模組(Memory Module)

在 LLM Agent 中,記憶模組的作用是:

  • 儲存代理的思考歷程、動作與觀察結果
  • 保留與使用者的互動內容
  • 協助代理回顧過去、累積經驗並做出更好的推理與決策

1. 記憶類型(Memory Types)

記憶可以分為以下兩大類:

短期記憶(Short-Term Memory)

  • 包含目前任務或對話上下文。
  • 通常透過「in-context learning」實現,直接寫在 prompt 內。
  • 有長度限制(context window),無法保留太久。

長期記憶(Long-Term Memory)

  • 包含代理過去的行為紀錄與想法。
  • 需要長時間保留與快速檢索。
  • 通常透過外部向量資料庫(vector store)實現,例如 FAISS、Weaviate。
  • 可以在需要時,將相關資料取回並注入 LLM。

2. 混合記憶(Hybrid Memory)

  • 整合短期與長期記憶。
  • 提升代理對於「長期推理」與「經驗累積」的能力。
  • 例如:短期記憶負責目前上下文,長期記憶負責擷取歷史紀錄、已學知識。

3. 記憶資料格式(Memory Formats)

在構建記憶模組時,可以選擇以下常見格式:

格式類型 說明與範例
自然語言(Text) 儲存為一般文字敘述,例如「昨天查過此資料」。
向量嵌入(Embedding) 將文字轉為向量,儲存於向量資料庫中,方便檢索。
結構化清單 用 key-value、任務清單等形式儲存結構化資訊。
資料庫(Database) 使用 SQLite、MongoDB 等資料庫來組織與查詢資訊。

組合格式範例

  • Ghost in the Minecraft (GITM) 使用 key-value 結構:
    • key:自然語言(如「任務:蓋房子」)
    • value:對應的向量嵌入資訊

4. 記憶與規劃的互補關係

模組 功能說明
記憶 儲存與回憶過去的狀態與紀錄
規劃 制定下一步行動策略

這兩個模組的協同合作,讓代理能根據過去經驗調整行動計劃,並對未來進行合理推理與預測。


LLM Agent 的工具模組(Tools Module)

在 LLM Agent 中,工具模組是讓代理能夠「執行動作」與「連接外部世界」的關鍵元件。


1. 工具是什麼?

工具(Tools)是 LLM Agent 可使用的一組功能或模組,能幫助它:

  • 查詢外部資訊(如搜尋 API、資料庫)
  • 計算與繪圖(如程式碼解譯器)
  • 執行特定任務(如翻譯、分類、計算)

2. 常見的工具類型

工具類型 範例與說明
搜尋引擎 Wikipedia API、Google Search、PubMed 查詢等
計算模組 Math Engine、Calculator、Symbolic Solver
程式執行器 Code Interpreter,可讓模型產生並執行 Python 程式碼
資料庫查詢 SQL/NoSQL 資料庫,用於查詢結構化資料
向量檢索 向量資料庫(如 FAISS)用於相似知識檢索
外部 AI 模型 圖像辨識、語音轉文字、分類器等(如 HuggingFace 模型)

3. 工具的作用與流程

當 Agent 使用工具時,會經過以下流程:

  1. LLM 判斷是否需要工具來完成某個子任務
  2. 發出 API 請求或執行工具(如程式碼執行)
  3. 接收觀察結果(Observation)
  4. 更新下一步推理與回應

4. 工具使用策略與代表方法

方法名稱 說明與特點
MRKL 模型結合專家模組(可為 LLM 或符號工具),如:計算機、天氣查詢
Toolformer 微調 LLM,使其能根據上下文自行插入合適的 API 呼叫
Function Calling 定義一組工具 API,並在回應流程中讓 LLM 主動選擇與使用
HuggingGPT 使用 LLM 作為任務規劃器,調度多個 AI 模型共同完成任務(如圖像分析 + NLP)

5. 實例說明

左側:使用者與輸入任務

使用者輸入任務:

你能描述這張圖片並且數一數裡面有多少物體嗎?

中央:LLM 作為控制器(LLM as Controller)

大型語言模型(如 ChatGPT)負責指揮與協調任務,流程如下:

  1. 任務規劃(Task Planning)
    分析使用者問題,拆解成以下子任務:
  • 圖片描述(Image Captioning)
  • 物件偵測(Object Detection)
  1. 模型選擇(Model Selection)
    根據子任務,自動挑選合適的模型:
  • facebook/detr-resnet-101(物件偵測)
  • nlpconnect/vit-gpt2-image-captioning(圖片描述)
  1. 任務執行(Task Execution)
    將子任務交給 HuggingFace 模型來執行。

  2. 回應生成(Response Generation)
    整合模型回傳結果,自然語言地回答使用者問題。

右側:HuggingFace 模型執行端

LLM 不直接執行任務,而是指揮以下 HuggingFace 上的模型:

  • facebook/detr-resnet-101:偵測圖中有幾個物體(如 zebra, giraffe)
  • nlpconnect/vit-gpt2-image-captioning:產生圖像語意描述

最終回應

A herd of giraffes and zebras grazing in a field.
偵測到五個物件:三隻斑馬、兩隻長頸鹿,並附上可信度分數與模型來源。


LLM Agent 應用總覽(LLM Agent Applications)


Figure source: Bran et al., 2023

ChemCrow 系統示意圖:LLM 自動化化學任務代理人

中央邏輯:推理循環(Chain of Thought Reasoning Loop)

  1. Thought:思考與規劃任務
  2. Action:選擇合適的工具
  3. Action Input:提供輸入給工具
  4. Observation:分析回傳資訊並修正策略

a. 專家設計的化學工具(User-defined Tasks)

  • 任務示例:規劃並執行一個驅蟲劑的合成任務
  • 可搭配 RoboRXN 等平台進行物理世界互動與合成

b. 分子工具與安全評估(Molecule Tools)

  • SMILES ↔ 分子量、價格、CAS
  • 分子相似性、結構修改、官能基分析
  • 專利查詢、名稱轉換
  • 安全性評估、爆炸性檢查

化學知識驅動的合成流程(Chemistry-informed Actions)

  1. Google 搜尋
  2. 逆合成分析(Retrosynthesis)
  3. 程序預測
  4. 自動化執行(如 DEET 合成)

通用與反應工具(General + Reaction Tools)

  • 文獻搜尋、網路搜尋、程式執行、專家問答
  • 反應名稱轉換、反應預測、合成規劃與執行

ChemCrow 展示了 LLM 與科學工具整合後能實現真正的自主實驗與合成執行。


接下來整理了大型語言模型代理(LLM Agents)在不同領域的實際應用案例,展示其強大的推理與常識理解能力。

常見的 LLM 代理人系統

  1. 心理健康與社會行為模擬

    • Ma et al. (2023):研究對話式代理在心理健康輔助上的成效,能幫助舒緩焦慮,但也可能生成有害內容。
    • Horton (2023):設計具備偏好與個性化的代理人,模擬人類經濟行為。
  2. 虛擬生活模擬與判決預測

    • Generative Agents / AgentSims:建構虛擬小鎮模擬多個類人代理的日常生活互動。
    • Blind Judgement:使用多個語言模型模擬法官決策,預測美國最高法院判決,準確率高於隨機猜測。
  3. 學術與科學研究輔助

    • Ziems et al. (2023):輔助研究者完成摘要撰寫、腳本設計與關鍵字提取等任務。
    • ChemCrow:整合化學資料庫,自主規劃並執行合成(如驅蟲劑、有機催化劑等)。
    • Boiko et al., 2023:結合多個 LLM 以實現科學實驗設計、規劃與執行自動化。
  4. 數學與教育應用

    • Math Agents:輔助進行數學探索、證明與解題。
    • EduChat / CodeHelp**:專為教育用途設計的教學與程式學習代理。
  5. 建築與空間設計

  6. 軟體工程與程式代理

  7. 資料庫與產業應用

    • D-Bot:LLM 驅動的資料庫管理代理,提供診斷與效能優化建議。
    • IELLM:應用於石油與天然氣產業挑戰的智慧代理。
    • Dasgupta et al. 2023:統一的具體化代理框架,整合任務規劃與推理。
    • OS-Copilot:建立泛用型代理,能操作作業系統中的網頁、終端機、檔案、多媒體與第三方工具等。

LLM Agent 工具與框架總覽


AutoGen capabilities; Figure Source: Redirecting...

Conversable Agent 圖解說明(AutoGen 系統能力總覽)

  1. Conversable Agent(可對話代理人)
    每個代理人具備自然語言對話能力,並可內建下列模組:

    • LLM(大型語言模型)
    • 使用者偏好或角色資訊
    • 工具與技能模組(如程式執行、資料查詢等)
  2. Agent Customization(代理人客製化)
    開發者可以根據不同需求,自訂代理人功能與能力。

    • 藍色代理人:具備 LLM 對話功能
    • 綠色代理人:整合 Python 腳本與人類專家知識
  3. Multi-Agent Conversations(多代理對話)
    支援多個代理人彼此協作、對話的能力,形式包含:

    • Joint Chat(平行式對話)
      所有代理人彼此共享訊息,進行平等對話與協作。

    • Hierarchical Chat(階層式對話)
      一個主代理人統籌指揮多個子代理人,形成任務分工與整合的層級架構。

  4. Flexible Conversation Patterns(靈活對話模式)
    自由組合上述對話方式,適用於多種協作任務情境。


以下是一些常見的工具與開源框架,可用來打造大型語言模型(LLM)代理人系統:

  • 開發框架與平台

    • LangChain:開發 LLM 應用與代理人的知名框架,支援記憶、工具鏈與流程設計。
    • AutoGPT:協助建構具自動規劃與任務執行能力的 AI 代理人。
    • Langroid:強調多代理人設計,讓不同代理人能透過訊息協作完成任務。
    • AutoGen:支援多個代理人對話協作的 LLM 應用開發框架。
    • OpenAgents:開源平台,方便部署與使用各類語言代理人。
    • AgentVerse:協助部署多個 LLM 代理人的工具集,適用於多種應用情境。
  • 工具整合與資料連接

    • LlamaIndex:幫助 LLM 連接自定資料來源(例如資料庫、文件系統)。
    • Agents:開源框架,支援短期/長期記憶、工具調用、網頁導航、多代理溝通、人機互動與符號控制等功能。
    • BMTools:使用工具擴展語言模型,並作為社群建構和共享工具的平台。
  • 任務導向應用工具

    • GPT Engineer:透過自然語言指令自動完成程式開發任務。
    • DemoGPT:自動化生成 Streamlit 應用的代理人。
    • GPT Researcher:可用於執行深度網路資料收集與研究任務的自主代理人。
    • crewAI:專為工程師設計的 AI 代理人框架,簡潔且功能強大。
    • Phidata:利用 function calling 快速構建 AI 助理功能。

LLM Agent 評估方式(LLM Agent Evaluation)


AgentBench benchmark to evaluate LLM-as-Agent on real-world challenges and 8 different environments. Figure source: Liu et al. 2023

AgentBench 是一個用來評估「LLM 作為代理人(LLM-as-Agent)」的基準系統,強調其在實際場景中的行動能力與跨環境適應能力。

左側:真實世界挑戰(Real-world Challenges)

以下是 AgentBench 模擬的任務示例,涵蓋多種場景與需求:

  • 作業系統(OS)操作

    • 在 Ubuntu Bash 中,將資料夾中所有檔案設為唯讀(除了我的)。
  • 知識查詢任務

    • 使用 Freebase API 查詢明尼蘇達出生的諾貝爾獎得主會什麼樂器?
  • 資料庫操作任務

    • 使用 MySQL API 與資料表,將分數超過 60 的學生標記為「通過」。
  • 圖形介面遊戲任務

    • 在 Aquawar 的 GUI 中,你是有四張寵物卡牌的玩家,要進行對戰。
  • 推理挑戰任務

    • 一個人點了龜湯,吃完自殺,為什麼?
  • 模擬環境中的任務

    • 在模擬的廚房中,請把鍋子放到餐桌上。
  • 網站預訂任務

    • 在航空公司官網上預定 7 月最後一週從北京飛往洛杉磯最便宜的機票。

右側:8 種環境類型(8 Distinct Environments)

AgentBench 涵蓋下列 8 種互動環境:

  1. Operating System(作業系統)
  2. Database(資料庫)
  3. Knowledge Graph(知識圖譜)
  4. Digital Card Game(數位卡牌遊戲)
  5. House Holding(家庭模擬任務)
  6. Lateral Thinking Puzzles(側向思考謎題)
  7. Web Shopping(網購任務)
  8. Web Browsing(網頁瀏覽與任務查找)

與評估 LLM 類似,評估 LLM 代理人也是一項具有挑戰性的工作。根據 Wang 等人(2023)的研究,常見的評估方法包括:

  1. 人工標註(Human Annotation)
    由人工評估者從不同面向直接對代理人的回應進行評分,例如:

    • 誠實性(Honesty)
    • 有幫助程度(Helpfulness)
    • 互動性(Engagement)
    • 公平性/無偏性(Unbiasedness)等
  2. 圖靈測試(Turing Test)
    由人類判斷者比較代理人與真人的回應結果,若難以分辨出哪個是代理人生成的,則表示其表現接近人類。

  3. 評估指標(Metrics)
    使用精心設計的評分標準來量化代理人的表現,例如:

    • 任務成功率(Task Success Metrics)
    • 類人程度(Human Similarity Metrics)
    • 執行效率(Efficiency Metrics)
  4. 評估協議(Protocols)
    定義如何使用評分指標的一套規則或流程,例如:

    • 真實環境模擬(Real-world Simulation)
    • 社交互動評估(Social Evaluation)
    • 多任務評估(Multi-task Evaluation)
    • 軟體測試流程(Software Testing)
  5. 評估基準(Benchmarks)
    目前已開發出多個用於評估 LLM Agent 表現的標準測試平台,包括:
    ALFWorld, IGLU, Tachikuma, AgentBench, SocKET, AgentSims
    ToolBench, WebShop, Mobile-Env, WebArena, GentBench, RocoBench
    EmotionBench, PEB, ClemBench, E2E

這些基準涵蓋多種任務與應用領域,例如虛擬環境互動、情緒理解、工具使用能力等。


LLM Agents 所面臨的挑戰與限制

儘管 LLM-based agents 展現出強大的潛力,但目前仍處於早期發展階段,尚有許多技術與實務挑戰需要克服,包括以下幾項核心問題:

1. 角色扮演能力(Role-playing capability)

LLM agents 通常需要「扮演某個角色」才能完成特定領域任務。

  • 若模型對該角色認知不足,可能需對 LLM 進行微調(fine-tuning),使用非典型角色或心理特徵的資料集來強化對角色的理解。

2. 長期規劃與上下文限制(Long-term planning and context length)

  • LLM 難以進行長時間任務規劃,容易因早期錯誤導致後續任務失敗。
  • 多數 LLM 的上下文長度有限,限制了 agent 在短期記憶與推理過程中的能力。

3. 泛化的人類價值對齊(Generalized human alignment)

  • 很難讓 agent 完全對齊於多元人類價值觀。
  • 潛在解法:設計更進階的 prompting 策略來調整 LLM 行為(即 realignment)。

4. Prompt 穩定性與可靠性(Prompt robustness and reliability)

  • LLM agents 涉及記憶、規劃等多個模組,每個模組可能需要不同 prompt。
  • 稍微改動 prompt 就可能導致表現不穩。
  • 常見解法包括:
    • 手動試誤調整 prompt 元件。
    • 使用自動優化技術(Auto Prompt Tuning)。
    • 讓 GPT 自動產生更佳的 prompt。
  • 另外,LLM 常見的「幻覺現象(hallucination)」也會出現在 agents 上,尤其當外部資料來源不一致時更易發生。

5. 知識邊界控制(Knowledge boundary)

  • 很難控制 LLM 的知識使用範圍。
  • 內部知識可能導致偏誤,或 agent 利用使用者未掌握的知識,降低互動透明度與可預測性。

6. 效率與成本問題(Efficiency)

  • 多代理任務可能頻繁調用 LLM,導致:
    • 效率下降(依賴模型推理速度)。
    • 成本增加(高頻率 API 調用或多 agent 架構帶來的資源開銷)。

References


目錄:LLM Research Findings - 簡介

上一篇:LLM Research Findings - 簡介
下一篇:LLM Research Findings - RAG在大型語言模型中的應用