DSH Plugins Marketplace

DSH Plugins

Plugins

/

Development & Infrastructure

/

dsh-roleplay-engine

L

dsh-roleplay-engine

Identified★ 1

Native SillyTavern-compatible character context compiler and prompt inspector for DeepSeek Harness.

Roleplay Engine icon

DSH Roleplay Engine

将 SillyTavern 角色卡与世界书,原生接入 DeepSeek Harness 会话。

Version Node.js Tests DeepSeek Harness License Profile

确定性上下文编译 · 世界书激活 · 预设人格绑定 · Prompt 诊断 · 中英双语设置界面


简介

DSH Roleplay Engine 是一个面向 DeepSeek Harness 的原生角色扮演插件。它可以读取 SillyTavern 兼容的角色卡,将角色设定、世界书条目和回复协议编译成模型实际可见的系统提示词,并自动绑定到指定的 Agent Preset。

插件不会替换 Harness 原生会话历史,也不会额外维护一套聊天状态。它只在请求进入模型前生成当前回合所需的角色上下文,因此新建、恢复和分叉会话都能得到一致、可诊断的结果。

[!IMPORTANT] 本项目目前处于早期开发阶段,package.json 中仍标记为 private。公开仓库用于源码审阅、协作评估与本地非商业试用,不代表已经发布到 npm,也不代表作者放弃版权或授予开源许可。

功能亮点

能力说明
🎭 角色卡兼容支持 PNG 与 JSON 角色卡,包括 Character Card V3 元数据。
📚 世界书编译合并角色卡内嵌 Lorebook 与多个外部 JSON 世界书。
🔎 确定性激活支持主关键词、次关键词、大小写、整词、常驻条目与概率规则;相同输入产生相同决策。
🧩 预设人格绑定按 presetId 自动绑定角色,可作用于全部会话或仅指定的活跃会话。
♻️ 会话生命周期自动处理创建、恢复、分叉、人格切换、配置热更新和插件重载。
🧠 预算控制通过上下文预算、输出预留和扫描深度控制注入内容。
🎚️ 回复丰富度内置多轮场景、单轮场景和一句对白三种输出模式。
🛠️ 可观测性可查看实际注入文本、编译 IR、世界书命中情况、预算与稳定哈希。
🌐 原生设置页在 Harness 设置界面中管理绑定、扫描素材目录,并提供中英文界面。

工作方式

graph LR
    A[角色卡 PNG / JSON] --> D[角色扮演编译器]
    B[内嵌 / 外部世界书] --> D
    C[原生会话历史与当前输入] --> D
    D --> E[关键词匹配与预算裁剪]
    E --> F[确定性 Prompt IR]
    F --> G[Harness System Prompt Section]
    G --> H[模型请求]

每个模型回合大致经过以下流程:

  1. 根据当前 Session 的组合人格解析 presetId;
  2. 加载对应角色卡,并合并内嵌和外部世界书;
  3. 从原生会话历史中截取指定扫描深度的文本;
  4. 确定性计算世界书条目的接受与拒绝结果;
  5. 在上下文预算内按原子段落编译 Prompt IR;
  6. 将渲染文本注入 Harness 的 System Prompt,而不改写原生聊天历史;
  7. 保存诊断信息,供命令或 Agent Tool 检查。

支持格式

角色卡

  • .png:带 SillyTavern 角色卡元数据的 PNG;
  • .json:SillyTavern 兼容角色卡 JSON;
  • 优先识别 Character Card V3(ccv3)元数据。

世界书

  • .json 外部世界书;
  • 角色卡中内嵌的 Lorebook;
  • 可同时配置多个外部世界书,插件会统一规范化并合并条目。

安装

1. 克隆仓库

git clone https://github.com/LiranHuang/dsh-roleplay-engine.git
cd dsh-roleplay-engine

2. 安装依赖并验证

npm install
npm run check
npm test

3. 作为 Harness Bundle 安装

本仓库根目录本身就是一个 DSH Bundle,其中:

  • package.json 声明 Host、Client 和 Bundle 元数据;
  • cordis.patch.yml 挂载插件实例;
  • index.js 提供 Host 端编译与运行时;
  • client.js 注册 Harness 设置页。

在 DeepSeek Harness 的插件管理界面或管理工具中,选择 Install Bundle / 安装 Bundle,并将目标指向本仓库的绝对路径。安装后,进入 Harness 的 设置 → 角色扮演引擎 完成绑定。

安装权限与信任边界

安装 Bundle 会让插件代码在 Harness Host 与 Web Client 环境中运行。安装前请审阅源码,并确认你信任本仓库及所安装的具体提交。

插件运行时需要以下能力:

能力用途
读取本地文件加载你明确配置的角色卡和世界书。
枚举所选目录在设置页中列出当前目录层级的 PNG / JSON 候选文件。
注册本地 HTTP 路由向设置页提供候选文件和活跃会话列表。
读取原生会话历史根据最近消息确定世界书激活结果,不改写历史。
注入 System Prompt Section将编译后的角色上下文交给模型。
调整模型请求参数应用配置的 Temperature;仅在非零时覆盖最大输出 Token。
读写插件设置保存人格绑定、路径、预算、作用域和回复模式。

插件本身不需要 GitHub Token,不主动上传角色素材,也不执行支付或系统管理操作。实际可用权限仍由 DeepSeek Harness 的运行环境和用户配置决定。

[!WARNING] 仓库中的 cordis.patch.yml 带有开发机示例路径。首次安装前请将角色卡和世界书路径改为你自己的绝对路径,或在安装后通过设置页重新配置。不要提交包含隐私信息的角色卡、世界书或本机凭据。

快速配置

在 设置 → 角色扮演引擎 中添加绑定:

  1. 填写需要绑定的 Agent Preset ID;
  2. 选择 PNG 或 JSON 角色卡;
  3. 按需选择一个或多个 JSON 世界书;
  4. 选择作用范围:
    • 全局:该人格的所有会话生效;
    • 自定义:仅对勾选的活跃会话生效;
  5. 设置上下文预算、扫描深度、Temperature 和回复模式;
  6. 开启 启用注入,然后保存全部配置。

配置示例

- insert:
    - id: roleplay-engine
      name: '@alyx/dsh-roleplay-engine'
      config:
        bindings:
          - presetId: my-agent
            enabled: true
            characterPath: 'D:\Roleplay\characters\MyCharacter.png'
            worldbookPaths:
              - 'D:\Roleplay\worldbooks\MyWorld.json'
            scopeMode: global
            sessionIds: []
            contextBudget: 12288
            outputReserve: 2048
            scanDepth: 8
            temperature: 1
            maxOutputTokens: 0
            responseRichness: full-scene-dialogue

配置字段

字段类型默认值说明
presetIdstring—要绑定的 Agent Preset ID,必须唯一。
enabledbooleantrue是否为该绑定启用角色 Prompt 与请求参数覆盖。
characterPathstring—PNG 或 JSON 角色卡的绝对路径。
worldbookPathsstring[][]外部 JSON 世界书绝对路径列表。
scopeModeglobal | customglobal对该人格全部会话生效,或仅对指定会话生效。
sessionIdsstring[][]custom 模式下允许启用的活跃 Session ID。
contextBudgetnumber12288角色上下文编译可使用的总 Token 预算。
outputReservenumber2048为模型输出保留的 Token 数。
scanDepthnumber8用于触发世界书的最近历史消息数量。
temperaturenumber1覆盖绑定会话的模型 Temperature,范围 0–2。
maxOutputTokensnumber0最大输出 Token;0 表示保留模型或 Provider 默认值。
responseRichnessstringfull-scene-dialogue回复丰富度策略,见下表。

回复模式

值行为
full-scene-dialogue多个连续轮次,包含场景、动作、情绪变化和人物对白。
scene-dialogue只演出一个完整轮次,可包含多个自然段。
single-dialogue只输出一句不带引号的角色对白。

命令与 Agent Tool

Harness 命令

命令用途
/roleplay查看当前会话实际注入模型的角色扮演文本。
/roleplay-inspect [输入]查看最后一次 Prompt IR;提供输入时执行一次确定性预览。
/roleplay-richness [模式]读取或临时更改当前会话的回复丰富度。

示例:

/roleplay-richness scene-dialogue
/roleplay-inspect 月光照亮了古老遗迹
/roleplay

插件还注册了 roleplay_session_command Tool,允许 Agent 按精确 Session ID 执行以下只读或运行时操作:

  • prompt:读取实际加载的角色文本;
  • inspect:读取编译诊断;
  • richness:读取或修改当前会话的回复模式。

项目结构

dsh-roleplay-engine/
├─ index.js                 # Host 插件入口、配置、命令、Tool 与生命周期
├─ client.js                # Harness Web 设置页
├─ agent.js                 # Agent 注入与请求参数覆盖
├─ lib/
│  ├─ card.js               # PNG / JSON 角色卡解析
│  ├─ compiler.js           # Prompt IR 与预算编译
│  ├─ lore.js               # 世界书规范化、匹配与激活
│  ├─ response.js           # 回复丰富度协议
│  └─ stable.js             # 稳定序列化与哈希
├─ locale/                  # 插件展示元数据
├─ test/                    # Node.js 测试与示例素材
├─ cordis.patch.yml         # Harness Bundle 挂载配置
└─ package.json

开发与测试

要求:

  • Node.js 支持 ESM 与内置 node:test;
  • DeepSeek Harness 提供插件运行所需的 Host / Client 服务。

常用命令:

# JavaScript 语法检查
npm run check

# 运行全部测试
npm test

测试覆盖的关键行为包括:

  • PNG / JSON 角色卡解析与损坏文件拒绝;
  • Character Card V3 元数据;
  • 世界书关键词、概率、常驻条目和扫描深度;
  • 确定性编译、稳定哈希与预算原子性;
  • Agent 创建、恢复、人格切换、热更新和销毁;
  • 全局与自定义 Session 作用域;
  • 回复丰富度与模型参数覆盖;
  • Prompt Inspector 与实际运行时结果一致性。

