续写章节与原著文风存在偏差
文笔六维基线:从句法复杂度、修饰密度、抽象度、动作密度、不确定性、留白指数六个维度计算原著的 μ±σ 基线,新章逐维对照,偏离项以 ⚠ 标注。基线范围可按书指定:默认取全书,也可只取你认作标杆的那几章(例如你亲手写的前 30 章)——正在检查的那一章永远排除在外。
Releases 已收录于 npm MCP Registry Glama
21 个工具,将「这一章与原著不一致」转化为可对照的量化指标。
全部推理在本机完成——无 token 消耗,正文不外传。
出错时还能自己拿到一份 可安全分享的诊断报告——顺带体检书库根、数据目录、语义引擎与开关状态;只含元数据,不含正文,可直接贴进 issue。
$ dsh plugin --profile web add dsh-novel-writer
适用场景
每一项均对应明确的工具输出。本插件不代写正文,仅对既有稿件进行量化测量。
续写章节与原著文风存在偏差
文笔六维基线:从句法复杂度、修饰密度、抽象度、动作密度、不确定性、留白指数六个维度计算原著的 μ±σ 基线,新章逐维对照,偏离项以 ⚠ 标注。基线范围可按书指定:默认取全书,也可只取你认作标杆的那几章(例如你亲手写的前 30 章)——正在检查的那一章永远排除在外。
文风确有变化,但难以定位到具体维度
风格自检:输出与全书其他章节的风格指纹相似度及偏差清单(句式配比、句长分布、主导情绪变化),并附三条原著锚段供逐句比对。
调用在线模型进行文本分析会产生持续费用
全本地推理:约 24MB 中文语义模型随包分发,语义检索与情感量化均在本机 CPU 完成,无 token 消耗。
伏笔埋设后遗漏回收
伏笔登记表:以 add / list / scan / done 维护状态,自动记录每条伏笔被提及的章节,未回收项持续保留在清单中。
人物设定与既有章节相互冲突
设定五张表与连贯性审计:人物、地点、道具、时间线、世界观用语规范五张表,配合衔接、OOC、大纲走偏三路审计。
分析结果可读性不足,难以据此修改
结构化数据与原文引用:每条结论均附其所依据的原文片段,可直接用于编辑沟通或存档留证。
能力概览
测量与判断分离:插件仅输出测量数据,不生成风格结论;判断结果可回传存盘,用于保持续写一致性。将光标停留在任一能力项上约 1 秒,可展开详细说明。
以原著为基准建立可复用的写作标尺,用于续写与原创过程中的自我校准。
定位新章节与既有内容之间的具体差异,而非仅给出「相似或不相似」的结论。
以自然语言检索全书相关段落,适用于线索回溯与设定核对。
.novel-writer/embedding/。量化全书或单章的氛围分布,用于核对预期基调与实际文本是否一致。
区分表层情绪词与实际情感走向,识别复合情绪表达。
level: unknown 与 reliable: false,并给出原因,不再给一个没有警告的顶格结论。细节密度按 v7.0.0 口径输出(词表已去噪:「一点」「痛苦」这类虚词不再计入),同一章的新旧数值不可直接比较。集中管理伏笔状态,以及人物、地点、道具、时间线与世界观用语规范。
action: "graph" 对全书做跨章计算:伏笔生命周期与埋设距离、人物出场矩阵与连续缺席(≥ 5 章)、线索活跃度与最大空档、时间线登记顺序核对、大纲方向行对照。只读,不写盘。在成稿前后排查跨章节的一致性问题,三路检测并行。
brief 参数(该参数属于句式分析与风格画像两个报告工具)。把「动笔前需要读的一切」装配成一次调用,从结构上消除漏读。
chapter 默认「下一章」,文件尚未创建也可调用;材料缺失时返回空值并说明原因,绝不报错。把风格偏差变成按优先级排好的待办清单,改完可复测。
action: "verify" 给「已回到带内 / 仍偏离 / 新增偏离」三态。从零开始创作时,先确立设定再推进正文,避免剧情跳跃与角色走形。
novels/创作资料/<书名>/ 的资料库与创作状态卡。按需启用工具与功能,控制分析范围与资源占用。
--dsw-alias-* 语义 token(不再自带色值),边框走官方 0.5px 发丝线,圆角走官方 R4/R8/R12/R16/R20/R28 尺度,开关与分段控件改用官方 UI primitives,设置卡片走官方卡片材质——浅色、深色、跟随系统三种主题都与官方界面同源。state-business-primary,源自 deepseek-500;brand-primary 实为近黑,不能当强调蓝用),主面板重排为「品牌光晕头部 + 分区 kicker + 图标卡 + 状态 pill」,内容卡由描边改为软阴影与悬停抬升,二级页标题与按钮家族统一,各级页面宽度恒定一致。state.json 统一收进页面底部的「存储位置」折叠区;标题、按钮与分组名不再使用彩色 emoji,改为 52 枚线性图标(每个工具行一枚专属图标);容差行不再带 slider,每维只留「低于 / 高于」两个百分比输入框与 ? 说明。功能面完全不变(8 个视图 / 21 个工具 / 后端路由零改动),设计规格全文见仓库内 tools/UI-REDESIGN.md(16 KB)。state.json;首页「功能与工具」的「语义模型」一行显示语义引擎运行状态,便于判断是否需要重建索引。报告示例
以下均为真实输出,取自示例书《雨夜灯》(全书 1329 字)。
# 风格画像报告 · 六维测量
全书 1329 字:六维基线
μ=句法复杂度 2.3 修饰密度 35.6 抽象度 0.5
动作密度 101.7 不确定性 2.1 留白指数 7.0
推荐容差 25% / 35% / 100%…
# 段落结构
共 34 段(对话 5 / 心理 0 / 混合 15 / 叙述 14)
# 新章与全书基线对照
相似度 0.946 · verdict: high
偏差清单:
心理占比偏高 · 对话占比偏低 · 短句占比偏低
主导情绪由 anger 变为 joy
fixAnchors:3 条原著锚段
(对话 / 心理 / 描写各一条,供逐句对照修正)
# 自然语言查询 · 本地向量检索
查询「与那盏没有点的灯有关的段落」
第02章.md 0.619 对街那盏灯,亮了。
第01章.md 0.593 阿澈的目光越过老周的肩膀,
落在对街那栋小楼上…
# 无关键词亦可命中;索引缓存于 .novel-writer/embedding/
# 连贯性审计 · 衔接 / OOC / 大纲走偏
⚠ 人物缺场:老周 已连续 3 章未出现
⚠ 数字口径:第03章「三年前」与第07章「五年前」冲突
✓ 钩子承接:第05章结尾钩子已在第06章开头承接
# 每条结论均附原文引用,可直接定位
氛围光谱
每个维度均由可追溯的证据词支撑,不依赖模型的主观判断。
示意图:柱高表示该维度的证据强度。正式报告中每个维度均附支撑词语及其出处章节。
本地化设计
文本分析不以上传稿件为前提。
| 本插件 | 在线 AI 写作工具 | 通用文本分析库 | |
|---|---|---|---|
| 正文是否离开本机 | 否 | 是 | 视实现而定 |
| 费用 | 0(本地推理) | 按 token 计费 | 需自建 |
| 中文小说专用 | 是 | 通用 | 否 |
| 风格基线(μ±σ) | 提供 | 少见 | 无 |
| 与 DSH 集成 | 21 个工具 + 官方席位与统一面板 | 无 | 无 |
| 非 DSH 用户可用 | 可以(MCP) | 可以 | 需自行封装 |
仅读写所指定的书库根目录 novels/、数据目录 <root>/.novel-writer/、插件自身的开关文件,以及状态目录旁的事件日志 logs/events.jsonl(以元数据为主:时间 / 工具名 / 书名 / 章号 / 状态 / 耗时 / 计数 / 路径 / 错误 code;但自由文本字段(错误消息等)经收敛后至多保留一句(≤160 字),所以本机日志里可能出现被错误消息回显的输入片段——该文件不出本机)。
唯一的外部请求为检查新版本所用的 GitHub Releases API:3 秒超时、24 小时缓存、失败静默降级,请求不包含任何稿件内容。
在 DSH Web GUI 内注册 8 条路由(含诊断 diagnose),仅回环地址可访问;局域网访问默认拒绝。
无子进程(唯一例外为调用系统文件管理器)。无 preinstall / postinstall / prepare 脚本。
安装部署
运行环境要求 Node ≥ 22.3。安装完成后重启应用:DSH 0.2.0+(含桌面端)会在左栏主导航区多出一行「写作助手功能」(与「插件」「任务看板」同排),点开是主栏的全局面板;更早的宿主则挂成会话区面板。
插件形态,提供 21 个 novel_* 工具与侧边栏面板(DSH 0.2.0+ 走官方席位:侧栏一行 + 主栏页面)。
$ dsh plugin --profile web add dsh-novel-writer
直接从仓库安装 main 分支的最新版本,适用于需要跟进开发进度的用户。
$ dsh plugin --profile web add github:siweina/dsh-novel-writer#main
包内自带 stdio MCP 服务器(mcp/server.mjs),可将 21 个工具原样提供给 Claude Desktop、Cursor 等任意 MCP 客户端。该进程在本机运行,无需服务器与网络连接。
$ npx -y -p dsh-novel-writer dsh-novel-writer-mcp --root /你的小说库路径
{
"mcpServers": {
"dsh-novel-writer": {
"command": "npx",
"args": ["-y", "-p", "dsh-novel-writer", "dsh-novel-writer-mcp",
"--root", "/你的小说库路径"]
}
}
}
自 v4.3.0 起,MCP 侧工具参数中的 root 必须位于启动参数 --root 指定的书库根目录之内;novel_import 的 src 默认同样限根内,确需导入外部目录时需显式添加 --allow-external-src。
$ mkdir -p novels/我的小说 # 将章节文件放入该目录:第01章.md、第02章.md …
随后在对话中执行以下指令即可生成首份报告:「使用 novel_style_report 为我的小说生成风格画像」。
常见问题
不调用任何在线大模型,token 消耗为零。句式、情感、意象与氛围光谱均由本地规则统计与本地 ONNX 推理完成。唯一的外部请求为检查新版本所用的 GitHub Releases API,该请求不包含任何稿件内容。
本工具面向中文小说设计。句式、情感、意象等核心能力以及内置语义模型均针对中文语料构建与调优,其他语种的支持不在当前范围内。
不会。全部分析在本机 CPU 完成,模型随包分发。插件仅读写所指定的书库目录及其自身数据目录;MCP 服务器默认进一步限制工具参数只能访问书库根目录内的路径。
不会。插件会把每次工具调用记入本机的事件日志(~/.dsh/dsh-novel-writer/logs/events.jsonl,512 KB 轮转、保留 3 份),但日志走的是字段白名单:以元数据为主(时间、工具名、书名、章号、状态、耗时、计数、路径与错误 code),自由文本字段(错误消息等)经收敛后至多保留一句(≤160 字)——所以本机日志里可能出现被错误消息回显的输入片段(例如某个工具报错时把你的词条名回显了一遍),但日志文件不出本机。需要排障时用 novel_diagnose(或在面板的「诊断报告」页一键复制诊断包)拿到一份中文报告;任何离开本机的内容(报告、诊断包、诊断路由)都走分享层——连错误消息这类自由文本都会被整体剔除,因此可以把报告直接贴进 issue,无需先检查里面有没有稿子;但不要直接附上本机日志文件。完整说明见 novel_diagnose 技术文档。
不具备。本工具不替代作者写作,而是对既有稿件进行量化:基线偏离幅度、句式配比变化、未回收伏笔数量、人物设定一致性与连贯性问题。写作仍由作者完成,工具提供的是可对照的数据。
可以。包内自带 stdio MCP 服务器,可将 21 个工具提供给任意 MCP 客户端,一行 npx 命令即可启动,无需常驻服务。