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。

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

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

小夜