deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:akira399/dsh-novel-writer
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
一个面向 DeepSeek Harness(DSH)的网络小说创作插件: 九阶段门禁式创作流程 + 世界书(lorebook)设定注入 + 本地书籍导入 + AI 一键润色 + 去 AI 味 + 黄金三章诊断 + 百万字一致性保障。
让 DSH 像一位专业的网文编辑与你协同:从选题、设定、人设、大纲到分章、正文、修订、完本,每一步有模板、有门禁、可校验、可回滚;并有世界书把你的设定固化下来,确保百万字不崩设定。
选题 → 设定 → 人设 → 大纲 → 分卷 → 细纲 → 正文 → 修订 → 完本
versions/<phase>/v<n>,可回退任意历史版本audit.jsonl{entries:[...]})即可在酒馆「Import」导入作前置设定;也可用 lorebook_export_entries format=sillytavern 走对话导出
<JSONPatch> 自动落账(人物境界/物品/地点状态),冲突检测与巡检
reports/market.md)、模板复制(克隆完本品为模板)、灵感库/伏笔/术语表/账本查询novel_prompts 可浏览渲染
插件随包装载一个 「大肥鱼的小说工坊」agent 预设,在 DSH 新建会话时的模式选择器里即可选用——选中即"一键进入创作模式",不需要每次手动交代要写小说、要走流程。
三通道协同,约束模型行为:
novel-writing-workflow 技能,进入会话后加载完整创作方法论(阶段定义、模板用法、工具写法、写作规范),即使你不用 GUI 也知道每一步该怎么做;novel_* / lorebook_* 工具随预设全程可调,阶段推进、产物提交、校验、写章都必须走工具,防止模型"口头跳阶段"。为什么用预设:
使用方式:新建会话 → 预设选择器选「大肥鱼的小说工坊」→ 直接开始创作;或安装后自动同步到本地 ~/.dsh/.agent-presets/novel-writer/(升级插件自动更新)。
| 场景 | 怎么做 |
|---|---|
| 从零开一本新书 | 打开工坊 → 输入书名/选题材 → 或用「五步向导」逐步引导 |
| 已有完本/定好的设定 | 用「模板复制」克隆一本带完整设定骨架的新书,直接开写正文 |
| 想要热门题材方向 | 「市场调研」→ 引导 web_search 查榜单热词 → 落盘选题参考 |
| 把本地网文 txt/md 收进 DSH 续写 | 「导入本地书籍」→ 自动建书分章 → 可直接继续润色/续写 |
| 保证不崩设定 | 世界书固化设定 + 账本巡检 + 一致性校验在写作时自动织入 |
| 写完投稿 | 「导出 txt」或 Markdown / 平台排版下载 |
需已装 DSH(跨 Windows/macOS/Linux;运行时 Node ≥18)。本版本要求 DSH Desktop / CLI
0.2.0-rc.2或更高(@deepseek-ai/cordis4.0.4); v0.1.x 系列是给0.1.0-rc.6的旧版,在 0.2.0 上会加载失败(见下方「版本对照」)。
把下面这段发给能执行命令的 AI:
帮我安装 DSH 插件「大肥鱼的小说工坊」(dsh-novel-writer),只装最新版 0.2.x。步骤:从
https://github.com/akira399/dsh-novel-writer/releases/latest下载最新的dsh-external-dsh-novel-writer-*.tgz(版本号最大的那个;别下 v0.1.x,那是给旧版 DSH 的)→ 执行dsh plugin --profile web add <该 tgz 绝对路径>→dsh plugin list确认在列且已启用 → 提醒我刷新 DSH 页面(Ctrl+Shift+R)。遇到报错先告诉我再处理。
从 https://github.com/akira399/dsh-novel-writer/releases/latest 下载最新的 dsh-external-dsh-novel-writer-*.tgz,然后:
dsh plugin --profile web add <该文件路径>
dsh plugin list # 看到 dsh-novel-writer 即成功
需 Node ≥22 与 Git:
git clone https://github.com/akira399/dsh-novel-writer.git && cd dsh-novel-writer
npm install && npm run verify && npm run build && npm pack
dsh plugin --profile web add ./dsh-external-dsh-novel-writer-0.2.0.tgz
(Windows 用 Git Bash 跑构建脚本)
装完:侧边栏出现「大肥鱼的小说工坊」、设置 → 插件 出现同名页签即完成;没有就刷新页面/重启 DSH 并在插件列表确认已启用。
不论用哪种方式,装完都应看到👇,即可正常使用本项目所有功能:
~/.dsh/dsh-novel-writer)novel-writing-workflow(创作全流程指导)💡 若某块没出现:先刷新页面;不行就重启 DSH,再在「设置 → 插件」里确认该插件「启用」开关是打开的。
| 插件版本 | 目标 DSH | settings 命名空间 | 设置页位置 |
|---|---|---|---|
| 0.2.0(当前) | 0.2.0-rc.2+(cordis 4.0.4) | dsh-novel-writer |
设置 → 插件 → 页签 |
| 0.1.x(旧) | 0.1.0-rc.6 | dsh-novel-writer |
设置卡(settings.plugin.item,该 slot 已移除) |
0.2.0 的适配要点:DSH 删除了 @deepseek-ai/dsh-client-runtime 包与 settingsNamespace()/settings.register() API,
并移除了 settings.plugin.item slot;本版改用 ctx.configForms + settings.plugins.tab / sidebar.footer.action slot。
--
novel-writing-workflow(创作全流程方法)数据目录默认 ~/.dsh/dsh-novel-writer/:
lorebook/ 世界书(entries/groups/settings)
projects/ 项目(book.json + docs/ + chapters/ + audit.jsonl + ledger.json + ...)
下面按功能逐个说明「在界面哪里点 / 在对话里怎么说」,两种方式共用同一份数据与流程,随你习惯。
topic 选题)与各阶段状态。也可以先点「一键导入示例《青云问道》」,一步得到一本带世界书条目的示例书,边看边学。
选题 → 设定 → 人设 → 大纲 → 分卷 → 细纲 → 正文 → 修订 → 完本,前一阶段未批准不能进入下一阶段(门禁)。novel_commit → 校验通过即批准解锁下一阶段。novel_phase / novel_commit),舞台右上角会显示当前阶段与门禁状态。docs/<阶段>.md + 留历史版本(versions/<阶段>/v<N>),随时可回退。lorebook_import_entries(Operit / SillyTavern / 角色卡格式,可直接发文件)。novel-lorebook-export.json → 在 SillyTavern「Import」导入即可当前置设定(也可对话 lorebook_export_entries format=sillytavern)。Lorebook)。.txt / .md 网文文件 → 自动识别章节标题(含"第一章/楔子/番外"等)并建书 → 全部正文按章同步,可直接续写/润色。novel_depolish 检测并改写(内置 234 词 5 类词库)。novel_validate。<JSONPatch> 自动落账(人物境界/物品/地点状态)。novel_consistency_audit 查账本冲突、时间线倒挂、伏笔超期,并给出世界书沉淀建议。novel_ledger。novel_foreshadow / novel_timeline。novel_revise(校对/节奏/文风三模式,产出新版本不覆盖原稿)。novel_export(txt / markdown / 平台排版)。novel_market_research mode=prompt 给你一组 web_search 检索词 → 模型检索后以 mode=report 把榜单热词/读者偏好/同类卖点落盘 reports/market.md → 选题报告里引用。novel_clone_project 复制字数目标/风格/禁用词 + 已完成的阶段设定文档(选题/设定/人设/大纲/分卷/细纲),正文不复制,状态机重置——直接对着现成设定写正文。novel_idea / novel_glossary(选题拉取聚合、术语注入防用词漂移)。💡 提示:几乎每个功能都有对应的
novel_*工具,模型在创作模式下会自己调用并提示你确认(写操作)。你不必记命令,用大白话提需求即可;想知道有哪些能力,对话里说「小说工坊能做什么」。
| 设置 | 默认 | 说明 |
|---|---|---|
| enabled | true | 插件总开关(关闭即注销工具/技能,数据保留) |
| dataDir | ~/.dsh/dsh-novel-writer |
数据根目录 |
| uiHidden | false | 隐藏侧边栏「大肥鱼的小说工坊」入口(存于浏览器本地,任何环境可用;即时生效) |
设置入口:设置 → 插件 → 大肥鱼的小说工坊(0.2.0 起由
settings.plugins.tab提供)。 这些字段也可直接写在 profile 的cordis.patch.yml里;写入后会重新装配插件(普通配置变更走 Loader 的常规更新生命周期,无需手动重启)。
项目级(创建时/模板复制保留):27 题材、每章字数目标(默认 2000-4000)、风格(视角/禁用词/AI 味词)、阶段门禁开关。
novel_*(项目/阶段/写章/校验/诊断/去味/巡检/账本/克隆/导出/市场调研…)+ lorebook_*(世界书 CRUD)+ novel_prompts(提示词库)novel_write_chapter 返回上下文包 → 模型输出正文 → novel_commit_chapter 落盘(统计/账本/审计)novel-writing-workflow(流程纪律与方法指导)/api/novel-writer/*(项目/章节/上下文/诊断/润色/导入,fence 头校验)Q:为什么要先发起一次对话才能写章/润色?
A:本插件复用你的主模型路由(llm/stream 捕获),不持有独立密钥。首次请先在会话里发一句话让模型路由就绪。
Q:导入的书正文会丢吗? A:不会。txt/md 按章节标题自动切分(含粘连标题、楔子/番外等),无法识别的按段落分块,内容完整同步。
Q:润色/写章会覆盖我的原稿吗? A:一键写章自动落盘(可撤销);一键润色先预览 diff,确认才保存,放弃可还原原文。
Q:世界书 AI 生成的内容安全吗? A:生成后是「待确认」的条目,写入前你可编辑/删除;注入时按书隔离。
npm run typecheck # host + client 双段
npm test # vitest(336 例)
npm run build # tsc host + tsdown client(纯 Node,Windows 无需 bash)
npm run deploy # 构建并部署到本机 profile,且强制刷新 bundle 版本号
npm run build:host:bash # 仅当宿主固定调用 bash scripts/build.sh 时使用
node scripts/simulate-1m.mjs # 百万字一致性压测
⚠️ 改了客户端界面后必须用
npm run deploy(或手动更新 mtime)DSH 用文件时间戳 + 大小计算客户端 bundle 的版本号(
artifactRevision, 见@deepseek-ai/dsh-client-modules),不读文件内容。而npm pack会把文件时间 归零到 1985 年、tar解包又保留它 —— 于是覆盖安装时版本号不变、URL 不变, Chromium 的immutable, max-age=31536000缓存会一直返回旧字节, 即使磁盘内容已更新、宿主已重启也一样。
npm run deploy会在拷贝后把lib/client.js的 mtime 刷新为当前时间, 保证产生新的版本号;部署后需重启 DSH 才会重新计算并下发。
目标 DSH 版本:0.2.0-rc.2(@deepseek-ai/cordis 4.0.4)。
升级 DSH 时请同步 package.json 的 peerDependencies / devDependencies 与
dsh.client.inject,并重跑 npm run verify。
模块开发纪律:每模块 → 单测 → 复盘(见 docs/MODULE-LOG.md)。
~/.dsh/dsh-novel-writer/,不联网上传MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。