dsh-my-agent-preset:在 DSH 裏爲 Agent 定製可複用的能力預設

前言

DSH(DeepSeek Harness)默認的通用 Agent 往往是「全量裝備」:每輪請求都會帶上大量工具 schema、技能描述和運行時上下文。任務簡單時,真正留給對話的窗口被無關能力擠佔;任務敏感時,模型同時看見寫文件、執行命令、聯網等能力,越權與誤用的面也更大。臨時改一段提示詞可以應急,但很難審計、複用或按工種共享。

下面介紹社區插件 dsh-my-agent-preset(維護者 Zkbnfcnb,當前版本 2.7.2,MIT 許可證)。它把人設、技能白名單、工具範圍和運行時上下文快照打成一套「預設」,在 DSH 設置裏集中管理,新建會話時選用即可。分類上歸在 SkillHub 的「趣味換裝」,核心用途是能力層的收斂與角色換裝,而不是替代沙箱或審批策略。

這是什麼

dsh-my-agent-preset 在 DSH 側註冊爲 bundle 插件:通過 cordis.patch.yml 掛載 Host 能力,並在 Web 客戶端注入「設置 → 自定義預設模式」管理頁(package.json 中 meta.title 爲「自定義預設模式」)。

一句話定位:在 DSH Settings 裏管理自定義 Agent 預設——人設提示詞、運行時上下文勾選(含可選的必需項強制屏蔽)、按預設注入的技能與工具範圍。預設啓用後,新建會話時選擇對應卡片即可生效;停用後從註冊表移除,但配置仍保留在本地數據文件中。

社區目錄頁:SkillHub - dsh-my-agent-preset。源碼與完整說明:GitHub - Zkbnfcnb/dsh-my-agent-preset。

核心功能

預設由什麼組成

一個預設把五類配置綁在一起:

組成 作用
人設 / 提示詞 定義角色與任務邊界
技能 白名單注入;未勾選的不進上下文且調用會被拒
工具 全部 / 僅白名單 / 排除名單,並在可見性、調用守衛、提示詞組裝三層生效
運行時上下文 對 assembly.contexts 逐項勾選;官方必需項默認保留
元信息 名稱、描述、啓用狀態、順序、穩定 id(如 custom-xxxxxxxx)

管理界面以卡片網格展示上述信息,支持新增、編輯、刪除(兩段式確認)、啓停、複製副本、導出 id/name/description 的 JSON 清單(不含提示詞與名單明細)。

人設的三種注入方式

  1. 追加:用你的文字替換人設前綴,保留 DSH 其它系統提示(含工具指導)。
  2. 完全替換:僅使用你的文字,移除其餘提示詞(官方工具指導也會消失,需自行寫清工具用法)。
  3. 自定義屏蔽(默認官方):你的人設爲主,按段規則屏蔽 DSH 官方段,可擴展前綴、精確段名或保留名單;第三方插件與外部 MCP 注入的提示詞默認保留。

默認開啓 附帶工作區:在提示詞末尾追加當前會話 cwd,避免模型猜錯路徑。

技能與工具

技能列表來自 DSH skills.list(),按來源分組勾選。空白名單表示沒有任何技能,不是「全部技能」。勾選後會保留 skill 工具;未選技能會從模型上下文中裁掉,以節省 token。

工具三種模式:全部(默認)、僅白名單、排除名單。注意 README 中的行爲:選了「僅白名單」卻一個都不勾,保存後會歸一爲「全部」。

編輯器底部的 運行時自檢 會列出繼承工具面、可用與被拒絕數量、名單拼寫錯誤、缺失技能等,排錯時優先看這裏。

數據存放

默認路徑:$DSH_HOME/my-agent-preset/presets.json;未設置 DSH_HOME 時爲 ~/.dsh/my-agent-preset/presets.json。可通過 bundle 配置中的 dataFile 覆蓋。舊路徑 agent-preset-studio/presets.json 不再讀取,遷移需手工移動文件。寫入採用臨時文件加 rename,降低寫一半損壞的風險。

安裝與啓用

本插件以 DSH bundle 形式加載,不依賴自編的安裝命令字符串。官方 README 給出的本機驗證方式是:將插件目錄鏈接到當前 profile 的 node_modules,然後重啓 DSH。

ln -s /path/to/dsh-my-agent-preset \
  ~/.dsh/profiles/web/node_modules/dsh-my-agent-preset

將 /path/to/dsh-my-agent-preset 換成你本機插件源碼或發佈包所在目錄。重啓後打開 設置 → 自定義預設模式;若未出現,在 DSH 日誌中檢索 my-agent-preset 相關報錯。

SkillHub 等社區目錄與 DeepSeek / 幻方無官方從屬關係;在目錄頁可通過自然語言讓 DSH 讀取並安裝 Zkbnfcnb/dsh-my-agent-preset,具體步驟以你環境中的 DSH 插件安裝流程爲準。安裝前建議瀏覽源碼與許可證,並認清插件與 DSH 進程同權限運行。

典型用法

從零配一個只讀分析預設

經過上面的安裝步驟後,按 README「快速開始」流程操作:

  1. 打開 設置 → 自定義預設模式,點「+ 新建預設模式」。
  2. 填寫名稱與描述。
  3. 寫人設;不確定時先用「追加」。
  4. 勾選任務需要的技能(需要專業技能時再勾,否則保持空白)。
  5. 工具範圍選「僅白名單」,只勾選 read、grep 等只讀工具。
  6. 按需勾選運行時上下文;不確定可先全選。
  7. 保存並啓用,新建會話時選擇該預設。
  8. 在「運行時自檢」確認工具面與技能符合預期。

presets.json 中與只讀場景接近的字段示例如下(摘自 README,id 需以你界面爲準):

{
  "id": "custom-1a2b3c4d",
  "name": "只讀分析模式",
  "description": "只閱讀與總結,不修改任何文件",
  "instructions": "你是一名只讀分析助手……",
  "instructionMode": "append",
  "includeWorkspace": true,
  "contexts": ["sandbox:policy", "approval:policy", "harness:source"],
  "skills": ["pdf"],
  "tools": { "mode": "allow", "names": ["read", "grep"] },
  "enabled": true,
  "order": 0
}

與會話橋接插件組合(可選)

若已安裝 dsh-session-bridge,創建子會話時可通過 agentPreset 指定預設的穩定 id,讓編排會話只保留橋接工具,執行會話只加載工種技能。session_bridge_create 示例如下(agentPreset 需換成你卡片上的 id,且預設須爲啓用狀態):

await session_bridge_create({
  title: '文檔:產品白皮書初稿',
  cwd: '/root/work/docs',
  agentPreset: 'custom-1a2b3c4d',
  prompt: [
    '任務:根據 outline.md 寫白皮書初稿。',
    '要求:3000 字左右;先列三級提綱再寫;只輸出文檔,不做其他事。',
  ].join('\n'),
  waitForReply: true,
})

不傳 agentPreset 時,子會話會繼承調用方預設——編排預設若未改,子會話也只會調度、不會幹活,這是 README 強調的常見問題。

適用場景與注意

適合誰:需要在同一臺 DSH 上切換「寫文檔 / 做幻燈片 / 只讀審查 / 調度多會話」等不同 Agent 形態的用戶;希望用白名單收窄工具與技能、減少 token 重複開銷的團隊。

能力邊界:預設只決定模型能看見什麼、能調用什麼;執行後是否允許,仍由 DSH 沙箱與審批策略決定。高級選項裏的「強制屏蔽」運行時必需項依賴實現細節,DSH 升級後可能失效,屏蔽當前工作區會讓模型失去位置感,頁面會給出警告。

權限與安全:插件與 DSH 同進程權限。給預設開放 write、bash 即具備相應能力;審閱類場景應堅持最小工具集。安裝與升級前請閱讀 GitHub 倉庫 源碼與 已知限制 小節。

結尾

dsh-my-agent-preset 把 Agent 從「每次臨時拼提示詞」改成「預設即配置」:人設、上下文快照、技能與工具可按任務複用、複製與導出元數據。若你正在 SkillHub 或 GitHub 上挑選 DSH 擴展,不妨從目錄頁瞭解簡介,再按 README 的鏈接方式安裝,在設置裏建第一張預設卡片驗證工具自檢是否符合預期。

  • 目錄頁:https://www.skillhub.cn/plugins/Zkbnfcnb/dsh-my-agent-preset
  • GitHub:https://github.com/Zkbnfcnb/dsh-my-agent-preset
羽毛球分组比赛记分
小程序二维码

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

小夜