前言¶
在 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
装法二选一:
- 在 DSH 插件管理器里搜索
dsh-bare-preset,安装并启用(会向 profile 的dependencies与dsh.profile.bundles登记)。 - 手工编辑
~/.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。