dsh-bard:在 DeepSeek Harness 里用 SillyTavern 角色卡开演

前言

在 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 下四个数据目录;设置 → 吟游 出现角色卡、世界书、技能、预设四个标签页;会话预设选择器中出现「吟游 · …」条目。

典型用法

设置页

在 设置 → 吟游 中:

  1. 角色卡:导入 JSON / PNG,预览立绘、简介、开场白。
  2. 世界书:导入或从角色卡提取,查看条目与关键词。
  3. 技能:从 Harness 技能列表勾选,绑定进预设。
  4. 预设:选角色卡、世界书、技能,命名保存;保存后即注册为原生 agent preset。

命令

/bard                    列出所有吟游预设(等同 /bard list、/bard presets)
/bard card               查看当前会话正在使用的角色
/bard greet [序号]       输出开场白(第 n 条备选,缺省用当前会话的角色)

card 与 greet 要求当前会话已选中某个「吟游 · …」预设,否则会提示。

开演步骤

  1. 在设置里导入角色卡,按需选世界书和技能,保存预设。
  2. 在会话预设选择器选择「吟游 · <预设名>」。
  3. 角色 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye