跳转至

Kagari (篝火) - 功能详细说明

Kagari 不仅仅是一个聊天界面,它是一个基于多 Agent 协作的、用于驱动叙事游戏的结构化框架。它的核心是将 LLM 的非结构化文本转变为可操作的、游戏化的指令。

1. 核心架构:多 Agent 协作系统

Kagari 的所有功能都由一个多 Agent 系统协同实现。

Agent 职责 触发时机 视角
GM Agent (叙事引擎) 主动推进剧情、扮演NPC、控制UI、裁决行动。 实时(核心) 上帝视角
玩家 Agent (书记官) 被动监听对话,总结玩家已知信息。 实时(辅助) 有限视角
作家 Agent (小说家) 读取游戏日志,将其改编为小说。 事后(批处理) 上帝视角

2. V1.0 核心功能 (体验驱动)

V1.0 的所有功能都旨在最大化沉浸感最小化玩家心智负担

2.1. 结构化 UI (JSON 驱动)

这是 Kagari 与纯文本聊天的最大区别。GM Agent 的输出不是文本,而是结构化的 JSON 指令,前端 React 组件负责解析并渲染这些指令。

  • 对话与旁白 (dialogue / narrate)

    • {"type": "narrate", "text": "你走进了一个昏暗的洞穴..."}
    • {"type": "dialogue", "character": "老法师", "text": "年轻人,你终于来了。"}
  • 玩家选项 (options)

    • 渲染为交互式按钮,而不是让玩家手动输入 "1" 或 "A"。
    • {"type": "options", "choices": [{"label": "拔剑", "value": "draw_sword"}, {"label": "保持警惕", "value": "stay_alert"}]}
  • 多功能面板 (panel_update)

    • 动态更新侧边栏或弹出窗口的内容。
    • {"type": "panel_update", "target_panel": "character_sheet", "data": {"hp": 80, "mp": 50}}

2.2. 沉浸式氛围系统

GM Agent 可以直接控制游戏的声画表现。

  • AIGC 实时插图

    • GM 在描述关键场景时,会同步发送一个插图生成指令。
    • {"type": "ui_control", "action": "show_image", "prompt": "一个宏伟的雪山,风格化,插画"}
    • 框架在后台调用 AIGC (DALL-E, SD 等) API,生成并显示图片。
  • 动态背景音乐 (BGM)

    • GM 根据剧情氛围切换背景音乐或播放音效。
    • {"type": "ui_control", "action": "play_music", "value": "tense_battle"}
    • {"type": "ui_control", "action": "play_sound", "value": "door_creak"}

2.3. 玩家 Agent (书记官)

此 Agent 被动监听 GM 和玩家的对话,并自动为玩家整理“笔记”。它只记录玩家视角已知的信息,并将其填入 UI 的专用面板。

  • [人物] 面板:

    • 触发: GM: "你遇到了一个自称‘张三’的铁匠。"
    • 记录: 人物:张三 (铁匠,在风车镇遇到,似乎很沮丧)
  • [地点] 面板:

    • 触发: GM: "你们抵达了‘风车镇’。"
    • 记录: 地点:风车镇 (一个宁静的小镇)
  • [物品] 面板:

    • 触发: 玩家: "我打开宝箱。" GM: "你找到了一把‘生锈的钥匙’。"
    • 记录: 物品:生锈的钥匙 (从洞穴宝箱中找到)
  • [线索] 面板 (推理游戏核心):

    • 触发: GM: "张三说:‘我昨晚一整晚都在打铁!’"
    • 记录: 线索/证言:张三声称自己有不在场证明 (打铁)

2.4. 作家 Agent (小说家)

此 Agent 在游戏结束后(或章节结束时)被激活,它是一个后处理器 (Post-Processor)

  1. 读取日志: 它会获取整个游玩过程的完整日志(包含 GM 描述、玩家的选择)。
  2. 文学再创作: 它将生硬的“Q&A”式对话和“你选择了A”这样的日志,改编成文笔流畅、包含心理活动和动作描写的小说章节
  3. 产出: 玩家在通关后,会额外获得一部由自己“主演”的、独一无二的同人小说,极大增强了成就感和分享欲。

2.5. 宏观游戏管理

  • 世界地图 (战争迷雾)

    • 剧本可以提供一张预设的、被“战争迷雾”覆盖的底图。
    • GM Agent 可以通过指令动态点亮(揭示)特定区域。
    • {"type": "ui_control", "action": "reveal_map", "area_id": "windmill_town"}
    • 这为玩家提供了“空间感”和探索的动力。
  • 剧情检查点 (存档/回档)

    • GM Agent 可以在关键剧情点(如完成一个任务、进入新章节)自动创建“检查点”。
    • {"type": "system", "action": "create_checkpoint", "title": "击败史莱姆王"}
    • 存档 (Save): 玩家的进度被保存为一个“剧情树”节点。
    • 日志 (Log): 玩家可以清晰地看到自己玩到了哪里。
    • 回档 (Reload): 玩家可以从任意历史检查点重新开始,探索不同的剧情分支,实现 "What If..." 玩法。

3. V2.0 路线图 (普惠友好)

V2.0 的核心是降低成本实现无限记忆,让 Kagari 真正“小模型友好”。

3.1. 记忆核心 (RAG)

  • 目的: 解决 LLM 的“上下文窗口”限制和昂贵的 Token 费用。
  • 实现:
    1. 向量化: 所有的对话历史、场景描述、人物背景都会被实时切片并存入一个向量数据库
    2. RAG (检索增强生成): 当 GM Agent 需要叙事时,Kagari 框架会先从向量库中检索出与当前情境最相关的“记忆片段”(如“玩家在三个月前提到过的NPC”),并将其注入到提示词中。
  • 价值: 即使是小型模型,也能拥有“无限”的长期记忆。

3.2. 知识图谱 (状态管理)

  • 目的: RAG 只解决“记忆”,不解决“事实状态”。例如,一个 NPC 的好感度、一个任务是否完成。
  • 实现: 使用知识图谱来维护一个严格的“世界状态数据库”。
    • (玩家A) --[好感度: 50]--> (NPC_B)
    • (任务X) --[状态: 已完成]--> (True)
    • (玩家A) --[持有]--> (物品Y)
  • 价值: 确保 LLM 在叙事时不会出现逻辑错误(例如玩家已经卖掉的道具又出现,或者已经敌对的 NPC 突然变得友好)。

4. V3.0 路线图 (实验性)

4.1. 动态 UI Agent

  • 目的: 实现终极的自由度,让 LLM 不仅叙述故事,更能创造玩法
  • 设想: GM Agent 可以根据特定的游戏场景,动态生成临时的、全新的 UI 组件
  • 示例:
    • 黑客入侵: GM Agent 生成一个“模拟终端”的 UI 窗口,玩家必须输入“指令”来解谜。
    • 炼金术: GM Agent 生成一个“合成台” UI,玩家可以将 [物品] 面板中的道具拖拽进去进行组合。
    • 推理: GM Agent 生成一个《逆转裁判》式的“指证”界面,让玩家将 [线索] 和 [人物] 关联起来。