當前位置: 妍妍網 > 碼農

用多Agent協作的智慧體,開發遊戲,高難度高,純手搓,起飛了

2024-06-03碼農

大家好,我是老渡。

最近一直在研究 Agent 智慧體的相關東西,看到有網友分享用多Agent開發了【誰是臥底】的遊戲。

我特別感興趣,想研究一下。但比較遺憾,作者並沒有開放 Agent 的配置。 所以,老渡就自己做 了一個, 實作了完整的功能,今天給朋友們分享一下。

使用多Agent模式的核心原因,可以讓AI模擬多位玩家,遊戲可玩性更強,遊戲過程更可控。

Agent是用扣子(coze)實作的,所用到的大模型以Kimi為主。下面是整體的配置

這裏面大部份 Agent 都要呼叫工作流,完成更復雜的任務。

還不熟悉 Agent 開發的朋友,可以看我之前的文章。

下面簡單介紹下每個Agent。

遊戲初始化 Agent,用來隨機生成臥底,同時生成臥底和平民的詞語。

這是 Agent 呼叫的工作流—— undercover_init ,這個工作流的節點一共有三類

  • 程式碼節點 :主要用來處理數據格式問題,比如:隨機挑選臥底、處理大模型生成的詞語。程式碼量都只有幾行,非常簡單。

  • 大模型節點 :主要是用來生成臥底和平民的詞語

  • 變量節點 :將臥底編號、詞語儲存到變量中,以便後面Agent讀取

  • 來執行一下試試

    人類玩家發言 Agent,接收使用者對詞語的描述,並將描述存入變量。

    AI玩家發言 Agent,呼叫工作流,用AI模擬兩位玩家進行發言。

    每一位AI玩家發言之前,都要參考之前的玩家,即保證發言不重復,同時又能隱藏自己的身份。

    人類玩家投票 Agent, 對臥底投票,並保存投票結果。

    AI玩家投票 Agent,AI玩家對臥底投票,並顯示最終的投票結果。

    遊戲結果 Agent,根據投票結果,判定勝負

    這裏只有3個使用者,是最基礎版本,所以一輪定勝負。

    這個完成後,我們就很容易擴充套件出多名玩家。若第一輪投票,臥底未出局,則踢出被投的玩家,然後跳轉到前面的 Agent 繼續遊戲。

    這個遊戲看似簡單,但從構思到實作,斷斷續續也花了老渡一周的時間。

    開發這個遊戲,老渡最想跟朋友們分享的是,AI輸出的結果是有不確定性的,要根據實際情況用不同模型,調參數。

    如果大家對【誰是臥底】這個Agent感興趣,老渡後續會繼續更新復雜功能, 公眾號 持續分享。