跳到主内容

dsh-LorebookMD

17Star0Fork0Issue0Watching

导入酒馆角色卡与世界书,落地本地 Markdown 设定文档;激活后模型参考设定自动创作小说正文。

机审证据4/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
分支
main
deepseekdeepseek-harnessdshdsh-plugindsh-pluginslorebooktavern

安装

命令web profile
$ dsh plugin --profile web add dsh-lorebookmd

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 609476965/dsh-LorebookMD:先查看仓库 https://github.com/609476965/dsh-LorebookMD 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

dsh-LorebookMD 是 DeepSeek Harness(DSH)的本地化世界书插件:把酒馆(SillyTavern / TavernAI)格式的角色卡与独立世界书导入后落成本地 Markdown 设定文档,并提供「创作模式」让模型参考这套设定直接写出小说正文。

核心能力

  • 导入酒馆角色卡 PNG(解析 PNG 的 tEXt chunk 中 chara 关键字)与 JSON(chara_card_v2/v3 与旧版字段置顶格式),同时提取内嵌世界书(extensions.world 或 character_book)与正则脚本
  • 导入独立世界书 JSON({ entries: [...] })与独立正则脚本 JSON,每本世界书自动生成两份预设:「·世界书」(关键词触发用)与「·创作」(创作指令 + 设定全文)
  • 把每本世界书的设定落地为本地 Markdown 文档 worldbooks/<名>.md(带编号、触发词、注释、分节),可手工编辑
  • 在 Web 端设置页「世界书创作」分区集中管理:列表 / 进入创作 / 世界书模式 / 编辑本地文档 / 导入 / 删除;数据通过同源 JSON RPC /prompt-manager/api 与 host 半共享
  • 关键词自动触发(agent/pre-step 钩子):激活「·世界书」预设后,模型每轮读到用户消息时把命中触发词的条目以 user-role context 注入本轮,支持 constant(始终生效)、正则、大小写敏感、全词匹配等酒馆原版选项
  • 提供对话工具 prompt_preset_list/use/off/save/delete 与 prompt_import_tavern/world/regex,随时切预设或重新导入文件

技术实现

  • 语言: TypeScript(host 半 src/index.ts + browser 半 src/client/index.ts,构建产物 lib/index.js 与 lib/client.js)
  • 关键依赖: @deepseek-ai/cordis(cordis 插件框架 + schemastery 配置 schema)、@deepseek-ai/dsh-tools(defineTool 工具注册)、@deepseek-ai/dsh-home-paths(数据目录路径解析)、@deepseek-ai/dsh-host-webserver(Web 路由注册)。所有 @deepseek-ai/* 由 DSH profile 运行时提供,发布包不打包
  • 架构模式: 双面 cordis bundle。host 半注入 tools / systemPrompt / webServer,注册 systemPrompt.section 把当前激活预设注入系统提示词(text 是求值函数,切换/修改后下一轮即生效);browser 半注入 slots,在 settings.section 注册「世界书创作」分区 React 组件,通过 /prompt-manager/api 与 host 半通信
  • 入口文件: src/index.ts(host,导出 name='prompt-manager'、inject=['tools','systemPrompt','webServer']、apply)、src/client/index.ts(client,导出 name='prompt-manager-client'、inject=['slots']、apply);构建走 .dsh-tools/tsdown/run.mjs

适用场景

手头有一批酒馆角色卡 / 世界书 JSON,想把它们从原来的在线服务里迁出来管理。当想做基于这套设定的长篇或短篇小说,但不想每次开新会话都重新贴一遍设定时,导入到本插件后激活「·创作」就能让模型始终参考同一份本地文档写作;想沉浸式扮演时切到「·世界书」,让设定按触发词自动出现而不用全文灌输。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness未声明package.json 未声明 peerDependencies,README 表示 @deepseek-ai/* 由 DSH profile 运行时直接解析
Node.js>=22.18package.json#engines.node
平台macOS / Windows / Linuxspawn 打开本地文档时按平台分支(cmd / open / xdg-open),插件主体跨平台
原生模块无纯 Node 内置模块(node:fs / node:child_process / node:http / node:path)

安装方式

dsh plugin --profile web add github:609476965/dsh-LorebookMD

配置项

配置类型说明默认值
dataDir字符串预设与世界书数据的存放目录(支持 ~ 展开),目录下会生成 presets.json、worldbooks.json、worldbooks/<名>.md~/.dsh/dsh-LorebookMD
sectionName字符串注入到系统提示词的分段名(需全局唯一,避免与其他插件冲突)prompt-manager:active
sectionOrder数字系统提示词分段排序权重,数字越小越靠前95
enableTools布尔是否注册 prompt_preset_* / prompt_import_* 对话工具true
watchFile布尔是否监听数据目录,外部直接改 JSON 后是否自动热载入(200ms 防抖)true
worldTrigger布尔激活世界书预设时是否按触发词自动把条目注入本轮对话true

这些字段在 cordis.patch.yml 的 config: 块里设置;schemastery 严格校验,填错或填入未知字段会导致加载失败。普通用户装好后无需调整。

常见问题

Q: 安装后在 DSH 的哪里使用?

A: Web 端打开设置 →「世界书创作」分区。客户端声明 dsh.client.platform=web,所以 CLI / TUI / 桌面客户端看不到这个分区,但能通过对话工具间接调用。

Q: 「进入创作」和「世界书模式」怎么选?

A: 想写小说就激活「·创作」预设,模型会用第三人称连贯叙述输出正文;想沉浸式扮演就激活「·世界书」预设,提到触发词时把对应条目临时注入本轮。两种模式随时可切换,停用回到正常对话。

Q: 导入酒馆角色卡 PNG 时会生成什么?

A: 一个角色卡预设(描述/性格/场景/示例对话/系统提示 拼成正文)、一个「·世界书」预设(关键词触发用)、一个「·创作」预设(创作指令 + 设定全文)、一份本地 Markdown 文档 worldbooks/<名>.md;卡内正则脚本会另存为「·正则」预设。

Q: 数据存在哪里?可以手工编辑吗?

A: 三处都在 ~/.dsh/dsh-LorebookMD/ 下:presets.json(预设正文)、worldbooks.json(条目原始数据,关键词匹配用)、worldbooks/<名>.md(可手工编辑的 Markdown 文档)。改 presets.json 时插件会自动热加载(200ms 防抖)。

Q: 数据文件写坏了怎么办?

A: 插件启动时如果 JSON 解析失败,会把损坏文件改名成 *.broken-<时间戳> 备份,并以空库启动,不会让后续保存覆盖你的原始数据。建议先看一眼备份文件再决定是否恢复。

Q: 正则脚本会真的执行吗?

A: 不会。DSH 没有聊天正则渲染管线,导入后的正则脚本只是「·正则」预设里的文字定义,供查看参考;如果需要做等价替换,需要自己按定义里的 pattern 手动处理。

Q: 「编辑文档」按钮打不开本地 .md 怎么办?

A: 插件会用系统默认程序打开文件(Windows: start / macOS: open / Linux: xdg-open)。如果系统没有关联 .md 程序或权限受限,spawn 会失败但 API 不报错——手动用任何编辑器打开 ~/.dsh/dsh-LorebookMD/worldbooks/<名>.md 即可。

Q: 需要额外的 API Key 或联网吗?

A: 不需要。预设、设定文档、世界书条目都存在本地磁盘,只有导入工具读取你指定的本地文件;模型生成小说靠 DSH 当前的会话模型。

上手难度

入门 — 装好后打开设置分区,导入一张角色卡或一个世界书 JSON,点「进入创作」就能用;要调细节(如触发词、条目顺序)时直接编辑 worldbooks/<名>.md 即可。

已知问题与限制

  • 正则脚本导入后只在「·正则」预设里以文字呈现,不会在对话中自动执行;DSH 没有等价的聊天正则渲染管线(src/tavern.ts:178-181)
  • 角色卡预设里的 {{user}} 占位符会被替换为「用户」,{{char}} 替换为当前激活预设名;DSH 已注册变量(provider / model / cwd)保留,其余未知变量会被丢弃以避免 DSH 渲染器报错(src/index.ts:834-844)
  • 「编辑文档」按钮依赖系统关联程序:未关联 .md 时 spawn 会失败但 API 不报错,需要用户手动用编辑器打开(src/index.ts:617-627)
  • 客户端仅在 web profile 下生效(package.json#dsh.client.platform=web),CLI / TUI / 桌面客户端看不到设置分区(package.json:36-46)
  • 角色卡内嵌世界书条目时按 extensions.world 优先、character_book 拼接合并;只存名字字符串的空 world 会被忽略而不报错(src/tavern.ts:378-411)

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/609476965/dsh-LorebookMD)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录