dsh-chat-preset:DSH 下的 ChatOnly 纯对话预设

前言

在 DeepSeek Harness(DSH)里做模型能力评测或对照实验时,默认请求往往并不「干净」:全局层仍会带上工具 schema,用户输入之后还会追发一条 runtime-context 工作目录消息。预设配置层无法单独关掉这两类注入。若只改系统提示词、却希望请求里只有用户文本(以及你明确指定的 system 内容),就需要在装配瀑布和 context 注册层另行处理。

下面介绍社区插件 dsh-chat-preset(维护者 Xxx-Bin),它在 DSH 中提供名为 ChatOnly 的预设 agent:默认抑制工具与工作目录注入,系统提示词从本地文件热读,便于在受控条件下观察模型本身的行为。

这是什么

dsh-chat-preset 是 DSH 的 ChatOnly 预设包:无工具(可开关)、无运行时工作目录快照的纯对话形态;系统提示词存放在 ~/.dsh/chatonly-system-prompt.md,通过命令或直接编辑文件更新,下一条消息生效。

该包在 npm 上发布为 dsh-chat-preset(当前资料中版本 1.2.0,MIT 许可证,Node.js ≥ 18)。它声明 dsh.bundle.patch,安装后由 profile 的 layer stack 自动登记;分类上可归入「模型推理」——侧重控制请求形态以便评测,而非提供新的推理运行时。

需要事先了解:本包依赖 DSH 的三处内部语义(作用域同名 shadow 覆盖、system-prompt/assemble 瀑布、refreshContext() 的合并顺序)。DSH 升级若改变这些语义,插件可能静默失效(不报错,仅退回默认请求形态)。安装前应阅读仓库说明中的「兼容性与脆弱性」一节,并自行核对源码与许可证。

默认请求里多出来的东西

DSH 即便在精简模式下,仍有两类预设层无法消除的注入:

  1. 工具 schema:在全局层收集,预设只能追加、不能移除。
  2. 工作目录消息:默认在用户输入之后追加 runtime-context,内容为当前工作目录;且该 contribution 以 required: true 注册,includeRuntimeContext: false 只能过滤可选项。

本包在桌面端 desktop profile 下观测到的抑制前后对比如下(工具数量随已安装插件变化,资料中给出本机区间 8–14 个):

  # 抑制前
- tools:    9 个 — acp_cache, acp_read_original_image, …
- messages: [ …, { source: { kind: "runtime-context" } } ]
  # 抑制后
+ tools:    该键不存在
+ messages: 仅用户输入

核心功能

ChatOnly 预设

安装并在预设选择中启用 ChatOnly 后,本包通过 agent 作用域内的同名空 shadow、system-prompt/assemble 瀑布,以及 buildRequest() 在工具列表为空时省略 tools 键的行为,分别处理工作目录与工具注入;section 角色从文件读取系统提示词,并以 complete: true 独占 deployment:persona-prefix 段。

/chatprompt:系统提示词

提示词文件:~/.dsh/chatonly-system-prompt.md。命令是读写入口,也可直接编辑文件。

命令 行为
/chatprompt <text> 写入文件,下一条消息生效
/chatprompt 预览、字符数与路径
/chatprompt show 输出全文
/chatprompt clear 清空;此后不发送系统提示词

文件为空时不发送任何系统消息。该命令全局注册,仅对 ChatOnly 生效;在其它预设下修改不会生效且无提示。

/chattools:工具抑制开关

默认抑制工具,即请求不携带工具 schema。状态文件:~/.dsh/chatonly-strip-tools.state(内容为 strip 或 pass),每次装配重新读取;不存在时采用配置项 stripTools(出厂默认 true)。

命令 行为
/chattools 或 /chattools status 当前模式与状态文件路径
/chattools on 抑制工具注入
/chattools off 放行,assembly.tools 原样传递
/chattools reset 删除状态文件,回退出厂默认

