造书工作台(dsh-craft-your-textbook)
把教材 PDF 加工成「AI 教学蓝本」的 6 阶段流水线,是 DeepSeek Harness(dsh) 的一个插件包。
主 AI 统筹跑流水线(亲自做或派小助手分头干),你只做四件事:上传材料、确认材料读得对不对、拍板定方案、抽查提意见。 全程中文,不需要任何技术知识。
- 上传教材 PDF(学生用书/教师用书/考纲/讲义/真题,一次可多选)
- 主 AI 统筹推进:材料准备 → 读材料挑重点(可派小助手分头读)→ 拍板定方案 → 最佳范例章 → 写完整本 → 最后检查:
- 读材料挑重点:主 AI 统筹(通读材料,材料多时派小助手分头读、主 AI 汇总);拍板定方案 / 最佳范例章:主 AI 亲手做(质量是后面所有工作的基准)
- 写完整本:小助手执笔 → 小助手审计 → 机器按章验货,每章都有人把关(主 AI 不逐章复核,最佳范例章/有意见的章才亲自核对)
- 最后检查:主 AI 亲手自查 + 机器硬检查兜底,最后检查结果再交你最后拍板认可
- 每一步关键决定都做成「请你拍板」:通过或驳回,拍板前流程绝不往下走;每个拍板点都自动存档,可回退到上一个拍板点。
- 成品下载为《书名》.md(保留你一开始敲定的书名),附「这本书怎么用」说明
新上手就能用到的几个小帮手(“四件事”不变,这些只是让它们更好使):
- 先来一本演示书:第一次用不确定怎么操作,在向导卡上点「先建一本演示书试试」——AI 走一遍全程给你看(不花模型额度),不影响你自己的真书。
- 全章过目:全部章节写完后 AI 不会直接交稿,先停在「全章过目」卡上让你逐章看——每章可【看看这章】【写意见】,全部满意再点【✅ 都过了,交工】。
- 定点修改:想改某个已经拍板的历史决定,在该步点【✍️ 定点修改】——界面先告诉你哪些下游会重做、你的风格线原样保留;改完 10 分钟内且账面没有新进展时,可一键撤销。
- 催办(戳一下 AI):AI 答应了你的事但账上迟迟没跟上、或它像是停了,在对话里点【⏰ 提醒 AI 记下来】/【戳一下 AI】,让它动起来。
- 范例章默认读、要对比再点:AI 改完新稿默认整篇给你看原文,想看改在哪再点「和第 N 稿对比」;段旁 😕/🗑 键同一处点两下=撤销意见。
- 每章字数清单:定稿时不再只问一个统一字数,而是按章节列出每章多少字、为什么,AI 建议也分章给。
- 交付卡“风格线条条有着落”:交付时卡片列出你的每条风格意见落实在哪几章(或为什么没用上),给你最后把关。
安装
需要先装好 DeepSeek Harness(dsh) 并能打开网页界面(web profile)。
在 dsh 的插件页面安装(推荐)
- 打开 dsh 网页界面,点左侧边栏的 插件(在「新会话」下面那一项);
- 点 添加插件,输入
dsh-craft-your-textbook@^1.3.4,点安装; - 等它装完,然后把 dsh 关掉再打开。 (安装窗口最后那句「已安装,下次启动后加载」说的就是这一步:不重启,造书模式出不来—— 它是插件包随包发出的声明,dsh 每次启动时才算。这一步漏了,看到的就是「装完了却没有新模式」。)
⚠️ 需要 dsh ≥ 0.1.7。装到更老的 dsh 上,插件界面能打开,但造书模式不会出现。
为什么这一步要带版本号(不是多此一举):包管理器对新发布的版本有一层「冷却」—— 发布不到一天的版本不会被装上,它会静默地给你装上一版,而安装窗口里那行显示的 版本却是新的(那一行走的是另一条查询,不受这条限制),两边天然对不上。 只有带具体版本的这一串才能装上刚发布的那一版,所以它必须跟着版本走。 以后换版本了,页面上这一串会跟着更新,照着页面上的抄就行。
不想点界面也可以用命令行:npx dsh-craft-your-textbook(它自己会去读最新版,装到的同样是当前这一版)。
装完自查(一步):在查看安装任务里找到 pnpm add dsh-craft-your-textbook@^1.3.4 那一行,
确认下面 dependencies: 那一段写的是 + dsh-craft-your-textbook@^1.3.4——
两处版本号一致 = 装对了。不一致(常见的像是 ^1.2.0)就是上面说的那层冷却,按下面「升级」跑一次。
升级到新版本(这一步请认真读)
dsh 的插件页面里没有「更新」这个按钮。而且——在插件页面里「卸载再装一次」通常也升不了级。
原因是 dsh 装插件时,把你的 dsh 配置(profile)里记成了这样一行:
"dsh-craft-your-textbook": "^1.2.0"
^1.2.0 本来是允许装 1.3.x 的,但包管理器认已经记下来的那个版本,不会自己回头去看有没有新的。
所以你装的那天是几版,之后就一直停在几版——哪怕 npm 上早就发了新的。这一条对所有 dsh 插件都成立,不是本插件特有的毛病。
还有一个容易混在一起的原因:装到旧版不一定是因为上面那行记死的版本号—— 也可能你是在新版发布的那一天装的。包管理器对新版本有一层冷却(发布不到一天的版本 不会被装上),那时候它会给你装上一版。区别在于:这一种重新装一次就好 (回本页第 1 步,输入那一串带版本号的)。
升级用这一条命令:
npx dsh-craft-your-textbook --upgrade
它会改掉上面那行记死的版本号、装当前最新的一版、然后提醒你重启。
跑完 重启 dsh(关掉再打开),再点「新会话」看「模式」下拉里有没有「造书模式」。
如果这条命令说「不认识的选项」,说明你跑的是硬盘上那份旧的安装脚本。 那就直接在插件页面卸载,再回到本页第 1 步重新装一次——卸载会把那行记死的版本号一起清掉, 重装就会装上当前最新的。
⚠️ 装过
1.2.x的必须升级。 1.2.x 的模式安装是坏的:那一版装完有工作台界面, 但模式永远出不来。1.3.0 起,造书模式是插件包随包发出的一份「模式声明」 (preset/textbook.patch.yml)——装上插件就有模式,不必再做任何别的动作。
怎么确认装好了
装完、重启 dsh 之后,点 新会话,打开输入框旁边的**「模式」下拉**——
列表里出现「造书模式」,就是装好了。
(里面还会有「标准模式」「PTC 模式」「极简模式」「创建模式」,那几个是 dsh 自带的。)
「造书模式」不是一个需要单独安装的东西,它是一条声明:插件包里带一份模式声明文件, dsh 每次启动时由它把这一行算出来。所以盘上你不需要去建什么模式目录、也不需要复制什么文件。
想改成自己的模式
在你自己的 dsh profile 的 cordis.patch.yml 里复制一份模式声明行、改出新身份(两个 id 都要改:
行上的 id 是它在 dsh 里的编辑地址,config.id 才是模式身份)。⚠️ 不要照着旧教程
mkdir 建一个模式目录再 cp 两份文件进去——那一整套做法已经作废,dsh 从 0.1.7 起
不再读取任何模式目录,照做出来的模式注册不上。
⚠️ 也不要直接改插件包发出的那一行——你 profile 层的覆盖每次启动都在最后,会永远赢下去, 升级冲不掉它。改完自己那一行之后:开新会话时选你那个模式就行,造书模式本身保持发布的样子。
打开
- 重启 dsh(关掉再打开),浏览器自动打开(地址
http://127.0.0.1:3080); - 点 新会话,在"模式"里选 造书模式;
- 中间多了一个 工作台 页签——点进去开始造书。造书会话里你发出第一条消息后,界面会自动切到「工作台」页签(只切这一次;你手动切回「对话」后它不再打扰)。
第一次用想先看看全程长什么样?新建书时点「先建一本演示书试试」——AI 走一遍给你看,不花模型额度,也不影响你自己建书。演示书演示的是流程;审计、分片这些幕后件在演示书里是占位,不是真产出。
造一本书(流程)
- 上传材料:工作台里点"+ 新建书"填书名和目标 → 上传教材 PDF(标一下角色:学生用书/教师用书/考纲/讲义/真题)→ 点"开始转换"。理科教材记得勾"理科内容"。
- 读材料挑重点 → 确认结果:AI 统筹通读你的教材(材料多时分派小助手分头读、AI 汇总整理),整理出"源材料索引和知识地图"。工作台出现"🔍 材料读完了!"卡——上面直接能看到:重点难点、建议的章节安排;点开还能看知识点清单(带难度)和每本材料里读到的小节。满意点【✅ 满意,继续设计】;不满意点【🔁 让 AI 重做】——可以勾个理由或写一句哪里不满意,AI 会照着改(不填也能重做)。
- 拍板定方案(共三次拍板):AI 亲手起草三个设计方案——第 1 次拍板 · 学习目标与难点 / 第 2 次拍板 · 教学方法与板块 / 第 3 次拍板 · 全书架构与章节。每一次都是"请你拍板"——
- 满意 → 【✅ 通过,继续】
- 不满意 → 【❌ 驳回,提意见】:选"方案不对"或"我看不懂",再点选理由(讲太深/太浅/不是重点……),不用打字;AI 会改出新版再给你看。
- 拍板前流程绝不往下走;每个拍板点都自动存档,之后可回退到上一个拍板点。
- 确认最佳范例章:AI 亲笔写出全书第 1 章给你看效果(这是全书的样板)。
- 新稿默认整篇给你看原文;想看改在哪,点「和第 N 稿对比」(红删绿增一目了然),看够了再点「只看这一稿」回来继续读。
- 读到不顺眼的地方,鼠标停在那一行会浮出三个键:😕 这种写法不喜欢 / 🗑 这类内容不需要 / ✏️ 要改成……;😕/🗑 键在同一处点两下=撤销刚才那条意见(✏️ 的撤销在意见单里)。
- 定稿区按章节列出「每章多少字、为什么」的字数清单,AI 建议也分章给,不用再敲一个统一字数。
- 满意点【✅ 就按这章的风格写全书】,不满意点【❌ 这版整个不要,重写】。
- 写完整本(可随时抽查):其余章节由小助手执笔、小助手独立审计、机器逐章验货(审计不通过/你的意见没处理完都不会放行)。工作台出现"章节清单"——每章可点【👀 看看这章】预览,点【✍️ 写意见】给 AI 提意见(比如"例子太难、多给几道练习"),AI 会照改并重新审计。你写下的意见会转达给正在写那一章的小助手(不必等整章写完再打回),每次转达都会在工作记录里留一行;某一章的小助手写完了但没交齐时,AI 会优先叫醒原来那个小助手接着补。
- 全章过目 + 合并前跨章审计:全部章节写完,AI 不会直接交稿——先停在「全章过目」卡上等你逐章看:每章可【👀 看看这章】预览、【✍️ 写意见】给 AI 改,改了会再审计回来;全部满意点【✅ 都过了,交工】,主 AI 先做一次合并前跨章审计(核对事实一致性、术语统一、交叉引用、知识递进链,覆盖整个流水线遗漏的跨章问题),然后再合并成书。
- 最后检查 & 你的最终认可 & 下载:AI 亲自读成品逐项检查、按需整体调整(机器兜底再验一遍:书里的内容都能追到材料出处、每章的章名全书不重名、同一章里没有重名的小节、没有乱码、章节数和说好的一致、该有的板块都在、没有出现不该用的词)。最后检查全过后,交付前先停在「最后检查结果认可」卡上给你对整本书的最后一次把关:AI 自查报告 + 机器检查结果都给你看,满意点【✅ 认可,交付】;不满意写一句意见,AI 会改整本后重新检查。认可后交付卡出现——上面有一份「你的风格线条条有着落」清单(每条风格意见落在哪几章、为什么没用上),给你最后把关;然后点【⬇️ 下载《书名》.md】(文件名保留你一开始敲定的书名)。附"这本书怎么用"说明。
随时可以在下面输入框问我(比如"这章为什么这么写?"),不会打断 AI 干活。
随时能用的几个小工具
- 定点修改(改已拍板的历史决定):想改某个已经定下来的决定(比如某次拍板的方案、体量),在那一步点【✍️ 定点修改】——先弹出影响预告,告诉你哪些下游要重做、哪些原样保留(你的风格线和豁免不动),每一步仍会请你拍板;改完 10 分钟内且账面没有新进展时,可一键撤销。
- 催办(戳一下 AI):AI 答应了你的事但工作台迟迟没跟上(账上没动静),或者它像是停了,就在对话里点【⏰ 提醒 AI 记下来】/【戳一下 AI】——它会立刻查账,把答应没做的事补上、把停下的活接上。
需要的两个钥匙(首次使用前配置)
- 大模型接口:右上角 设置 → 模型 → 添加你自己的模型接口(任何兼容 OpenAI 的都行,比如 DeepSeek 官方 key)。
- MinerU Token:PDF 转换要用。去 https://mineru.net 注册并申请免费 Token,然后在造书工作台里粘贴保存(转换 PDF 时如果没填,界面会提示)。
你的数据
- 新建书时,书文件夹建在当前会话的工作区目录里(文件夹名=书名),你上传的 PDF 原件(材料)、PDF 转换出的正文版(也是材料)、AI 写出来的各章与成品(产物)都在里面
- 文件夹内一切过程都以文档留存:
README.md、过程记录.md、工作区/方案/(每一次拍板的方案,含修订版)、工作区/、sources/(PDF 原件)、材料/转换稿/(转换出的正文版) - 工作区拿不到时(很少见)会退回默认目录
~/.dsh/textbook/projects/;老书仍留在默认目录,可正常使用 - 左侧会话列表里那一行跟着书名走:建好书、以及以后每次改书名,会话名都会变成「造书 · 书名」(省得一堆会话分不清哪本是哪本)。磁盘上的书文件夹名不跟着改(建书时就定死了)——所以改名之后,两者可以不一致
- 每本书有一个内部编号(
book-xxx),对应关系记录在~/.dsh/textbook/registry.json - 这些数据不随插件走:把插件从 dsh 里卸掉,你的书文件夹和登记都还在原地(要彻底清空:删掉工作区里的书文件夹,再删掉
~/.dsh/textbook/整个目录) - 每个阶段交办/拍板点都有快照存档,可回退到上一个拍板点(工作台入口;对话里可让 AI 回退任意快照)
- 造出来的内容是教学参考,AI 可能讲错,请老师/家长复核后再使用
搬走工作区或换电脑
书文件夹建在会话的工作区目录里。工作台认出「这本书在哪儿」,靠的是一张登记:
~/.dsh/textbook/registry.json,里面记着「书编号 → 书文件夹的完整路径」。
⚠️ 那条完整路径是建书那一刻按当时的工作区记下来的,一辈子不会自己跟着走。
所以你动了工作区——换了个盘、把项目复制到别的电脑、或者把 dsh 的数据目录整个搬走——工作台 就认不出这些书了。这个症状很容易误认成「书弄丢了」:
- 打开原来那个会话,对话里造书的 AI 记录都还在(那是 dsh 自己存的,和工作台不是一回事)
- 但工作台是空的,或者又回到「给新书起名」那一步
- 书文件夹明明就在硬盘上,双击也能打开
书没丢,是登记里的路径对不上了。
修:把下面这段话发给你的 dsh
别自己动文件。 把下面这段话原样发给你那个造书会话(另开一个会话、选造书模式也行), 你的 dsh 会替你改好:
我的书在工作台里认不出来了——对话里造书的 AI 记录都还在,但工作台是空的,或者又回到 「给新书起名」那一步。书文件夹我找得到,现在在这个位置:
〈把你的书文件夹完整路径粘在这里〉
麻烦帮我把
~/.dsh/textbook/registry.json里这本书的dir改成上面这个路径。 三点要求: ① 不要删掉那一行登记——工作区里的书不在~/.dsh/textbook/projects/目录里, 工作台扫不到它,那一行是它唯一的入口,删了就再也找不回来; ② 改之前先把那个文件复制一份备份; ③ 改完提醒我刷新浏览器页面。
你只需要把 〈…〉 换成书文件夹现在的完整路径——Windows 上打开那个文件夹,
点地址栏就能整条复制出来。
为什么不能自己删那一行:工作台不扫文件夹,它只认登记里那一条指向。 路径对不上时它就当这本书不存在——但文件一个都没少,只是它认不出了。
搬家前先备份
要搬的话,这两处一起复制走,缺一不可:
- 书文件夹——在工作区里,一本书一个文件夹
~/.dsh/textbook/整个目录——里面是登记(registry.json)和 MinerU token(settings.json)
settings.json里的 token 是明文存的,备份时别放进公开的地方或随手发给别人。
常见问题
| 问题 | 怎么办 |
|---|---|
| 提示「需要先配置」 | 按「需要的两个钥匙」配好,配好后点「我配好了,继续」 |
| 某一步出错 | 卡片上点【🔁 重试】;还不行就在对话里问向导 |
| 想反悔 | 在这一步的卡上点「⏪ 回退到上一个拍板点」,旧版本留档保留 |
| 想中途加一章 | 告诉向导,AI 先判断能不能塞进现有章节;不能塞时它不会自己加(防螺旋),会提请你自己决定——若你确实要加,经「定点修改」重做下游,每步仍会请你拍板 |
| 想改某一章 | 写完整本时点那章的「写意见」——这条意见会转达给正在写那章的小助手,AI 会照意见修订;已交付的书在对话里告诉 AI |
| 想先试试看再动手 | 新建书时点「先建一本演示书试试」,AI 走一遍给你看 |
| 全书写完想逐章过目 | 会有「全章过目」卡:每章看看/写意见,全满意再点【✅ 都过了,交工】 |
| 想改一个已拍板的历史决定 | 那段上点【✍️ 定点修改】,先看影响预告,10 分钟内可一键撤销 |
| AI 答应的事没落账 / 像停了 | 对话里点【⏰ 提醒 AI 记下来】或【戳一下 AI】 |
| 担心花太多钱 | 在对话里告诉向导你的预算上限,它会尽量省着花(目前是 AI 自主控制,没有硬性超支暂停机制) |
| 装完插件,界面能开,但「模式」下拉里没有「造书模式」 | 99% 是装的是 1.2.x——那一版的模式安装是坏的。按上面「升级到新版本」跑 npx dsh-craft-your-textbook --upgrade,重启 dsh。另外确认 dsh ≥ 0.1.7 |
| 怎么知道自己装的是哪一版 | dsh 左侧边栏 插件 页面上,造书工作台那一行标题右边就写着版本号(如 v1.3.3) |
| 发了新版,我的 dsh 会自动跟着更新吗 | 不会。 dsh 把版本号记死在配置里,不会自己去看有没有新版(见「升级到新版本」)。要升级得自己跑一次那条命令 |
| 工作台认不出我的书,可文件夹明明在硬盘上 | 多半是搬过工作区或换过电脑,登记里的路径对不上了——按「搬走工作区或换电脑」把那段话发给你的 dsh,它替你改 |
License
MIT
