前言¶
在 DeepSeek Harness(DSH)里做角色扮演,常见做法是手写 system prompt、自己拼世界设定,或把 SillyTavern 的卡片内容复制进会话。卡片格式(V1/V2/V3、PNG 内嵌元数据)、世界书关键词命中、与 Harness 技能、工具权限的衔接,都要自己维护一套流程。会话历史、工具调用、上下文压缩仍走 Harness 原生路径,但「吟游」侧素材往往和 agent preset 脱节。
下面介绍社区插件 dsh-bard(仓库 lianzhimanye/dsh-bard-0.10):把 SillyTavern 角色卡与世界书导入 Harness,绑定技能后保存为原生 DSH agent preset,在预设选择器里选中即可开演,不另造对话循环。
这是什么¶
dsh-bard 由维护者 lianzhimanye 发布,在 SkillHub 目录页为 lianzhimanye/dsh-bard-0.10。package.json 中版本为 0.2.4,许可证 MIT。
定位:给 DSH 加上「吟游」式角色扮演——导入 SillyTavern 角色卡和世界书,挑选 Harness 技能,组合存成带 bard- 名称前缀的 agent preset;渲染时替换 {{char}}、{{user}} 等宏,世界书按关键词注入 system prompt,历史记录、工具、权限、上下文压缩均沿用 Harness 既有行为。
核心功能¶
资料中列出的能力如下(节选与归类,细节以 README 为准)。
| 能力 | 说明 |
|---|---|
| 角色卡导入 | SillyTavern V1 / V2 / V3;JSON 或 PNG(读 tEXt 块,ccv3 优先于 chara) |
| 世界书导入 | 独立世界书 JSON,或从角色卡内嵌 character_book 一键抽出 |
| 关键词与预算 | 按关键词、常驻、次级门控命中;条数与字符双预算裁剪,排名最高条目超预算仍强制注入 |
| 技能与预设 | 预设可绑定若干 Harness 技能;保存后立即注册为原生 agent preset |
| 工具控制 | 可关闭工具调用(适配纯文本模型);可勾选工具白名单(留空不限制);Section 白名单可只保留部分 system prompt section(与 complete 互斥) |
| 玩家设定 | 可指定 {{user}} 替换值与玩家性别,写入 persona 前缀 |
| 开场白 | 读取 first_mes 与 alternate_greetings,界面预览或 /bard greet 输出 |
| 立绘 | PNG 卡导入时保留原图,设置页可显示 |
数据目录默认为 ~/.dsh/bard/(即 $DSH_HOME/bard/),含 cards、worldbooks、portraits、presets、rendered、workspaces 及若干 catalog JSON;写入采用临时文件加 rename,纯文件、可手改。
安装与启用¶
README 未提供 dsh plugin add 一类命令;启用方式是让插件目录作为 bundle 被 profile 解析。任选其一。
A. 在 profile 的 package.json 中加入 bundle(推荐)
在 dsh.profile.bundles 里增加包名 dsh-bard(需使该包出现在 profile 的 node_modules 下,symlink 或真实安装均可):
{
"dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-bard"] } }
}
包内通过 dsh.bundle.patch: ./cordis.patch.yml 插入 { id: bard, name: dsh-bard }。
B. 直接改 profile 的 cordis.patch.yml
- insert:
- id: bard
name: dsh-bard
实时 profile 下改动由 HMR 监视即时生效;启动型 profile 需重启。
启用后插件会创建 bard 下四个数据目录;设置 → 吟游 出现角色卡、世界书、技能、预设四个标签页;会话预设选择器中出现「吟游 · …」条目。
典型用法¶
设置页¶
在 设置 → 吟游 中:
- 角色卡:导入 JSON / PNG,预览立绘、简介、开场白。
- 世界书:导入或从角色卡提取,查看条目与关键词。
- 技能:从 Harness 技能列表勾选,绑定进预设。
- 预设:选角色卡、世界书、技能,命名保存;保存后即注册为原生 agent preset。
命令¶
/bard 列出所有吟游预设(等同 /bard list、/bard presets)
/bard card 查看当前会话正在使用的角色
/bard greet [序号] 输出开场白(第 n 条备选,缺省用当前会话的角色)
card 与 greet 要求当前会话已选中某个「吟游 · …」预设,否则会提示。
开演步骤¶
- 在设置里导入角色卡,按需选世界书和技能,保存预设。
- 在会话预设选择器选择「吟游 · <预设名>」。
- 角色 persona、命中的世界书条目、绑定技能进入该会话的 system prompt。
Host 侧通过 agent.ctx 注入世界书(bard:world-book)与工具相关逻辑;Web 客户端 client.js 经 /dsh-bard/api/ 与 Host 通信(loopback 与同源校验,上传上限 12 MiB)。
适用场景与注意¶
适合谁:已在 SillyTavern 生态有角色卡/世界书,希望在 DSH 里用同一套素材,并同时利用 Harness 的技能、工具与预设机制做角色扮演的开发者或玩家。
权限与安全:插件以当前 DSH 进程权限运行,会读写 $DSH_HOME/bard/ 并提供本地上传接口。安装前建议阅读 GitHub 源码 与 MIT 许可证,确认符合你的环境策略。
实现注意(来自 README):服务注册须从 agent.ctx 获取,不能从插件全局 ctx 获取,否则 system prompt 与 tools 的 scope 会错乱。工具白名单主要过滤继承层工具;Agent Teams 等注册在 agent 自身层的工具不受白名单约束。预设里 complete: true 时会忽略 Section 白名单。
社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态奉行「一切皆插件」,本插件是其中一条吟游向扩展。
结尾¶
dsh-bard 把 SillyTavern 卡片与世界书翻译成 Harness 原生的 agent preset 与 system prompt 上下文,避免平行维护一套对话栈。若你需要在 DSH 里「选预设即开演」,可按上文 bundle 方式启用,从导入一张角色卡做起。
- 目录页:https://www.skillhub.cn/plugins/lianzhimanye/dsh-bard-0.10
- GitHub:https://github.com/lianzhimanye/dsh-bard-0.10