
五分钟跑通OpenViking多Agent狼人杀【免费下载链接】OpenVikingSelf-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.项目地址: https://gitcode.com/GitHub_Trending/op/OpenViking一行命令七个 AI 在群里吵起来裁判宣布天黑、玩家按座位号发言、有人出局、有人被投票送离——这就是 OpenViking 仓库自带的多 Agent 狼人杀对局。一个裁判加六个 AI 玩家整局流程在浏览器里全程可见。这篇带你把它跑起来五分钟搭好环境、用页面按钮驱动对局、看清消息在幕后是怎么路由的以及每局结束后发生了什么。上手之前先对照一下环境清单项目要求Python建议 3.10依赖 httpx、fastapi、typer、uvicorn、loguruopenviking-server命令可用配置文件JSON 格式README 示例为~/.openviking/ov.conf⚠️ 配置文件必须是 JSON一键脚本和对局服务都是直接按 JSON 解析的格式不对启动即报错。另外两个脚本源码里的默认配置路径都是~/.openviking/ov-multi.conf所以要么显式传--config要么把配置放到默认路径。若配置里缺storage.workspace脚本会自动补上~/.openviking/data并回写文件。准备好后在bot/demo/werewolf/目录下执行python start_werewolf_demo.py --config ~/.openviking/ov.conf你看到的是两行启动日志背后它悄悄干了三件事改写配置先清掉旧的演示 channel再注入 god 与 player_1~player_6 共 7 个bot_apichannel把沙箱设为 per-channel 模式、并把裁判的读写范围锁死在{workspace}/bot。配置被就地回写启动后打开文件就能核对铺座位在{workspace}/bot/workspace/下建 7 个工作目录裁判目录拷入SOUL-god.md六个玩家目录拷入SOUL-player.md统一改名为SOUL.md拉起两个服务先启动 OpenViking 主进程内嵌网关每 1 秒轮询一次网关健康端点通过后才启动狼人杀 UI 服务默认最多等 30 秒任一进程退出会连带终止另一个CtrlC 则优雅清理。注入的 channel 配置决定了每个席位的权限边界席位配置要点效果god裁判ov_tools_enablefalse沙箱限定{workspace}/bot只当裁判无额外工具读写不出自己目录player_1~3互相列入profile_user_list独立memory_user各有独立记忆、可互看画像用于推理对手player_4~6ov_tools_enablefalse普通玩家不开工具其余参数都有默认值不传也能跑参数默认值UI 端口1995OpenViking 服务127.0.0.1:1933Vikingbot 网关http://localhost:18790对局模式all_agents全 AI对局 IDdefault健康检查超时30 秒调试模式提示想分开调试两个服务时先手动启动主进程确认网关就绪再单独启动对局服务。注意手动方式要求配置里已存在全部 7 个 channel——先跑一次一键脚本最省事。openviking-server --config ~/.openviking/ov.conf --host 127.0.0.1 --port 1933 --with-bot --bot-port 18790 python werewolf_server.py --config ~/.openviking/ov.conf --port 1995 --game-mode all_agents服务就绪了打开浏览器开玩。第一局怎么玩先打开主页面三个地址、四个标签主页面是http://localhost:1995/顶部导航有四个标签游戏主对局页按钮都在这、记忆浏览存储里 agent 与 user 两棵记忆目录树看每个 Agent 记了什么、排行榜累计战绩与胜率曲线、回放按历史会话复盘。另有/test、/debug两个调试地址服务端会尝试加载同目录的test_server.html、debug.html但仓库只随附了主页面文件这两页通常是空白的——实战以主页为准。按钮怎么点从开始到自动N局按钮你看到的效果后端行为接口备注开始游戏给裁判发开始进入本局流程POST /api/start继续暂停态下催促裁判继续本局与开始同走单飞入口自动N局输入框填 N 后点击连续自动跑 N 局POST /api/auto-run停止游戏停掉当前路由并关闭连跑POST /api/stop重新开始新建会话、归档旧局、重新建局POST /api/restart开始、继续、重新开始三者遵守单飞原则都会先取消旧路由循环再开新循环不会两个循环同时跑。重新开始最彻底——归档旧会话后向裁判发一段带完整座位名单和各玩家便签路径的建局消息裁判初始化新局后等待开始服务启动时还会自动加载最近一次会话并复用其会话号重启后历史能接上。 自动N局以 fixed 模式、目标局数 N 提交后端还支持无限连跑。每局真正跑完裁判产出最终结算计数才加一达到目标即自动停若开启时没有对局在跑会以 0.1 秒延迟自动调度第一局。真人席位私发裁判群发全员模式下拉框两个值all_agents是全 AI 的 7 席human_player真人参与模式下后端从座位列表末尾去掉最后一个 botplayer_6追加一个human通道并自动在工作区为真人建好便签文件。裁判正等待真人回合时真实玩家区域出现三个操作操作去向只发给 god你的回复作为私密回执单独送回裁判不广播给群里其他玩家发给全员内容公开广播给所有玩家同时写入公开消息历史查看/编辑便签读取或直接改写你私有的GAME.md⚠️ 真人模式的局不计入排行榜——后端对该模式直接跳过写入因为人类操作不具备可复现性。还要注意以真人模式跑过一次后即使下次命令行写的是全 AI 模式服务也会按运行时状态文件自动恢复为真人模式而且模式只在开始/重新开始动作里生效光切换下拉框不会改变正在跑的局。另外加--smart-buttons参数启动后前端会轮询状态接口动态调整按钮可见性进行中隐藏开始/继续、结束后显示重新开始、真人等待态激活真人输入区。默认关闭不开不影响任何对局逻辑。能跑了再问一句一条消息到底怎么流转幕后谁先开口、谁在看一条消息的旅程从开始到下一个 整局对局本质是一条消息被反复接力的串行旅程你点开始开始经网关发给裁判后端同步等它的回复回复被记入公开消息流并落盘为会话文件回复被扫描出 的座位号——角色规则约束一次只能 一个玩家裁判的发言广播给全体座位被 的座位必须回复其余座位只听不回发言前缀带座位号如3号被 座位的回复再广播给除它之外的所有人让全员都听到这轮发言回复被汇成座位号内容的总结送回裁判由它决定下一轮 谁——进入下一圈循环有 1000 轮的保护上限。容错也内置裁判某轮没 到任何人时系统会以管理员身份回推提示继续 一个玩家最多重试 2 次后终止循环若回复命中初始化完成/等待开始之类的标记则判定建局完毕跳出循环等待下一次开始指令。秘密为什么不进群便签与舞台双通道这个设计最值得记Agent 之间靠文件系统传状态靠群聊传公开消息两条通道严格分离。耳语便签GAME.md每个玩家的私有文件——身份、夜间行动目标、查验与用药结果都写在这绝不上群裁判记录板GAME_RECORD.md裁判维护的全局进度表游戏状态、轮次、玩家身份表、胜负都有约定格式公开舞台群聊只出现白天发言、表态与投票。边界是两份 SOUL 角色规则文件的共同硬约束保密内容只进便签群里只回一句操作完成。裁判还有首夜死亡结果在警长竞选结束前不写入任何玩家便签这类细节规则防止提前泄密玩家则只允许基于群内公开信息 裁判明确告知 自己便签行动严禁上帝视角。局末三件事归档、排行榜、记忆每轮裁判回复后后端都会解析记录板判断游戏结束。确认结束须同时满足三条记录板显示游戏结束、裁判已产出最终结论、且不再 任何人追问。随后依次发生归档会话存为CONVERSATION_{session_id}.md再归档一份REPLAY_STATE_{session_id}.json快照含记录板文本与解析结果让回放不依赖仍在变动的 live 文件排行榜从裁判记录板解析胜方与玩家状态计算胜负与存活积分累计进bot/workspace/werewolf/LEADERBOARD.json重复会话自动去重记忆沉淀向裁判和所有玩家发送/remember指令让每个 Agent 把本局经验写进自己的记忆。这也是越打越强的答案记忆跨局累积回放与排行榜则为事后策略分析提供数据。三件事办完连跑配置再决定是 1.5 秒后自动调度下一局自动重开 建局 开始还是收工。还有两个细节值得知道。UI 服务对公网开放0.0.0.0:1995所以错误信息与路径都做了收敛——仓库自带安全测试bot/tests/test_werewolf_server_security.py验证了内部异常只返回通用错误文案、路径穿越请求被拒绝、文件访问统一有越界校验。服务端还保留了静态浏览入口可直接在页面查看各玩家的便签与裁判记录板原始文件其中狼人杀记录板路径会被特殊映射到裁判的记录文件方便统一查看。遇到不对劲的地方先查这张表。常见坑与自查症状一句自查点开始/继续没反应先看GET /api/status确认 UI 后端在线再开{网关}/bot/v1/health确认网关就绪漏带--with-boot会让所有消息超时若runningtrue说明上一轮未结束先停止真人模式看不到输入区确认模式选了human_player且真的用它执行了开始/重新开始——光切换下拉框不改正在跑的局回放内容不完整让一局正常走到结算再看——中途强停的局缺裁判记录板快照怀疑卡死或无限循环停止游戏可随时中断裁判连续两次没 到有效玩家时循环也会自动终止不玩狼人杀这局里也有能带走的东西。不止于游戏✅防泄密设计夜间行动只写便签、群里只回操作完成天然规避了 LLM 上下文里谁都能看到所有人记忆的常见泄漏——可直接迁移到谈判模拟、多角色质检等需要保密的协作✅串行协作强制一次只 一个 等回复再广播 汇总回传与 SOUL 固定顺序规则形成双重约束流程跳不了席——可迁移到剧本杀、多角色评审等按规则推进的场景✅Agent 记忆沉淀局末/remember 回放 排行榜构成越打越好的闭环任何需要长期进化的多智能体场景都能照搬。说到底这不是一个狼人杀而是一套裁判 文件状态板 消息路由循环的最小可观察协作模板三件套拆开即可复用。核心模块路径相对仓库根目录演示说明bot/demo/werewolf/README.md一键启动脚本start_werewolf_demo.py对局路由服务werewolf_server.py裁判角色规则SOUL-god.md 玩家角色规则SOUL-player.md【免费下载链接】OpenVikingSelf-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.项目地址: https://gitcode.com/GitHub_Trending/op/OpenViking创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考