AI 驱动的非扮演型交互式叙事框架
DirectorPrompt 是一款 AI 交互式叙事桌面软件,核心定位是导演模式:用户不扮演任何角色,不出现在剧情中,而是以上帝视角、通过不同类型的指令推动整个世界运行,AI 负责生成叙事内容。
与市面上主流的 AI 小说工具不同, DirectorPrompt 从零搭建了一整套支撑系统 —— 世界知识管理、故事记忆召回、状态变量更新、时间线切换, 切实保障单一对话的长期游玩体验。
- Windows 11
- .NET 10 SDK
- (可选) Ollama 用于本地模型
进入 Release 页面, 下载 DirectorPrompt-win-Portable.zip, 解压缩后运行 DirectorPrompt.exe
- 启动软件, 进入主界面
- 打开设置界面, 配置提供商、模型, 为各个代理任务、向量生成分配模型, 保存
- 创建新项目, 支持导入本软件的数据包或 SillyTavern 导出的角色卡
- 编写/修改项目提示词、填充知识条目、设定人物分类、规定状态系统, 保存
- 发送消息, 开始游玩
| 常见角色扮演工具 | DirectorPrompt | |
|---|---|---|
| 用户身份 | 扮演特定角色参与剧情 | 上帝视角, 通过指令推动故事发展 |
| 知识系统 | 关键词/正则匹配, 差一个字符就无法召回 | 向量语义检索, 只要语义相近就能匹配 |
| 记忆管理 | 靠上下文硬塞与模型注意力硬顶 | 向量语义+时间衰减混合召回, 智能控制上下文长度, 原文始终保存, 再多信息也不会丢 |
| 状态系统 | 无 | 底层支持状态系统, 支持变量、表达式、枚举, 还有与知识共联的阶段切换 |
| 时间管理 | 无 | 一维坐标轴, 支持随意切换故事时间场景, 智能管理记忆可见性 |
| 人物系统 | 以角色卡为单位, 只能定义单个人物详细信息 | 有丰富的多人物类别描写、指定、继承, 还能为人物类别指定状态系统, 人物间构建关系网络 |
| 成本 | 单一对话越长, 成本越高 | 始终只塞有用的信息, 单次游玩缓存命中高 |
底部输入区并非简单聊天框, 其支持多类型指令组合、排序, 传递丰富的语义与控制:
- 剧情指令 — 指导叙事变更
- 基调指令 — 约束叙事风格, 支持指定轮数后自动过期或手动移除
- 临时约束 — 短期硬性约束, 支持指定轮数后自动过期或手动移除
- 时间/场景变更 — 变更故事目前的时间/场景
指令排列顺序本身携带语义。如: 先写"三天后"再写"主角发现密信",与顺序反过来, 会产生完全不同的理解
侧边状态栏根据故事发展由 AI 实时填写、更新, 支持自定义任意状态, 包含项目状态系统和人物类别状态系统。
单一状态支持类型: 数值和枚举类型, 与驱动方式: AI 从叙事中提取变更填写、系统根据规则自动切换
- 数值类型下, AI 会根据用户填写的规则(最大值/最小值、单位、变更规则)与叙事发展加减数值, 如: 金钱、声望值等。
- 枚举类型下, 系统会根据触发时机设置与枚举定义自动切换状态, 如: 天气、季节等。每个枚举支持设定为:随机、表达式。
- 随机模式下, 可以为枚举设定触发概率, 系统会在触发时机到来时自动根据概率随机切换至指定的枚举
- 表达式模式下, 可以为枚举关联其他的状态, 通过复杂表达式实现在特定状态下自动转为指定的枚举。
阶段是状态系统的核心机制: 通过编写表达式, 在状态变为指定值/进入指定区间, 又或是不为指定值/退出指定区间时, 自动注入隐藏的知识条目或是发送一批预定义好的指令组合。
比如可以设定当 理智值 ≤ 50 时, 自动注入 世界的隐秘真相之三 知识条目, 同时自动发送指令组合:
(基调指令, 持续 3 轮)环境氛围变得压抑(临时约束, 持续 3 轮)理智值无法恢复至大于 50 的值
从而使与 AI 的互动真的像一款有程序逻辑制作的文字游戏, 而非一切都靠用户记忆规则并手动发送约束
知识/记忆的召回依赖向量语义检索, 即: 在 AI 看来, 两段文本之间的语义有多相近。
传统工具依赖关键词/正则匹配触发上下文注入, 譬如一段知识的触发关键词是 "巷子"、"小巷", 那么当我发送消息包含的关键词是"窄巷"时, 就无法触发上下文注入, 只能通过游玩反复添加, 而这个工作可以说是无穷尽的。
而向量语义检索会先把文本丢给 AI, 为文本语义生成固定值, 然后软件会对所有存储的知识/记忆与文本进行比较, 召回与其语义最相关的指定个条目。
在 AI 看来: "巷子"、"小巷"、"窄巷"、"窄道" 都有着相似的语义, 那么无论输入什么, 都可以成功召回相应的知识/记忆, 使叙事生成极为省心、智能、灵活, 也使得知识和记忆都可以随意存储, 真正实现信息不磨损、按需召回
知识系统支持分组管理、手动开关。可将后期才揭示的设定放入独立分组, 前期关闭, 时机成熟后手动开启。使各种叙事手法, 如: 叙诡、反转等的节奏完全可控。
记忆召回时按语义相关性和时间线位置衰减混合排序 —— 久远时间线记忆权重自然降低, 模拟人类遗忘过程, 但不会被删除, 必要时仍然能召回完整信息。
记忆归属时间线场景, 跳跃至更早时间点场景会自动屏蔽,无需手动标记有效性。
故事越长, 历史越难全部塞进 AI 上下文, 模型成本也会越来越高 (尤其是在两次游玩超出了模型提供商缓存有效期的时候), 模型智力、注意力也会不断下降。
软件会在故事时间/场景变更或上下文超限时, 自动压缩存储为记忆存入库中, 使上下文长度始终保持可控。
所有模型、代理调用都会尽量保持消息前缀稳定, 使得单次游玩过程中, 能够尽可能多地命中缓存, 降低成本。
软件采取 "人物分类" 定义而非具体的人物设定来让整体游玩更加契合第三人称上帝视角。
人物分类支持多重继承、状态栏指定; 人物支持有向关系 (A 对 B 的关系/记忆和 B 对 A 的关系/记忆可以完全不同)。
AI 自动维护人物: 新人物登场时自动建档, 人物离场时自动标记状态, 故事发展、关系变化时自动产生记忆, 为每个人物形成可调用查询的人物经历档案, 全程无需用户手动干预。
引入一维坐标轴与时间/场景概念, 线性推进叙事时自然流畅。
需要跳回先前某一时间点时 (比如回忆、闪回等), 只需要在指令中包含一条 时间/场景变更 指令, 系统就会自动将新场景插入正确的时间位置。
根据当前时间/场景, 会自动过滤掉晚于该时间/场景的记忆、知识、状态读取, 且其中的状态、记忆变更也不会影响到最新时间/场景, 全程无缝无感衔接。
内部提供各类工具覆盖人物、状态、知识、记忆、场景等全场景, 让 AI 代理能够通过工具调用实现强大能力。
同时支持 MCP 协议双向集成, 既可对外暴露软件工具能力, 也支持各类 MCP 连接扩展获取更多工具, 让软件内叙事发展更加强大生动, 让外部也能操控叙事更加灵活多变。
对话中, 所有的操作、行为、变更都会被记录为事件序列, 支持精准完整的回溯、重放。
一次回滚会自动回退所有生成文本、状态、人物、记忆变更, 并将指令自动恢复至指令区, 整体游玩无比灵活。