Agent 的基本架構
根據《A survey on large language model based autonomous agents》智能體綜述文章,Agent 核心是需要具備以下幾個核心特性與模塊:
-
Profile 模塊: Profile 模塊的目的主要是做 Agent 角色認定,回答的核心問題有: 我是誰?我在哪?我該幹什麼?無論是在當前的人與人之間的協同,還是人與智能體的協同,亦或是智能體與智能體間的協同。
-
Memory 模塊: Memory 即記憶模塊,主要用來存儲、獲取、檢索信息。
-
Planning 模塊: 制定計劃,可以根據過去的行爲與目標動態規劃下一步的行動。
-
Action 模塊: 執行模塊,執行智能體的具體決策。
Profile 模塊
角色模塊的目的是識別代理的角色。代理通常通過承擔特定角色來執行任務,如程序員、教師和領域專家。角色模塊通過將代理的配置文件寫入提示中,影響 LLM 的行爲。代理配置文件通常包括基本信息(如年齡、性別和職業)、心理學信息(反映代理的個性)和社交信息(詳細說明代理之間的關係)。
角色生成策略:
-
手工方法:代理配置文件由人工指定。例如,Generative Agent 通過姓名、目標和與其他代理的關係等信息描述代理。
-
LLM 生成方法:代理配置文件由 LLMs 自動生成。例如,RecAgent 首先創建幾個種子配置文件,然後利用 ChatGPT 生成更多配置文件。
-
數據集對齊方法:代理配置文件從現實世界數據集中獲取。例如,[29] 根據美國國家選舉研究(ANES)中參與者的背景信息爲 GPT-3 分配角色。
Memory 模塊
記憶模塊在代理架構設計中起着非常重要的作用。它存儲從環境中感知到的信息,並利用記錄的記憶來促進未來的行動。記憶模塊幫助代理積累經驗、自我進化,並以更一致、合理和有效的方式行事。
記憶結構:
-
統一記憶:僅模擬人類的短期記憶,通常通過上下文學習實現。例如,RLP 和 SayPlan 使用上下文信息作爲短期記憶。
-
混合記憶:明確模擬人類的短期和長期記憶。例如,Generative Agent 和 AgentSims 使用向量數據庫實現長期記憶。
記憶格式:
-
自然語言:記憶信息直接使用自然語言描述。例如,Reflexion 和 Voyager 使用自然語言存儲體驗反饋。
-
嵌入:記憶信息被編碼爲嵌入向量。例如,MemoryBank 和 ChatDev 將對話歷史編碼爲向量。
-
數據庫:記憶信息存儲在數據庫中。例如,ChatDB 和 DB-GPT 使用數據庫作爲記憶模塊。
-
結構化列表:記憶信息被組織成列表。例如,GITM 使用層次樹結構存儲子目標的動作列表。
記憶操作:
-
記憶讀取:從記憶中提取有意義的信息以增強代理的行動。例如,Generative Agent 和 GITM 使用近期性、相關性和重要性評分函數提取信息。
-
記憶寫入:將感知到的環境信息存儲在記憶中。例如,ChatDB 和 RET-LLM 使用不同的策略處理記憶重複和溢出問題。
-
記憶反思:模擬人類反思能力,生成更抽象、複雜和高層次的信息。例如,Generative Agent 和 GITM 通過反思生成高層次見解。
Planning 模塊
規劃模塊旨在賦予代理類似人類的能力,即將複雜任務分解爲更簡單的子任務並分別解決。規劃模塊根據代理在規劃過程中是否可以接收反饋分爲兩類:無反饋規劃和有反饋規劃。
無反饋規劃:
-
單路徑推理:最終任務被分解爲幾個中間步驟,每個步驟只導致一個後續步驟。例如,Chain of Thought(CoT)和 Zero-shot-CoT 使用推理步驟作爲提示。
-
多路徑推理:推理步驟被組織成樹狀結構,每個中間步驟可能有多個後續步驟。例如,Self-consistent CoT(CoT-SC)和 Tree of Thoughts(ToT)使用樹狀推理結構生成計劃。
-
外部規劃器:利用外部規劃器生成計劃。例如,LLM+P 和 LLM-DP 使用外部規劃器處理 PDDL。
有反饋規劃:
-
環境反饋:從環境中獲取反饋以影響代理的未來行爲。例如,ReAct 和 Voyager 使用環境反饋進行計劃。
-
人類反饋:直接與人類互動以獲取反饋。例如,Inner Monologue 使用人類反饋調整其行動策略。
-
模型反饋:利用預訓練模型生成反饋。例如,Reflexion 和 SelfCheck 使用模型反饋改進其推理過程。
Action 模塊
行動模塊負責將代理的決策轉化爲具體的結果。該模塊位於最下游位置,直接與環境交互。行動模塊受到角色、記憶和規劃模塊的影響。
行動目標:
-
任務完成:代理的行動旨在完成特定任務。例如,Voyager 和 ChatDev 中的代理完成任務。
-
溝通:代理的行動旨在與其他代理或真實人類溝通。例如,ChatDev 和 Inner Monologue 中的代理進行溝通。
-
環境探索:代理的行動旨在探索不熟悉的環境。例如,Voyager 中的代理探索未知技能。
行動生成:
-
通過記憶回憶行動:行動是根據當前任務從代理記憶中提取信息生成的。例如,Generative Agent 和 GITM 使用記憶信息指導行動。
-
通過計劃跟隨行動:代理按照其預先生成的計劃採取行動。例如,DEPS 和 GITM 中的代理遵循計劃。
行動空間:
-
外部工具:利用外部 API、數據庫和外部模型擴展行動空間。例如,HuggingGPT、ChatDB 和 ChemCrow 使用外部工具。
-
內部知識:依賴 LLMs 的內部知識指導行動。例如,DEPS、ChatDev 和 Generative Agent 使用 LLMs 的規劃、對話和常識理解能力。
行動影響:
-
改變環境:代理通過行動直接改變環境狀態。例如,GITM 和 Voyager 中的代理改變環境。
-
改變內部狀態:代理採取的行動改變代理本身。例如,Generative Agent 和 SayCan 中的代理更新記憶。
-
觸發新行動:一個代理行動觸發另一個行動。例如,Voyager 中的代理在收集到所有必要資源後建造建築物。
通過上述模塊的協同作用,基於 LLM 的自主代理能夠模擬人類行爲,有效執行多樣化任務。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/Z5oYglZ01RlDUuR6E4qHnQ