English documentation: README.en.md
一个开箱即用的长篇小说 AI 创作工具。单个可执行文件,内置完整 Web 界面,连接任意 OpenAI 兼容 API(OpenAI、DeepSeek、本地 Ollama / LM Studio 等)即可自动生成大纲并逐章创作长篇小说。
程序本身不包含任何小说内容——故事类型、世界观、角色、写作风格全部由你配置,或交给 AI 自动生成。

下载对应平台的发布版本,或自行编译(见文末「开发」一节)。
[!WARNING] Windows 用户注意:首次运行时可能会弹出「Windows 已保护你的电脑」的 SmartScreen 警告(显示"未知发布者")。这是因为程序未购买代码签名证书。点击「更多信息」→「仍要运行」即可正常使用,或右键 exe 文件 → 属性 → 勾选「解除锁定」→ 确定。
[!NOTE] 程序请求网络权限仅用于调用 LLM API 和检查版本更新,不会收集或上传任何用户数据。
./show-me-the-story # 数据保存在当前目录
./show-me-the-story ~/novels # 或指定一个数据目录
启动后访问 http://localhost:48090(端口可通过环境变量 PORT 修改)。
首次进入会提示创建项目。创建后在「配置」页填写:
/chat/completions),如 https://api.deepseek.com、https://api.openai.com/v1、https://api.z.ai/api/paas/v4;仅填域名时会自动补 /v1。非标准路径(如 z.ai Coding Plan)可开启「严格 URL 模式」deepseek-chat、gpt-4o 等API 配置全局共享,所有项目通用。
在大纲页(空项目状态下)点「导入已有内容」,粘贴你已写好的文本。AI 会分析出标题、梗概、各章大纲与摘要,你确认导入后,已有章节标记为已完成,再点「生成后续大纲」即可接着往下写。
大纲确认后可让 AI 建议 3–8 条伏笔(含埋设章节和预计回收章节),也可手动创建。写作时活跃伏笔自动注入上下文;每章完成后 AI 自动更新伏笔状态:
planted(已埋设)→ progressing(推进中)→ resolved(已回收)
→ abandoned(已放弃)
伏笔超过预计回收章节 3 章仍未回收会自动告警。
已经写了若干章之后修改了角色 / 世界观等关键设定?保存时程序会提示进行「设定协调」:AI 比对新设定与已写内容,输出兼容版设定,并基于新设定重新生成尚未写作章节的大纲,保证前后一致。
写作页审核章节时,可在正文预览中框选一段话,点「引用到修改意见」,选中内容会以 > 引用行插入修改意见。提交后 AI 优先只重写引用句所在的自然段(其余正文不动);若无法在正文中精确定位或 AI 输出段数不匹配,会自动回退为整章最小化修订。
「技能」页可启用内置技能:
| 技能 | 类型 | 作用 |
|---|---|---|
| 中文去 AI 味 | 润色 | 23 条禁止模式 + 高频套话替换表 + 口语化规则 |
| 故事去味检测 | 润色 | 6-Gate AI 味检测流程与真人写作基准 |
| 写作技巧 | 写作 | 章首 / 章尾钩子、爽点密度、节奏控制 |
所有技能默认关闭,不会影响正常生成;启用润色类技能后,写作页的「去 AI 味」按钮可对单章做一键润色,全书优化执行时也可附加去 AI 味。也可在项目目录下放置自定义技能文件。
全部章节确认后,写作页会出现「全书优化」面板:
建议在配置页使用大上下文模型,并将「上下文预算」设为约 900000(1M 模型)。
右侧聊天面板(或「助理」页)提供一个能操作项目的 AI 助理。你可以用自然语言查询设定、修改角色、调整大纲、修订章节等。破坏性操作有多层防护:助理必须先向你确认,且修改章节时默认做最小化定向修订。
| 类别 | 示例 |
|---|---|
| 查询 | 「当前大纲是什么」「第 3 章写了什么」「有哪些角色」 |
| 设定管理 | 创建/修改/删除角色、世界观、组织、关系 |
| 配置 | 修改故事类型、章数、每章字数、写作风格、梗概等 |
| 大纲 | 生成大纲、按意见修订(章数不变时)、编辑单章 pending 大纲、确认大纲 |
| 写作 | 生成章节、确认章节、按意见修订某一章、框选引用后段落级修订、局部编辑段落 |
| 伏笔 | 建议伏笔、创建/修改/删除伏笔 |
| 技能 | 查看技能列表、开关技能 |
| 操作 | 建议做法 |
|---|---|
| 改总章数 / 整本重写大纲 | 更稳妥:配置页改好章数与字数 → 大纲页「删除大纲」→「生成大纲」。若用助理,请明确说「改成 N 章并重新生成大纲」,生成后务必核对章数。 |
| 已有确认章节后想整本换大纲 | 助理会拒绝 generate_outline(防止覆盖已完成内容)。应在大纲页用「生成后续大纲」追加,或新建项目。 |
| 缩章 / 减章 | 不要说「删掉后面 18 章」——delete_chapters_from 只清正文,不减章数。要减少章数请走「改配置 + 重新生成大纲」。 |
| 全书优化 | 在写作页「全书优化」面板操作,步骤多、需审阅工单,不适合聊天里一句话完成。 |
| 续写导入 | 在大纲页「导入已有内容」粘贴文本,界面可预览分析结果再确认。 |
| 关系图谱布局 | 在「图谱」页拖拽查看,助理无法操作 Canvas。 |
| 重置整个项目 | 危险操作;若确需重置,请明确说「重置全部进度」并确认助理复述的范围。 |
所有数据都是本地纯文本 / JSON 文件,目录结构:
<数据目录>/
├── api.json # API 配置(全局共享)
└── storys/
└── <项目名>/
├── config.json # 故事配置 + 提示词 + 技能开关
├── progress.json # 创作进度、大纲、章节、伏笔
├── settings.json # 角色 / 世界观 / 组织 / 关系
├── sessions/ # 助理聊天记录
└── Chapter_XX.md # 每章正文(Markdown)
想备份或迁移,直接复制整个数据目录即可。
本工具的每个 AI 调用步骤(大纲生成、章节写作、事实核查等)都会将历史摘要、前文大纲、角色设定、活跃伏笔、叙事记忆等注入到提示词中。其中全书章节脉络(前文全部大纲 + 后续 10 章大纲)随章节数线性增长,是最大的 token 消耗因子。推荐章节数的上限主要由 token 窗口决定——章节脉络注入量随章节数线性增长,最终会超出模型上下文限制。
| 当前章节数 | 输入 tokens(不含输出) | 说明 |
|---|---|---|
| 10 章 | ~9,000 | 章节脉络较短 |
| 30 章 | ~12,000 | 默认配置 |
| 50 章 | ~17,000 | 脉络块约占 9K |
| 80 章 | ~22,000 | 脉络块约占 13.5K |
| 100 章 | ~27,000 | 脉络块约占 17K |
上表按每章 2500 字、5 个角色估算。每章 5000 字时输出部分翻倍(~7,500 tokens)。事实核查最多重试 3 次,最坏情况 token 消耗约为上表的 2 倍。
推荐章节数的上限主要由 token 窗口决定(章节脉络注入随章节数线性增长)。模型之间的差异体现在写作质量(文笔流畅度、指令遵从度、文学性),而非能维持多少章的一致性——因为每章注入的上下文信息(设定、大纲、摘要、伏笔、叙事记忆)对所有模型完全相同。
| 模型 | 上下文 | 推荐章节数 | 每章字数 | 全书总字数 | 写作质量说明 |
|---|---|---|---|---|---|
| GPT-5.5 | 1M | 50–80 章 | 2500–5000 | 12–40 万字 | 旗舰级,文笔流畅、指令遵从度高、长文不易自行发挥 |
| Claude Opus 4.8 | 1M | 50–80 章 | 2500–5000 | 12–40 万字 | 文学性最强,细腻描写出色,擅长复杂人物关系 |
| Gemini 3.5 Flash | 1M | 50–80 章 | 2500–5000 | 12–40 万字 | 速度快、性价比高,写作质量好 |
| DeepSeek-V4-Pro | 1M | 50–80 章 | 2500–5000 | 12–40 万字 | 性价比极高,写作质量不错,偶尔需人工微调 |
| GPT-5.4 | 1M | 50–80 章 | 2500–5000 | 12–40 万字 | 综合能力强,中长篇稳定 |
| Claude Sonnet 4.6 | 1M | 50–80 章 | 2500–5000 | 12–40 万字 | 速度快、质量好,性价比优秀 |
| DeepSeek-V4-Flash | 1M | 50–80 章 | 1500–3000 | 7.5–24 万字 | 极低成本,写作质量尚可,可能需要更多人工修改 |
| GPT-5.4 mini | 400K | 30–50 章 | 1500–3000 | 4.5–15 万字 | 低成本快速出稿,受 400K 窗口限制 |
| Qwen3-235B(本地) | 128K | 20–30 章 | 2000–3000 | 4–9 万字 | 本地零成本,受 128K 窗口限制 |
| Qwen3-32B(本地) | 128K | 15–25 章 | 1500–2500 | 2.2–6 万字 | 轻量本地模型,受 128K 窗口限制 |
关于上下文信息与模型能力: - 设定和大纲对所有模型一视同仁:角色/世界观/组织设定每章完整注入,全书大纲全部注入,伏笔系统独立追踪。这些信息不会因模型不同而变化。 - 5 章详细摘要是工具的固定设计:系统对最近 5 章保留详细摘要(每章约 250 字,含人物动态、心理轨迹、关键细节等),并注入上一章结尾原文约 800 字。第 6 章以前的全文不可见,但关键叙事细节由叙事记忆系统保留。 - 叙事记忆弥补长期信息缺口:每章完成后,AI 自动提取大纲未体现的关键叙事细节(角色口头禅、具体承诺、道具细节等),存入跨章节记忆库并在后续章节写作时注入。记忆 token 上限根据全书规模自动计算(2000–20000 tokens),超限时自动裁剪最不重要的条目。修订章节时,该章旧记忆自动清除并重新提取。 - 摘要仍是近期章节的基础:记忆系统侧重于保留跨章节的关键细节,而最近 5 章的详细摘要则提供完整的情节推进、人物状态和情绪基调。两者互补,共同维持叙事连贯性。 - 模型差异在于写作质量:旗舰模型(GPT-5.5、Claude Opus 4.8)文笔更流畅、更忠实于指令、更少自行添加大纲外的情节。低成本模型可能需要更多人工修改。但无论用哪个模型,注入的上下文信息是相同的。 - 本地部署的开源模型(如 Qwen3)性能取决于硬件和量化方式,上表以全精度推理为基准;量化后能力会有一定损失。
全书优化(诊断 + 核查 + 路线图)需要将全文或摘要送入模型。配置页的「上下文预算」决定可用容量(取 65% 作为安全余量):
| 全书规模 | 推荐 context_budget_tokens | 说明 |
|---|---|---|
| ≤ 30 章 × 2500 字 | 300,000(默认) | 全文模式 |
| ≤ 30 章 × 5000 字 | 500,000 | 全文模式 |
| ≤ 50 章 × 2500 字 | 500,000 | 全文模式 |
| 50+ 章 或 15 万字以上 | 900,000+ | 按卷分段核查 |
总结:默认配置(30 章 × 2500 字)适配大多数主流模型。100 章以上的超长小说主要受 token 窗口限制(需 128K+ 模型)。叙事记忆系统会自动维护跨章节的关键细节一致性。
config.json 的 prompts 字段覆盖任意内置提示词模板(占位符格式为 {{.KeyName}})embed.FS 内嵌进二进制需要 Go、Node.js 以及 Task(可选):
# 推荐:一键完整构建(前端 + 后端)
task build
# 或手动分步
cd frontend && npm install && npm run build && cd ..
go build -o show-me-the-story .
task dev # 编译并启动 Go 后端(:48090)
task dev:frontend # 启动 Vite dev server(:5173,热重载,代理 /api → :48090)
后端按职责拆分为单层 Go 文件(outline.go 大纲、writing.go 写作、foreshadow.go 伏笔、agent.go 助理 Agent Loop、handlers.go API 处理等),前端页面在 frontend/src/pages/。
完整的架构说明、API 端点一览、SSE 事件类型、设计模式与开发约束请见 AGENTS.md。
$ claude mcp add show-me-the-story \
-- python -m otcore.mcp_server <graph>