前言¶
用大模型写长篇或做角色扮演,最容易崩的不是文笔,而是设定。人物关系、地名、组织规则一旦只靠会话记忆,写到后面就会串线:同一角色换了称呼,世界书里写过的禁令被模型随手改掉。SillyTavern / TavernAI 这边已经有成熟的角色卡和世界书(lorebook)格式,条目可以按触发词注入;DeepSeek Harness(dsh)这边则把模型、工具、会话和界面都做成插件,官方仓库的口号是 Everything is a plugin(一切皆插件)。两边的设定格式并不互通。
dsh-LorebookMD 做的就是桥接:把酒馆角色卡和世界书导入当前 dsh 进程,落地成可编辑的本地 Markdown,再按「创作」或「世界书」两种预设注入系统提示词。社区目录把它归在「记忆」分类,维护者是 GitHub 用户 609476965。本文按目录详情页、GitHub README / package.json / 源码,以及 npm 页面交叉核对,核实日期为 2026-08-18。
需要先说明两件事。第一,DeepSeek Harness 目前仍是 developer preview,官方 README 写明会有破坏性变更。第二,deepseek-harness-plugin.com 是独立的社区目录,About 页写明与 DeepSeek / 幻方没有官方从属关系,不能当成官方应用商店。
这是什么¶
dsh-LorebookMD 是一款面向 DeepSeek Harness Web 的世界书驱动创作插件。npm 包名是 dsh-lorebookmd,当前版本 1.0.0,主要语言 TypeScript。package.json 把客户端平台声明为 web,并声明了 dsh.bundle.patch,安装后由 profile 自动套用 cordis.patch.yml。
它解决的问题很具体:你已经有酒馆角色卡(PNG 内嵌或 JSON)或独立世界书 JSON,希望在 dsh 里继续用同一套设定写小说或做角色扮演,而不是把条目手工粘进对话。插件只管理你自己提供的设定文本;README 写明工程内不内置任何「破限 / 越狱」提示词。
社区目录页在收录时显示 5 星;GitHub 仓库在 2026-08-18 查询为 13 星。package.json 与 npm 登记许可证为 MIT,仓库根目录目前没有独立的 LICENSE 文件,GitHub 元数据因此未识别许可证。安装前仍应自己打开源码核对。
核心功能¶
导入酒馆角色卡与世界书¶
README 和 src/tavern.ts 列出的输入包括:
- 角色卡:PNG(
tEXtchunk 里 keyword 为chara的内嵌 JSON)或独立 JSON(chara_card_v2以及旧版字段置顶格式) - 卡内世界书:
extensions.world,以及 SillyTavern 的character_book(角色书),两者会合并 - 独立世界书:顶层
{ entries: [...] },也兼容条目对象和纯数组 - 正则脚本:卡内
extensions.regex_scripts/extensions.regex,或独立脚本 JSON;源码注明 DSH 没有聊天正则渲染管线,导入后只作参考,由模型自行对照,不会像酒馆那样自动替换对话文本
对话工具 prompt_import_tavern、prompt_import_world、prompt_import_regex 与设置页走同一份数据。导入角色卡时需要绝对路径。
每本世界书三件产物¶
导入成功后,插件为每本世界书生成三件东西:
| 产物 | 作用 |
|---|---|
名·世界书 预设 |
设定全文 + 关键词自动触发:对话里提到触发词时,对应条目注入本轮 |
名·创作 预设 |
创作模式:创作指令 + 设定全文,激活后按用户输入写小说正文 |
worldbooks/<名>.md |
本地 Markdown 设定文档,可用系统默认程序打开后手工编辑 |
世界书条目支持常驻(constant,不依赖触发词)和按 keys 匹配。worldTrigger 默认开启。激活的预设会通过 systemPrompt.section() 注入;切换后下一轮对话生效,不必重载插件。
两种模式¶
README 把用法分成两条路径,可随时切换,停用后回到正常会话:
| 进入创作(激活「·创作」) | 世界书模式(激活「·世界书」) | |
|---|---|---|
| 输出 | 第三人称小说正文,直接写、不复述设定 | 以世界内角色身份对话、推进剧情 |
| 设定 | 全文注入,模型参考 | 全文注入 + 关键词触发条目 |
| 交互 | 给场景 / 情节 / 人物,继续给则续写 | 以第一人称参与,模型以角色回应 |
| 适合 | 写小说、场景描写 | 沉浸式角色扮演、互动推演 |
源码里创作预设的规则是:尊重世界设定中的规则、组织、人物关系和世界观,不得擅自违背或新增;按用户给出的场景写连贯正文,而不是对话式回复。
设置页与预设工具¶
package.json 声明了 Web 客户端注入。启动后打开默认 Web UI http://127.0.0.1:3080,进入 设置 →「世界书创作」,可以看世界书列表、进入创作、切到世界书模式、用系统程序编辑本地 .md、导入和删除。终端应打印 [prompt-manager] ready: …(插件内部 Cordis 组件名是 prompt-manager)。
对话里还可以用预设管理工具:prompt_preset_list、prompt_preset_use、prompt_preset_off、prompt_preset_save、prompt_preset_delete。源码注释里的说法包括「列出所有提示词预设」「切换到某预设」「停用提示词预设」。
数据落在本地¶
默认目录是 ~/.dsh/dsh-LorebookMD(可用配置项 dataDir 覆盖):
| 数据 | 路径 |
|---|---|
| 预设(含创作 / 世界书预设正文) | ~/.dsh/dsh-LorebookMD/presets.json |
| 世界书条目(关键词触发用) | ~/.dsh/dsh-LorebookMD/worldbooks.json |
| 本地设定文档 | ~/.dsh/dsh-LorebookMD/worldbooks/<名>.md |
watchFile 默认开启:直接改 presets.json 会热载入。JSON 损坏时,插件会把原文件备份成 *.broken-* 再以空库启动,避免覆盖用户数据。
安装与启用¶
社区目录页给出的安装命令如下,在 DeepSeek Harness 终端中运行:
dsh plugin add github:609476965/dsh-LorebookMD
如需可复现安装,目录页建议固定 commit 哈希(把 commit 换成实际哈希):
dsh plugin add github:609476965/dsh-LorebookMD#commit
当前 main 在 2026-08-14 的最新提交是 4bc4110efbfb4888286b81aaf53191705dade9dd。插件以当前 dsh 进程的权限运行,安装时可能执行代码;安装前请检查源代码仓库和许可证。
仓库 README 另外推荐从 npm 装到 web profile(包已发布 1.0.0,内置 lib/ 构建产物):
dsh plugin --profile web add dsh-lorebookmd
dsh plugin 会把本包加入 dsh.profile.bundles 并应用 cordis.patch.yml。官方 Harness 文档要求安装 bundle 后重启 profile,例如 dsh --profile web。package.json 要求 Node.js >= 22.18。
也可以直接对 dsh 说:
帮我安装这个插件https://github.com/609476965/dsh-LorebookMD
README 还提供了 install.cmd / install.ps1 一键复制到 profile 的 node_modules,以及临时用 start-dsh-plugin.cmd 以 --patch 加载 cordis.yml 的方式。自动挂载和 --patch 临时挂载不要同时使用,否则会重复挂载。
典型用法¶
下面按 README 和源码可以复现的路径写,不额外编造角色卡内容。
- 按上一节装好插件并重启 web profile,打开
http://127.0.0.1:3080。 - 把酒馆导出的角色卡(
.png/.json)或世界书 JSON 放到本机某个绝对路径。 - 在设置页点导入,或在对话里让助手调用工具。角色卡示例(路径换成你的文件):
导入 C:/cards/xxx.png 角色卡
对应工具是 prompt_import_tavern。独立世界书用 prompt_import_world,可传 activate 以便导入后立刻激活「·世界书」预设。
- 导入完成后,设置页会出现该世界书。点 进入创作 激活
名·创作,或点 世界书模式 激活名·世界书。 - 创作模式下,按 README 的典型指令给场景,例如「写一段……」「描写……的过程」,模型应输出小说正文。世界书模式下用第一人称推进,例如「我是……,然后呢?」。
- 需要改设定时,点 编辑文档,用系统默认程序打开
worldbooks/<名>.md。预设正文存在presets.json,改完后下一轮对话会读到新内容。 - 停用预设后回到普通会话。删除世界书会同时去掉「·世界书」「·创作」预设和对应 Markdown 文件。
适用场景与注意事项¶
适合已经有酒馆角色卡 / 世界书、希望在 dsh Web 里继续写小说或做角色扮演的人。它管的是「设定如何导入、落地、按模式注入」,不是通用的跨会话长期记忆,也不是知识图谱。社区目录里同类「记忆」插件(如 graph-memory、mnemon)解决的是另一类问题。
使用时注意这些边界:
- 客户端声明为 web,设置页依赖默认 Web UI;不要假定终端 headless 会话里也有同一块界面。
- 导入路径必须是绝对路径;相对路径会失败。
- 正则预设不会在 DSH 里自动改写对话,只是把脚本定义存成参考文本。
- 创作模式要求模型不擅自新增设定;实际效果仍取决于当前模型和是否激活了对应预设。
- 数据在本机
~/.dsh/dsh-LorebookMD下,备份或迁移时把这个目录一起带走。 - 插件以当前 dsh 进程权限运行。安装社区插件前应阅读源码和许可证;目录页也提醒:需要可复现安装时固定 commit。
小结¶
dsh-LorebookMD 把 SillyTavern / TavernAI 的角色卡和世界书接到 DeepSeek Harness:导入后得到本地 Markdown、关键词触发的世界书预设,以及专门写小说的创作预设。维护者是 609476965,社区目录分类为记忆,npm 包 dsh-lorebookmd 当前为 1.0.0。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-lorebookmd/
GitHub:https://github.com/609476965/dsh-LorebookMD