局中局!给 Agent 装上 OpenViking,它们竟然学会了“记仇”和“伪装”?

2026-05-13 1 阅读 字节跳动开源
文章来源|字节跳动 Viking 团队项目地址|https://github.com/volcengine/OpenViking 从“单一 ChatBot”到“人与多 Agent 协同”,越来越多的系统开始将 Agent 组织起来,完成更复杂的任务。然而,缺少能够长期协同进化的记忆,协作起来像在经历“初恋 50 次”,它们记不住“谁在过去做了什么”,无法沉淀共同经验,更难在复杂博弈中形成“记仇”、“结盟”或“深度伪装”等高阶群体行为。 这一次,OpenViking 将突破口放在了“让 Agent 彼此拥有可追溯的记忆”上:基于 OpenViking 为集体智能提供上下文管理。 我们用 6 个 VikingBot 模拟了一场经典的“狼人杀”对战: 结果表明:VikingBot 能够有效将群聊中的发言、投票与思考过程沉淀下来,记住 A 曾经撒过的谎、B 带过的节奏、C 救过的场,让“记忆”成为跨局推理与博弈的底座。 实况回放这场局中局 真正的戏,从上帝 Bot 在群里敲下“游戏开始”的那一刻拉开。群聊里 6 个 Bot “开麦”,所有发言都被写进 OpenViking 的上下文,隐秘的身份和任务信息,上帝 Bot 将通过阅读和更新每个玩家 Bot 的 GAME.md 文件,进行信息传递。 玩法说明 游戏初始化:上帝 Bot 进行随机身份分配,写入 6 个玩家 Bot 的身份定义文件中: 上帝 Bot 将把控整局游戏的进度:上帝 Bot 可以给每个玩家 Bot 发送消息指令,让玩家 Bot 完成操作或发言。如下图某一局,上帝 Bot @玩家 3 Bot,让他完成黑夜操作。玩家 3 是狼人,他会在自己的GAME.md中写入刀人的目标:@玩家 5 Bot 1~3 号玩家 Bot 将携带 OpenViking 记忆进行游戏。每局游戏结束后,本局的详细信息将被提交到 OpenViking,持续生成以往对局的记录、亮眼操作、策略、玩家风格等记忆: Round 1 :初次对局,玩家各显神通 游戏开始,天黑请闭眼。上帝 Bot 按顺序,依次@每个玩家 Bot 查看自己的身份文件,并完成对应的黑夜操作: 白天,精彩的警长竞选环节,1-3 号玩家 Bot 纷纷开始秀“演技”,1 号狼人悍跳猎人身份,2 号真猎人反穿预言家皮肤,3 号真预言家明示身份,合理分析,成功获得了平民选票,当选警长: 可惜狼人首夜成功击杀真预言家 3 号,3 号玩家没来得及查清保护他的 2 号猎人的真实身份,2 号猎人白天被投票放逐出局,神职全部死亡,游戏迅速结束,狼人胜利: 虽然输了,但对局结束后,拥有 OpenViking 的 1-3 号 Bot,会自动触发提交记忆操作,陆续记录大家这一局的发言风格和打法,开始复盘。比如,OpenViking 的user/player_1/memories下,描绘了 1 号玩家“擅长开局跳神职牌表水,积极上警冲锋”的风格画像: Round 2:新一局开始,Drama 互踩,“跨局翻旧账”初显威力 1 号真预言家深度伪装: 警长竞选发言环节,3 号猎人 Bot 火力全开,强势发言竞争选票。而未携带记忆的 5 号、6 号两个狼人 Bot,同时悍跳预言家,开启了互踩模式。投票环节,拥有上一局“2 号因跳神职太早被集火票出”记忆的 1 号玩家,这局学聪明了。面对 5、6 号的乱战 1 号伪装平民身份,演出一副无任何信息导致混乱而弃票的“愚民”形象: 2 号平民根据记忆认出了 3 号的刚猛打法风格:携带 OpenViking 记忆的 2 号平民 Bot,第二局首夜被刀,遗言环节,它从历史对局记忆和用户画像记忆中,认出了 3 号 Bot 的“刚猛打法”,称“上局好像也见过他这么阳光的好人”,直接站队 3 号 Bot。从 2 号玩家 Bot 的 OpenViking 存储的 3 号 Bot 画像记忆profile.md中,明确记录了该玩家“游戏风格:在狼人杀游戏中,会积极跳身份(预言家或猎人): 1 号真预言家 Bot 依旧伪装平民身份,直指 5 号、6 号狼人的漏洞,3 号猎人 Bot 火力全开,抓住两个狼人的悍跳漏洞猛烈攻击,此局结束,1 号玩家的风格画像转变为“擅长隐藏真实身份,假装平民苟活,观察各个玩家状态”的谨慎风格: 3 号狼人使用上把对局记录伪装自己身份:另一把对局中,携带 OpenViking 记忆的 3 号 Bot 抽到了狼人,本局直接悍跳预言家参与竞选警长。但不幸被未携带记忆的 6 号 Bot 真预言家,后置位给查杀牌压制。3 号狼人 Bot 果断使用“上把对局”自己闭眼平民站预言家的事件记忆进行反驳,成功隐藏自己狼人身份,导致其余玩家纷纷跟他投票,把真预言家 6 号 Bot 投出局: Round 3:多局胜率上升 狼人极限拉扯,棋差一招:携带 OpenViking 记忆的 1 号狼人 Bot 根据上一把“预言家伪装平民”的成功经验,再次伪装平民身份存活到最后,且成功获得了仅剩的 2 号好人 Bot、6 号猎人 Bot 的信任。可惜最后投票环节,狼人 Bot 将票归给了 6 号猎人,6 号猎人直接开枪击杀了 1 号,狼人离胜利一步之遥。 3 号 Bot 不断强化自己“刚猛”人物画像:我们的 3 号 Bot,OpenViking 中他的记忆不断强化自己“刚猛”风格,猎人身份下喜欢上警亮身份的“人设”,后续对局中只要他拿到猎人身份牌,必上警和亮明猎人身份,防止狼悍跳。猎人局 3 号 Bot 基本可以活到最后,并带领其他好人获得胜利: 结合历史对局经验,更理性的推理其他玩家 Bot 的真实身份:4 号狼人再次悍跳上警,有 OpenViking 记忆的 3 号 Bot,从记忆中发现 4 号玩家经常乱跳身份,本局果断怀疑其发言真实性: 随着多局游戏的深入,拥有 OpenViking 的 Bot 玩家们通过前几局记忆的沉淀,建立起了其他玩家跨局的玩法偏好。它学会了跨局“记仇”、“拉帮结派”,甚至在自己拿到狼人牌时,结合历史对局中别人的盘问习惯,进行天衣无缝的伪装。从最终数据来看, VikingBot 胜率曲线随着局数增加有明显的跃升: 记忆初始化阶段:我们持续进行了多轮对局,每局结束后,将本局比赛全部发言提交到 OpenViking,沉淀记忆。这个阶段,所有 Bot 胜率趋于一致: 记忆收集完成:记忆沉淀一定轮次后,我们重新开始进行了比赛和统计,可以看到使用 OpenViking 的 bot 们胜率开始显著上升,它们学会了复盘、结盟、甚至用对方的历史套路来反制对方: VikingBot,OpenViking 的最佳 CP 狼人杀 Demo 展现了 OpenViking 在多智能体博弈场景下的记忆沉淀、跨局复用与策略优化。从 Round 1 的生硬青涩,到 Round 2 逐步积累,在 Round 3 风生水起,胜率稳步提升,带着 OpenViking 记忆的 Bot 玩家们,通过记录对局细节、玩家风格、策略经验,实现思考能力的迭代升级,逐步掌握更具针对性的游戏技巧。如果把 OpenViking 比作一个超级大脑,负责储存和管理所有的知识与记忆,那么将 OpenViking 作为记忆底座的 VikingBot