安全与隐私

  • 角色卡和世界书可能包含个人设定、私密文本或未公开作品,请谨慎提交;
  • 配置使用本机绝对路径,公开日志或截图前请先脱敏;
  • 目录扫描接口只列出所选目录当前层级中受支持的文件;
  • 插件只编译并注入角色上下文,不会主动上传角色素材;
  • maxOutputTokens: 0 会保留模型提供方的默认值,避免意外截断长回复。

兼容性

项目状态
DeepSeek Harness面向支持 Bundle、Host Plugin、Client Slot、Settings、Agent Preset 与 System Prompt Section 的当前桌面版架构。
已验证 Profiledesktop
已验证平台Windows 11(本地绝对路径与目录选择器流程)
Node.js已在 Node.js v24.22.1 完成语法检查与测试;源码使用 ESM 与内置 node:test。
角色卡SillyTavern 兼容 PNG / JSON,包含 Character Card V3 测试覆盖。
世界书JSON;支持项目测试中记录的关键词、概率、常驻条目等基础规则。

由于仓库没有绑定一个可验证的 Harness 发行版本号,兼容性以当前 API 能力和实际测试结果为准。升级 Harness 前建议保留配置备份,并重新运行测试及安装验证。

当前限制

  • 设置页面面向 DeepSeek Harness,不能作为独立 Web 应用运行;
  • 角色素材使用本地绝对路径,不会自动同步到其他设备;
  • 当前回复协议默认要求模型使用简体中文;
  • 尚未发布 npm 包或稳定版本;
  • 部分高级 SillyTavern 世界书特性只保留并报告警告,尚未参与求值。

版权与许可

Copyright © 2026 LeonYellow(GitHub:@LiranHuang)。保留所有权利。

本项目采用专有许可证,不是开源软件。公开可见仅用于源码审阅、协作评估和许可证明确允许的个人非商业试用。未经版权所有者事先书面许可,不得复制、修改、制作衍生作品、重新发布、再许可、出售、提供托管服务或用于商业及生产用途。

作者身份、规范仓库地址和第三方标识说明见 NOTICE。如需商业授权、再分发授权或其他超出许可证范围的许可,请通过仓库 Issues 联系版权所有者。

Git 提交记录、LICENSE、NOTICE 和源码版权头用于明确权利归属与许可边界,但不替代特定司法辖区的软件著作权登记或专业法律意见。

贡献

欢迎通过 Issues 提交问题与改进建议。由于本项目采用专有许可证,提交 Pull Request 前请先联系作者确认贡献与授权条款。未经作者书面接受,提交内容不会自动取得合并或使用许可。

提交代码前请确保:

  1. 改动聚焦且不会破坏原生会话历史;
  2. 新增行为有对应测试;
  3. npm run check 与 npm test 均通过;
  4. 不提交真实角色素材、个人路径、Token 或其他凭据;
  5. 你有权提交该内容,并同意保留现有版权与专有许可声明。

让角色设定成为 Harness 的原生上下文,而不是旁路状态。

Comments

Loading…

From the same category

awesome-dsh-plugin

by awesome-dsh-plugin

A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表

Development & Infrastructure

★ 22.2k

CC0-1.0

Python

Nov 3, 2026

Index only — not installable

by 0xsline

DeepSeek Harness (DSH) ecosystem: curated plugins, tools, and infrastructure from dsh-external/hub and the public dsh-plugin topic.

Development & Infrastructure

★ 1.3k

CC0-1.0

Python

Oct 16, 2026

Index only — not installable

by Yuuyuko-uu

DSH 鱼的记忆:给会话一份会淡忘的长期记忆,每条都带时间

Development & InfrastructureMemory & ContextSessions & MessagesManifest valid

★ 464

MIT

JavaScript

Nov 3, 2026

dsh plugin --profile web add dsh-fish-memory

by uumit-ai

Open dsh web from your phone or another computer through a UUMit account, without running your own server or installing another program: a built-in tunnel client connects to UUMit's hosted tunnel, and

Tools & CapabilitiesDevelopment & InfrastructureTerminal & ClientsManifest valid

★ 454

↓ 268/wk

MIT

JavaScript

Oct 21, 2026

dsh plugin --profile web add @uumit-ai/dsh-uumit-remote

by SAOS-3624

Scene-aware storyboard for DeepSeek Harness: 9-16 numbered cells with timestamps + transcript + an audio envelope, packed into ONE image (384 tokens). Two tools: video_storyboard and video_zoom.

Tools & CapabilitiesVision & MultimodalDevelopment & InfrastructureManifest valid

★ 419

↓ 17k/wk

MIT

JavaScript

Nov 3, 2026

dsh plugin --profile web add dsh-video-storyboard

by xiajiajun516

DeepSeek Harness (DSH) backup & restore plugin — export, import, migrate and sync your complete DSH configuration, plugins, MCP servers, skills and workspace. One-click migration to another machine.

Development & InfrastructureManifest valid

★ 292

↓ 8.8k/wk

MIT

TypeScript

Nov 2, 2026

dsh plugin --profile web add dsh-config-manager