前言¶
在 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。