DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

bychv /

bychv/dsh-preset-enhance

Verified

SillyTavern preset mode, macro engine and editor for DeepSeek Harness

★ 7 Stars1 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@a00019b5

DSH Preset Enhance

为 DeepSeek Harness 加载和编辑 SillyTavern 预设,在请求发送给模型前按顺序表注入消息,并按 DSH 模式或当前会话控制工具。

安装

从 npm 安装当前 RC 版本:

dsh plugin --profile web add dsh-preset-enhance@0.3.2-rc.1

也可以直接安装 GitHub main 分支:

dsh plugin --profile web add github:bychv/dsh-preset-enhance#main

0.3.2-rc.1 和当前 main 分支面向 DSH >=0.1.5-rc.2 <0.1.6。此版本之后的 alpha 分支将用于 DSH 0.1.6 兼容开发;继续使用 DSH 0.1.5 时请固定安装 0.3.2-rc.1。

重新启动 dsh web 后,左侧栏会出现“预设工作台”,新建对话的模式列表中会出现“预设模式”。

预设注入

工作台可以导入、编辑、预览、导出和删除 SillyTavern 预设。导入后会立即保存到全局预设库并成为当前默认;在预设库中切换选择也会立即更新当前默认。删除仍被默认设置或会话引用的预设时,会自动切换到另一个已保存预设;删除最后一个预设会关闭相关会话的注入。最后选择保存在 DSH 状态目录中,重启后继续使用。当前默认预设会用于自动注入;可以在“新会话自动启用预设注入”中选择任意 DSH 模式。保存模式列表只影响之后新建的会话;已有会话保持原状态。专用的“预设模式”始终自动启用。

当前会话可以使用原生命令即时切换,命令由 DSH 本地处理,不会作为聊天消息发给模型:

/preset on
/preset off
/preset status

直接输入 /preset 会在开启和关闭之间切换。

“预设模式”从当前安装的 standard 模式生成,因此拥有标准模式的工具集。它会移除 DSH 的身份 system prompt 和运行环境快照,使发送给模型的提示词完全由预设和真实聊天记录组成。其他模式保留各自原有提示词,同时可以叠加预设注入。

提示词条目分为两个区域:

  • 顺序表内:条目已经参与当前顺序表;复选框只控制是否启用,未勾选的条目仍属于顺序表。
  • 闲置条目:条目没有加入当前顺序表,不参与注入;点击“加入”后才会移动到使用区。

支持顺序表中 chatHistory 前后的 system、user、assistant/model 消息,以及按聊天深度注入。支持常用 SillyTavern 变量宏,包括 setvar、getvar、global 变量、数值修改、随机选择与骰子。extensions 会原样保留在预设 JSON 中,当前版本不执行其中的扩展行为。

当编译后的最后一条预设消息是 assistant 时(包括顶层 assistant_prefill,以及预设顺序表在 chatHistory 后安排的 assistant/model 条目),工作台会显示预填充续写提醒,消息预览也会标出 Assistant Prefix。这类预设必须使用支持 assistant prefix 的接口。

可以在“Assistant 预填充接口”面板开启“预填充自动兼容”。插件只处理当前请求中匹配到的末条 assistant 预填充:为最后一条 assistant 消息发送 prefix: true;在思考模式下,把 <think> 前缀和兼容接口使用的 reasoning / reasoning_text 映射到 reasoning_content,并保留工具调用历史中的真实思考内容。

  • DeepSeek 官方地址:自动把官方 Chat Completion 地址切到 https://api.deepseek.com/beta。官方 Beta 不接受原生工具字段,因此未开启 DSML 处理时也会移除 tools、tool_choice 和 parallel_tool_calls。
  • 非官方适配器地址:直接处理适配器实际请求的 Chat Completion 地址,不改写地址,也不需要在工作台重复填写。关闭 DSML 处理时,可用“非官方接口移除原生工具字段”开关选择移除或原样发送工具字段。
  • 工具调用处理开启:对官方和非官方地址都生效。插件把可用工具定义注入 system 提示,把历史 tool_calls 和工具结果转换为 DSML,再移除原生工具字段。模型返回的 DSML 会在流式或非流式响应中恢复为标准 tool_calls,交回 DSH 执行;工具结果中的常见 base64 图片也会转换为兼容的图片内容块。

“工具调用后继续请求的预填充”默认继承原预设,也可设置独立提示词(支持变量宏与 <think> 前缀)。开启预填充自动兼容时,该设置仅替换同一轮工具执行后继续请求的末条 assistant 预填充;新一轮用户消息仍使用原预设。自定义文本留空或展开为空时继承原预设。设置全局保存,修改后从下一次请求生效。

普通请求、非预填充请求和没有命中当前会话末条 assistant 前缀的请求不受影响。接口要求见 DeepSeek 对话前缀续写文档。

工具预设

工具面板支持两层配置:

  • 模式默认:可以为每个可用的 DSH 模式分别开启或关闭工具。没有独立覆盖的会话会继承该策略,保存后从下一次模型请求开始生效。
  • 当前会话覆盖:在同一会话中随时改动工具开关,下一次请求立即使用新策略;“恢复继承”会重新采用当前模式的默认策略。

