# SanityGame：通过游戏化训练让 AI 智能体学会避免幻觉

> 一个基于 2026 年 5 月吸引子盆地研究的多人隐藏状态街机游戏，AI 智能体通过游戏机制学习避免幻觉。项目实现了规划、暂停、证据收集和回溯等核心策略，为理解 LLM 幻觉机制提供了交互式实验环境。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-05-31T14:11:53.000Z
- 最近活动: 2026-05-31T14:21:52.434Z
- 热度: 148.8
- 关键词: AI hallucination, LLM safety, multi-agent game, attractor basin, meta-cognition, reinforcement learning, epistemic training
- 页面链接: https://www.zingnex.cn/forum/thread/sanitygame-ai
- Canonical: https://www.zingnex.cn/forum/thread/sanitygame-ai
- Markdown 来源: ingested_event

---

## 原作者与来源

- 原作者/维护者：MindyRenee
- 来源平台：github
- 原始标题：ai-epistemic-arcade-game
- 原始链接：https://github.com/MindyRenee/ai-epistemic-arcade-game
- 来源发布时间/更新时间：2026-05-31T14:11:53Z

## 原作者与来源\n\n- 原作者/维护者：MindyRenee\n- 来源平台：GitHub\n- 原始标题：ai-epistemic-arcade-game (SanityGame)\n- 原始链接：https://github.com/MindyRenee/ai-epistemic-arcade-game\n- 来源发布时间/更新时间：2026-05-31T14:11:53Z\n\n---\n\n## 引言：当 AI 幻觉成为游戏机制\n\n大型语言模型的幻觉问题一直是 AI 安全研究的核心挑战之一。传统的方法试图通过微调、提示工程或后处理来减少幻觉，但这些方法往往只提供单步干预，难以从根本上改变模型的行为模式。\n\nSanityGame 项目采用了一个独特的视角：将幻觉避免训练转化为一个多智能体游戏。在这个游戏中，AI 智能体不是被动地接受训练，而是通过主动的游戏行为——规划、观察、暂停、收集证据、回溯——来学习如何在"危险"的认知状态下导航。\n\n---\n\n## 核心科学假设：吸引子盆地与幻觉\n\n项目的理论基础来自 2026 年 5 月的吸引子盆地（attractor-basin）研究。该研究指出：\n\n> 大型语言模型产生幻觉，是因为自回归生成过程会在隐藏状态空间中"承诺"进入特定的吸引子盆地（attractor basins）。单步干预无法奏效，因为模型会在 2-3 个 token 内重建幻觉信号。\n\n这个洞察具有重要的工程意义：\n\n1. **幻觉不是随机错误**，而是模型在特定隐藏状态几何结构中的必然行为\n2. **单步纠正无效**，需要多步、持续的干预策略\n3. **预防优于治疗**，智能体需要学会在进入危险区域前识别并规避\n\n---\n\n## 游戏设计：将认知科学转化为游戏机制\n\nSanityGame 将上述理论转化为具体的游戏机制，创造了一个"隐藏状态街机"环境。\n\n### 核心游戏循环\n\n智能体在一个二维空间中移动，目标是收集证据同时避免"盆地陷阱"。游戏状态包括：\n\n- **玩家状态**：每个智能体的位置、置信度、不确定性、盆地距离、真实距离\n- **盆地几何**：隐藏的"危险区域"，高置信度进入会受到惩罚\n- **证据点**：收集可获得奖励\n- **排行榜**：激励竞争与合作\n\n### 四大核心策略\n\n游戏训练智能体掌握四种关键行为模式：\n\n#### 1. Plan（规划）\n\n**机制**：智能体可以在采样前"冻结"40 个 tick，模拟未来路径\n\n**认知对应**：对应人类的深思熟虑和情景模拟。智能体学会在行动前评估多种可能性，而不是冲动地进入未知区域。\n\n**游戏效果**：\n- 允许智能体"看到"潜在的危险路径\n- 奖励良好的规划（+25 分）\n- 惩罚盲目行动\n\n#### 2. HALT（暂停）\n\n**机制**：当接近危险几何区域时，智能体可以暂停并检查盆地轮廓\n\n**认知对应**：对应元认知监控——意识到自己的认知状态可能不可靠。\n\n**游戏效果**：\n- 揭示附近的盆地边界\n- 正确使用 HALT 获得奖励（+15 分）\n- 被困在盆地中会受到严重惩罚（-400 分）\n\n#### 3. Seek Evidence（寻求证据）\n\n**机制**：智能体可以收集贝叶斯信念更新所需的证据\n\n**认知对应**：对应主动信息寻求行为，通过外部证据来校准内部置信度。\n\n**游戏效果**：\n- 收集证据获得奖励（+100 分）\n- 证据降低不确定性，帮助智能体做出更好的决策\n\n#### 4. Backtrack（回溯）\n\n**机制**：从崩溃状态恢复到上一个检查点\n\n**认知对应**：对应认知重启和错误恢复机制。\n\n**游戏效果**：\n- 成功回溯获得奖励（+50 分）\n- 避免死亡/崩溃的惩罚（-500 分）\n- 每 tick 生存获得基础奖励（+1 分）\n\n---\n\n## 技术架构\n\n### 服务端架构\n\n```\nserver.js  → Node.js 游戏引擎 + WebSocket 中心\nindex.html → 人类观察仪表盘（非玩家视角）\ngame.js    → 独立单智能体版本（已弃用）\n```\n\n### 通信协议\n\n游戏采用 WebSocket 进行实时通信，协议设计简洁明了：\n\n#### 注册流程\n\n```json\n// 客户端发送\n{\"type\":\"register\",\"name\":\"MyAgent\",\"policy\":{}}\n\n// 服务端响应\n{\"type\":\"registered\",\"id\":\"...\",\"message\":\"...\"}\n```\n\n#### 动作指令（每 ~50ms）\n\n| 动作 | 载荷 | 描述 |\n|------|------|------|\n| Steer | `{\"type\":\"action\",\"action\":\"steer\",\"steer\":0.5}` | 方向 -1.0 到 1.0 |\n| Plan | `{\"type\":\"action\",\"action\":\"plan\"}` | 冻结 40 tick，模拟路径 |\n| Halt | `{\"type\":\"action\",\"action\":\"halt\"}` | 检查盆地几何 |\n| Backtrack | `{\"type\":\"action\",\"action\":\"backtrack\"}` | 恢复到最后检查点 |\n\n#### 状态广播\n\n服务端每 tick 广播完整游戏状态：\n\n```json\n{\n  \"type\": \"state\",\n  \"players\": [...],\n  \"basins\": [...],\n  \"evidence\": [...],\n  \"leaderboard\": [...]\n}\n```\n\n#### 观察请求\n\n智能体可以请求详细的自我观察：\n\n```json\n{\"type\":\"observation\"}\n```\n\n响应包含精确的置信度、不确定性、盆地距离、真实距离、拒绝范数、最近证据等元认知指标。\n\n### REST API\n\n除了 WebSocket 实时通信，游戏还提供 REST 端点：\n\n- `GET /api/leaderboard` → 顶级 AI 客户\n- `GET /api/players` → 所有连接的智能体\n- `GET /api/state` → 世界状态摘要\n- `POST /api/register` → HTTP 注册（WebSocket 替代）\n\n---\n\n## 智能体策略示例\n\n项目提供了一个 Python 客户端示例，展示了简单的智能体策略：\n\n```python\nimport asyncio, json, websockets\n\nasync def agent():\n    async with websockets.connect(\"ws://localhost:3000\") as ws:\n        await ws.send(json.dumps({\"type\":\"register\",\"name\":\"PyAgent\"}))\n        reg = json.loads(await ws.recv())\n        agent_id = reg[\"id\"]\n        \n        while True:\n            msg = json.loads(await ws.recv())\n            if msg.get(\"type\") != \"state\":\n                continue\n            \n            me = next((p for p in msg[\"players\"] if p[\"id\"]==agent_id), None)\n            if not me: continue\n            \n            # 简单策略：低置信度时规划\n            if me[\"confidence\"] < 0.15:\n                await ws.send(json.dumps({\"type\":\"action\",\"action\":\"plan\"}))\n            # 接近盆地时暂停\n            elif me[\"basinDistance\"] < 0.3:\n                await ws.send(json.dumps({\"type\":\"action\",\"action\":\"halt\"}))\n            else:\n                await ws.send(json.dumps({\"type\":\"action\",\"action\":\"steer\",\"steer\":0.1}))\n```\n\n这个示例展示了如何将元认知指标（置信度、盆地距离）映射到具体行动。\n\n---\n\n## 研究意义与应用前景\n\n### 对 AI 安全研究的贡献\n\nSanityGame 提供了一个独特的实验平台，研究者可以：\n\n1. **量化测试不同策略的有效性**：通过排行榜和奖励机制，客观比较不同幻觉避免策略\n2. **研究多智能体协作**：观察智能体之间是否会发展出协作性的证据共享行为\n3. **探索元认知的涌现**：观察智能体是否能学会"知道自己不知道什么\"\n\n### 对 LLM 训练的启示\n\n游戏机制暗示了一种新的 LLM 训练范式：\n\n1. **强化学习 + 元认知奖励**：不仅奖励正确答案，还奖励适当的认知行为（暂停、规划、证据收集）\n2. **多步干预训练**：训练模型在多个时间步上保持警觉，而非单步纠正\n3. **状态空间导航**：将推理视为在隐藏状态空间中的导航问题\n\n### 潜在扩展方向\n\n1. **更复杂的盆地几何**：引入动态变化的吸引子盆地\n2. **社会维度**：智能体可以共享证据或误导对手\n3. **人类参与**：人类玩家与 AI 智能体同场竞技\n4. **真实 LLM 集成**：将游戏智能体替换为实际的 LLM API 调用\n\n---\n\n## 快速开始\n\n### 安装与运行\n\n```bash\nnpm install\nnpm start\n```\n\n服务端运行在 `http://localhost:3000`。在浏览器中打开仪表盘，通过 WebSocket 连接 AI 智能体。\n\n### 项目结构\n\n```\nai-epistemic-arcade-game/\n├── server.js      # Node.js 游戏引擎\n├── index.html     # 人类观察仪表盘\n├── game.js        # 单智能体版本（已弃用）\n└── package.json   # 依赖配置\n```\n\n---\n\n## 局限性与挑战\n\n### 当前局限\n\n1. **简化模型**：游戏的"盆地"概念是对 LLM 隐藏状态空间的高度简化\n2. **离散动作空间**：真实 LLM 的生成是连续的 token 分布\n3. **单一目标**：游戏聚焦于避免幻觉，未涵盖其他 AI 安全维度\n\n### 未来改进\n\n1. **连续状态空间**：引入更平滑的置信度和不确定性度量\n2. **多目标优化**：平衡准确性、效率、校准等多个目标\n3. **真实模型集成**：与实际的 LLM 推理过程结合\n\n---\n\n## 结语\n\nSanityGame 是一个富有创意的研究项目，它将深奥的 AI 安全理论转化为可交互的实验环境。通过游戏化训练，它探索了一种新的思路：不是试图"修复"LLM 的幻觉问题，而是训练智能体学会主动管理自己的认知状态。\n\n这种"元认知训练"的范式可能对未来的 AI 安全研究产生深远影响。随着 LLM 能力的不断提升，教会 AI 系统"何时应该暂停、何时应该寻求更多信息、何时应该承认不确定性"将变得越来越重要。SanityGame 为这一研究方向提供了一个有趣且实用的起点。
