ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

为什么你的AI不会记仇?liars-bar-llm反思记忆机制(reflect+opinions)设计原理深度拆解

为什么你的AI不会记仇?liars-bar-llm反思记忆机制(reflect+opinions)设计原理深度拆解 为什么你的AI不会记仇liars-bar-llm反思记忆机制reflectopinions设计原理深度拆解【免费下载链接】liars-bar-llm一个由大语言模型驱动的AI版骗子酒馆对战框架项目地址: https://gitcode.com/gh_mirrors/li/liars-bar-llmliars-bar-llm 是一个由大语言模型驱动的 AI 版骗子酒馆对战框架让 DeepSeek、ChatGPT、Claude、Gemini 等模型坐上赌桌互相虚张声势、质疑、开枪。它最巧妙的设计是让 AI 每打完一轮就复盘一次把对手的性格、策略、弱点写进私有记忆下一轮带着偏见再战——这正是大多数 LLM 应用缺的那块记仇能力。本文带你拆解这套 reflect opinions 反思记忆机制的完整设计原理。先搞懂问题为什么普通 AI打一局忘一局大语言模型天然是无状态的每次请求只看到当下传入的提示词上一轮对手出过什么牌、说过什么狠话它一概不记得。在骗子酒馆这种多轮心理博弈里规则见prompt/rule_base.txt这意味着 AI 每一轮都像是失忆的新玩家 记不住谁爱 bluff虚张声势、谁胆小保守 无法利用对方上次质疑失败这类教训调整策略 决策只能靠当轮信息策略上限被锁死liars-bar-llm 的解法非常朴素却有效给每个 AI 玩家一个小本本每轮结束强制复盘把结论写进本本下轮决策时再拿出来用。这个小本本就叫opinions。记忆双引擎opinions 账本 reflect 复盘循环整套机制只有两个角色都实现在智能体源码 player.py 中1️⃣ opinions每个玩家一份的印象账本opinions是玩家对象上的一个字典结构是{对手名字: 一段印象文本}。游戏开局时init_opinions()会给每个对手初始化一条记录内容全是统一的还不了解这个玩家也就是说AI 开局时彼此之间是白纸一张没有任何先验偏见——公平且可预期。2️⃣ reflect每轮强制执行的复盘反思Player.reflect()是记忆的写入入口。每当一轮结束有人开枪、进入下一局时游戏主体 game.py 中的handle_reflection()会让每个存活玩家逐一执行反思。对每个对手reflect()做三件事取出当前印象previous_opinion首轮就是还不了解这个玩家按prompt/reflect_prompt_template.txt模板组装提示词包含游戏规则、本轮基础信息、本轮完整行动记录、本轮结果、对这一个玩家此前的印象调用 LLM 生成一段更新后的印象直接覆盖写回self.opinions[player_name]注意一个细节一次只反思一个对手一人一次请求。这样每份印象都是独立提炼的不会因为对手太多而稀释分析深度。模板中还有一句关键的灵魂约束prompt/reflect_prompt_template.txt下一局目标牌可能改变提炼具有泛用性的出牌和质疑策略而不是上一局的具体牌面和行为。这一句话把记忆从记流水账升级成了记规律——AI 学的不是他上次出了两张 Q而是他喜欢用 Joker 伪装强势、容错率低。记忆如何生效opinions 回流到决策提示词写进去的记忆如果不被使用就是自嗨。liars-bar-llm 的记忆闭环在 game_record.py 里完成环节注入的信息用途出牌决策choose_cards_to_play你对下家的印象分析……判断下家会不会质疑决定敢不敢 bluff质疑决策decide_challenge你对上家的印象分析……结合枪位与手牌判断要不要开火质疑get_play_decision_info()和get_challenge_decision_info()会把双方已开枪次数与对应对手的 opinions 印象拼进决策提示词。也就是说旧印象(上一轮反思) → 本轮观察 → 新印象(opinions更新) ↓ ↓ 注入决策提示词 ←——— 本轮博弈(出牌/质疑)记忆不再是孤立模块而是直接参与每一次要不要说谎、要不要开枪的判断——AI 真正开始记仇了谁上次质疑失败害它挨了一枪谁的印象里就会多一句过于冲动、容错率低下轮就会利用这一点反将一军。实证看真实对局里 AI 的记仇过程项目自带 50 局 Demo 对局记录demo_records目录可以直接观察记忆演化。以demo_records/converted_game_records/20250225_095738.txt为例第 1 轮所有玩家对彼此的看法都是还不了解这个玩家。第 1 轮结束Claude 数学推断出 ChatGPT 不可能打出 3 张 Q果断质疑——结果失败Claude 挨了一枪幸好是空仓。第 2 轮复盘后的 opinions 立刻变得锋利起来DeepSeek 对 ChatGPT表现出冒险倾向善于利用 Joker 伪装强势但低估对手质疑决心……弱点在于过度使用 Joker 易暴露破绽ChatGPT 对 Claude质疑失败也暴露了他可能过于自负、决策时略显冲动的弱点Claude 对 ChatGPT用 Joker 配合真实的 Q 牌是相当老道的打法……在心理战和实际操作之间寻找平衡点短短一轮之后白纸变成了带攻击性评估的战术情报。这种上轮教训 → 下轮策略的传导就是 reflect opinions 机制在真实博弈中的效果。顺手记录opinions 全程留痕可审计可分析值得学习的还有它的记忆可追溯性每轮开始时game.py会把所有玩家的 opinions深拷贝进RoundRecord.player_opinions见 game_record.py最终 JSON 记录保存在game_records目录可用json_convert.py转成可读文本转换结果里就有X 对其他玩家的看法小节想研究模型风格差异player_matchup_analyze.py可提取两个 AI 互相对局的记录样例见demo_records/matchup_records这意味着你可以完整回放记忆是如何一轮轮变化的而不只是看胜负结果——对做任何 LLM 智能体记忆系统的人来说这本身就是宝贵数据集。成本与取舍这套设计值不值诚实说reflect 机制不便宜每个存活玩家、每轮结束要为 N-1 个对手各发一次 LLM 请求。4 人局一轮最多增加 12 次反思调用。但换来的收益在对抗场景里非常显著✅ 记忆是私有视角的每个 AI 只更新自己眼中的对手天然模拟真实心理博弈✅ 提示词强制提炼泛化策略记忆不会随牌面过时✅ 更新时机固定在轮次边界不打断进行中的博弈实现极简✅ 全程写入对局记录行为可解释、可分析这套小本本 强制复盘的模式完全可以平移到任何多轮对抗、谈判、客服记忆等场景。代码地图核心模块速查文件作用player.py玩家智能体opinions账本、init_opinions()初始化、reflect()反思更新prompt/reflect_prompt_template.txt反思提示词模板旧印象 本轮表现 → 新印象prompt/rule_base.txt骗子酒馆游戏规则注入所有提示词game.py游戏主体handle_reflection()在轮次边界触发全员反思game_record.py对局记录player_opinions留痕、get_play/challenge_decision_info注入记忆json_convert.pyJSON 记录 → 可读文本展示每轮各方印象demo_records/50 局 Demo 数据JSON 记录、可读文本、两两对决分析写在最后想让 AI 拥有记仇的能力不需要复杂的向量数据库或外部记忆框架——一个字典、一段提示词、一个强制复盘的时机就足以让大模型从失忆的赌客变成会复盘的老手。liars-bar-llm 用最少的代码演示了 LLM 智能体记忆设计的核心范式按主体隔离记忆、按轮次触发更新、让记忆回流决策。读懂它你就拿到了多轮博弈型 AI 的第一块拼图。【免费下载链接】liars-bar-llm一个由大语言模型驱动的AI版骗子酒馆对战框架项目地址: https://gitcode.com/gh_mirrors/li/liars-bar-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表