/chattools off 只放行工具;该会话中 working-directory:current 仍被抑制,模型不会从 runtime 获得工作目录。若评测需要文件类工具,资料建议同时限制工具集(例如通过 dsh-tool-manager)并在系统提示词中写明工作目录等环境约束。

工具开关是全局单一文件,对所有 ChatOnly 会话同时生效;工作目录抑制按 agent 注册且在同一会话内切换预设后仍可能保持为空,直至新建会话。两者机制不同,使用评测方案时需分开考虑。

其它限制(摘自文档)

  • 未挂载压缩插件,不支持自动压缩与 /compact;上下文超长时请求可能直接失败。
  • 与 dsh-prompt-setting 的「我的 Prompt」互斥(同作用域 complete: true)。
  • 预设内不应再挂载同名 section(如 dsh-persona)。
  • 插件以当前 DSH 进程权限运行;安装前请检查源码与 MIT 许可证,并知悉其对非公开 DSH 行为的依赖。

安装与启用

依赖:dsh(桌面端或 CLI)、pnpm 在 PATH(dsh plugin add 内部转发 pnpm add)、Node.js ≥ 18。安装后须重启 dsh(bundles 层仅在启动时合成)。

桌面端(desktop):

# npm
dsh plugin --profile desktop add dsh-chat-preset

# GitHub
dsh plugin --profile desktop add github:Xxx-Bin/dsh-chat-preset

dsh web(web):

dsh plugin --profile web add -w https://github.com/Xxx-Bin/dsh-chat-preset

--profile 对应 ~/.dsh/profiles/ 下的目录名。安装完成后重启,在预设中选择 ChatOnly。

配置要点(cordis.patch.yml):presetId 须与预设 config.id(chatonly)一致;两处 file 必须都指向 ~/.dsh/chatonly-system-prompt.md;toolsStateFile 不得与提示词文件同路径。

典型用法

  1. 按上文命令安装并重启 DSH,启用 ChatOnly 预设。
  2. 写入评测用 system prompt,例如:
# 在 DSH 对话中使用(亦可直接编辑 ~/.dsh/chatonly-system-prompt.md)
/chatprompt 你是严谨的评测助手。只根据用户问题回答,不要假设当前工作目录。
  1. 确认默认不携带工具;若需对照「带工具但无目录注入」的实验,先评估是否接受全局 /chattools off,并自行在 prompt 中补环境信息:
/chattools status
/chattools off   # 放行工具;工作目录仍被 ChatOnly 抑制
  1. 卸载插件后,命令与运行期注册会 dispose;用户文件(提示词、开关状态、调试日志)需按 README 手动清理,重装时旧 chatonly-strip-tools.state 会沿用上次开关,可用 /chattools reset 恢复出厂默认。

适用场景与注意

适合:需要在 DSH 里做相对可控的纯对话评测、对比不同 system prompt、或观察「无工具签名、无自动工作目录行」时的模型输出。

不适合或需额外准备:依赖默认工作目录与全量全局工具的日常工作流;需要 /compact 的长对话;希望与「我的 Prompt」并存的人设配置。

社区插件目录 SkillHub 上的 dsh-chat-preset 页 与 GitHub 仓库相互独立引用,并非 DeepSeek / 幻方官方应用商店;安装与启用仍以上游 README 为准。

结尾

dsh-chat-preset 把 DSH 请求收成「用户输入 + 可选文件 system」,并给出 /chatprompt、/chattools 两个运维入口,适合把变量收窄到提示词与模型本身。使用前请理解其对 DSH 内部行为的依赖及静默失效风险,并在安装前审阅源码。

  • 目录页:https://www.skillhub.cn/plugins/Xxx-Bin/dsh-chat-preset
  • 仓库:https://github.com/Xxx-Bin/dsh-chat-preset
羽毛球分组比赛记分
小程序二维码

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

小夜