DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

micellince /

micellince/dsh-long-novel-workbench

Verified

长篇中文小说工作台:章节/时间线/事实账本/伏笔/冲突/人物/高光/审稿/提案/对齐/9 Agent 分工/名家风格预设,AI 可直接生成与审稿。

★ 2 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@4dac79ed

📖 长篇中文小说工作台

npm version License: MIT DSH Plugin

写长篇的人都懂那种感觉:写到第三十章,突然想不起来第三章里那个配角姓什么;伏笔埋了三十万字,自己先忘了埋在哪;设定越写越多,最后正文、大纲、笔记各说各话。

⚡ ATTENTION IS ALL YOU NEED 怎么吸引读者怎么来,一切为读者服务。先抓人,再自洽:每章必须有核心注意力;事实自洽是底线,不是目标。

这个插件就是给这种时刻准备的——一个装在 DeepSeek Harness 里的长篇中文小说工作台。章节、时间线、事实账本、伏笔、冲突、人物、高光、审稿、提案、计划对齐,都在一个地方;AI 不只是陪你聊,它能直接读这些账本,帮你生成下一章、审稿、补时间线,但所有 AI 产出都先落在「提案」里,你点头才进正文。

不限文体:武侠、悬疑、科幻、言情、文学都可以。内置金庸、古龙、梁羽生、柯南·道尔、阿加莎·克里斯蒂、东野圭吾、刘慈欣、村上春树八套风格预设,也可以自己调。

两个支柱:事实与注意力

支柱 管什么 判据
事实(Canon) 人物、物品、地点、时间线/事件、事实账本、伏笔、冲突、因果、世界规则 空间、时间、逻辑都自洽
注意力(Attention) 每章一个 0–100 总分、四拍(钩子/张力/回报/章末牵引)、类型、弃读点 读者读不读得下去、想不想追
  • 事实层保证"不错":事实账本 + 时间线 + 世界/地点(空间自洽检查);
  • 注意力层保证"好看":每章必须先有核心注意力设计,再写正文;冷读打分是实测,设计分与实测分的差 ≥20 就是"设计没兑现"。
  • 原则、字段、检查规则、生成链路见 docs/ATTENTION.md;世界/地点模型见 docs/WORLD-MODEL.md;整本书流水线见 docs/FULLBOOK-PIPELINE.md。

先看几张图

⚡ 注意力:每章 0–100 分、曲线、弃读点、设计目标分与实测分的对照

注意力

🌍 世界地图:地点、连接、距离/天数/方位,空间自洽可核对

世界地图

🗺️ 章节地图:按章蛇形铺开,一眼看到进度、注意力分档和素材角标

章节地图

🕰️ 时间线全景:事件、伏笔埋收、冲突、高光、注意力按章汇合

时间线全景

截图来自 v0.5.0 的只读视图(与工作台内同一份数据,带打印/导出 PDF 样式),使用演示作品《青霜照夜》与《鱼龙舞》的数据,不含真实作品。工作台内的交互界面另有「注意力 / 地图 / 世界 / 整本书」等页签。

版本状态:当前版本 v0.5.0。这一版新增 注意力一号原则(attention is all you need)、世界模型与坐标地图、章节地图、整本书全自动生成流水线、11 个 Agent(独立审稿人 + 注意力设计师)、事实/冲突/伏笔合并视图、人物卡、会话目标选择等。npm 上最新发布见 npm 页面。

安装(30 秒)

  1. 打开 DeepSeek Harness;
  2. 进 设置 → 插件;
  3. 在安装框里输入:
dsh-long-novel-workbench
  1. 安装,刷新页面;
  2. 左下角侧栏出现 「📖 长篇中文小说工作台」,点开就能用。

命令行安装也可以:

dsh plugin --profile <你的 profile> add dsh-long-novel-workbench

没有 npm 网络时,也可以从 GitHub Release 下载 tarball 安装。

从本地源码安装(v0.4 开发版)

git clone https://github.com/micellince/dsh-long-novel-workbench.git
cd dsh-long-novel-workbench
npm test            # 可选:先确认测试全绿

然后让 profile 的插件指向这个目录(在 DSH 里用插件管理工具 install_bundle,目标填上面的绝对路径),或把本地路径加进 profile 的依赖后再重载插件。改 Host 代码(index.js、lib/*.js)后需要重载插件才生效;改 client.js 后刷新页面即可。

第一次打开

  • 点右上角「+ 新建作品」,填书名、类型、目标章数/字数;想要整本生成,就勾选「创建后进入整本书:先生成蓝图与大纲」,先验收蓝图/大纲,再点「生成全文」;
  • 开发记录见 WORKLOG.md,待办见 BACKLOG.md。

工作台只做看板和验收:所有 AI 动作(审阅、修改、生成方案)都从工作台「发到对话」,由左侧对话里的 Agent 执行,结果以提案/审稿回到工作台。

已经有稿子?点「⬆ 导入作品 / 作品包」,可以直接点「浏览…」选目录或整本书文件(.md / .txt / .epub / .pdf / .mobi)。导入会在 DSH 默认工作区下为这本书新建同名工作区。TXT/EPUB/MOBI(PalmDOC) 纯 JS 解析,PDF 需要 pdftotext。会自动识别 正文/、wiki/entities、大纲.md、追踪.md、写作规范.md、故事线.md,一次导入章节 + 人物卡 + 大纲 + 时间线 + 事实 + 伏笔 + 预设;导入完成点「开始审阅」,AI 会补缺失并核对冲突。只读扫描,不改原文件;

  • 数据默认存在 ~/StoryDesk,全是普通 Markdown/JSON 文件,能备份、能进 Git、能用别的编辑器打开。

功能一览

工作台共有 19 个页签,按「注意力 / 正文 / 验收 / 工具」分组:注意力(注意力、伏笔、冲突、高光)、正文(章节、地图、世界、人物、时间线、事实账本)、验收(审稿、提案、对齐)、工具(仪表盘、整本书、分工、预设、设置)。

写和改

  • 章节编辑器:标题、状态、故事内时间、地点、出场人物、摘要、正文;停止输入 5 秒自动保存,关闭时若有未保存改动会提示。
  • 章节历史:覆盖已有章节且内容确实变化前,旧稿自动备份(每章最多保留最近 100 份);可以查看历史版本与当前稿的逐行 diff,并恢复到指定版本——恢复前会先把当前正文再备份一份。
  • 批量处理:提案页支持按类型筛选、全选、批量采纳 / 批量驳回;审稿页支持按严重度筛选、全选、批量「标记已修 / 忽略」。单条失败不影响其他条目,失败项会明确提示。 清单发送前可以选目标会话(默认你当前正在看的那个,其次本书上次用过的),不会因为新开过审稿会话就发错地方。

视图

  • 人物关系图:人物页可切换「列表 / 关系图」。关系图是 SVG 力导向布局,支持 名字(关系)、名字(关系)、名字:关系 等写法;目标人物还没建卡时显示为虚线幽灵节点;节点可拖拽,悬停高亮相邻节点与边,点击打开人物编辑卡。
  • 人物卡(游戏化):人物页可按「列表 / 卡片 / 关系图」切换,列表与卡片都按重要性排序(主角 > 反派 > 配角 > 龙套,再按出场章数与冲突数)。卡片视图是游戏角色卡风格;详情是两栏人物卡,带头像、角色色、出场/冲突/事实/高光/注意力均分五个数值。
  • 注意力一号原则:工作台常驻「⚡ ATTENTION IS ALL YOU NEED · 怎么吸引读者怎么来 · 一切为读者服务」;总览页置顶口号与注意力指标;生成下一章时工作单把注意力设计放在最前面(最近曲线、疲劳预警、目标分、四拍),并带强制补强(上一章设计分与实测分差 ≥20 或低于均值 → 点名最弱一环要求本章补上);plan 提案没带注意力设计会被直接拒绝。
  • 章节地图(🗺️ 地图):按章号蛇形排成进度地图,节点带状态色、注意力分档、字数和「事件 / 冲突收束 / 伏笔埋收 / 高光」角标;计划章用虚线显示;点节点看本章摘要、注意力记录、事件/冲突/伏笔/高光,可跳到章节页。
  • 生成整本书(📚 整本书):新建时设总章数/每章字数/预算 → 先让 AI 生成「事实 + 注意力蓝图 + 全书大纲」给你验收 → 点「生成全文」进入一个 goal:AI 自己在会话里建目标、派子 Agent,按卷循环「写 → 审一次 → 修一次」(修订自动采纳),最后全书总审 + 总修;也可选「按 N 章生成」分段跑。全程不打扰你,工作台只显示进度、预算(估算不准,仅参考)和暂停/恢复;结束后提示交给独立审稿人冷读。
  • 世界与地点(🌍 世界):世界设定(名称/尺度/现实或架空/时代/步行·骑马·行船日均里程)+ SVG 坐标地图,地点可拖拽调坐标、点开编辑(别名、类型、区域、首现章、与相邻地点的距离/天数/交通/方位);新建作品时可以让 AI 生成世界与 8–20 个地点,老作品可以「AI 反推地点」;检查器会报地点不存在、相邻章之间没有路线、坐标越界/重叠、首现章晚于引用等空间问题。
  • 只读视图:世界 / 时间线 / 章节地图都有只读 HTML 视图(同源路由 + 面板内 iframe),带打印样式,便于对照和打印。
  • 时间线全景:时间线页第三个视图,按章聚合事件、伏笔埋设/回收、冲突、高光和注意力分数,可按类别过滤;点章标题跳到章节页。
  • 冲突按参与方 / 伏笔按回收段:冲突页可按参与方组合折叠(华羽生×张天一…),伏笔页可按计划回收章每 10 章一段折叠,展开看细节,支持搜索。
  • 时间线泳道:时间线页可切换「列表 / 泳道」。按卷(没有卷信息时每 20 章)分泳道,横轴是章号;事件按重要度着色,点击可编辑;伏笔的「埋设章 → 回收章」用曲线连接(未回收实线、已回收灰色虚线);顶部有 0.5x–3x 缩放滑块。
  • 总览与计划对齐:章数 / 字数进度、每章偏离、事件 / 事实 / 审稿 / 提案的覆盖情况;对齐页会显示当前使用的预设。
  • ⚡ 注意力(每章一个 0–100 总分):每章记一条——主类型、0–100 总分、目标分、下一章意愿、钩子 / 张力 / 回报 / 章末牵引、最弱一环、弃读点与详细说明;页面上有 100 分制注意力曲线(类型着色、目标分虚线、弃读点红标)和章节诊断卡。伏笔 / 冲突 / 高光不用搬数据,按章号自动聚合到对应章卡片下(埋了哪些、收了哪些、引爆了哪些)。已有书在注意力页点一次「加入清单:AI 补齐注意力机制」就能逐章补设计;冷读打分只评文本、不写设计。检查器会报:缺记录、章末没牵引、同类型连超 3 章、相邻章骤降、设计与实测差 ≥20、平均分 <60。

数据与检查

  • 事实账本时间维度:事实可以填「生效章 / 失效章」(validFrom / validTo),同一属性在不同阶段合法变化不会再被一刀切报成冲突。 事实页可切换「平表 / 按主体」:按人/物/组织折叠成卡片,展开看这个主体的全部属性与取值,冲突主体有标记,几十条事实不再散开。
  • 确定性检查(不花 token):同一属性在重叠章段出现不同取值、伏笔过了计划回收章还没回收、章节引用了没建卡的人物、审稿里的阻断 / 严重问题、计划章节 / 字数与实际进度的偏离。
  • 多预设 / 多卷:预设页可以把某套预设「设为当前」,对齐按当前预设计算;预设也可以带章节范围,按卷汇总计划章数与字数。

导入与导出

  • 导入 Markdown:作品库页输入本机目录路径,先扫描预览(文件数、章节数、总字数、前 20 章标题),再填作品名导入;可新建作品,也可追加到现有作品并从现有最大章号续号。递归扫描,优先按 # / ## 标题切章,没有标题则一个文件一章。
  • 导出:Markdown 合集、EPUB(EPUB 3)、DOCX。实现零依赖,EPUB 的 mimetype 按规范放在第一条且不压缩,DOCX 章节标题使用 Heading1 样式。

AI 怎么替你干活

统一入口:清单(购物车)。审稿、提案、一致性检查、注意力补齐、世界生成、下一章方案……都先「加入清单」,再一次发到左侧对话,由 Agent 调 novel_desk_* 工具执行;工作台只负责验收。清单发送前可以选目标会话(默认你正在看的那个)。

也可以直接在聊天里说:「给《长夜将明》补第 3 章时间线」「审一下第 2 章」「把这本书写成 60 章」。Agent 会先调 novel_desk_plan / novel_desk_context 拿工作单和上下文,再提交提案。

生成整本书:新建作品时设总章数/每章字数/预算 → 先让 AI 产「事实 + 注意力蓝图 + 全书大纲」给你验收 → 点「生成全文」(或按 N 章),进入一个 goal:AI 自建目标、用 subagent 分派,按卷循环「写 → 审一次 → 修一次」,最后总审 + 总修,结束提示交给独立审稿人。全程不打断你,预算到 80% 提醒、100% 自动暂停。

所有 AI 结果都先停在「提案」里:可以 采纳 / 提修改意见 / 让 AI 按意见重写 / 驳回,也可以批量采纳或驳回。章节正文提案带逐行 diff,采纳前自动备份旧稿。它不会背着你改正文(整本书流水线里的"流程内修订"是例外:工作台按 runId 自动采纳,提案页留痕)。

所有 AI 结果都先停在「提案」里:可以 采纳 / 提修改意见 / 让 AI 按意见重写 / 驳回,也可以批量采纳或驳回一批提案。章节正文提案带逐行 diff,采纳前自动备份旧稿。它不会背着你改正文。

11 个 Agent 分工

总编、大纲师、世界观师、人物师、时间线师、伏笔师、连续性审稿、文笔审稿、责任编辑,加上 独立审稿人(零上下文冷读)和 注意力设计师(权重最高)。

前九位都是「带背景的稽核」:先读账本和预设,再判对不对、合不合规。独立审稿人反过来——零上下文首读,不读账本、预设、大纲、人物卡,只拿到一章正文,像一个第一次读到的读者,说哪里抓得住、哪里想弃读、人物可不可信、信息过载还是不足。

「分工」页顶部有一张高亮卡,可以选 读一章 或 读全书,再点「带这章 / 全书进新会话」:它会新开一个干净会话,只带正文。读一章给 8 行内的本章意见;读全书给 12 行内的整体意见(主线、人物、节奏、断点)。整本放得下就整本投递;大部头(比如 95 万字的《鱼龙舞》)自动转成分批工作单,由子 Agent 分别读正文再汇总——不会硬塞进一个上下文。读完把「首读」审稿写回审稿页。文章没写完也能跑——单章评的是这一章本身,不看全书连贯性。

注意力设计师(权重 10,最高)不写正文,专门管"这一章靠什么留住人":定本章主类型(事件 / 情感 / 文字 / 悬念 / 关系),在哪一拍埋哪条伏笔、哪条冲突升级、保留哪段高光做兑现,给目标分。它是在生成阶段干活的——写大纲、做下一章方案、写正文时,设计先于情节产出并落成 attention 记录;已有书则在注意力页点「+ 加入清单:AI 补齐注意力机制」,AI 逐章补设计。

独立审稿人只负责实测:给每章 0–100 分、写清哪里不足、最弱一环、弃读点、会不会读下一章。设计和实测写进同一条记录,按章号合并;两个分数差 ≥20 就是设计没兑现。

每个角色有职责、输入、产出,写在「分工」页里,AI 写作和审稿时会读这份分工。你可以改。

数据在哪

~/StoryDesk/
  library.json
  projects/<id>/
    project.json
    chapters/NNNN.md      ← frontmatter + 正文
    facts.json            ← 事实账本(可带 validFrom / validTo)
    events.json           ← 时间线
    foreshadow.json       ← 伏笔
    conflicts.json        ← 冲突
    characters.json       ← 人物(可带 relationships)
    world.json            ← 世界设定(尺度/类型/时代/坐标空间/交通模型)
    pipeline.json         ← 整本书生成流水线(模式/阶段/预算/进度/会话)
    locations.json        ← 地点(坐标/别名/连接距离与天数/方位)
    attention.json        ← 注意力(每章 0–100 总分 + 四拍 + 详细说明)
    highlights.json       ← 高光(注意力的兑现素材)
    reviews.json          ← 审稿
    proposals.json        ← 提案
    agents.json           ← 11 个 Agent 分工(含独立审稿人、注意力设计师)
    presets.json          ← 写作预设(可带 chapterFrom / chapterTo 做多卷)
    .backups/             ← 章节历史版本(每章最多 100 份)与采纳正文提案前的旧稿

没有数据库,没有私有格式。停用插件,数据还在。 目录根可以用环境变量 STORY_DESK_ROOT 覆盖(测试 / 多套数据时很有用)。

它还会替你看这些

  • 同一个属性,在生效区间重叠的章段里出现两个不同取值 → 事实冲突;不同阶段合法变化不报
  • 伏笔过了计划回收章还没回收 → 报警
  • 章节引用了没建卡的人物 → 提示
  • 审稿里的阻断/严重问题 → 进总览
  • 计划章数/字数 vs 实际进度 → 对齐页
  • 注意力:缺记录、章末没牵引、同类型连超 3 章、相邻章骤降、设计分与实测分差 ≥20、平均分 <60
  • 空间:地点没登记、相邻章之间没有路线、坐标越界/重叠、地点首现章晚于引用
  • 生成:预算 80% 提醒 / 100% 暂停;整本书阶段进度与卡住恢复

这些规则都是确定性的,不花 token。

开发与测试

需要 Node 22+(^22.19.0 || >=24.0.0)。仓库没有第三方依赖,也没有构建步骤。

git clone https://github.com/micellince/dsh-long-novel-workbench.git
cd dsh-long-novel-workbench

npm test                 # node --test test/,零依赖
node --check index.js    # 宿主入口语法检查
node --check client.js   # 浏览器模块语法检查
  • 测试自己用临时目录,正常不会碰 ~/StoryDesk;手动调试请显式隔离:STORY_DESK_ROOT=/tmp/storydesk-dev npm test。
  • 本地开发:让 profile 的插件指向本仓库;改 Host 代码(index.js、lib/*.js)后重载插件,改 client.js 后刷新页面。
  • CI 在 Node 22 / 24 上跑上面这些检查;推送 v* tag 会用 NPM_TOKEN 发布 npm(见 .github/workflows/)。

细节(热重载、发布流程、代码风格)见 CONTRIBUTING.md,版本变更见 CHANGELOG.md。

欢迎 Star,也欢迎来骂

如果这个工作台帮你少踩一个坑,点个 ⭐ 就是最大的鼓励;用着不顺手、缺什么功能、发现 bug,直接开 Issue 告诉我,我会看。

也欢迎 PR:预设、Agent 分工、检查规则都是数据驱动的,很好加。

License

MIT。拿去用,随便改。


Made for people who write long things. 如果你也在写一本很长的书,祝你写得完。

—/ 5

No ratings yet

Verified DSH bundle

Commit 4dac79edff4a

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout