Vai al contenuto principale
G

dsh-novel-agent

good-saltfish/dsh-novel-agent

Right-sidebar novel studio that treats a chapter as a pipeline with checkable artefacts instead of one long prompt: scaffold a project, inspect the exact context pack a chapter gets, generate 2-6 parallel candidates and keep the one you pick, then run chapters in sequence with per-chapter progress on disk so it survives an engine restart. Length band, cross-chapter Jaccard and drift ratio are enforced in code rather than by model self-grading; rejections come back as repair evidence for up to two rewrites. AI-fingerprint metrics are reported against a 3956-chapter human baseline but never block, because the distributions overlap. Ships 7 agent tools. The writing engine is a separate Python package that the plugin installs on first use. Needs Python 3.10+ on PATH (or a path set in the plugin settings).

Installazione

dsh plugin --profile web add github:good-saltfish/dsh-novel-agent

README

dsh-novel-agent · 小说工坊

license dsh

在 DeepSeek Harness 右栏里写长篇:新建项目 → 生成骨架 → 看上下文包 → 生成一章 → 过质量硬门 → 连写续跑。 模型不写在插件里,直接用你 DSH 里已经配好的供应商;引擎是本地 Python,首次缺包会自动装上。


它解决什么

AI 写长篇,坏在前后不一致和越写越飘,不是坏在词句。所以这个插件不做「一键生成十万字」, 它做两件浏览器里很难自己做到的事:

  1. 每章只有一个输入。正文生成只读 ContextPack(定位 / 主角 / 金手指 / 本章细纲 / 前章摘要 / BM25 检索命中 / 未回收伏笔 / 目标字数)。没有第二份状态,也就没有「以哪份为准」的歧义。
  2. 闸门是代码,不是模型自评。字数带、跨章重复度、漂移比、AI 指纹密度全在 Python 里量, 量不过就把证据回灌给模型重写,最多两次。判据常量来自人类 99 本书 3,956 章的分布,不是拍脑袋。

拆书和创作共用同一个引擎:拆出来的骨架、人物卡、伏笔账本,可以喂给创作项目当参考。

功能

面板做什么
项目列表列出工作区里的书,显示已写章数与游标;新建 / 删除 / 导入参考书
设定稿导入新建时贴一篇 Markdown 设定稿(人物小传、世界观、章节目录都行),模型拆成定位 / 卷纲 / 主角 / 金手指 / 细纲 / 设定库。先预览再落盘;稿子里没写的东西不编,必填项缺失的部件被拒收并逐条说明原因;稿子里已有章节目录时不再让引擎重新生成
骨架一键生成题材定位、卷纲、细纲(1–999 章)、主角、金手指。只有细纲是必需的,其余四个空着就是「这本不需要」,不是错误;每行都会说明不填会怎样
Markdown 视图项目页可切「面板 / Markdown」。Markdown 把定位、卷纲、主角、金手指、设定库、细纲(含节拍与伏笔)、已写章节一次摊平,「复制全部」直接进剪贴板;只读,改东西切回面板
设定库确认过的世界观条目(世界规则 / 势力 / 人物 / 地点 / 道具 / 力量体系)按类型分组展示。它们是参考,不强制写进每一章,整本不要也能写
细纲编辑项目页展开「细纲」直接改:每章标题 / 核心事件 / 开篇钩 / 章尾钩,每拍场景 / 在场人物 / 事件 / 伏笔,可加拍删拍、加章删章、上下移动。章号按位置自动重排(引擎要求 1..N 连续),保存前先本地拦空细纲与缺标题
基础信息「改基础信息」展开书名 / 题材 / 一句话前提。书名受引擎限制:PATCH /api/projects/<id> 只认题材/前提/参考书,title 会被静默忽略,所以界面会如实说「书名没改成」而不是谎报成功
角色卡 / 剧情线角色卡合并骨架主角与设定库「人物」类条目;剧情线把细纲节拍摊平成「第几章·场景|事件·在场人物」并标出伏笔。默认收起
章节页生成一章:正文 + 结构化自检(钩子强度 / 信息密度 / 与细纲偏差);编辑保存(脏标记、去空白字数、还原、放弃前确认);查看指纹报告
模型自评章节页顶部展示引擎写进 ManuscriptRecord.review 的自评:钩子强度、信息密度、是否按细纲推进、偏离了哪几处。只做记录,不自动触发重写;rule: 开头的会标成「规则判定」
设定候选按当前前提生成一批设定条目(世界规则 / 势力 / 人物 / 地点 / 道具 / 力量体系)与金手指提案。生成不写盘,确认后才入库,同名同类型不覆盖
细纲候选为已写好细纲的章补节拍(场景 / 人物 / 事件 / 伏笔)。确认是逐章整章替换节拍,候选没提到的章不动
笔法体检拿这一章的节奏分布比 67 本真实网文 5,829 章的实测分位:破折号密度、身体外化密度、分句均字、单句段占比、段均句数。越界就给出原文例句
并行候选同一章一次生成 2–6 版,摆在一起比,挑中哪版才落盘(候选只写 candidates_chNNN.json,不碰正文)
连写区间连写,后台任务 + 轮询进度,可暂停(暂停只置标记,不打断正在写的那章)
运行台账每章的尝试次数、字数、耗时、过了哪几道门、为什么被退回
导出「导出 EPUB / 导出 Word」一键下载整本。只导出盘上真有正文的章;浏览器按响应头里的中文书名命名文件;一章正文都没有时按钮禁用并说明原因。面板与 Markdown 视图下都能点
设置工作区、Python 解释器(非常规安装位置时填)、模型单独指定(只影响本插件,不动全局)

