清華智能體宇宙火了,AI模擬“囚徒困境”等實驗只需幾行簡單配置
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
可以輕松模擬社會實驗的多智能體宇宙來了——
它由清華大學聯合北郵、微信團隊推出,目前已在GitHub攬獲1.1k標星。
名字簡單粗暴,就叫“AgentVerse”。
劃重點:這個環境專門針對大語言模型開發,也就是智能體們可以運用LLM的能力完成任務。
而只需幾行簡單配置,你想讓智能體們在什么環境出生,就能在什么環境成長。
比如“囚徒困境”:
獄警向兩個嫌疑人agent提出一個兩難挑戰,讓他們自己決定是合作互惠還是背叛。
比如“NLP課堂”:
教授通過文字形式授課,學生agent通過有問題時舉手、被點名之后方可發言提問的方式,一步步學會知識。
甚至,還能模擬簡單的寶可夢游戲…而且還是用戶可以直接參與進去的那種:
(通過輸入文本進行對話)
要啥有啥,全憑你自己發揮。
作者也表示,這個項目的初衷就是簡化大伙兒用LLM構建自定義多智能體環境的過程,讓大家能夠專注于研究本身。
目前,AgentVerse的論文已經發布,源碼也在路上了。
趕緊來瞧瞧。
4個階段、5大基礎組件
正如AgentVerse專為大模型開發,如今人類訓練智能體的效果正是在各種LLM的加持下,跟著進步了很多,比如更強的泛化能力。
不過,就和現實世界一樣,即使有LLM助力,學會合作也是這些智能體們必須要經歷的一件事。
在此,作者提出了多智能體環境構建框架AgentVerse。
它的工作流程模擬了人類合作解決問題的過程,一共分為4個階段:
1、專家招募(Expert Recruitment)。
根據當前問題解決進度調整由那些agent來處理任務。
2、討論合作策略(Collaborative Decision)。
由上一階段招募的agent討論解決問題所需的分工,需要達成共識。
3、執行(Action Execution)
agent們與環境進行交互,完成任務。
4、評估(Evaluation)
任務完成后,此模塊將當前狀態與期望目標進行比對,如果沒有達到預期就發送反饋獎勵重新回到第一步驟。
如開頭提到,AgentVerse框架的亮點之一就是可以實現自定義環境配置。
那么如何自定義?
方法是通過5個基礎組件。
每一個組件代表的其實是一個規則,組合不同的規則就可以搭建出不同的環境,從而方便研究人員研究不同條件下智能體的行為。
具體來看,這5個組件分別是:
- 描述器(Describer),它為每個agent提供每次環境的描述。通過自定義該組件,你就能根據你自己的特定要求來構建環境。
- 順序(Order),它定義agent在環境中采取操作的順序,可以采用幾個默認選項,比如random(隨機)、sequential(按順序)和concurrent(所有agent在每個回合中都采取行動),也可以自定義。
- 選擇器(Selector),有時agent會生成一些無效信息,它就用于過濾這些信息,選擇有效內容。
- 更新器(Updater),用于更新每個agent的內存。這是因為有時某個agent的響應不應被所有agent看到(比如不在一個房間),它的作用就是在每個響應發生后,僅更新每個agent應看到內容。
- Visibility(可見性),用于維護agent列表,每當有agent移動到另一個房間或者產生其他變化時,它會向所有agent更新列表。
除了這5個基礎組件,AgentVerse還有一個非?;A的元素:agent。
目前,系統提供兩種類型:一個是ConversationAgent,一個是ToolAgent,含義如其名。
當然,通過繼承BaseAgent類我們還能定制第三種,以及更多類型代理。
如何配置?
手動clone或者pip命令即可安裝AgentVerse。
需要注意的是,得準備一個OpenAI API密鑰,以及安裝BMTools(可選,如果你需要它提供的各種擴展工具)。
如上準備就緒后:
1、我們可以直接運行他們搭好的例子。
除了開頭展示的“囚徒困境”、NLP課堂、寶可夢游戲,還有軟件設計場景(1個寫代碼的agent、1個測試agent、1個審查agent)、數據庫管理場景和文本評估場景。
值得注意的是,在NLP課堂這個主題上,作者提供了非常多的環境可選:
除了開頭展示的那個可進行提問操作的case,還有可以發起小組討論、學生在聽課時使用必應進行搜索、用WolframAlpha API玩算術游戲等等。
2、自己動手搭一個。
自己動手可以先來一個簡單的,比如構建一個只有1名教授、1名學生和1個助教的課堂環境。
首先創建任務目錄并配置環境,也就是上面介紹的5個基礎組件配置:
然后是配置agent,下面是教授的示例:
可以看到agent類型、名字、所用LLM類型等信息。
最后編寫輸出解析器,服務gent的響應,比如可以讓模型在提示模版中以下格式輸出:
以上就是一個簡單教室環境的大概流程了。
以看到步驟并不復雜,當然,具體操作還是參閱項目原文。
如果你覺得這種太簡單,也可以定制一個更復雜的。但具體教程還沒出(據說很快了)。
從作者提前透露的信息來看,大體也還是圍繞五個基本組件、環境本身和agent來進行。
另外,AgentVerse未來還會新增一些強大功能,比如支持本地LLM、添加文檔等等,可以期待。
One More Thing
在論文中,作者也對AgentVerse環境構建的多智能體協作任務中,agent出現的一些社會行為進行了研究。
這些行為包括:
(1)積極行為,比如在我的世界游戲中,提出和別的agent一起收集甘蔗加快造紙進度,或者幫還沒完成毛皮收集的人一起收集;
(2)消極行為,比如從眾、搞破壞。
在此,作者也討論了一些可能的策略,用于復用積極行為、摒棄消極行為,最終提高多智能體間的合作能力。
感興趣的讀者可以進一步查閱論文。
項目地址:https://github.com/OpenBMB/AgentVerse
論文地址:https://arxiv.org/abs/2308.10848