v5.1.1 已发布 已收录于 npm MCP Registry Glama

文风,可量化

18 个工具,将「这一章与原著不一致」转化为可对照的量化指标。
全部推理在本机完成——无 token 消耗,正文不外传

$ dsh plugin --profile web add dsh-novel-writer
18
个工具
6
维文笔基线
12
维氛围光谱
24MB
本地中文模型
0
token 消耗

适用场景

写作流程中的六类典型问题

每一项均对应明确的工具输出。本插件不代写正文,仅对既有稿件进行量化测量。

续写章节与原著文风存在偏差

文笔六维基线:从句法复杂度、修饰密度、抽象度、动作密度、不确定性、留白指数六个维度计算原著的 μ±σ 基线,新章逐维对照,偏离项以 ⚠ 标注。

文风确有变化,但难以定位到具体维度

风格自检:输出与全书其他章节的风格指纹相似度及偏差清单(句式配比、句长分布、主导情绪变化),并附三条原著锚段供逐句比对。

调用在线模型进行文本分析会产生持续费用

全本地推理:约 24MB 中文语义模型随包分发,语义检索与情感量化均在本机 CPU 完成,无 token 消耗。

伏笔埋设后遗漏回收

伏笔登记表:以 add / list / scan / done 维护状态,自动记录每条伏笔被提及的章节,未回收项持续保留在清单中。

人物设定与既有章节相互冲突

设定五张表与连贯性审计:人物、地点、道具、时间线、世界观用语规范五张表,配合衔接、OOC、大纲走偏三路审计。

分析结果可读性不足,难以据此修改

结构化数据与原文引用:每条结论均附其所依据的原文片段,可直接用于编辑沟通或存档留证。

能力概览

18 个工具,覆盖设定至成稿的完整流程

测量与判断分离:插件仅输出测量数据,不生成风格结论;判断结果可回传存盘,用于保持续写一致性。将光标停留在任一能力项上约 1 秒,可展开详细说明。

文笔六维基线

以原著为基准建立可复用的写作标尺,用于续写与原创过程中的自我校准。

  • 句法复杂度
  • 修饰密度
  • 抽象度
  • 动作密度
  • 不确定性
  • 留白指数
用途
为整部作品建立统一的度量标准,使续写章节可与原著的统计特征直接比对。
度量项
句法复杂度、修饰密度、抽象度、动作密度、不确定性、留白指数,逐章统计后归总为全书 μ±σ 基线带。
输出
全书基线带,以及新章逐维对照结果(带内 ✓ / 出带 ⚠)。容差可按维度自定义,推荐值为原著章节波动的 1.5 倍 σ。

风格自检

定位新章节与既有内容之间的具体差异,而非仅给出「相似或不相似」的结论。

  • 规则与语义双维度
  • 偏差清单
  • 原著锚段
用途
在定稿前定位风格漂移的具体来源,避免仅凭阅读印象反复修改。
方法
规则统计与语义向量双维度比对,覆盖句式配比、句长分布与情绪走向。
输出
风格指纹相似度、可执行的偏差清单,以及三条原著锚段(对话 / 心理 / 描写各一条)供逐句对照。

本地语义检索

以自然语言检索全书相关段落,适用于线索回溯与设定核对。

  • 本机 CPU 推理
  • 语义风格距离
  • 隐性情感载体
用途
回忆某条线索出现在哪些章节,或核对同一意象在不同章节的写法是否一致。
实现
bge-small-zh-v1.5 量化模型(约 24MB)随包分发,懒加载,索引缓存在 .novel-writer/embedding/
输出
按语义相关度排序的段落列表,含章节定位与相似度分值;模型不可用时自动回退纯规则模式。

氛围光谱 12 维

量化全书或单章的氛围分布,用于核对预期基调与实际文本是否一致。

  • 12 维强度
  • 证据词可追溯
  • 题材联动
维度
噩梦感、焦虑压抑、温馨治愈、甜宠日常、催泪虐心、黑暗残酷、悬疑神秘、热血激昂、荒诞无厘头、孤独疏离、文艺唯美、情欲暧昧。
方法
由证据词统计驱动,每个维度均可追溯至具体章节,非模型主观判断。
输出
各维度强度与支撑证据;带题材标签的作品可结合题材基线一并参考。

情感净化与量化

区分表层情绪词与实际情感走向,识别复合情绪表达。

  • 九类句式
  • 情感曲线
  • 矛盾指数
用途
排除作者用词习惯造成的干扰,还原文本实际的情感走向。
方法
强 / 弱情绪词分级与污染源检测,Valence 滑动窗口计算方差 V、斜率 Δ 与矛盾指数 C。
输出
情感曲线、预警项,以及隐性情感所依附的意象载体。

伏笔与设定管理

集中管理伏笔状态,以及人物、地点、道具、时间线与世界观用语规范。

  • novel_plot
  • novel_settings
  • novel_summary
伏笔
以 open / done 维护状态,scan 可扫描全书自动记录每条伏笔被提及的章节。
结构视图
action: "graph" 对全书做跨章计算:伏笔生命周期与埋设距离、人物出场矩阵与连续缺席(≥ 5 章)、线索活跃度与最大空档、时间线登记顺序核对、大纲方向行对照。只读,不写盘。
设定
人物、地点、道具、时间线、世界观用语规范五张表按类别增删改查,并可自动判断作品的文化基准(东 / 西 / 混合)。
摘要
章节摘要按章管理,供长篇续写时快速回忆前情。

连贯性审计

在成稿前后排查跨章节的一致性问题,三路检测并行。

  • 衔接
  • OOC
  • 大纲走偏
  • 原文引用
衔接检查
检测时间硬跳、语义距离、人物延续与钩子承接四类问题。
OOC 检测
对照角色情绪基线,标记偏离既有性格的段落。
大纲走偏
比对大纲方向行与正文关键词的重合度。
输出
问题清单与对应原文引用。输出体积由内部上限控制:候选章节列表最多 5 条,数字口径候选最多 20 条。本工具没有 brief 参数(该参数属于句式分析与风格画像两个报告工具)。

开写包

把「动笔前需要读的一切」装配成一次调用,从结构上消除漏读。

  • 承接口
  • 未回收伏笔
  • 六维基线
  • 禁用清单
用途
续写一章之前,一次拿到上一章结尾原文(承接口)、上一章钩子、本章大纲方向行、应出场的人物卡、未回收伏笔及埋设距离、世界观禁用词、全书六维基线、原著锚段与句式骨架。
方法
只读装配:材料来自既有的伏笔表、设定表、创作资料与分析缓存,不新增任何测量口径,六维基线复用分章测量缓存(长书首次调用仍需读全书算一遍)。
输出
材料字段 + 三段式计划(上一章状态 → 本章目标 → 检查清单)+ 降级说明。chapter 默认「下一章」,文件尚未创建也可调用;材料缺失时返回空值并说明原因,绝不报错。

改稿台

把风格偏差变成按优先级排好的待办清单,改完可复测。

  • 段落定位
  • 严重度排序
  • 复测三态
用途
不再自己把「数据」组织成「行动」:直接拿到带段落行号的待办清单,改完还能复测。
方法
复用风格自检的测量结果(句式偏离、情感过直、抽象度过高、留白异常、禁用词、语用不符、衔接缺失、伏笔未回收),按严重度降序、改写代价升序、行号升序排序。
输出
每项含类型、原文定位与节选、现值与目标区间、可照改的原著锚段,以及一句改写方向action: "verify" 给「已回到带内 / 仍偏离 / 新增偏离」三态。
边界
只给改写方向,不生成改写后的正文句子——正文仍由作者完成,插件不做替代。

原创模式与创作资料

从零开始创作时,先确立设定再推进正文,避免剧情跳跃与角色走形。

  • 多书独立设定库
  • 钩子记录
  • 创作状态卡
流程
创作设定 → 剧情大纲 → 钩子记录,按 10 / 20 / 30 章动态分批推进。
创作设定
世界观、角色、禁忌、主线、题材与额外要求,留空则由模型自行决定;多部作品各自独立。
输出
位于 novels/创作资料/<书名>/ 的资料库与创作状态卡。

侧边栏开关面板

按需启用工具与功能,控制分析范围与资源占用。

  • 总开关
  • 分组开关
  • 运行状态
开关
总开关、18 个工具的分组开关与 5 项功能开关,均可独立控制。
状态
显示数据目录占用与语义引擎运行状态,便于判断是否需要重建索引。
附加
书库统计(各作品章数、总字数、近 7 天活跃字数)、体验演示(内置示例,不写入磁盘)与报告历史。

报告示例

实际输出内容

以下均为真实输出,取自示例书《雨夜灯》(全书 1329 字)。

novel_style_report
# 风格画像报告 · 六维测量
全书 1329 字:六维基线
  μ=句法复杂度 2.3   修饰密度 35.6   抽象度 0.5
    动作密度 101.7   不确定性 2.1    留白指数 7.0
