dsh-bare-preset:把「裸模模式」做成 DSH 插件

前言

在 DeepSeek Harness(DSH)里做模型推理或 prompt 对比时,往往只想把用户消息送进模型,不带系统人设、不带工具定义、也不带工作目录和团队身份等运行时上下文。手写 bundle patch 往预设目录挂一套「空配置」并不省事:相对路径解析、id 类型、与预设工作台抢所有权等问题,README 里都有具体说明。

dsh-bare-preset 把「空系统提示词 + 零工具 + 零运行时上下文」打包成 npm 插件,激活时自行 presets.register(),卸载时注销,并在 agent 作用域上剪掉宿主插件塞进来的工具与上下文。

这是什么

维护者 DDDMUC,在 SkillHub 插件目录 归类为模型推理。源码与说明见 GitHub:DDDMUC/dsh-bare-preset。

当前发布版本 0.1.1(MIT)。包描述概括为:裸模模式 agent 预设的插件形态,向 agentPresets 注册,并裁剪宿主强加的运行时开销。

与「预设目录 + bundle patch」的差别

README 说明此前踩过的坑包括:bundle patch 里的行要进 registry,而 registry 用自己的 baseUrl 解析相对路径(例如 ./persona-file.mjs 直接 import 失败,预设会从选择器消失);id 必须是字符串;声明归属还要和「预设工作台」的运行时声明争所有权。

本包改为在激活/卸载生命周期里自行注册与注销;组合里的提示词行使用包内绝对 file URL,避免路径歧义。

核心能力:剪掉的三层

层 谁加的 手段 效果
系统提示词 — 人设行 complete: true + 空文本,suppressRuntimeContext() 全部去掉
全局工具 宿主各插件 tools.restrict({ allow: [] })(persona 行) 全部去掉
agent 作用域工具(Agent Teams 9 个) tool-agent-team 经 agent.ctx 注册 把注册对象的 when 换成恒假,在 resolve() 的 admit 阶段剔除 README 称约 1.5K token
team:identity、working-directory:current 同上 / working-directory 将 required 设为 false(全局那条在本层放 required:false 的影子) README 称约 90 token

上述 runtime context 全部滤掉后,joinContextSections([]) 为空串,project() 返回 undefined,对应那条 runtime-context user 消息不会出现。README 强调:不能在 agent/pre-step 里删它——agent-loop 在 append 之前会 refreshContext + project 重算,删掉的和追加的不是同一份。

同一 profile 下,README 给出量级对比:standard 会话首步约 19K token;本预设约 15–20 token(用户那句话 + 服务端角色标记)。

可调开关

lib/index.js 顶部提供三类开关(改源码或按包内说明使用):

  • PRUNED_TOOL_NAMES:要剪掉的 agent 作用域工具名(默认 Agent Teams 那 9 个;清空数组即保留)
  • SUPPRESSED_CONTEXTS:要滤掉的 runtime context 名(清空即保留 cwd / 团队身份)
  • noTools(组合里 persona 行的 config):关闭则不做全局工具 restrict

tools.restrict / when / required 三处都是改 registry 返回的注册对象真身,不落盘;插件重载后由 agent/created 与 turn/start 重新施加。DSH 升级若改了内部结构,表现可能是「工具/上下文又冒出来」,README 认为不会因此崩溃。预设 id 为 bare。

环境与依赖

package.json 中 dsh.engines.dsh 要求 >=0.2.2-rc.1。入口为 lib/index.js,并通过 cordis.patch.yml 作为 bundle patch。

安装与启用

资料中的安装信息如下:

npm:  dsh-bare-preset@0.1.1
repo: https://github.com/DDDMUC/dsh-bare-preset

装法二选一:

  1. 在 DSH 插件管理器里搜索 dsh-bare-preset,安装并启用(会向 profile 的 dependencies 与 dsh.profile.bundles 登记)。
  2. 手工编辑 ~/.dsh/profiles/<profile>/package.json:在 dependencies 增加
"dsh-bare-preset": "0.1.1"

或使用:

"dsh-bare-preset": "github:DDDMUC/dsh-bare-preset"

在 dsh.profile.bundles 数组中加入 "dsh-bare-preset",然后重启 DSH。

重启后,预设选择器会出现 「裸模模式」(id bare)。

典型用法

经过上面的安装步骤,在预设选择器里选「裸模模式」,用它新开一个会话即可。之后 agent 按裸模预设运行:无系统提示词堆叠、无全局与默认 agent 工具、无 README 所列的 runtime context 注入(在默认开关下)。

若需保留部分团队工具或 cwd 上下文,按 README 调整 PRUNED_TOOL_NAMES、SUPPRESSED_CONTEXTS 或 noTools,再重载插件。

适用场景与注意

适合谁:需要在 DSH 里做接近「纯对话」的模型调用、对比首 token 体量、或调试「宿主默认灌了什么」的开发者。

权限与安全:插件与 DSH 进程同权限运行。安装前请自行查看 仓库源码 与 MIT 许可证,确认改动 registry 对象、裁剪工具等行为符合你的安全策略。

生态说明:DSH 奉行「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文不作为官方商店说明。

结尾

dsh-bare-preset 把裸模 agent 预设做成可装可卸的插件,用注册生命周期和三层裁剪把系统提示、工具和运行时上下文压到 README 所述的极低首步 token。目录页:https://www.skillhub.cn/plugins/DDDMUC/dsh-bare-preset;源码:https://github.com/DDDMUC/dsh-bare-preset。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye