dsh-novel-writer
This server provides a local-first novel writing assistant for Chinese web fiction, offering 18 tools covering pre-writing research, style analysis, revision planning, and cross-chapter structure checks.
Book & chapter management: list books, list/read chapters, create new chapters, batch import manuscripts.
Pre-writing brief:
novel_chapter_briefassembles all needed materials in one call (continuation hook, outline, characters, foreshadowing, worldview terms, style baseline, anchor passages, forbidden words, writing checklist).Style analysis: measure six stylistic dimensions, generate style reports, check a chapter against the book's baseline, analyze sentence patterns and emotional curves.
Revision planning:
novel_fix_planconverts diagnostics into prioritized, line-numbered fix items with current/target values and anchor examples; supports plan/verify/mark workflow.Plot & continuity tools: manage foreshadowing and plot hooks, generate cross-chapter structure views (foreshadowing spans, character absence, timeline order, outline deviation), and run continuity/OOC/outline audits.
Worldbuilding & settings: maintain five setting tables (characters, locations, items, timeline, worldview), detect cultural basis, manage banned words and speech style.
Semantic search: local embedding-based natural language search across chapters with zero API cost.
Summaries & outlines: manage chapter summaries, creation bibles, character sheets, plot outlines, hooks, and status cards.
Configuration: control tool switches, prompt modes, style tolerance, lean workflow, and per-book creation profiles.
Local & private: all analysis runs locally; only optional GitHub version-check is external.
📚 dsh-novel-writer — 给网文作者的本地写作工作台
English | 中文
18 个工具,覆盖「动笔前取材料 → 写完量化自检 → 改稿按优先级复测 → 跨章结构体检」整条流程。 动笔前一次调用取齐 16 项材料(漏读一样就漂移);改稿不再只丢给你一堆数字,而是按严重度排好的待办(带原句行号、当前值与目标值、原著锚段,只给方向不代写);跨章层面能查「线断了、人丢了、伏笔忘了」。 句式 / 情感 / 语义全部在本地算:24MB 中文模型随包分发,零 API 花费、正文不出本机。 为 DeepSeek Harness(DSH)打造;同一套能力也可作为 MCP 服务器给 Claude Desktop / Cursor 使用。
🔗 官网:https://siweina.github.io/dsh-novel-writer/ · 技术文档(18 个工具的参数与示例):https://siweina.github.io/dsh-novel-writer/tools/
官网 · 技术文档 · 安装 · 写作流程 · 60 秒上手 · 看看输出 · 18 个工具 · MCP 服务器
写作流程(一条能走完的闭环)
步骤 | 你说什么 | 用哪个工具 | 拿到什么 |
① 取材料 | 「给下一章取材料」 |
| 一次调用取齐 16 项输入:上一章结尾原文(承接口)/ 上一章钩子 / 本章大纲方向 / 相关人物卡 / 待回收伏笔(含埋了多久)/ 世界观用语规范与禁词 / 六维基线 / 原著锚段与句式骨架 / 上一章自检结论 / 禁用清单 / 开写清单——缺哪项、为什么、怎么补写在 |
② 动笔 | 「写第 N 章」 |
| 新章文件(自动附基线 μ 摘要与原著锚包);锚段只用来校准语感(不照骨架造句),数字只做事后校验 |
③ 自检 | 「自检这一章」 |
| 相似度 + 偏差清单 + 六维对照(带内 ✓ / 出带 ⚠)。只有偏离明显(≥2 倍容差)或读起来确实别扭时才改——单一维度轻微出带属正常波动,不要为对齐数字改文 |
④ 改稿 | 「把这章排成改稿清单」 |
| 按「严重度 → 难度 → 行号」排序的待办(默认上限 12 条),每条带原句行号、当前值/目标值、锚段与改写方向;分批改(同段同类合并),改完最多 |
⑤ 跨章体检 | 「看看全书结构」 |
| 伏笔埋设跨度 / 人物连续缺席区间 / 剧情线最大空档 / 时间线顺序 / 大纲方向与正文的偏离 |
全程本地、只读优先:开写包与结构视图不写任何文件;改稿台只写自己的清单文件、从不改正文,也不代写正文;语义检索与情感分析零 token。
省 token 模式(v5.1.0 新增):侧边栏「精简工作流」开关(或
novel_sentence_config传leanWorkflow=true)打开后只保留一条原则——工具按需调用:不主动跑自检、不复测清单、不登记伏笔/钩子/摘要;报告类工具未显式传brief时默认走精简输出(风格画像实测 181 字符 vs 完整 1725 字符)。v5.1.0 成本与手感修复:v5.0.0 曾把「写完必须自检 + 收尾三件」「改稿逐条 mark + 反复 verify」写成必做清单,一章从 3 次调用涨到 6 次、改稿要 30+ 次;同时"照骨架造句"与"任一维度出带必改"会让文章越改越僵。本版全部改回按需:写一章 2 次调用起,改稿清单上限 40 → 12 条、同一维度只报最严重的 1 段,并明确了出带不等于缺陷(抒情/心理/留白段读起来不别扭就保留,可用
mark标skip)。
Related MCP server: Co Reading Kit
它解决什么问题
你的困扰 | 这里给的答案 |
"我续写的这段,读起来不像我自己写的" | 文笔六维基线:从句法复杂度 / 修饰密度 / 抽象度 / 动作密度 / 不确定性 / 留白指数六个维度算出原著的 μ±σ,新章逐维对照,出带标 ⚠ |
"AI 说文风变了,但说不清哪儿变了" | 风格自检:相似度 + 偏差清单(哪类句式多了、句长偏了多少、主导情绪有没有换) |
"动笔前要翻六七个工具,还老漏读一样" | 开写包:一次调用取齐 16 项材料;取不到的在 |
"知道这章有问题,但不知道先改哪句" | 改稿台:按「严重度 → 难度 → 行号」排好待办,每条给原句行号 / 当前值与目标值 / 原著锚段 / 改写方向;改完可三态复测 |
"线断了、人丢了、伏笔忘了——写到后面才崩" | 结构视图:跨章算出伏笔埋设跨度、人物连续缺席区间、剧情线最大空档、时间线顺序、大纲与正文的偏离 |
"分析小说要花钱调 API" | 语义检索与情感分析全本地推理,零 token 花费 |
"伏笔埋了忘了收" | 伏笔登记表:add / list / scan / done,自动记录每条伏笔在哪些章被提到 |
"人物设定前后打架" | 设定五张表 + 连贯性审计(衔接 / OOC / 大纲走偏三件套) |
"报告看不懂" | 全是表格化数字 + 原文锚段,可以直接截图分享 |
安装
方式一:npm(推荐)
dsh plugin --profile web add dsh-novel-writer方式二:从 GitHub 安装
dsh plugin --profile web add github:siweina/dsh-novel-writer#main方式三:MCP(不用 DSH 也能用) —— 见 MCP 服务器
要求 Node ≥ 22.3。安装后重启 Web 应用,侧边栏出现「写作助手功能」面板。
60 秒上手
mkdir -p novels/我的小说 # 把章节文件放进去(第01章.md、第02章.md …)然后在对话里依次说(这就是完整的一章):
「给下一章取材料」 →
novel_chapter_brief一次给齐 16 项输入(等于替你跑了 6~8 个工具,且不会漏读)「写第 7 章」 → 照返回的锚段与骨架写;
novel_new_chapter建文件时还会附上基线 μ「自检第 7 章」 →
novel_style_check给出相似度、偏差清单与六维对照「把第 7 章排成改稿清单」 →
novel_fix_plan给出按优先级排好的待办;改完再verify复测三态
只想先看看家底,就说 「用 novel_style_report 给我的小说做一次风格画像」:
全书 1329 字:六维基线 μ=句法复杂度:2.3 修饰密度:35.6 抽象度:0.5 动作密度:101.7 不确定性:2.1 留白指数:7.0
推荐容差 25%/35%/100%…看看输出长什么样
开写包(novel_chapter_brief,动笔前一次调用):
目标:第 8 章《(无标题)》(尚未创建,文件名推导为 第08章.md)
【上一章结尾原文·承接口】…(上一章末尾 300 / 600 字,按 budget 档位)
【待回收伏笔】
- [mu5kjla…] 琥珀色齿轮怀表的来历与停摆的指针(high|第 1 章埋下,已过 6 章)
- [mu5kjlb…] 海图上红铅笔圈的礁区坐标(high|第 3 章埋下,已过 4 章)
【相关人物】- 林昭:守码头的女人,父亲失踪后回到旧宅 - 沈砚:随船出海的人
【世界观用语】欧式中世纪沿海城邦;点烛不烧香|禁用:上香、烧香、时辰、老夫
【风格基线】complexity μ=2.42 modifierDensity μ=22.2 abstractDensity μ=10.06 actionDensity μ=122.45 …
【原著锚段·照这个味道写】[对话] … [心理] …
【上一章自检】第 7 章六维对照:全部维度在容差带内 ✓
【本章禁用清单】- 禁词:上香(建议改用:点烛) - 禁词:时辰(建议改用:钟点)
【开写清单】□ 先读锚段再动笔 □ 承接上一章结尾 □ …(共 8 步)
【降级/提示】- 钩子记录里没有第 7 章的钩子(上一章钩子未回填)改稿台(novel_fix_plan,把诊断变成排好序的待办):
改稿台:共 13 项待办(严重度降序 → 难度升序)。抽象度过高 ×3、衔接缺失 ×1、禁用词 ×3、语用不符 ×5、句式偏离 ×1。
备注:留白指数 虽出带但差值 8.36 < 门槛 12,已按「无量级差异」忽略 ← 不误报的绝对量级闸
- [抽象度过高] 严重度 5 / 难度 2(第 5 行)
id:fix-abstract-5-c2c156d4
现状:abstractDensity 47.9 目标:0.55~6.95
原句:林昭大概说不清那种感觉。她隐隐觉得…
方向:抽象度偏离:全章 47.9(基线 3.75,偏差 +1177.3%),本段 74.38。这句抽象词过密,改成具体动作或物件。
锚段:林昭把它捏在掌心,翻过来看背面。背面刻着一行小字,被磨得只剩半边。她认出了父亲的名字。
- [语用不符] 严重度 4 / 难度 2(第 15 行)
现状:客套禁词「承蒙」(第 15 行) 目标:避免该类客套表达
方向:「承蒙」属世界观说话方式规范里明确不用的客套表达(honorBad)。这是说法层面的替换,不要顺手改剧情。风格自检(新章 vs 全书基线):
相似度 0.946 · verdict: high
偏差清单:心理占比略多 · 对话占比略少 · 短句占比略少 · 主导情绪由 anger 变为 joy
fixAnchors:3 条原著锚段(对话 / 心理 / 描写各一条,供逐句对照修正)语义检索(自然语言,本地向量):
查询「与那盏没有点的灯有关的段落」→
第02章.md 0.619 对街那盏灯,亮了。
第01章.md 0.593 阿澈的目光越过老周的肩膀,落在对街那栋小楼上…段落结构:共 34 段(对话 5 / 心理 0 / 混合 15 / 叙述 14)
为什么不用在线 AI 写作工具
本插件 | 在线 AI 写作工具 | 通用文本分析库 | |
正文是否离开本机 | 否 | 是 | 视实现 |
花费 | 0(本地推理) | 按 token 计费 | 自建 |
中文小说专用 | 是 | 通用 | 否 |
风格基线(μ±σ) | 有 | 少见 | 无 |
与 DSH 集成 | 18 工具 + 侧边栏开关 | 无 | 无 |
非 DSH 用户可用 | 可以(MCP) | 可以 | 需自己封装 |
致非中文用户:本插件为中文小说分析写作而设计——句式、情感、意象等核心能力以及内置的语义模型,全部针对中文语料构建与调优。在深耕中文的同时兼顾英文等其他语言,确实超出了我目前的能力范围。若因此给您带来不便,我深感抱歉,恳请谅解。
功能
写作台三件套:
novel_chapter_brief开写包——动笔前一次调用取齐材料(上一章承接口 / 本章方向 / 相关人物 / 待回收伏笔 / 用语规范 / 风格基线 / 锚段与骨架 / 禁用清单 / 开写清单,两档budget:compact / full),取不到的材料进degraded并说明原因,只读不写盘;novel_fix_plan改稿台——把风格诊断变成按优先级排好的待办(原句行号定位 + 当前值与目标值 + 原著锚段 + 改写方向),plan/verify/mark三态复测,只给方向、不生成正文;novel_plot { action: "graph" }结构视图——伏笔埋设跨度 / 人物连续缺席 / 剧情线空档 / 时间线顺序 / 大纲对照。另有场景化提示词(general / writing / revising / auditing / setup,general即旧行为)。风格画像报告(novel_style_report):6 维测量报告——文风指纹 / 高频词汇 / 题材流派 / 情感量化 / 氛围光谱 12 轴 / 语义风格距离。测量与判断分离:插件只报数不贴标签,AI 判断可回传存盘(
.novel-writer/style-reports/),续写保持风格一致。氛围光谱 12 轴:噩梦感 / 焦虑压抑 / 温馨治愈 / 甜宠日常 / 催泪虐心 / 黑暗残酷 / 悬疑神秘 / 热血激昂 / 荒诞无厘头 / 孤独疏离 / 文艺唯美 / 情欲暧昧——证据链可追溯,0 token。
本地语义引擎:bge-small-zh 中文模型(24MB 随插件分发)本地 CPU 推理——
novel_semantic_search自然语言搜全书语义相关段落(带章节定位),语义级风格对比、语义隐性情感,懒加载 + 自动回退。句式模式分析:九类句式分布、排列规律、句长节奏、情感曲线、风格指纹与节奏建议,带缓存与报告导出。
情感净化 + 量化:强/弱情绪词分级、污染源检测、caveat 预警 + AI 复核;Valence 滑动窗口 → 方差 V / 斜率 Δ / 矛盾指数 C + 隐性意象载体。
世界观与语用检测:文化基准自动判断(西/东/混合)+ 置信度;speechStyle 称谓/客套/仪式/语气规范;题材流派 + 网文信号。
写作辅助全家桶:伏笔登记表 / 设定五张表(人物·地点·道具·时间线·世界观)/ 章节摘要 / 连贯性审计 / 批量导入 / 风格自检 / 续写辅助。
全工具 UI 开关:侧边栏「写作助手功能」面板(总开关 + 工具开关分组 + 功能开关 + 提示词档位/场景/精简工作流),大白话文案,显示数据目录占用与语义引擎状态。
风格基线:文笔六维测量(句法复杂度/修饰密度/抽象度/动作密度/不确定性/留白指数)+ 按章节 μ±σ 基线带;
novel_style_report输出基线带,novel_style_check对照新章偏差(带内 ✓ / 出带 ⚠);侧边栏可自定义每维 ±% 容差(推荐值 = 原著章节波动的 1.5 倍 σ,自动取整、限 ±10%~100%;输入框留空即用推荐)——原创/续写时主题自由、写法保持在基线带内。写作哨兵三件套:
novel_continuity_check扩展——①衔接检查(chapter 参数:时间硬跳/语义距离/人物延续/钩子承接四路检测,带原文引用)②OOC 检测(ooc 参数:角色情绪基线偏离)③大纲走偏(outline 参数:方向行 vs 正文关键词重合);报告工具支持 brief 精简模式。原创模式与创作资料:侧边栏填写创作设定(世界观/角色/禁忌/主线/题材/额外要求,留空=模型自定,多书独立设定库);novel_outline 维护创作资料(创作设定/人物/剧情大纲/钩子记录/创作状态卡),原创强制「设定书→大纲→钩子」链,动态批次(10→20→30 章)防剧情跳跃与角色 OOC。
体验与统计:主面板书库统计卡(每本章数/总字数/近 7 天活跃字数,活跃🔥标绿)、🎬 体验演示(内置示例不落盘跑六维基线)、📊 报告历史(analysis/style-reports 列表浏览);错误提示带解决步骤;工具说明压缩省 token。
提供的工具(18 个)
每个工具的参数、返回结构与示例,见在线工具手册。
工具 | 说明 |
| 列出章节库全部作品 |
| 列出某作品章节清单 |
| 阅读某章正文(分段) |
| 关键词:二字组/三字组/疑似人名 |
| 创建新章节文件 |
| 原稿件批量导入/分类 |
| 句式模式分析(九类/情感净化/量化/曲线/指纹) |
| 查看/修改工具与功能开关(含提示词场景) |
| 风格自检(规则+语义双维度) |
| 风格画像报告(6 维测量 + AI 判断分离) |
| 伏笔/剧情线登记表; |
| 设定管理(人物/地点/道具/时间线/世界观) |
| 章节摘要(长书续写辅助) |
| 连贯性审计 + 衔接/OOC/大纲走偏哨兵 |
| 语义检索(本地 embedding,0 token) |
| 创作资料管理(创作设定/人物/大纲/钩子/状态卡) |
| 开写包——动笔前一次调用取齐材料(上一章承接口/本章方向/相关人物/待回收伏笔/用语规范/风格基线/锚段与骨架/禁用清单/开写清单) |
| 改稿台——把风格诊断变成按优先级排好的待办(带行号定位与锚段),改完可复测;只给方向不生成正文 |
MCP 服务器(非 DSH 用户也能用)
包里自带一个 stdio MCP 服务器(mcp/server.mjs),把 18 个工具原样暴露给任何 MCP 客户端,
例如 Claude Desktop、Cursor。它是跑在你自己电脑上的本地进程,不需要服务器、不需要联网、不需要常驻。
npx -y -p dsh-novel-writer dsh-novel-writer-mcp --root /你的小说库路径客户端配置示例(claude_desktop_config.json / Cursor mcp.json):
{
"mcpServers": {
"dsh-novel-writer": {
"command": "npx",
"args": ["-y", "-p", "dsh-novel-writer", "dsh-novel-writer-mcp", "--root", "/你的小说库路径"]
}
}
}书库根目录优先级:--root > 环境变量 DSH_NOVEL_WRITER_ROOT > 当前工作目录。
细节见 mcp/README.md。
配置
- id: novel-writer
config:
root: 'D:/我的小说库'
allowLanState: false # true=局域网访问 GUI 时也允许保存开关数据目录
<书库根>/.novel-writer/:plots(伏笔)/ settings(设定)/ summaries(摘要)/ analysis(分析报告)/ audits(连贯性审计 + 改稿清单 fix-plan-*.json)/ embedding(语义索引)/ style-reports(风格画像)。
依赖、权限与失败边界
运行时依赖(npm install 自动安装,均为公开包):
onnxruntime-web^1.24.3 —— 本地 ONNX 推理(WASM 后端),用于语义检索与语义风格距离;@huggingface/tokenizers^0.1.0 —— 中文分词(WASM);peerDependency:
react^18.2.0(浏览器端复用 DSH Web GUI 自带的 React,不额外打包)。
本地模型:lib/models/ 随包分发 bge-small-zh-v1.5 量化模型(约 24MB,ONNX)与分词器
(tokenizer.json.gz,加载时解压)。全部推理在本机 CPU 完成,不上传任何文本。
权限与外部服务:
文件系统:读写用户指定的书库根目录
novels/与其数据目录<root>/.novel-writer/, 以及插件自身的开关文件~/.dsh/dsh-novel-writer/state.json。例外一处:novel_import的src按设计可以指向任意目录(用于把别处的旧稿导入书库),mode:"apply"+move:true会删除源文件—— 删改范围由调用方决定,请只在明确知道源目录内容时使用。例外仅此一处:MCP 服务器默认把这个src也限制在书库根内(见下方 MCP 一节)。内置技能:通过
ctx.skills注册自带novel-writing技能(v4.3.0 起),只读取包内skills/novel-writing/SKILL.md,不写入任何技能目录、不需要改宿主配置;宿主没有skills服务时静默跳过。本地 HTTP:在 DSH Web GUI 内注册 5 条路由(state / reveal / reports / demo / update-check), 仅回环地址可访问;
allowLanState默认关闭,局域网访问默认拒绝。MCP 服务器(
mcp/server.mjs):工具参数里的root必须落在启动时--root指定的书库根之内, 越界会被拒绝并回退;novel_import的src默认也限根内,确需导入外部目录时用--allow-external-src显式放开(v4.3.0 起)。单行报文上限 4 MiB,超限整行丢弃;stderr 默认只记一行错误摘要, 不回显正文与堆栈(需要完整堆栈用DEBUG=1);长任务可用notifications/cancelled取消。详见 mcp/README.md 第 0 节。外部网络:唯一外呼是 GitHub Releases API(
api.github.com)检查新版本——3 秒超时、24 小时缓存、 失败静默降级;请求不含任何书籍内容。子进程:无。唯一例外是打开系统文件管理器(Windows
explorer/ macOSopen/ Linuxxdg-open), 以数组参数直调、不经 shell。生命周期脚本:无(无 preinstall / postinstall / prepare)。
失败边界:
语义引擎不可用(模型缺失或 WASM 初始化失败)时自动回退纯规则模式,其余功能不受影响;
分析结果落盘失败不阻塞工具返回;缓存损坏按"无缓存"处理并重建;
插件加载失败不影响 DSH 主进程:工具注册与提示词注入相互独立。
兼容范围:Node.js >= 22.3(engines.node);DSH >= 0.1.1-rc.2(dsh.engines.dsh)。
许可证
Available Tools
18 toolsnovel_booksA
列出小说章节库中的全部作品(novels 文件夹下的子目录),含章节数与总字数。只读。
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | 章节库根目录(含 novels 子目录)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden. It explicitly states '**只读**' (read-only), which is a key behavioral trait, and describes what it returns (chapter count and total word count). It does not describe return formatting or pagination, but for a simple listing tool this is likely sufficient. The read-only note adds transparency beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the main action ('列出' all works) followed by the specific details (chapter count, total word count, and read-only note). There is no wasted text; every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with one optional parameter and no output schema, the description provides enough context: it lists works and indicates the returned fields (chapter count and total word count). It does not explain the exact format or structure of the output, but that is not critical for an agent to call it correctly. The description is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already has 100% coverage, describing 'root' as the chapter library root directory containing the novels subdirectory. The description also mentions the novels folder, but it does not add any additional semantics or usage details beyond what the schema provides. Thus, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb '列出' (list) with a clear resource ('小说章节库中的全部作品', i.e., all works in the novel chapter library) and specifies the output includes chapter count and total word count. It clearly distinguishes from sibling tools like novel_read (which reads a specific work) or novel_chapters (which likely lists chapters within a work).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear context: this tool lists all works in the library, which is a high-level overview. However, it does not explicitly state when to prefer this over alternatives (e.g., novel_chapters for a single work's chapters) or any exclusions. The usage is implied by the purpose, which is clear enough for an agent to infer, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_chapter_briefA
开写包:一次调用装配出「写这一章需要的一切」——上一章结尾原文(承接口)、本章大纲方向、相关人物卡、待回收伏笔(含埋设距离)、世界观用语规范、六维风格基线、原著锚段与句式骨架、本章禁用清单与开写清单。只读不写盘(仅复用既有分析缓存)。写新章前应先调它,而不是逐个工具去翻。
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | 书名。 | |
| root | No | 章节库根目录。 | |
| budget | No | 材料档位:compact(默认,各字段按小额截断以省上下文)/ full(锚段与骨架给全)。 | |
| chapter | No | 目标章:next(默认,= 当前最大章号 + 1,文件可尚未创建)/ 章号 / 文件名 / 标题子串。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a key behavioral trait beyond the schema: '只读不写盘(仅复用既有分析缓存)' – it is read-only and only reuses existing analysis caches. This is valuable because the tool name 'brief' doesn't imply read-only, and there are no annotations to carry this information. It also discloses that it aggregates from multiple sources. However, it doesn't detail what happens if the cache is missing or whether it can fail, so a 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph that front-loads the core value proposition ('开写包:一次调用装配出...') and ends with the usage directive. It packs a lot of information efficiently, but the long enumeration of contents makes it slightly dense to parse. The key usage guidance is at the end rather than the beginning, which is a minor structural flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, 100% schema coverage, and no output schema, the description covers the essential context: what it returns (the enumerated package contents), its read-only behavior, and when to use it. The main gap is that it doesn't describe the output format or how the returned package is structured, but since there is no output schema, the description partially compensates by listing the contents. It also doesn't mention error cases (e.g., missing chapter files), but this is a minor gap for an assembly tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds context for the 'budget' parameter by explaining compact vs full in terms of context-saving ('按小额截断以省上下文' vs '给全'), and for 'chapter' by explaining the 'next' default behavior. However, it doesn't add meaning for 'book' or 'root' beyond what the schema already says. The description's main value is in explaining the overall purpose, not the individual parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('装配'/'开写包') and resource ('写这一章需要的一切'), then enumerates the exact contents (上一章结尾原文、本章大纲方向、人物卡、伏笔、世界观用语、六维风格基线、原著锚段、禁用清单、开写清单). This clearly distinguishes it from siblings like novel_read or novel_outline by stating it is a one-call assembly package rather than a single-purpose reader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: '写新章前应先调它' (call it before writing a new chapter), and explicitly tells the agent NOT to use individual tools instead ('而不是逐个工具去翻'). This is a direct usage directive with an alternative-avoidance instruction, which is the strongest form of usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_chaptersA
列出某部作品的全部章节:章号、标题、字数、行数、更新时间。只读;若存在同章号多文件,列表末尾会给出撞号分组提示。
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | 书名(novels 下的子目录名)。 | |
| root | No | 章节库根目录。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and adds useful behavioral context: it explicitly marks the operation as read-only and discloses the collision-group hint behavior for duplicate chapter numbers. It does not cover ordering, error cases, or default root behavior, but it goes beyond a bare functional statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first front-loads the action and output fields, the second adds the read-only and edge-case behavior. Every sentence adds value and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description adequately explains what is returned and highlights an important duplicate-chapter behavior. It is mostly complete for a simple listing tool, though it omits details like ordering and behavior when the book does not exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('book' and 'root'). The description does not add extra parameter-level meaning such as formats, defaults, or prerequisites, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('列出') and resource ('某部作品的全部章节'), and enumerates the exact fields returned. It distinguishes itself from reading/brief tools by focusing on the full chapter list, though it never explicitly names a sibling it is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over alternatives such as novel_chapter_brief or novel_read. The description implies a listing use case but provides no explicit context, exclusions, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_continuity_checkB
连贯性审计:对照设定表扫描全书,输出矛盾候选(数字口径/人物缺场/别名/重复)供修正。
| Name | Required | Description | Default |
|---|---|---|---|
| ooc | No | OOC 哨兵模式:对比每章角色附近文本情绪值 vs 全书基线,提示偏离。 | |
| book | Yes | 书名。 | |
| root | No | 章节库根目录。 | |
| chapter | No | 衔接检查模式:指定章节(章号/文件名/标题),对比其与上一章的开头衔接。 | |
| outline | No | 大纲对照模式:对比创作资料剧情大纲方向行与正文关键词重合率,提示可能走偏。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the output shape (contradiction candidates across four categories) which is genuinely useful, and '供修正' implies it only reports rather than edits. However, it never states that the operation is read-only, whether files are modified, or what happens on failure, so notable gaps remain for an un-annotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the purpose (continuity audit against the settings sheet) followed by the output categories. No filler, though the compact Chinese phrasing packs several distinct ideas into one clause chain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description does explain the returned artifact type (contradiction candidates), which is the key gap-filler. But it omits whether the tool mutates anything, what the settings sheet dependency means, and how the alternate modes interact, so it is adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (ooc, book, root, chapter, outline) are already documented in the schema, including the three alternate modes. The description adds the contradiction categories but no parameter-level syntax or default behavior beyond that, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb+resource: audit continuity ('连贯性审计') by scanning the whole book against the settings sheet and emitting contradiction candidates. The listed categories (数字口径/人物缺场/别名/重复) make the scope concrete and distinguishable from siblings like novel_style_check or novel_plot. It does not name any sibling explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the tool is for finding continuity contradictions 'for correction', which tells an agent the context (post-draft review). But there is no explicit when-to-use vs novel_style_check/novel_plot, no prerequisites, and no mention that the settings sheet must already exist. The three operating modes live in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_fix_planA
改稿台:把风格诊断变成按优先级排好的待办清单——每条含原句位置(行号区间 + 原文)、当前值与目标值、可参照的原著锚段、以及改写方向。action=plan 生成清单 / verify 对当前正文复测(看哪些已回到带内)/ mark 标记单项(需 itemId + state)。只给方向不给句子:本插件不生成正文。
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | 书名。 | |
| root | No | 章节库根目录。 | |
| state | No | mark 时必填:done=已处理 / skip=跳过。 | |
| action | No | plan=生成待办清单(默认);verify=对当前正文复测;mark=标记单项(需同时传 itemId 与 state)。 | |
| itemId | No | mark 时必填:要标记的待办 id(取自 plan 返回的 items[].id)。 | |
| chapter | Yes | 要改的章节(章号 / 文件名 / 标题子串)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden and does disclose key traits: the plan/verify/mark semantics, the composition of each plan item, and the hard constraint that no actual sentences are generated. It implies mark is a state change, but it does not state whether changes persist or what side effects occur, which prevents a higher score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences front-load the core purpose, then the action semantics, then the decisive boundary. There is no filler and no repetition of what the input schema already states.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity of six parameters, three actions, no annotations, and no output schema, the description covers the plan output structure, action behavior, and inter-parameter relationships well. It does not specify the exact return shape of verify or error handling, but the schema covers individual parameter definitions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning by defining each action value, declaring plan as the default, and stating that mark requires both itemId and state while sourcing itemId from plan's returned items[].id. This goes beyond the plain schema property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by stating that the tool converts style diagnosis into a prioritized todo list, and enumerates exactly what each item contains (sentence position, current/target values, anchor passage, revision direction). It differentiates itself from siblings by declaring '只给方向不给句子' – it gives direction, not prose – which is a clear distinguishing boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete per-action usage: plan generates the checklist and is the default, verify re-tests the current text, and mark requires both itemId and state. It also states the negative case (does not generate prose), but it does not name alternative sibling tools or specify the exact workflow ordering relative to style_check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_importA
批量导入原稿件:扫描文件夹自动识别书名/章号并分组,可复制/移动到 novels/<书名>/ 分类存放(scan 预览 / apply 执行)。
| Name | Required | Description | Default |
|---|---|---|---|
| src | Yes | 待导入的原稿件文件夹路径(可含多本小说的章节文本,支持子文件夹)。 | |
| book | No | apply 时可选:强制把所有(或 files 指定的)文件归入该书名,用于合并异名同书,或把未分类文件指定归属。 | |
| mode | No | scan=只分析并返回分组建议(默认,不写盘);apply=按分组执行导入。 | |
| move | No | apply 时是否移动原文件(默认 false=复制,源文件保留)。 | |
| root | No | 章节库根目录(含 novels 子目录)。 | |
| files | No | apply 时可选:只处理这些文件(相对 src 的路径)。省略则处理全部扫描到的文件。 | |
| recursive | No | 是否递归扫描子文件夹。默认 true。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It usefully states that scan is a non-writing preview and apply performs the import, and that files can be copied or moved, but it omits important mutation details such as overwrite behavior, conflict handling, and permission requirements for a bulk-write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that packs a lot of information efficiently. The parenthetical mode summary is terse but functional; nothing is redundant or wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter import tool with no output schema, the description covers the main workflow but omits the return format of scan, error behavior, and edge cases like duplicate book names. The schema descriptions compensate partially, but the description alone is not fully sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds context about grouping and the scan/apply modes, but it does not expand on parameter syntax or default behavior beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (批量导入原稿件) and describes the mechanism: scanning a folder, identifying book/chapter names, grouping, and copying/moving to novels/<书名>/. This is clearly distinct from all sibling tools, none of which perform bulk import, though it does not explicitly differentiate itself from any sibling by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly explains the two operational modes: scan for preview and apply for execution, giving the agent enough context to choose the right mode. It does not mention alternative tools or exclusions, but no sibling tool offers comparable functionality, so the guidance is effectively complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_keywordsC
统计某部作品(或单个章节)中出现频率较高的关键词:中文相邻二字/三字词组与英文词(novel_keywords 输出不含单字)。
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | 返回的关键词数量。默认 20。 | |
| book | Yes | 书名。 | |
| root | No | 章节库根目录。 | |
| chapter | No | 可选。只统计该章节;省略则统计全书。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the output format (excludes single characters) but doesn't disclose performance characteristics, size limits for 'top', or typical output structure beyond that one exclusion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One efficient sentence that front-loads the core action and appends a useful scope exclusion. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a read-only analysis tool, but as no annotations or output schema exist, the description could better explain return shape or constraints on 'top'. It's minimally viable but has clear gaps for an agent deciding between this and other novel analysis tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds the behavioral note that 'chapter' is optional and that omitting it covers the whole book, but this is already implied by the schema's '可选' note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb (统计 frequency) and resource (关键词 in a novel or chapter), distinguishing it from siblings like novel_summary or novel_sentence_analysis. The parenthetical about not including single characters is a useful scope detail, though it doesn't explicitly name an alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like novel_summary or novel_semantic_search. Usage is only implied by the description of what it counts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_new_chapterB
为某部作品创建新章节文件(默认自动取下一个章号)。可指定标题与初始正文。
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | 书名。 | |
| root | No | 章节库根目录。 | |
| title | No | 可选。章节标题,会写入 Markdown 一级标题。 | |
| chapter | No | 可选。显式指定章号;省略则取现有最大章号 + 1。 | |
| content | No | 可选。章节初始正文。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two real traits: the default is to auto-assign the next chapter number, and the title is written as a Markdown H1. However, it omits conflict/overwrite behavior, required permissions, and what is returned after creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and the notable default, with no filler. Efficient, though it could have used the space to cover the missing behavioral detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a file-creating mutation tool with no annotations and no output schema, the description covers the happy path (book, root, optional title/content, auto chapter number) but says nothing about overwrite/conflict handling or the return value, leaving an agent to guess on edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's mention of title and initial content merely repeats what the schema already documents for the title and content properties, adding no syntax or format detail beyond structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: creating a new chapter file for a given work, with the auto-numbering default noted. It is clearly distinguishable from sibling novel_chapters (which lists/reads chapters), though the description does not explicitly name any sibling to contrast with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the default chapter-numbering behavior but gives no when-to-use guidance, prerequisites, or alternatives (e.g., when to use novel_chapters vs this tool, or what happens if the chapter already exists). Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_outlineC
维护原创小说的创作资料(novels/创作资料/<书名>/):创作设定/主要人物/次要人物/剧情大纲/钩子记录/创作状态卡的初始化、读取与更新。
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | hook 时:本章结尾钩子(状态/悬念/时间场景)。 | |
| book | Yes | 书名(novels/创作资料 下的子目录名)。 | |
| file | No | read 时指定(bible/characters-main/characters-minor/outline/hooks/status,省略=status)。 | |
| name | No | character 时:人物名。 | |
| role | No | character 时:main=主要人物 / minor=次要人物。 | |
| root | No | 章节库根目录。 | |
| title | No | chapter 时:本章标题/方向(一行)。 | |
| action | Yes | init=初始化创作资料;read=读文件(bible/characters-main/characters-minor/outline/hooks/status);bible=写入创作设定;character=登记/提升人物;chapter=补大纲方向行;hook=回填某章结尾钩子;status=刷新创作状态卡。 | |
| number | No | chapter/hook 时:章节号。 | |
| content | No | bible(创作设定全文)/ status(状态卡全文)时用。 | |
| description | No | character 时:人物简介(目标/动机/弱点/说话方式)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It says materials are 'initialized, read, updated' but never states whether writes overwrite existing files, are idempotent, destructive, or require an existing directory — meaningful given this tool obviously mutates files on disk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence front-loads the resource scope and then enumerates the artifacts, with no filler. It is efficient, though the enumeration is long and slightly list-like rather than prioritized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter, 7-action tool with no annotations and no output schema, the description covers the scope of managed artifacts but not how the actions relate, what persists, or what a read returns. Adequate as a minimum but leaving gaps an agent would have to resolve from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including the action and file enums is already documented inline. The description reinforces the file categories but adds no format, default, or interaction detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb set (初始化、读取、更新) plus a concrete resource: the creative-material files under novels/创作资料/<书名>/. It enumerates the artifact types (创作设定/主要人物/次要人物/剧情大纲/钩子记录/创作状态卡), which maps well onto the file variants. It does not differentiate itself from the many siblings that also touch novel data, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this tool over novel_read, novel_books, novel_chapters, novel_plot or novel_settings, all of which plausibly overlap. No prerequisites, no exclusions, no ordering guidance. Usage must be inferred entirely from the action enum in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_plotC
伏笔/剧情线登记表:维护某部作品的伏笔与剧情钩子(open 待回收 / done 已回收)。
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | 伏笔 id(update/done/delete 时需要)。 | |
| book | Yes | 书名。 | |
| note | No | 可选:备注(如何回收/何时回收)。 | |
| root | No | 章节库根目录。 | |
| type | No | 可选:伏笔类型(add/update)。 | |
| action | No | list=查看;add=登记新伏笔;update=修改;done=标记已回收;delete=删除;scan=扫描章节文本,自动更新伏笔提及章节;graph=跨章结构视图(伏笔埋设跨度 / 人物连续缺席 / 剧情线活跃度 / 时间线顺序 / 大纲对比),只读不写盘。 | |
| chapter | No | 可选:伏笔出现的章节。 | |
| content | No | add/update 时:伏笔内容描述。 | |
| priority | No | 可选:优先级(add/update)。 | |
| locations | No | 可选:关联地点(add/update)。 | |
| payoffCondition | No | 可选:回收条件(add/update)。 | |
| absenceThreshold | No | graph 时可选:人物连续缺席多少章算异常(默认 5)。 | |
| relatedCharacters | No | 可选:关联人物(add/update)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. '维护' hints at mutation, and the open/done statuses imply state changes, but the description does not disclose that add/update/done/delete persist changes, what data may be modified, or that graph is read-only. It does not contradict any annotation because none exist, but it leaves major behavioral traits unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one clean sentence with no filler, and it front-loads the core resource type. However, it is so brief that it sacrifices behavioral context that would matter for a 13-parameter tool, so it is concise but slightly under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 13 parameters, multiple action modes, and no output schema, this description is too thin. It does not explain the action lifecycle, when to use scan versus graph versus add/update/done/delete, or what a call returns. The schema covers parameter mechanics, but the description alone does not give an agent enough context to invoke the tool correctly in a real workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even without parameter details in the description. The description adds only the open/done status vocabulary and does not meaningfully clarify any of the 13 parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (伏笔/剧情线登记表, a foreshadowing/plot-line registry) and the action (维护, maintain), and adds the open/done status model. It is clearly distinct from sibling tools like novel_style_check, novel_continuity_check, and novel_outline, though it does not explicitly name an operation like list/add/update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus alternatives. The description only states what the registry is, not when an agent should choose it over related tools like novel_outline or novel_semantic_search. The use cases are implied by the name and action schema but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_readA
阅读某部作品的某个章节,返回带行号的正文(含字数统计)。可用 offset/limit 分段读取长章节。只读:不写任何文件、不改动任何数据。
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | 书名。 | |
| root | No | 章节库根目录。 | |
| limit | No | 最多返回行数。默认 400。 | |
| offset | No | 起始行号,从 1 开始。默认 1。 | |
| chapter | Yes | 章节标识:章号(如 1 或 01)、文件名(第01章.md)或标题子串。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description explicitly discloses the read-only nature of the operation ('不写任何文件、不改动任何数据'), which is essential safety information. It also states the output shape, though it does not cover error behavior or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no filler; the main action and return value are front-loaded, and the read-only caveat is clearly separated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with no output schema, the description covers the operation, return format, paging strategy, and safety profile. Minor gaps like error handling and parameter interactions are not critical for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already documented. The description adds behavioral meaning to offset/limit by framing them as a way to read long chapters in segments, which goes beyond the raw schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('阅读某部作品的某个章节') and specifies the return value (line-numbered text with word count). This clearly differentiates novel_read from sibling list/summary tools like novel_chapters and novel_chapter_brief.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to call the tool (read a chapter's body) and adds practical guidance for handling long chapters with offset/limit. It does not explicitly name alternatives or exclusions, but the use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_semantic_searchB
语义检索(本地 embedding,0 token):自然语言检索全书语义相关段落,无关键词也能命中。
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | 返回条数(默认 5,最大 10)。 | |
| book | Yes | 书名。 | |
| root | No | 章节库根目录(含 novels 子目录)。 | |
| query | Yes | 要检索的语义描述,如「与血统秘密相关的段落」「女主压抑克制的时刻」。自然语言越具体越好。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose useful behavior: local embedding (no external calls) and 0 token cost, which is genuinely valuable. However, it omits whether the operation is read-only, any scope limits (top max 10 is only in the schema), and pagination/traversal behavior across the book.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no padding, and the most decision-relevant facts (local embedding, 0 token, works without keywords) are front-loaded. It is appropriately sized for the amount of information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter search tool with no annotations, the description covers what it does and its cost profile but leaves gaps: no statement of return shape or result ordering, no mention that root configures the chapter library, and no routing guidance against the keyword-search sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters including the query examples and the top default/max. The description adds only the natural-language framing already implied by the query param description, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (语义检索) and resource (全书语义相关段落), and the clause '无关键词也能命中' implicitly frames it as the semantic counterpart to keyword search. The closest sibling, novel_keywords, is never named, so the agent must infer the routing choice from the description's phrasing rather than an explicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage is clear: use natural language when you lack exact keywords. But there is no explicit when-not guidance and no named alternative, even though novel_keywords is the obvious competing tool. For 15 sibling tools, an agent benefits from being told directly when this beats keyword search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_sentence_analysisA
句式模式分析:统计某部作品(或单章)的句式分布(陈述/环境/心理/对话/疑问/反问/感叹/祈使/省略留白九类)、句式排列规律(转移、高频模板、段首段尾、按章节的压缩节奏序列)、段落结构、句长分布、情感曲线、风格指纹与节奏建议,用于快速掌握作者的写作习惯、主观情感并参考其叙事节奏。【问「这本书是怎么写的」时用它】——它与 novel_style_check(问「我这一章写得像不像」)、novel_style_report(问「这本书是什么风格」)共用同一套引擎与缓存,三者是不同的问题、不是重复的工具。受 UI 开关控制,可先用 novel_sentence_config 查看状态。
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | 返回的高频句式模板数量。默认 8。 | |
| book | Yes | 书名。 | |
| root | No | 章节库根目录。 | |
| brief | No | 可选。true=返回精简摘要(brief 字段)。 | |
| fresh | No | true=强制重新分析(忽略缓存)。默认 false。 | |
| chapter | No | 可选。只分析该章节;省略则分析全书。 | |
| maxSentences | No | 采样句数上限(超长文本保护,默认 20000)。 | |
| curveSegments | No | 情感曲线分段数(1-50,默认 20)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden — it discloses two non-obvious traits: shared engine/cache with its siblings (cached results may be served across tools) and availability gated by a UI switch. The schema's fresh parameter hints at caching, but the description adds the shared-cache and configuration-gating facts beyond the schema. It stops short of describing return shape or failure conditions, which keeps this from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every segment earns its place: the front-loaded analysis-surface list, the bracketed routing rule, the sibling disambiguation, and the UI-switch caveat. It is dense rather than padded, and the bracket-delimited routing rule keeps the decision-critical information scannable despite overall length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex 8-parameter tool with no output schema, and the description covers the breadth of what it produces well. However, it does not describe the shape of returned data (e.g., what brief=true truncates or how results are keyed by chapter), and it omits prerequisites such as which books are analyzable even though novel_books exists as a sibling. Good enough for tool selection, slightly thin for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description's category enumeration (high-frequency templates, emotion curve, chapter-level rhythm sequences) maps loosely onto top, curveSegments, and chapter, adding mild output context that helps parameter understanding. However, it adds no syntax, format, range, or default information beyond the schema, so it does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a concrete analytical verb (统计/分析) bound to a clear resource (某部作品或单章) and enumerates the full analysis surface: nine sentence-type categories, arrangement patterns, paragraph structure, sentence-length distribution, emotion curve, style fingerprint, and rhythm suggestions. It also explicitly distinguishes itself from novel_style_check and novel_style_report by question type, so an agent can identify it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bracketed rule 【问「这本书是怎么写的」时用它】 gives the exact condition for calling this tool, and it names two sibling alternatives with their own trigger questions (novel_style_check=「我这一章写得像不像」, novel_style_report=「这本书是什么风格」), explicitly asserting they are different questions rather than duplicates. It also flags the UI-switch prerequisite and routes the agent to novel_sentence_config for status checks — full alternative and precondition guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_sentence_configA
查看或修改句式模式分析的开关状态:enabled(分析功能是否可用)、autoAnalyze(分析作品时是否主动使用)、systemPromptMode(系统提示词档位 off/brief/full)、promptScene(提示词场景 general/writing/revising/auditing/setup,决定完整档下注入哪一套流程)与 leanWorkflow(精简工作流:打开后只按需调用工具,省 token)。
| Name | Required | Description | Default |
|---|---|---|---|
| tools | No | 各工具开关(如 { novel_plot: false }),键必须是 novel_* 工具名。 | |
| action | No | get=查看;set=修改。 | |
| enabled | No | 写作助手功能总开关。 | |
| features | No | 功能开关(emotionCaveat=情感净化预警 / genreTheme=题材与流派检测 / webnovelVibe=网文信号 / rawWriting=非净化直白模式 / semanticEmbedding=本地语义增强),如 { emotionCaveat: false }。注意:rawWriting=true 会跳过 UI 的双重确认+承诺输入流程,仅应在用户明确要求时开启。 | |
| autoAnalyze | No | 分析作品时是否主动使用句式分析。 | |
| promptScene | No | 提示词场景(仅 full 档生效):general=通用写作工作流(默认,等价于 4.x 行为) / writing=写新章 / revising=改稿 / auditing=审计(只体检不改稿) / setup=建资料(只维护设定与创作资料)。 | |
| leanWorkflow | No | 精简工作流(默认 false):true=注入最简提示词(优先于档位与场景),只保留「工具按需调用」一条原则,报告类工具未显式传 brief 时默认走精简输出。适合成本敏感的长篇。 | |
| styleTolerance | No | 风格基线容差(每维 { low: -20, high: 20 },low 为负/高为正;空对象 {} 清除恢复推荐——宿主不支持 null 类型,清除一律用空对象)。 | |
| creationProfile | No | 原创模式设定(worldview/characters/forbidden/mainConflict/genre/extra 字符串键,留空项省略;空对象 {} 清除全部交给模型——宿主不支持 null 类型)。 | |
| creationProfiles | No | 按书专属原创设定(键=书名,值=同上结构;空对象 {} 清除全部书的专属设定——宿主不支持 null 类型)。 | |
| systemPromptMode | No | 系统提示词档位:off=不注入 / brief=精简(只说明有这套工具) / full=完整(按场景注入对应流程)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose the behavioral effect of each key setting: enabled controls whether the analysis is available, autoAnalyze controls active use during analysis, systemPromptMode and promptScene determine prompt injection and workflow selection, and leanWorkflow reduces tool calls and saves tokens. It does not cover every hidden side effect or permission concern, but the main configurable behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and uses parenthesized lists to compress a large amount of parameter semantics into a single sentence. Every clause contributes meaning, with no filler or redundancy, though the single-sentence structure is slightly dense and could benefit from tighter formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter get/set tool with no annotations and no output schema, the description explains the core discretionary settings but omits several parameters like tools, features, styleTolerance, creationProfile, and creationProfiles. The schema's rich descriptions compensate for the omissions, but the lack of any statement about what get returns or how set affects current state leaves a meaningful gap in contextual guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already fully documents all 11 parameters, including nested objects and enums. The tool description adds only a compressed summary of five main switches and does not provide extra syntax, constraints, or validation details beyond what the schema gives. Thus the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb+resource statement: '查看或修改句式模式分析的开关状态' (view or modify switch states of sentence-pattern analysis). It clearly identifies the tool as a configuration getter/setter for a specific feature, distinguishing it from sibling tools like novel_sentence_analysis (which performs analysis) and novel_settings (general configuration).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: whenever the author-agent needs to inspect or change sentence-pattern analysis settings such as enabled, autoAnalyze, systemPromptMode, promptScene, or leanWorkflow. It does not explicitly mention alternatives or exclusions, so it misses the top-tier routing guidance, but the usage context is obvious from the stated purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_settingsB
设定管理(五张表:人物/地点/道具/时间线/世界观用语规范),list/add/update/delete/scan 按 category 维护,detect 自动判断文化基准。
| Name | Required | Description | Default |
|---|---|---|---|
| day | No | timeline 专用:时间点标识(add 时作为条目名登记;update/delete 用 name=旧标识 定位,改名时同时传 day=新标识)。 | |
| book | Yes | 书名。 | |
| name | No | 条目名(人物名/地名/道具名;timeline 用 day 字段)。 | |
| root | No | 章节库根目录。 | |
| alias | No | character 专用:别名。 | |
| basis | No | worldview 专用:判断依据/文化基准说明。 | |
| event | No | timeline 专用:事件。 | |
| notes | No | 可选:备注。 | |
| owner | No | item 专用:当前持有者。 | |
| action | No | list=查看;add=登记;update=修改;delete=删除;scan=扫描章节提取候选;detect=自动判断世界观文化基准(worldview 专用)。 | |
| ritual | No | worldview 专用:仪式规范(如'点烛不烧香')。 | |
| status | No | item 专用:状态(如 在琉璃处/已遗失)。 | |
| traits | No | character 专用:性格/外貌特征。 | |
| chapter | No | timeline 专用:对应章节。 | |
| category | No | 表类别(character/location/item/timeline/worldview;list/add/update/delete/scan 需要;detect 固定 worldview)。 | |
| lastSeen | No | item 专用:最近出现的章节。 | |
| firstSeen | No | 可选:首次出现的章节。 | |
| bannedWords | No | worldview 专用:禁用词表(如欧式背景禁 上香/老夫)。 | |
| description | No | 可选:描述。 | |
| recommended | No | worldview 专用:替代词映射(如 { "上香": "点烛" })。 | |
| speechStyle | No | worldview 专用:说话方式规范(title 称谓/honorBad 客套禁词/ritualBadPatterns 仪式禁式/tone 语气·整体为 JSON 对象)。 | |
| relationships | No | character 专用:人际关系。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden for a 22-parameter mutation tool. It says nothing about delete being destructive/irreversible, permission or root-path requirements, whether scan/detect are expensive or non-idempotent, or what these operations return – a significant gap for a tool that writes and deletes settings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense parenthetical sentence front-loads the resource, tables, and actions with no filler. It is compact and scannable, though the nested-clause format is slightly harder to parse than a short sentence or two.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 22-param tool the 100%-covered schema does the heavy lifting and there is no output schema to explain, so return values need not be described. What is missing is behavioral context (destructive delete, scan/detect cost, root/chapter prerequisites) that the schema cannot convey.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema itself documents action enums, category 专用 fields, and per-table semantics in detail. The description's parenthetical mapping of the five tables adds a little framing but no syntax beyond what the schema already supplies, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (设定管理) and enumerates the five tables plus the full action set (list/add/update/delete/scan/detect), so an agent knows exactly what domain it operates on. It does not, however, differentiate itself from any sibling like novel_keywords or novel_style_check, so the 4-tier is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clarifies that the CRUD-style actions are grouped by category and that detect is worldview-specific and automatic, which implies usage. But it never states when to reach for this tool versus sibling tools (e.g., novel_keywords for keyword work) or any prerequisites, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_style_checkA
风格自检:对比某章节与全书其他章节的风格指纹(句式分布/句长/情绪),输出相似度与偏差清单。【问「我这一章写得像不像全书」时用它】——要可执行的改稿待办请接着用 novel_fix_plan,要全书风格画像用 novel_style_report,要看写作手法用 novel_sentence_analysis。
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | 书名。 | |
| root | No | 章节库根目录。 | |
| chapter | Yes | 要检查的章节(章号/文件名/标题)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It discloses the comparison methodology (style fingerprints against other chapters), the dimensions (句式分布/句长/情绪), and the output form (similarity and deviation list). It does not explicitly state side-effect freedom or error behaviors, but the analysis framing ('自检', '对比', '输出') makes the read-only nature reasonably clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence delivers the core purpose, then uses a dash to add the trigger phrasing and sibling routing. Every clause contributes: what it compares, how, what it outputs, and when to use it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description only says the output is a 'similarity and deviation list' without detailing its structure or interpretation. However, for a moderate-complexity analysis tool with fully documented parameters and clear sibling routing, this is a minor gap rather than a blocking one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all three parameters. The description itself does not add parameter-level semantics beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('对比') and resource ('某章节与全书其他章节的风格指纹'), names the output ('相似度与偏差清单'), and explicitly distinguishes the tool from novel_fix_plan, novel_style_report, and novel_sentence_analysis. An agent can clearly understand what this tool does and how it differs from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit trigger question ('我这一章写得像不像全书') and names three alternatives with their specific use cases ('可执行的改稿待办', '全书风格画像', '写作手法'). This leaves no ambiguity about when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_style_reportA
风格画像报告:聚合 6 维测量数据(指纹/词汇/题材/情感/氛围 12 轴/语义距离)供 AI 判断风格。【问「这本书是什么风格」时用它】——它给的是全书画像而非单章判定(那是 novel_style_check),也不是写作手法拆解(那是 novel_sentence_analysis)。
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | 书名(novels 下的子目录名) | |
| root | No | 章节库根目录(含 novels 子目录)。 | |
| brief | No | true=返回精简摘要(一句话结论),省略=完整报告。 | |
| action | No | report=生成测量报告(默认);get=读取已保存的 AI 风格判断 | |
| aiJudgment | No | AI 的风格气质判断结论:后插件将测量数据与判断存入 style-reports 供后续使用 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose the core behavior: aggregating measurements into a whole-book profile and the scope distinction from chapter-level judgment. However, it omits behavioral traits such as the 'get' action for reading saved AI judgments and the persistence side effect of passing aiJudgment, which are represented only in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core concept, and every clause adds value — measurement content, usage trigger, and sibling exclusions. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with the thoroughly documented schema, gives an agent enough context to invoke the tool: it defines the output (whole-book style profile), lists the data dimensions, and clarifies which siblings to choose instead. It doesn't detail the precise return structure, but the description's scope and the schema's parameter guidance make this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds high-level context about the 6 measurement dimensions but does not need to explain individual parameters because the schema already documents book, root, brief, action, and aiJudgment clearly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete deliverable ('风格画像报告'), states what it aggregates (6 dimensional measurements), and explicitly differentiates it from novel_style_check and novel_sentence_analysis. An agent can identify the tool's purpose and distinguish it from key siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger ('问这本书是什么风格时用它') and tells the agent what this tool is not for. The alternative tools are named (novel_style_check for single-chapter, novel_sentence_analysis for technique breakdown), so when-to-use versus alternatives is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novel_summaryB
章节摘要(模型生成、插件存储):读摘要回忆剧情、避免重读。add/update/get/list/delete 按章节管理。
| Name | Required | Description | Default |
|---|---|---|---|
| book | Yes | 书名。 | |
| root | No | 章节库根目录。 | |
| action | No | list=全部摘要(默认);get=取某章;add=新增/覆盖摘要;update=修改;delete=删除。 | |
| chapter | No | 章节标识(章号/文件名/标题)。 | |
| summary | No | add/update 时:本章摘要(200-500 字,覆盖剧情走向/关键事件/结尾状态)。 | |
| keyEvents | No | 可选:关键事件列表。 | |
| keySettings | No | 可选:本章出现的关键设定/信息。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It adds only that summaries are model-generated and plugin-stored; it says nothing about whether delete is destructive, whether add overwrites existing summaries, what permissions are needed, or how failures behave — the schema's 'add=新增/覆盖' hint never surfaces in the prose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short clauses plus an operation list; the resource and purpose are front-loaded and nothing is padded. It is slightly cryptic in the second clause but efficiently sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A seven-parameter tool with a destructive delete action, no annotations, and no output schema needs more than this: it should cover mutation semantics, overwrite behavior, and return shape expectations. Those gaps are left entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters are already documented in the input schema, which sets the baseline at 3. The description restates the action set and the '按章节' scoping but adds no format, default, or interaction detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (章节摘要) and enumerates the operations it supports (add/update/get/list/delete), so an agent knows this is a CRUD tool over per-chapter summaries. It does not, however, contrast itself with siblings like novel_chapters or novel_plot, which also manage chapter-scoped content, so the boundary is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a use rationale — read summaries to recall plot and avoid re-reading chapters — which implies when the tool is valuable. But there is no explicit when-to-use/when-not guidance and no named alternative for the overlapping cases (e.g. novel_plot or novel_chapters), so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v5.1.1- Changed
novel_sentence_config1 field changed- added
Input schema / properties / leanWorkflowAdded value: +{ + "description": "精简工作流(默认 false):true=注入最简提示词(优先于档位与场景),只保留「工具按需调用」一条原则,报告类工具未显式传 brief 时默认走精简输出。适合成本敏感的长篇。", + "type": "boolean" +}
4 tool updates
v5.0.0- Added
novel_chapter_brief - Added
novel_fix_plan - Changed
novel_plot3 fields changed- added
Input schema / properties / absenceThresholdAdded value: +{ + "description": "graph 时可选:人物连续缺席多少章算异常(默认 5)。", + "type": "integer" +} - changed
Input schema / properties / action / descriptionPrevious value: -"list=查看;add=登记新伏笔;update=修改;done=标记已回收;delete=删除;scan=扫描章节文本,自动更新伏笔提及章节。"New value: +"list=查看;add=登记新伏笔;update=修改;done=标记已回收;delete=删除;scan=扫描章节文本,自动更新伏笔提及章节;graph=跨章结构视图(伏笔埋设跨度 / 人物连续缺席 / 剧情线活跃度 / 时间线顺序 / 大纲对比),只读不写盘。" - changed
Input schema / properties / action / enumPrevious value: -[ - "list", - "add", - "update", - "done", - "delete", - "scan" -]New value: +[ + "list", + "add", + "update", + "done", + "delete", + "scan", + "graph" +]
- Changed
novel_sentence_config2 fields changed- added
Input schema / properties / promptSceneAdded value: +{ + "description": "提示词场景(仅 full 档生效):general=通用写作工作流(默认,等价于 4.x 行为) / writing=写新章 / revising=改稿 / auditing=审计(只体检不改稿) / setup=建资料(只维护设定与创作资料)。", + "enum": [ + "general", + "writing", + "revising", + "auditing", + "setup" + ], + "type": "string" +} - added
Input schema / properties / systemPromptModeAdded value: +{ + "description": "系统提示词档位:off=不注入 / brief=精简(只说明有这套工具) / full=完整(按场景注入对应流程)。", + "enum": [ + "off", + "brief", + "full" + ], + "type": "string" +}
16 tool updates
- First observed
novel_books - First observed
novel_chapters - First observed
novel_continuity_check - First observed
novel_import - First observed
novel_keywords - First observed
novel_new_chapter - First observed
novel_outline - First observed
novel_plot - First observed
novel_read - First observed
novel_semantic_search - First observed
novel_sentence_analysis - First observed
novel_sentence_config - First observed
novel_settings - First observed
novel_style_check - First observed
novel_style_report - First observed
novel_summary
TDQS
Scored across 18 tools
The three analysis tools (novel_sentence_analysis, novel_style_check, novel_style_report) are explicitly disambiguated in their descriptions, but novel_settings, novel_outline, and novel_plot have fuzzy boundaries—both settings and outline manage character/world data, and outline's hook records overlap with plot's foreshadowing tracker. An agent could plausibly route the same request to two different tools.
All tools share a consistent novel_ prefix in snake_case, but the second part mixes conventions: bare verbs (novel_read, novel_import), bare nouns (novel_books, novel_plot), noun+verb compounds (novel_style_check, novel_continuity_check), and noun+noun compounds (novel_sentence_analysis, novel_style_report). The prefix keeps it readable, but the pattern is not predictable enough to guess tool names.
18 tools is at the heavy end, but the server's scope is genuinely broad: reading, writing, importing, editorial analysis, style checking, revision planning, plot tracking, settings, summaries, continuity auditing, and semantic search. Each tool has a distinct job, though the analysis triad plus fix_plan could arguably be consolidated without much loss.
Reading, creating, analysis, and management surfaces are well covered, but there are notable gaps: no way to update or delete a chapter after creation, no book-level delete/rename, and novel_fix_plan explicitly refrains from generating text, leaving no tool that actually applies revisions to the manuscript. Settings and summaries have full CRUD, but the core chapter lifecycle is incomplete.
Maintenance
Related MCP Connectors
Chinese web novel MCP: 36 tools (outline, prose, review, coach, KD export). BYOK, no API key.
AI-native fiction platform. Any AI can register, read, search and co-author novels via MCP or REST.
Prose linter + AI-slop detector: weasel words, passive voice, hedging, and research-cited AI tells
Writing studio for novels and screenplays: read your projects and run cited fact-checks.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceLocal-first markdown vault with a built-in MCP server (streamable HTTP). 16 tools and 2 resources for Claude Code / Desktop / Cursor: read/write/search plus context_for_query, find_orphans, weekly_digest, compare_notes, semantic_outline. Per-folder agent permissions, LanceDB vectors, local Xenova ONNX embedder swappable to Ollama. Single Bun binary. AGPL.33AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceA low-token human-AI co-reading MCP tool that imports local EPUB/TXT/Markdown books into chunks, enabling AI to read only relevant fragments and write co-reading results to long-term reading notes and progress files.73MIT
- AlicenseAqualityBmaintenanceEnables human-like non-fiction authoring by training custom voices, applying tone presets, auditing drafts for AI tells, and managing dictionaries, all locally.1969 npm8MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI-driven long-form novel creation and management, including chapter generation, character and timeline tracking, semantic memory retrieval, version savepoints, and deep consistency checking across multiple projects through MCP tools, with support for local LM Studio or any OpenAI-compatible API.14MIT