Agent桌游团队设计
从0搭建自己的桌游设计AI团队
制作动机
我是深圳大学人工智能学院的研究生,兴趣爱好就是从事游戏相关的工作。曾经通过印卡姬和即梦平台自制一款角色扮演大富翁桌游,但是由于团队的凝聚力和美术/运营成本被迫难产,只完成了基本设计和简单的DEMO。不过,通过这次经历,我明白了一个主策划应该如何处理团队协作工作,如何安排“生产力”。
作为桌游玩家和策划,总会有一些灵光一闪的想法,比如在大富翁增加角色机制,在三国杀加入购买装备环节,在卡坦岛添加资源卡类型等奇思妙想。但由于设计,美工,测试等环节需要巨大的人力财力,导致初创团队或学生党放弃这些ideas,十分可惜。但现在有一个最新的工具可以降低这些成本,真正做到“0”成本追梦,那就是现在的Agents。
随着Agents的爆火,Agents团队减少了公司人力成本,极大降低了创作门槛。而我自己也具备深度学习,LLM等基础,相信自己能够跟紧潮流,实现项目。我觉得通过Agents智能体协作,去模拟一个游戏设计团队大有可为,这也是这个项目的由来。
现在还可以通过代码智能体如Cursor等辅助编程,但作为科班出身的程序员,在使用辅助编程后也一定要掌握自己的项目内容,代码管理和函数类别调用关系之类的。
技术栈
通过Dify或者coze能够低代码实现智能体交互,但是由于GPT推荐我还是用代码实打实的把游戏机制规则写出来,而不是用LLM来判断规则边界。所以我决定自己搓代码,当然我主要是看完Hello-Agents 后根据他们上面的代码去模拟,也复用了他们优秀的代码。
前端
- Vue:包含HTML,CSS,JS相关知识
- 推荐教程:Vue3 教程 | 菜鸟教程
- Vite:现代化的前端构建工具
- 推荐教程:Vite 教程 | 菜鸟教程
- FastAPI:用于构建 API 的现代、快速(高性能)的 web 框架
- 推荐教程:FastAPI 教程 | 菜鸟教程
后端
- Hello-Agents:包含python,深度学习,大模型基础。
- modelscope: 相关llm,mcp调用。(尽量用参数大的,较新的大模型,提升效果明显)
其他
- markdown: prompt工程常用语言,博客语言,也是大模型输出结果常见的展示格式。
- re: 正则表达式,超级简便强大的字符串匹配。
- JSON:存储和交换文本信息的语法JSON 教程 | 菜鸟教程
1 失败的前设计
下面的模块是被弃置的模块,我会讲解为什么最后放弃了用极多数的Agent搭建一个团队结构。我尝试过用规则工程师+机制工程师+数据管理Agent+代码手Agent 实现用代码逻辑实现游戏内容并确定Agent互相转发接口。
失败原因:
- 第一:规则描述非常容易不准确。1:设计桌游时会隐藏一些机制(比如从哪抽牌,如何抽取(堆栈/random?),弃牌至哪里,何时洗牌)这些我们默认的细节会被遗忘。2:Agent在长时间序列时会产生轻微幻觉记错卡牌效果甚至数量。这在复杂的游戏中尤其明显。
- 第二:部分Agent功能独立。美术策划/文案策划其实跟机制编写,游戏测试等关系不大。完全可以单独人工调用,编写一些简单的Html静态页面用于图片调试+豆包等图片生成Agent,即可自己搓卡牌图。而 规则工程师+机制工程师+数据管理Agent+代码手Agent 这一部分只需要交给我们伟大的Cursor大人就行了(滑稽脸)。
- 第三:臃肿带来的效果衰竭。如果你试图用多模态图片+机制+文字给测试玩家,现在大模型并没有这么强就算有也得巨大的token开销,还得有更强的长记忆能力,图片分析等。哪怕是目前最强的大模型也不一定能够实现。毕竟完整的桌游机制其实文本量和逻辑能力的需求很强,博弈类游戏更需要对对方的预判,交流的捕捉小信息等。这些一股脑输入给大模型,虽然有固定的输出和逻辑链,但是太灾难了。期待后两年的模型提升吧。
1.1团队结构(弃置)
1 | 用户 |
1.2 总体流程(弃置)
1 | 用户提出游戏想法 |
2 后续真设计
2.1 团队结构/总体流程
详细代码介绍请查看项目中doc文件夹内。
1 | 用户 |
2.2 游戏规则
规则说明书:揭幕战(简单版)
一、基本信息
人数:2 人对战。每名玩家起始 5 点血量,先把对手血量打到 0 的一方获胜。
二、兵马牌与克制关系(必记)
-
类型:骑兵、弓兵、枪兵。等级:1 / 2 / 3 级,同类型时数字越大越强。
-
弓兵牌克制关系(易混,请细看):
- 骑兵 克 弓兵:骑兵打弓兵时,骑兵赢,弓兵方掉 1 血。
-
弓兵 克 枪兵:弓兵打枪兵时,弓兵赢,枪兵方掉 1 血。
- 枪兵 克 骑兵:枪兵打骑兵时,枪兵赢,骑兵方掉 1 血。
口诀:骑克弓、弓克枪、枪克骑。
-
同类型对决只比等级,如骑兵3 > 骑兵2 > 骑兵1。
三、平局与血量变化(明确数值)
- 平局:双方出的牌类型与等级完全相同(如骑兵1 vs 骑兵1)时,本回合判定为平局。
- 平局时双方血量变化均为 0(你 -0,对手 -0),无任何人掉血。
- 非平局:败方本回合血量 -1,胜方血量不变;结算后会显示当前双方血量。
四、手牌与出战牌展示
- 每回合抽到的 2 张牌都会加入你的手牌;你从中选 1 张「展示」给对手看,展示仅公开信息,不弃牌。
- 手牌列表以编号 1、2、3… 显示,决策时只能从该列表中选择;出战牌即你本回合打出的那一张,结算后进入弃牌堆。
五、牌库与弃牌堆
- 总计 60 张:三种兵种各 20 张(1 级 10 张、2 级 5 张、3 级 5 张)。手牌上限 5 张。
- 用过的出战牌进入弃牌堆;牌库抽空时,弃牌堆洗匀后作为新牌库,保证对局流畅。
六、回合流程(从你的视角)
- 抽 2 张 → 2 张都进手牌。
- 从这 2 张中选 1 张展示给对手(2 张仍都在你手牌中)。
- 若手牌 > 5 张,从手牌中弃 1 张至弃牌堆,直至手牌 ≤ 5 张。
- 从手牌选 1 张出战,与对手本回合出战牌结算(胜/负/平,血量变化见上)。
- 本回合用过的出战牌进入弃牌堆。
七、牌组分析与策略(降低学习成本)
- 决策时系统会提供:我方血量、对手血量、当前手牌列表、对手本回合展示的牌、对手本局已出过的牌。
- 建议先看清「手上具体有哪些牌」和「对手展示/出过什么」,再结合骑克弓、弓克枪、枪克骑判断哪张胜率更高,最后做出选择。
八、游戏结束
当任意一方血量降至 0 时游戏结束,另一方获胜;获胜者可发表简短感言。
九、测试玩家与体验说明
- 两名测试玩家由系统分配不同 persona,决策时会结合上述信息进行思考。
- 左侧流式日志中会展示每位玩家的思考内容(手牌、对手情况、胜率判断等),便于观察对局与规则理解。
该规则通过不断地和机制设计师和文案设计师调整。
3 结果展示
环境准备
后端(Python)
建议使用虚拟环境(Conda/venv 均可)。依赖在 backend/requirements.txt。
前端(Node.js)
需要 Node.js(建议 18+ 或 20+)与 npm。
如何运行(从导包到打开前端界面)
下面以 Windows PowerShell 为例。
1) 配置后端 .env
后端会从 backend/app/.env 读取 LLM/文生图配置(由 backend/app/config.py 加载)。
- 路径:
backend/app/.env - 说明:你已经在项目里维护该文件;如果要换模型/Key,改这里即可
2) 启动后端(FastAPI)
在项目根目录执行:
1 | cd "e:\llm\hello_agents\Table_game_team_easy\backend" |
启动后可验证:
GET http://localhost:8000/应返回{"message":"Boardgame AI Agent Running"}
3) 启动前端(Vite)
新开一个 PowerShell:
1 | cd "e:\llm\hello_agents\Table_game_team_easy\frontend" |
Vite 启动后,终端会输出一个本地地址(通常是 http://localhost:5173)。用浏览器打开它即可进入前端界面。
运行结果
前端主页面

右上角有游戏测试和策划工作台按钮,根据输入需求,主策划Agent会分配工作至不同Agent以实现你的需求。
尽量先把需求在前面提出,如上述示例一般描述。因为我启用了强相关判断,在文本前端识别绘画->硬性调用文生图。这样可以减少大模型的调用频率。
美术策划生成图片

需要更好看更准确的图片,需要反复跟大模型打磨提示词,可以用常见的大模型如豆包,ChatGPT等。
机制设计师提供建议

在设置Agent时我尽可能让机制设计师回复详细内容,可以斟酌使用。
文案优化

异常情况

回复无关内容默认无法处理。
测试游戏情况
可以看到游戏的每个回合Agent的想法和执行操作。



最后会输出各自的体验报告,并由体验分析师总结。





