目录
背景
从 23 年开年以来,大模型引爆了各行各业。就笔者经历来看,去年比较出圈的是各类文生图的应用,比如 stable diffusion。网上可以看到各类公众号不遗余力地解释其背后的原理和应用。另外一条平行线,则是文生文的场景。受限于当时当时 LLM(大预言模型)的能力,其应用场景相当受限。不过,进入到 24 年以来,GPT4, Claude3, LLaMa3, Mistral 等大模型的能力开始不断增强,将各路榜单分数不断提高。LLM 生态同时也在快速进化,各种“智能体”开始屡见不鲜。
斯坦福大学吴恩达教授也于前不久之前发表了著名的智能体“四种设计模式”:反思,工具使用,规划和多智能体协作。在目前大模型的能力前提下,往往利用良好的“流程设计”可以做到“三个臭皮匠胜过一个诸葛亮”的效果。要做到这样效果,有别于传统方法,智能体工作流不是让 LLM 直接生成最终输出,而是多次提示(prompt)LLM,使其逐步构建更高质量的输出。
在这篇文章中,笔者利用了上述思想,将展示如何使用“智能体”技术,从头开始搭建一个“狼人杀”游戏服务器端。
狼人杀
既然是《狼人杀》游戏,我们需要知道 LLM 对它的了解程度如何?这里笔者对它提了几个问题,发现它对于 LLM 是有基本的了解的。这可能是这个游戏已经存在了很多年,在互联网上有大量相关的语料,因此在训练的时候 LLM 对它就有天然的认知。
![]() |
不过这也带来了新的问题:
- 这么多版本,如何让 LLM 在游戏过程中保持和人类一致的认知?
- 游戏中每个角色都是有自己的设定和功能的,如何写提示词,才能让 LLM 代入角色?
- 游戏中同阵营角色如何进行配合?
- 作为 LLM 驱动的游戏,它和传统游戏开发有什么不一样?
- 市面上那么多的 LLM,哪一款能真正地将游戏玩下去?
- 等等
GenAI 技术
下面笔者会介绍一些目前比较火热的 GenAI 技术,同样也是《狼人杀》游戏用到的技术。不过由于这块涉及内容很多,受限于篇幅无法全部展开,请谅解。
LLM Tuning
对于模型微调手段,通常有如下四种手段:
- 提示词工程(PE):通过提示词模版的方式引导 LLM 的输出
- 检索式增强(RAG):通过向量数据库来存储私有知识库,减少 LLM 的幻觉
- 微调(Fine-Tuning):通过向 LLM 训练中增加私有词条,让 LLM 输出带有一定偏向性
- 预训练(Pre-Traning):从头训练一个新模型
提示词工程
常用的提示词工程技术有(这里主要介绍在游戏中使用到的方法):
- zero-shot/few-shot:在没有或者少量样本情况下引导 LLM 进行输出
- CoT/XoT:利用大模型的推理能力,一步一步输出中间过程来提高提示词效果。
- ReAct:让 LLM 逐步思考观察,并且使用工具来获取额外信息,循环前面过程来引导出可信结果
- Reflextion:它由三个不同的模型组成:Actor、Evaluator 和 Self-Reflection。Actor 模型使用大型语言模型(LLM)来生成文本和动作,并在环境中接收观察结果。Evaluator 模型负责评估 Actor 产生的轨迹的质量,并计算一个奖励分数以反映其性能。Self-Reflection 模型则对反馈内容进行反思,为后续流程提供有价值的反馈信息。这三个模型共同协作,在任务中不断迭代优化,从而提高决策能力。
接下来可以看,如何在《狼人杀》游戏中使用这些提示词技巧。
游戏规则设定
通过以下的规则设定传入 LLM 后,我们可以限定住游戏的版本,并且将一些常用的策略告知大模型,也能有助于 LLM 进行游戏。
## 游戏分坏人和好人两大阵营,
- 坏人阵营只有狼人,好人阵营有女巫,预言家和村民
- 阵营配置:{formation}
- 坏人阵营:消灭所有好人,或者保证坏人数目大于好人数目
- 好人阵营:女巫和预言家要利用自己特殊能力保护村民消灭所有坏人
## 游戏分白天和夜晚两个阶段交替进行:
- 夜晚:所有玩家闭眼,不能发言,行动不会暴露身份
-- 狼人的行动必须统一投票淘汰一名玩家
-- 预言家必须查验一名玩家身份
-- 女巫必须使用一种药水
-- 普通村民晚上无法行动和发言
- 白天:所有玩家睁眼, 分为讨论和投票两环节
-- 讨论环节,每个玩家必须参与讨论发言
-- 投票环节,每个玩家必须投票或者放弃
## 策略:
- 村民:多观察大家发言,说出站队理由,根据场上局势和信息来进行判断
- 女巫:只有一瓶毒药和一瓶解药,可以暗示但需要隐藏自己身份
-- 毒药可以立马淘汰一名玩家
-- 解药可以让淘汰的玩家复活
- 预言家:发言要流利,多说细节。第二天不要跳,第三天可以跳
- 狼人:
-- 悍跳预言家:发言强势,制造混乱,模仿预言家发言
-- 普通狼人:发言精简,根据情况站队,必要时踩自己队友
-- 自刀狼人1:狼人夜晚自刀,骗女巫解药,若女巫不救,则狼人团队减1,若女巫救人,则可坐实好人身份
-- 自刀狼人2: 和真预言家一起跳“预言家”时候,自刀让好人相信自己身份
Agent 设定
通用部分&#