推荐容差 25% / 35% / 100%# 段落结构34 段(对话 5 / 心理 0 / 混合 15 / 叙述 14
novel_style_check
# 新章与全书基线对照
相似度 0.946 · verdict: high

偏差清单:
  心理占比偏高 · 对话占比偏低 · 短句占比偏低
  主导情绪由 anger 变为 joy

fixAnchors:3 条原著锚段
  (对话 / 心理 / 描写各一条,供逐句对照修正)
novel_semantic_search
# 自然语言查询 · 本地向量检索
查询「与那盏没有点的灯有关的段落」

  第02章.md  0.619  对街那盏灯,亮了。
  第01章.md  0.593  阿澈的目光越过老周的肩膀,
                    落在对街那栋小楼上…

# 无关键词亦可命中;索引缓存于 .novel-writer/embedding/
novel_continuity_check
# 连贯性审计 · 衔接 / OOC / 大纲走偏
⚠ 人物缺场:老周 已连续 3 章未出现
⚠ 数字口径:第03章「三年前」与第07章「五年前」冲突
✓ 钩子承接:第05章结尾钩子已在第06章开头承接

# 每条结论均附原文引用,可直接定位

氛围光谱

十二个维度,量化全书的氛围分布

每个维度均由可追溯的证据词支撑,不依赖模型的主观判断。

  • 噩梦感
  • 焦虑压抑
  • 温馨治愈
  • 甜宠日常
  • 催泪虐心
  • 黑暗残酷
  • 悬疑神秘
  • 热血激昂
  • 荒诞无厘头
  • 孤独疏离
  • 文艺唯美
  • 情欲暧昧

示意图:柱高表示该维度的证据强度。正式报告中每个维度均附支撑词语及其出处章节。

本地化设计

未完成的稿件,不应上传至第三方

文本分析不以上传稿件为前提。

本插件在线 AI 写作工具通用文本分析库
正文是否离开本机视实现而定
费用0(本地推理)按 token 计费需自建
中文小说专用通用
风格基线(μ±σ)提供少见
与 DSH 集成18 个工具 + 侧边栏开关
非 DSH 用户可用可以(MCP)可以需自行封装

权限边界

文件系统

仅读写所指定的书库根目录 novels/、数据目录 <root>/.novel-writer/,以及插件自身的开关文件。

外部网络

唯一的外部请求为检查新版本所用的 GitHub Releases API:3 秒超时、24 小时缓存、失败静默降级,请求不包含任何稿件内容。

本地 HTTP

在 DSH Web GUI 内注册 5 条路由,仅回环地址可访问;局域网访问默认拒绝。

子进程与生命周期脚本

无子进程(唯一例外为调用系统文件管理器)。无 preinstall / postinstall / prepare 脚本。

安装部署

两种安装方式,或一行 npx 命令

运行环境要求 Node ≥ 22.3。安装完成后重启 Web 应用,侧边栏将出现「写作助手功能」面板。

插件形态,提供 18 个 novel_* 工具与侧边栏面板。

$ 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),可将 18 个工具原样提供给 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_importsrc 默认同样限根内,确需导入外部目录时需显式添加 --allow-external-src

快速上手

$ mkdir -p novels/我的小说   # 将章节文件放入该目录:第01章.md、第02章.md …

随后在对话中执行以下指令即可生成首份报告:「使用 novel_style_report 为我的小说生成风格画像」

常见问题

常见问题解答

是否调用在线模型,是否产生 token 消耗?

不调用任何在线大模型,token 消耗为零。句式、情感、意象与氛围光谱均由本地规则统计与本地 ONNX 推理完成。唯一的外部请求为检查新版本所用的 GitHub Releases API,该请求不包含任何稿件内容。

是否支持中文以外的语种?

本工具面向中文小说设计。句式、情感、意象等核心能力以及内置语义模型均针对中文语料构建与调优,其他语种的支持不在当前范围内。

稿件是否会上传?

不会。全部分析在本机 CPU 完成,模型随包分发。插件仅读写所指定的书库目录及其自身数据目录;MCP 服务器默认进一步限制工具参数只能访问书库根目录内的路径。

是否具备代写正文的功能?

不具备。本工具不替代作者写作,而是对既有稿件进行量化:基线偏离幅度、句式配比变化、未回收伏笔数量、人物设定一致性与连贯性问题。写作仍由作者完成,工具提供的是可对照的数据。

不使用 DSH 时,能否在其他 MCP 客户端中使用?

可以。包内自带 stdio MCP 服务器,可将 18 个工具提供给任意 MCP 客户端,一行 npx 命令即可启动,无需常驻服务。

下一篇,更贴近你的文风。