Agent 工具 7 个(在对话里直接使唤):novel_projects_list、novel_project_create、 novel_accept_skeleton、novel_context_pack、novel_chapter_generate、novel_chapters_run、 novel_chapter_check。

安装

# 插件市场里点安装,或者:
plugin_manager install_bundle "dsh-novel-agent"

第一次打开面板,如果本机没有写作引擎,插件会自动装(pip install novel-deconstruct), 面板上显示装到第几步,装完自己接上,不用再点重启。

会失败的情况都写在面板上,且都给了下一步:

报的错真实原因插件怎么做
SSL: EOF occurred in violation of protocolWindows 注册表里登记了一个已经关掉的代理,pip 每个 HTTPS 请求都连到没人监听的端口第二轮自动加 NO_PROXY=* 绕开系统代理重试
Permission denied / WinError 5Python 装在 C:\Program Files 下,没有写权限第二轮自动改 --user 装到用户目录
Could not find a version网络连不上 PyPI先绕代理重试,仍不通就改从 GitHub Release 下载 wheel 安装
装完仍 找不到 ndeconpip 与 python 不是同一个环境(py -3 与 python 常指向不同环境)提示在设置里填解释器绝对路径

最多三轮:原样装 → 按失败类别降级(--user 或绕代理)→ PyPI 实在不通时换 GitHub 下的 同一份 wheel。绝不自己换镜像源——换源是供应链决定,不是插件该替用户做的;换到官方 GitHub Release 只是换传输通道,装的还是同一个包。

前置条件

  • Python 3.10+,且 python -m pip --version 能跑
  • 真正的模型要你自己配:面板顶栏「模型」页选供应商填 key,或让它跟随 DSH 当前模型
  • 不配模型也能用:内置 Fake 供应商离线跑通全流程,用来先看结构

数据在哪

  • 书稿:%APPDATA%\dsh-novel-agent\workspace(macOS ~/Library/Application Support/, Linux ~/.config/),可在设置里改到任意目录
  • 日志:同目录 logs/engine.log(单文件封顶 2 MB)
  • 删插件不会删书稿。插件只在工作区里读写,卸载不碰你的目录

面板只监听 127.0.0.1,启动时带一次性随机令牌;令牌每进程一个、不落盘。面板不回绝对路径, 错误文案里的本机目录会被替换成 <路径>。

质量硬门(可核对,不是自夸)

判据阈值依据
单章字数2600 ±15%人类基线中位数
跨章重复度(Jaccard)≤ 0.30同一段落复读会越过
章间漂移比≤ 2.0对人类 3,956 章误杀 0.19%
AI 指纹(破折号 / 句号密度 / 比喻密度)人类 p95单章只报告不拦(人类与 AI 分布重叠),跨章才拦

为什么单章指纹只报告不拦:人类 99 本书 3,956 章的分布和 AI 完全重叠(破折号最大 30、 句号密度最大 329),单章拿它当硬门会把人类章节判成 AI。这条是拿数据推翻的,不是设计偏好。

许可

MIT。引擎 novel-deconstruct 是 Apache-2.0。

Plugin correlati