当前位置: 欣欣网 > 码农

用多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感兴趣,老渡后续会继续更新复杂功能, 公众号 持续分享。