两层配置都可以保存为工具预设,由模式默认或会话选择引用:

  • 工具栏提供范围(模式默认/当前会话)、模式和工具预设选择;模式范围只能选择“自定义”或某个预设,会话范围还可以“继承模式默认”。会话选择完整替换模式策略,不与模式默认叠加。
  • “新建”从当前有效策略生成预设(defaultEnabled 为 true,只保存被关闭的工具),“复制”复制规则和分组引用并生成新 ID,“重命名”和“删除”只影响该预设本身。删除仍被引用的预设时,模式默认回到“自定义”、会话回到“继承”,并保留原有逐工具开关,避免权限突然扩大。
  • 修改被引用的预设后,引用它的模式和会话从下一次请求更新;工作台显示该预设“被 N 个模式、M 个会话引用”。

工具分组用于组织和批量编辑:

  • 工具区按标签页组织:固定的“全部”“未分组”,以及按排序值和名称排列的用户分组;标签显示 名称 · 已启用/总数,标签栏可收起为紧凑下拉框,窄屏自动使用下拉框。
  • 每个分组提供三态开关(部分启用显示为不确定状态)和“全开”“全关”“仅启用此组”“恢复预设值”批量操作;顶部“全选/全不选”始终处理当前模式的全部工具,不受标签筛选影响。
  • MCP 工具会从当前会话的实时工具目录获取,并按 MCP 服务自动生成“服务名 · MCP”分组;也可以像普通工具一样加入用户分组。“刷新工具列表”可重新读取刚连接或断开的 MCP 服务。服务名始终放在标签开头,过长时从中间省略并保留首尾,完整名称显示在悬浮提示和折叠下拉框中。标签栏展开时保持单行横向滚动并自动滚入当前项;也可折叠为下拉选择,避免大量 MCP 服务挤压页面。
  • “管理分组”可新增、重命名、排序、删除分组,并用复选框分配工具;同一个工具最多属于一个用户分组,未分组的工具显示在“未分组”标签。标签栏/内容区折叠状态、最后配置的模式和“自动保存工具开关”都只保存在浏览器 localStorage(键名以 dsh-preset-enhance.tool- 开头),不进入分享文件。

工具视图提供“自动保存工具开关”,默认关闭:

  • 开启后,逐工具复选框、全选/全不选、分组三态开关以及“全开”“全关”“仅启用此组”“恢复预设值”等工具开关改动会在约 400 ms 防抖后立即保存(模式默认写入模式,会话覆盖写入当前会话),一次连续编辑只发一个请求,状态栏显示“已自动保存(范围 · 模式)”;页面隐藏或关闭时会尽力再冲刷一次尚未发送的改动。
  • 自动保存只覆盖工具开关;“管理分组”中的分组名称、排序和成员结构改动仍需点击“保存分组”。
  • 关闭时与手工保存一致:改动需要点击“保存工具开关”。该按钮始终可用,点击时会取消排队中的自动保存并等待在途请求结束,避免同一改动重复提交。
  • 开关状态只记在浏览器,不进入分享文件。

工作台会记住最后配置的 DSH 模式(切换模式或保存模式默认工具时记录),刷新页面后优先回到该模式;保存预设、接口设置等其他内容也不会丢弃尚未保存的工具开关草稿。

当前会话的实时目录会同时用于显示与保存校验,因此会话级 MCP 工具、其他插件动态注册的工具可以直接保存到当前会话覆盖,也可以从该会话保存为模式默认。

开发时可用 npm run test:mcp:candidate 运行双 MCP 接入测试。测试会在 candidate 的真实 DSH 工具注册表中启动两个隔离的 stdio MCP 服务,验证两个服务的同名工具都能被发现、分别调用并形成独立分组;测试结束后自动关闭服务,不写入 candidate 配置。

关闭的工具会从发给模型的工具 schema 中移除,执行守卫也会拒绝该工具,避免已有或手写工具调用绕过开关。工具目录通过 DSH 的模式注册表和 standing scope 实时解析;内置模式和其他插件引入的模式都会自动列出,各模式的每个实际工具都能独立开关。若第三方模式本身无法装载,工作台会显示该模式的解析错误。目录中暂时不存在的工具引用会保留并列为“未匹配”,安装对应插件后自动重新匹配。

单文件分享

工作台支持导入和导出单个 .dsh-preset.json 文件,包含完整 ST 预设、预填充接口配置以及工具预设和工具分组。导出时默认只带当前关联的工具预设及其分组,不包含模式默认/会话选择、会话 ID、目录缓存、引用计数或浏览器本地界面状态(折叠、最后模式、自动保存开关)。导入文件本身不会改动接口设置或工具开关:包内接口设置需手动“应用包内接口设置(全局)”,包内工具配置需手动“导入包内工具配置”,应用前会显示新增、复用、重映射和匹配、失配统计。未知的工具子版本仍可导入、编辑和再次导出,但禁止应用。也可用“导出 ST JSON”生成普通预设文件。格式与字段约定见 单文件格式说明。

—/ 5

No ratings yet

Verified DSH bundle

Commit a00019b5de10

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout