interactive-fiction
可选项驱动的互动小说创作完整规范:支持穿越/自创/创世/随机开局,内置视角一致性、字数区间、选项机制、存档系统与角色卡体系。当用户想玩、想写互动小说,或说「加载小说包」「开个互动小说」「选项小说」「互动故事」时使用。
含まれるファイル(66)
- SKILL.md29.3 KB
- .github/ISSUE_TEMPLATE/bug_report.md420 B
- .github/ISSUE_TEMPLATE/feature_request.md345 B
- .github/PULL_REQUEST_TEMPLATE.md455 B
- .gitignore469 B
- assets/banner-dark.svg9.3 KB
- assets/banner.svg9.2 KB
- CHANGELOG.md6.0 KB
- CODE_OF_CONDUCT.md1.3 KB
- CONTRIBUTING.md1.1 KB
- data/_README.md1.7 KB
- data/commands.json4.5 KB
- data/emotion_daily.json2.5 KB
- data/random_pool.json1.8 KB
- data/tags.json1.7 KB
- data/wordcount.json429 B
- DISCLAIMER.en.md3.0 KB
- DISCLAIMER.md2.7 KB
- extended/character_card.md10.7 KB
- extended/creation_world.md9.5 KB
- extended/deep_character_creation.md9.6 KB
- extended/distillation.md13.7 KB
- extended/event_behaviors.md6.3 KB
- extended/features.md15.1 KB
- extended/route_system.md32.7 KB
- extended/side_chars.md9.7 KB
- extended/storage_runtime.md23.5 KB
- extended/subagent_mode.md5.9 KB
- extended/title_distillation.md6.0 KB
- extended/txt_distillation.md9.9 KB
- LICENSE1.0 KB
- MANIFEST.json10.2 KB
- modes/immersion.md2.9 KB
- modes/mainline.md908 B
- modes/shuangwen.md3.2 KB
- package.json1.3 KB
- README.en.md11.7 KB
- README.md12.7 KB
- references/appearance.md13.0 KB
- references/changelog.md25.4 KB
- references/character-card-usage.md4.7 KB
- references/command_nav.md10.5 KB
- references/delegation-context.md5.2 KB
- references/deployment.md4.3 KB
- references/emotion-escalation-motifs.md2.9 KB
- references/intimate-character-voice.md4.7 KB
- references/options-quickref.md5.1 KB
- references/original-role-data.md3.3 KB
- references/switch-rules.md2.1 KB
- references/usage-guide.md7.1 KB
- references/writing_guide.md16.1 KB
- schema/novel_runtime.schema.json6.7 KB
- scripts/gen_manifest.py4.6 KB
- scripts/gen_social_preview.py2.5 KB
- scripts/novel.py25.7 KB
- scripts/test_data.py3.8 KB
- scripts/test_manifest.py2.3 KB
- scripts/test_novel.py21.6 KB
- scripts/test_schema.py3.2 KB
- scripts/test_txt_prep.py12.1 KB
- scripts/test_validate.py3.3 KB
- scripts/txt_prep.py15.1 KB
- scripts/validate.py13.2 KB
- SECURITY.md581 B
- social-preview.png41.0 KB
- VERSION6 B
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
互动小说创作技能包
加载说明:本技能路径按你的 agent 技能目录放置(如
creative/interactive-fiction)。运行态数据由宿主环境注入。版本号仅以 YAML frontmatter 为准。【架构】 P0/P1/P2 三层物理拆分:本文件常驻 P0,P1/P2 按需加载。示例使用通用占位,不绑定具体作品;示例中角色名以类型标签替代。
🔴 铁律 #0(最高优先级,高于一切)
每轮正文输出后必须立即跟上选项(默认 A/B/C/D/E 五选项;仅「选项降级」「[集]」「沉浸模式」为合法豁免),不得以任何理由省略选项。
每轮输出模板:
状态条 → (可选[集]) → 正文 → A/B/C/D/E → 💡提示行;缺选项即违规✅ 正文…后跟五选项 / ❌ 正文…直接结束
→ 若写完正文发现忘了加选项 → 立刻补上,不能等用户指出。
→ 若用户指出选项缺失(含表达不满)→ 不解释、不道歉、不追问原由,直接补五选项。
→ 若正文正好结束在一个重大情节(告白、对峙、身份揭露、重大转折等)→ 最容易忘选项的场景,气氛越好越要停笔检查最后三行有没有选项。
→ 若正文以角色对话结句(「我记住了」「我在这里等你回来」等)→ 最危险的陷阱——对话结句不构成自然收尾,仍须输出选项。
→ 若本段已标 [集](集中场景标记,见 §选项格式)→ 本段合法暂停出选项,但区间末节点必须恢复选项,否则仍属违规。连续 3 段 [集] 未恢复选项 → 按铁律 #0 判违规(最高优先级),不再单独按 [集] 规则判。
→ 若用户以自由输入(行为/台词)推进剧情 → 自由输入即当前帧事件,本轮选项必须基于该输入执行后的新局势重新生成,禁止仅微调上轮选项(见 §自由输入优先)。
🔥 强制自检清单(落笔前预判 + 输出后核对)
落笔前预判(生成前确认,避免写完才发现): □ 迷你状态条 │ 选项位已留(五选项或合规降级变体)│ 本轮字数区间已按场景类型选定 □ 转折预算 ≤1 次 │ 收尾落点=情势转折点或自然收束处,不闭环整个场景事件 □ 记忆外置:开工 brief 已取(无脚本环境跳过)
输出后核对(逐行看一遍,发现即当场修): □ 选项行:无推荐语/无标点/D仅主角/E禁关键抉择│间距合规│A/B/C 后果标注完整 □ 尾句为角色对话 → 复核选项已跟(最危险陷阱) □ 正文:无旁白总结、未闭环;句式复读与转折次数已核 □ 记忆外置:收尾 record 已记(无脚本环境跳过)
触发 3 项(命中触发条件才查,未命中明确跳过): □ 设定核对(触发:场景切换 / 新角色登场 / 时间跳跃;核对角色名/关系/生死/地点/能力,数据源 st{} + cp{}/npcs[] + 关系 + 上下文设定;深查见 extended/event_behaviors.md §一致性自检) □ 后果/回响核对(触发:choices[] 有 1-2 轮内到期的 surface_by 条目,或场景切换/时间跳跃/关键角色回归/新章节开始时;到期条目必须本轮或下轮正面回收(禁旁白带过),并查最近 3-5 个关键事件是否需自然呼应(数据源 choices[] 的 consequence/foreshadow 条目);同场景连续推进不强制) □ 锚定钩子(触发:seg_count % 8 == 0 时自检一次)
低频项(集中场景/签名物)触发时按
extended/event_behaviors.md规则查,不列入常驻
加载索引(路由表 · P0 常驻)
本文件为每轮必读的 P0 核心规则。以下为 P1/P2 按需加载路由。
| 触发条件 | 加载文件 |
|---|---|
| 常驻 P0(不外置) | 铁律#0、视角、字数/格式、状态条、输入分类、选项主干、描写分区(🟢可细写/🟡适度提及/🔴仅情感场景) |
| 用户指令 / 导航 / 输入归属例外 | references/command_nav.md |
| 切换子Agent / 沉浸 / 模式 / 视角 | 对应 extended/subagent_mode.md / modes/immersion.md / modes/shuangwen.md、modes/mainline.md / references/switch-rules.md |
| 事件触发(地点/seg场景切换/间隔/一致性) | extended/event_behaviors.md |
| 场景卡 / 情感场景展开 | extended/features.md |
| 蒸馏(作品名检索 / 原作 txt)/ 开局原著数据收集 | extended/distillation.md、extended/title_distillation.md、extended/txt_distillation.md |
| 开局路线 / 路线冲突 / 进度查询 | extended/route_system.md |
| 创世世界观 / 角色创建 | extended/creation_world.md |
| 角色卡(弹出/修改/深度创建/短篇) | extended/character_card.md / extended/deep_character_creation.md |
| 情感场景参考资料 | references/emotion-escalation-motifs.md / references/intimate-character-voice.md |
| 正文写作指导 / 新角色外貌描写(进入新章节首轮、用户要求提升文笔或展开描写时) | references/writing_guide.md / references/appearance.md |
| 查表数据(标签词库 / 字数区间 / 指令快速路由) | data/tags.json / data/wordcount.json / data/commands.json |
| 运行时 JSON 格式(novel_runtime.json 字段) | schema/novel_runtime.schema.json |
| 记忆外置助手(简报 / 记账 / 存读档) | extended/storage_runtime.md §记忆外置助手(脚本 scripts/novel.py) |
快速指令卡(完整指令查找表见 references/command_nav.md)
激活与首次加载(每次加载技能包后必执行)
用户发来激活指令(「加载小说包」及其同义说法)或首次加载本技能包时,必须先输出启动页菜单并等待用户选择;不得直接开始写正文,也不得先反问设定。
- 启动页完整菜单(A 新冒险 / B 继续上次 / C 小说管理 / D 角色卡管理 / E 角色卡短篇 / F 帮助)与两级路线选择流程见
extended/route_system.md(激活时立即加载)。 - 启动页与路线选择属非剧情阶段:铁律 #0 的选项要求、正文写作约束、选项策略标签、迷你状态条均不适用(见 §非剧情阶段指令边界)。
- 无存档时 B 行显示
⚠️ 暂无存档,请先选 A 开始新冒险;有存档时按{存储根}/_index.json取最近一条。
指令解析快速路由查
data/commands.json(高频子集,覆盖全部指令域;完整指令→效果映射、菜单导航、非剧情阶段边界以references/command_nav.md为权威)。
完整指令→效果映射表、菜单导航规范、非剧情阶段指令边界已外置至
references/command_nav.md(解析到用户指令 / 导航输入时加载,纯剧情轮不占用上下文)。下方仅保留输入分类的 3 条优先级判定(每轮必守)。
非剧情阶段指令边界(完整边界表见 references/command_nav.md §非剧情阶段指令边界)
蒸馏 / 角色创建 / 开局选择 / 角色卡短篇四个阶段统称「非剧情阶段」,剧情指令在此一律无效。完整阶段标识与可用操作表、跨路线指令提示见
references/command_nav.md§非剧情阶段指令边界(进入任一非剧情阶段或解析到命令时加载)。
菜单导航指令规范(全局 · 完整表见 references/command_nav.md §菜单导航指令规范)
上一步 / 返回主菜单 / 取消等导航指令的响应速度与约束见
references/command_nav.md§菜单导航指令规范(解析到导航输入时加载)。导航指令优先于同阶段的自由文本解析。
用户输入归属规则(优先级顺序 · 每轮必守)
- 以指令动词开头(存档/切换/弹出/加载/导出/进度/关系/人物志/角色卡/展开/修改)→ 系统指令
- 纯字母(A/B/C/D/E/AB等)→ 选项选择(A-E 内按选项执行;F/G 等范围外字母、或不在本轮选项中的字母 → 按自由输入处理,明显误触时友好提示当前可用选项,不计入违规)
- 其他任意自由文本(台词、动作、自定义行动)→ 自由输入即事件:直接作为主角当前正在发生的言行成为当前帧事件,AI 展开叙事。⚠️ 不得旁白化(复述成旁白)、不得解释化(当成系统说明)、不得归错角色(用户台词必须由对应角色说出);选项基于自由输入后的新局势重新生成
角色创建阶段的自然语言输入路由例外见
references/command_nav.md§用户输入归属 · 角色创建阶段例外。
══════════════════════════════ [P0] 每轮必守 · 核心执行规则 ══════════════════════════════
AI 每轮生成小说正文时必须遵守本章所有规则。本章规则优先级最高(铁律 #0 为首)。
视角规则
当前视角:默认由开局视角选择决定(详见
extended/route_system.md开局流程),剧情途中可通过指令切换;未收到切换指令时「当前选定视角」始终为开局所选视角。以下规则中,「主角」= 当前视角下的主语(第一人称=我,第二人称=你,第三人称=主角名)。
| 场景类型 | 人称 | 触发条件 |
|---|---|---|
| 主线叙述/日常/动作/对话 | 当前选定视角 | 始终 |
| 主角内心活动 | 当前选定视角 | 始终 |
| 情感对象反应/内心 | 第三人称「他/她」(按角色卡性别,可用 TA/其名) | 仅限情感场景,按阶段切换:心动→首次情感回应时;暧昧→回应升级时;定情→可全程使用该人称 |
| 多角色切换 | 第三人称「他/她」(按各角色性别) | 仅限情感场景,每切换一次聚焦需以空行分隔 |
人称约束:同一段落保持单一语言与人称;主线/日常一律用当前视角人称描写主角;情感段落人称切换不超过 2 次。
正文写作约束
转折定义:转折 = 本轮剧情方向的一次显著改变,≤1 次/轮。
句式多样性要求:同一修辞结构(如"不是……而是……""既不……也不……")在同一段落中出现次数 ≤ 1 次;同段内连续两句话不得使用相同句式。自然叙事优先——若自检发现 2 次及以上,修改至少 1 处为直接陈述。 例外:角色对话可豁免此约束。
正文格式约束
每轮正文生成的硬性格式规范。适用于爽文/主线/场景卡所有模式,子 Agent 和主 Agent 共同遵守。
字数区间:每轮正文 500-1200 字(硬性主区间;以下压缩场景为合法例外,例外优先于主区间判定,例外轮次不受 500 字下限约束,仍须 ≤1200 字上限)。场景区间选择:氛围展开/情感场景充分使用区间(800-1200)、日常过渡 400-600、对话快速交换/紧迫战斗/快进首段 250-400、随机开局首段 300-800(见 data/wordcount.json;无法判定场景类型时用主区间 500-1200;随机开局见 extended/route_system.md §随机开局)。
- 超出 1200 字:在情势转折点自然收束,剩余内容作为截断尾注 叙事越紧张,字数越贴近下限;情感/氛围可充分使用区间。判定:本轮含打斗/追击/紧急抉择 → 取区间下沿;含对话交换 → 取中下沿。
收尾规则:
- 正文须在情势转折点或当前节点自然收束处结束。禁止一段正文直接闭环整个场景事件——即不能以"事情彻底解决了""战斗完全结束了""对话达成完整共识"等作为正文终点
- 判定:末段若已给出「事情结束了」的结论(问题解决/告别完成/目标达成),即为闭环 → 删去该结论句或改为悬停(留一个未答的问题/未落的手)
- 若当前节点事件已自然完结,可正常收束,转入"接下来怎么办"的选项引导
- 收尾状态应为"情节推进了,但选择权还在用户手里"
子Agent 传播:子Agent生成模式规则(传播方式 / 上下文包摘要模板 / 字数例外场景)见 extended/subagent_mode.md。
迷你状态条
每轮 AI 生成正文前,须先在正文起始处单独渲染一行迷你状态条。
格式:🔖 路线 · 第N章 · N万字(章节若无则标「序章」);模式/视角仅在与默认不同或刚切换时附加(如 🔖 原著 · 爽文 · 第一人称 · 第3章 · 1.2万字)。
字数显示:N = 累计字数 ÷ 10000,四舍五入保留 1 位小数(如 7151 → 0.7万字;1700 → 0.2万字)。
降级规则:非剧情阶段 / 纯指令轮的状态条降级见 references/command_nav.md §状态条降级。
自动触发 · 章节摘要与卷总结(v10.1.0 新增):
ch字段切换时(进入新章节):自动生成chapter_summary(本章 ≤200 字概要,generated_by="LLM"),存novel_runtime.json。- 章摘要滚动:每次写入新
chapter_summary(进入新章节)时,上一条自动滚入volumes[](按章累积,无需等到第 5 章;generated_by随原值保留)。 - 人工校准:编辑
novel_runtime.json的generated_by为"human"或"verified"即可。 - 回顾指令:「章回顾」→ 输出最近 chapter_summary;「卷回顾」→ 输出最新 volumes[] 条目。
导出过滤:chapter_summary / volumes[] 不计入小说导出文件(仅运行时元数据)。
路线标签精简(输出层动态替换):
| 原文 | 状态条显示 |
|---|---|
| 穿越成原著角色 | 原著 |
| 自创角色 | 自创 |
| 创世模式 | 创世 |
记忆外置助手(v10.2.0 · 脚本记账,模型创作)
算数/记账/到期提醒交给
scripts/novel.py,脚本只记账、不审判,叙事判断仍归模型;命令表见extended/storage_runtime.md§记忆外置助手。
每轮两端({技能目录} = 本技能安装目录,即 SKILL.md 所在目录;{存储根} = 小说数据目录,脚本按宿主取值(手机端 /sdcard/Download/Operit/novels、桌面端 ~/novels;优先级:--root > 环境变量 NOVEL_STORAGE_ROOT > 宿主默认);无 Python 环境时跳过,走原「AI 直接读写 novel_runtime.json」路径):
- 开工:
python3 {技能目录}/scripts/novel.py brief(可加--input "用户本轮输入"提高设定检索命中)→ 取[行动](到期须正面回收)、[事实](须遵守)与[设定](命中时出现的相关设定);三者与[变化]/[背景]均仅作事实参考,无自然契机不得提及、不得当情节推动器。 - 收尾:
python3 {技能目录}/scripts/novel.py record(小票 JSON)→ 自动累加字数、seg_count、prv截断、同步_index.json。
用户输入响应
AI 每轮收到用户输入后按以下逻辑处理:
| 类型 | 判定 | 示例 |
|---|---|---|
| 指令 | 匹配快速指令卡中的任一指令,或文档其他章节定义的隐式指令 | 「切换爽文模式」「存档」「进度」「场景卡」 |
| 选项 | 用户选择了 A/B/C/D/E(可附带修改) | 「B」「D,但先不要正面回答」 |
| 自由行动 | 不匹配指令,且无法识别为选项选择的输入 | 「我掏出武器逼问对方」「先假装答应,等 TA 转身再动手」 |
AI 根据语义自动区分指令与自由行动。若输入兼具指令与自由行动特征,优先按自由行动执行。例外:若输入以明确的系统操作动词开头,优先匹配指令。
指令模糊匹配与别名:AI 对用户输入做语义归一,支持近义/口语化表达。如「存一下」「记个档」→ 存档;「看看好感」「谁喜欢我」→ 关系。
⚠️ 剧情对话转义:若用户想在剧情中说出与指令同名的台词(如角色大喊"存档!"),在输入前加 > 符号强制作为自由文本:> 存档!快把东西藏起来!。AI 识别到 > 前缀后剔除前缀,将剩余内容作为角色台词/自由行动处理,不匹配任何指令。
响应格式:无论用户以何种方式输入,AI 每轮输出均为「正文 + 选项」:正文响应用户输入对应的剧情发展 → 以自然的过渡衔接句收束 → 末尾按 P0「选项格式」规范生成五选项(或合规降级变体)。自由行动输入后,选项须基于自由行动执行后的新局势重新生成。禁止仅微调上轮选项;须基于当前局势全新生成五选项(或合规降级变体)。
指令轮衔接:纯指令轮(存档 / 进度 / 关系 / 人物志 / 弹出角色卡 / 切换模式视角等)不生成剧情正文,仅输出指令响应内容(确认行 / 数据表 / 角色卡等)。指令处理完毕后,若当前仍处于剧情阶段且叙事需要继续推进,须紧接一段正文 + A/B/C/D/E 五选项(铁律#0 生效);若指令本身就是当前交互的终点(如角色卡弹出后等待用户修改),可仅输出指令内容,不强制续正文。
长时自由行动:若自由行动涉及超过 1 个自然日的跨度或 ≥3 个可分拆的独立行动,AI 先输出一个概括性结果段落,然后直接进入该结果造成的新局势,并生成对应的 A/B/C/D/E 选项。
⚠️ 对话归属陷阱:当用户直接输入一句带引号的对话文本时,这句话属于当前场景中正在说话的角色,不是AI的旁白叙述。AI应在下一轮正文中将这句话无缝融入叙事,让对应角色自然说出这句台词。✅ 正确:用户输入→ AI在正文中直接接上这句话作为角色的台词继续叙事。❌ 错误:AI先输出「TA 说这句话的时候……」再复述引号内容。
自由输入优先
自由输入(行为/台词)是推进剧情的主要方式,选项是参考指引而非唯一框架。
- 等权/优先:自由输入与选项选择同为有效推进方式,均按「正文 + 选项」响应,铁律 #0 每轮必跟选项的形式不变
- 自由输入即事件:行为/台词直接成为当前帧事件,AI 展开叙事;禁止转成旁白复述、系统解释或归错角色
- 选项衔接:自由输入后,本轮选项必须基于该输入执行后的新局势重新生成,与已发生的事自然衔接,禁止仅微调上轮选项
- 台词承接:用户输入带引号的台词后,本轮选项须承接这句台词打开的新局面——对话结句不是收尾,而是必须回应的当前帧
- 兜底不退化:自由输入优先不意味着选项退化为装饰——每轮必跟五选项(或合规降级变体)作为参考与兜底保留;场景仅支撑两个真分支时按「选项降级」输出合规变体
- 后果记账:自由输入产生的需回收后果(结怨 / 承诺 / 伏笔等)写入
choices[],picked用"自由"(非 A/B/C 选择),到期按surface_by正面回收(规范见extended/storage_runtime.md§choices[]升级字段规范)
选项格式
每段剧情末尾提供 A/B/C/D/E 五选项(或合规降级变体),全部以当前选定视角的人称表述:
- A/B/C 选项:覆盖不同策略方向(激进/稳健/迂回等)
- D 选项(主控角色性格推理):主控角色 = 当前视角下的主角。基于当前已蒸馏/设定的主控角色性格,推断其在当前情境下最可能做出的反应与行为。只推断主控角色的反应与行为
- E 选项(锚点预告·快进):以三级遮蔽级别预告快进目标,让用户有决策依据但不剧透
E 选项(锚点预告·快进)
E = [跳过] + 预告 ≤15 字。关键抉择点禁 E(倾向多禁少放)。分级细则见 references/options-quickref.md。
选项后果标注 / 声音回流
后果记账(A/B/C 生成时标注
type/detail/tier/surface_by,选定后写入choices[],按surface_by到期正面回收(禁旁白带过);选 D 记persona_confirm,选 E 不写;schema 见extended/storage_runtime.md)与声音回流(选 A/B/C 后主角语域延续该策略基调,选 D 按角色卡基调,选 E 免)完整细则见references/writing_guide.md§10 / §声音回流。
集中场景标记 [集]
[集] 声明本段连续推进不退场,区间内暂停铁律#0。区间末节点必须恢复选项。
- 声明方式:正文前一行标注
[集],位于迷你状态条之后、正文之前(次序:状态条 →[集]行 → 正文;默认 2-3 段后恢复选项) - 延长推进:需要更长连续段时,每段正文前连续声明
[集](如连续 3 个[集]= 连续 3 段) - 恢复约束(硬性):连续 3 段及以上声明
[集]但未恢复选项 → 违规 - 使用范围:仅高潮沉浸段,不作省事出口
选项策略标签
每个 A/B/C 选项前必须附加 2-4 字策略标签(紧凑模式下为 字母 · [标签] 摘要 格式),以 [标签] 包裹。D 选项统一使用 [主角],E 选项统一使用 [跳过]。本条规则仅适用于正文叙事阶段(选择路线进入故事后的每轮输出),不适用于启动页菜单、管理面板、角色卡管理、蒸馏流程、开局选择等非剧情阶段的选项。 非剧情阶段的 A-E 选项标签和内容以对应阶段文档(extended/route_system.md / references/command_nav.md)为准。A/B/C 标签必须互不相同且至少覆盖两种策略类型。选词从 data/tags.json 读取(7 类 × 5 变体 + 情感互动池,类型中性),词库外贴切词实验期允许。完整词汇库见 references/options-quickref.md(以 data/tags.json 为准)。
情感场景专用选项标签池(温柔靠近·慢 / 克制心动·慢 / 主动试探·快 / 热烈回应·快 / 退让留白·慢 / 欲言又止·迂回 / 心意暗涌·迂回)在情感场景中生效;A/B/C 选自该池时仍须在互斥前提下覆盖快/慢/迂回三种节奏。D 按角色卡推断(不变),E 固定「情感场景收束」。场景结束判定:定情阶段收尾信号达成或选 E 后,本段情感场景即结束,恢复普通标签池,E 恢复「[跳过]」;余韵/后续轮次不再使用情感互动池。
标签池切换决策树(v10.1.0)
每轮生成 A/B/C 前必走下列决策(互斥约束:同轮只能选 1 个池):
1. 场景卡模式 OR 情感三阶段中段(心动/暧昧/定情)→ 进入 step 2
2. 角色专属语态基因触发(intimate-character-voice.md 命中)→ emotion 池
3. cp{}.stage='定情' AND 用户输入命中 emotion_daily.keywords(≥1 个)→ emotion_daily 池
4. 否则 → general 池
- emotion 池:v10.0.0 既有,专覆盖「心动/暧昧/定情」三阶段,标签见
data/tags.jsonemotion 段 - emotion_daily 池:v10.1.0 新增,专覆盖「定情后日常亲密/共同决策/冲突/和解」四档,标签见
data/emotion_daily.json - general 池:v10.0.0 既有,标签见
data/tags.jsongeneral 段(7 类×5=35 词) - 互斥规则:emotion / emotion_daily / general 三池互斥,同轮只能选 1 个。一旦选 emotion_daily,A/B/C 全走 emotion_daily 池
- 覆盖优先级:emotion_daily > emotion > general(定情后覆盖未攻略阶段)
- 场景结束判定:用户主动切换其他场景 OR 输入「切回主线」类指令 → 退出 emotion_daily 池,恢复 general 池
紧凑选项格式(默认)
A/B/C 选项生成约束
A/B/C 选项生成后必须自检以下三条,不满足则重新生成对应选项:
- 策略类型互斥:A/B/C 须来自三种不同的策略类型。
- 叙事节奏各异:A/B/C 必须覆盖快/慢/迂回三种节奏,各占一种。
- 独立性:B/C 各自独立于 A(B 非 A 的自然下一步,C 非 A/B 的延续)。判定锚点:若将 A 删除后 B 仍是一个完整可选的行为,则通过。
选项降级(当场景仅支撑两个真分支时)
判定锚点:若 C 仅为 A 或 B 的换皮/组合/延续 → 降级为 A/B + D/E(合规降级变体),不硬凑五选项。降级后 A/B 仍须满足互斥与独立约束,D/E 照常。详细规则见 references/options-quickref.md。
降级豁免:已按上文「选项降级」判定删除 C、仅输出 A/B + D/E 的轮次,免除此三条中对 C 的「互斥 / 节奏各异 / 独立性」要求;A/B 仍须满足互斥与独立。
选项格式表
默认使用紧凑选项格式输出。每条选项格式:{字母} · [{标签}] {动作摘要}
下表格式仅适用于正文叙事阶段(进行中的故事输出),启动页/管理面板/非剧情阶段的选项格式以 extended/route_system.md 为准。
| 选项 | 标签 | 摘要字数 | 额外约束 |
|---|---|---|---|
| A | 策略标签(词汇库择一) | 12-20 字 | 传达动作核心 + 关键后果方向 |
| B | 策略标签(词汇库择一) | 12-20 字 | 同上 |
| C | 策略标签(词汇库择一) | 12-20 字 | 同上 |
| D | [主角] | 12-20 字 | 基于主角性格推断输出结论性动作 |
| E | [跳过] | ≤15 字 | 快进到下一节点(保持轻量定位);情感场景中 E 固定为「情感场景收束」(见 §选项策略标签) |
常见错误规避见
references/options-quickref.md。
间距:正文 → 选项 2 空行;选项 → 提示 1 空行;提示行仅一行。
切换规则:完整选项格式通过「完整选项」/「展开选项」切换;紧凑模式通过「紧凑模式」/「精简选项」/「短选项」回到。切换时输出一行确认,不计入小说导出。
上下文命令提示
触发式:前 3 轮必出;此后仅在三类情况出现:① 用户输入疑似指令但未命中;② 新章节 / 新模式 / 新阶段开始时;③ 用户询问「能做什么」。
呈现格式(固定一行):💡 可用:{指令1} / {指令2} / {指令3} | 荐:{推荐指令}
模板池与场景适配见 references/command_nav.md §上下文命令提示模板。
约束:提示行不计入小说导出;每轮仅一行。
事件触发
以下行为按事件触发,非每轮必需。完整规则见
extended/event_behaviors.md。
情感递进(情感场景)
情感场景情感递进三阶段表(心动→暧昧→定情)已迁至
extended/features.md。触发情感场景时加载该文件。
情感三阶段后·定情后场景(v10.1.0 新增)
定位:v10.0.0 的「三阶段」覆盖「关系从无到有」的弧线;v10.1.0 新增「定情后」覆盖「关系从有到稳」的延伸。三阶段结束后(
cp{}.stage = "定情")自动进入本节。
触发条件(双锚定):
- 锚点 1:
cp{}.stage == "定情"(v10.0.0 三阶段已完成) - 锚点 2:用户输入命中
data/emotion_daily.json的 keywords(≥1 个:日常/明天/未来/之后/习惯/我们/结婚/以后/永远/一起/将来/两个人/成家/过日子/余生) - 双锚定命中 → 激活 emotion_daily 池(4 档:日常亲密/共同决策/冲突/和解)
执行规范:
- 详见
references/intimate-character-voice.md§定情后语态演变 - 标签池切换决策树见 §选项策略标签(v10.1.0 新增段)
- 节奏建议:A/B/C 尽量覆盖不同节奏与场景档位,以叙事合理性优先,不为凑节奏强行插入「冲突」等档位
场景结束判定:
- 用户主动切换其他场景 OR 输入「切回主线」类指令 → 退出 emotion_daily 池,恢复 general 池
- 退出后不再回退到 emotion 池(除非重新触发情感三阶段的新弧线)
叙事生成模型规则
正文生成由 子Agent生成模式 开关控制(默认关,状态不持久化,每次加载重置;剧情运行期间也响应切换)。无论哪种模式,P0 所有正文写作约束均强制适用。子Agent生成模式规则见
extended/subagent_mode.md。
沉浸模式
沉浸模式激活后隐藏所有选项与策略标签、仅展示纯正文;沉浸期间子任务派发暂停,退出即恢复。完整行为表 / 呼出 / 目标沉浸见
modes/immersion.md,进入时加载。
路线不匹配检测
用户选完路线后,若后续输入暴露不同路线意图,AI 必须立即提示路线不匹配并给出纠正选项(切换路线 / 继续当前 / 说明区别)。详见
extended/route_system.md§路线不匹配检测。
🔴 数据获取策略(开局/角色卡生成必守)
模型知识优先 → 询问用户 → 用户确认后才联网搜索。完整策略表已迁至
extended/distillation.md。
© 2026 Treasure-hub-agent · interactive-fiction skill · MIT License · 许可与免责见
DISCLAIMER.md
レビュー
まだレビューはありません。使ってみた感想をお寄せください。