前言¶
在 DSH Tavern 里调人物卡,同类问题会反复出现:同名的状态字段、同一段正则、同一个脚本钩子。换一张卡、隔一周再调,往往又会踩一遍,因为结论散落在对话记录里,没有按「哪张卡出的问题」归档。
宿主从 v2.3 起内置改卡记忆,擅长跨卡、可复用的经验;但它和「这张卡历史上出过什么具体故障」不是同一套数据结构。维护者 XGUIMAX 的插件 dsh-tavern-wrongbook(社区目录:SkillHub,GitHub:XGUIMAX/dsh-tavern-wrongbook)把坑记在出问题的那张卡名下,调试时固定顺序:本卡错题库 → 其它错题 → 跨卡查询。分类属于 DSH 插件生态里的「记忆」方向;仓库当前约 3 stars,版本 1.33.0,许可证 MIT,无额外 npm 依赖。
下面介绍它做什么、怎么进面板、和宿主记忆怎么分工。
这是什么¶
一句话定位:DSH Tavern 的 per-card 错题本——按人物卡分桶记录调试中踩过的坑,面板与 Agent 共用同一套检索顺序与排序。
插件以 DSH 插件形式运行(dsh.compatibility 要求 dsh >= 0.1.0-rc.8,Node >= 18)。不装 Tavern 也能用卡片工作台侧的大部分功能;装了 Tavern 会多出右侧栏面板、以及助手消息下的「记进错题库」等入口。
核心功能¶
按卡分类与检索顺序¶
卡片目录里有几张卡,面板就自动建几项,带卡名与头像。原版卡与它的 MVU版本 互相认得,可以把一条结论一键复制到对应分类。
检索顺序固定为:
- 本卡错题库
- 其它错题(不挂在某张人物卡上的问题)
- 跨卡查询
本卡命中始终排在前面,避免把已知答案重查一遍。
「其它错题」预置「卡内故障」「卡片更新器」「通用 / 未归类」等分类,也可自建;记一条不存在的分类名时会自动建新分类。注册了三个工具,卡片 Agent 调试时按与面板相同的顺序与打分规则查询。
面板入口与页签¶
四个入口指向同一页面(前两个在卡片工作台,后两个依赖 Tavern 插件接口):
- 设置 → 错题库
- 左下角侧栏底部(与「插件市场 / 卡片更新器」同层)
- Tavern 右侧栏「插件」一组(需 Tavern;侧栏用接口 v2 的
registerPanel) - 每条助手消息下的「记进错题库」(需 Tavern):按 Tavern 提供的卡文件位置归类;自动把前两轮正文放进「证据」栏
页面内六个页签:人物卡错题、其它错题、卡脚本、宿主补丁、备份与还原、通用脚本。顶部筛选(如「未解决」)会同步过滤左侧分类列表,只保留仍有命中条目的卡;未选筛选时不过滤。
错题页顶部有 「回流到 Skill」:把结论写进自建 skill 的 references/,供后续会话里 Agent 读取(见下文)。
来源失效标记(Tavern)¶
从「记进错题库」抓下的底稿除可读 refs 外,还存结构化 { gameId, turn, textVersion }。回退、重新生成或编辑来源轮次后,正文可能对不上当初抓取的内容;插件在 onTimelineChanged 下给受影响底稿标 「来源已失效」,详情说明轮次与变动类型,底稿正文本身不改。确认问题仍在可点「确认仍有效」清标记。早期或手工条目若无 source 字段,不会参与标脏。
与卡片更新器联动¶
设置页右上角 「● 卡片更新器 · 已连接」 通过 GET /dsh-card-updater/state 每 15 秒探测对方插件(dsh-tavern-card-updater),绿 / 灰 / 红表示已连接、检测中、未连接;点击打开更新器仓库页。两插件不读写对方数据文件。
若更新器状态里某卡 config.cards[].primary.gates 含 preset,人物卡列表会为该卡显示「专属预设」标签(只展示,不写入错题库)。
回流到 Skill 与自动同步¶
点 「回流到 Skill」 可将选中条目写入自建 skill 的 references/(内置 skill 在程序目录,Tavern 更新会覆盖,弹窗只列可写 skill)。每条按现象 / 根因 / 修法 / 证据展开;同目标反复回流不会重复写入。段落带 <!-- wrongbook:… --> 标记:指纹一致则随错题状态同步更新,你手工改过则跳过。
弹窗可勾选 「以后新条目自动同步到这里」;开启后面板按钮前有绿点,并显示上次同步时间与写入条数。失败时提示行会给出原因。
新建 skill 时 description 要写清是什么、何时用、症状词;可点「示例」按当前范围生成一句可用的描述。
与宿主「改卡记忆」的分工¶
宿主改卡记忆(data/card-memory/,memon 引擎)强调 scope: shared 与带 evidence 的验证状态,适合跨卡、可复用经验。错题库强调 按卡归因的具体故障、面板一览与 MVU/原版互认,以及 回流 skill 跨会话检索。调试时两处都应查:只查一处可能漏掉另一类存量。宿主 v2.3 说明里默认不再为错误经验生成 Skill,错题库仍保留自动回流,是刻意分工。
卡脚本与通用脚本¶
卡脚本页签(懒加载)列出每张卡 data.extensions.tavern_helper.scripts 中的脚本(扫描前会剥掉卡文件外层可能的 raw),标出启用状态、import、控制器与含 update / json_patch 的条目,并单独列 data/tools/ 下待装脚本。
通用脚本库位于 data/tools/wrongbook/common-scripts/,跨卡共用。面板列「可装脚本的卡」(… MVU版本、卡型标记 dsh_card_marker.kind = hand-tuned-mvu、或已装库内脚本)。支持分类筛选、按脚本名筛卡、批量装卸;每个脚本提供「检测适合的卡」「生成建议」「后台分析」等入口(技术层匹配,不替代人工读卡判断题材)。
备份、自检与其它¶
每次写盘前自动备份;备份目录可选。独立页签支持按份清理、删单份、还原、导入导出。面板右上角显示版本号,可 检测更新(比对插件文件指纹与版本)。
安装与启用¶
已抓取资料与 GitHub README 中未给出统一的 dsh plugin add … 安装命令行。安装方式请以 SkillHub 目录页 与仓库 README 的当前说明为准。
启用前建议自行查看源码与 MIT 许可证:插件以当前 DSH 进程权限运行,会读写错题数据、skill 回流目标、备份目录及通用脚本库路径等。
环境要求(来自 package.json):
dsh >= 0.1.0-rc.8
Node >= 18
典型用法¶
1. 从面板记一条本卡故障¶
打开 设置 → 错题库 或侧栏底部入口,在 人物卡错题 中选对应卡,新增条目,填写现象、根因、修法与证据,并设置状态(未解决 / 观察中 / 已修复)。
2. 游玩时快速抓取(需 Tavern)¶
在助手消息下点 记进错题库,归类按卡文件位置;前两轮正文自动进证据。若之后回退或重生成来源轮次,留意 来源已失效 角标并按需 确认仍有效。
3. 调试时的查询顺序¶
在 人物卡错题 内先搜当前卡;未命中再看 其它错题 与同页的跨卡查询。若使用卡片 Agent,它会调用插件注册的工具,顺序与面板一致。
4. 把成熟结论回流到 skill¶
选中条目 → 回流到 Skill → 选自建 skill 与目标文件(默认 references/错题库回流.md)→ 可选开启自动同步。需要长期可检索的「诊疗手册」时用这条链路;专属预设等卡片属性不必写进错题本。
5. 排查前看卡脚本与通用脚本¶
切到 卡脚本 确认该卡装了哪些脚本与控制器;在 通用脚本 里批量给 MVU 卡装卸共用脚本,或用「检测适合的卡」做快速匹配。
适用场景与注意¶
适合谁: 长期在 DSH Tavern 里维护多张人物卡、反复调试 MVU/正则/脚本钩子的开发者;需要和卡片 Agent 共用同一错题索引的场景;希望把已验证结论沉淀到自建 skill 的人。
注意:
- 插件依赖社区维护,SkillHub 为独立社区目录,与 DeepSeek / 幻方无官方从属关系。
- 只查错题库或只查宿主改卡记忆都可能漏信息;检索时两处对照更稳妥。
- 「记进错题库」与来源失效标记依赖 Tavern 插件接口 v2;旧版 Tavern 可能缺少侧栏与消息下入口,但不影响其它页签。
- 回流与自动同步只改带 wrongbook 标记且未被手工编辑的段落;改 skill 里某段后该段不再被同步覆盖。
- 安装前请审查 GitHub 仓库 源码与权限影响,勿在未核对的情况下在生产环境盲目启用。
结尾¶
dsh-tavern-wrongbook 把「哪张卡、什么现象、怎么修」留在卡名下的错题本里,并用固定检索顺序和 Skill 回流把结论带到下一次调试。目录与文档: