dsh-capability-gateway:按需暴露 Skills 與 MCP 的統一網關

前言

在 DeepSeek Harness(DSH)裏接足夠多的 MCP 服務或 Skills 之後,常見兩類問題:模型可見的工具目錄不斷膨脹,擠佔真正任務相關的上下文;同時所有能力在提示裏「平鋪」展示,模型反而更容易選錯工具。傳統做法是儘量精簡安裝列表,或手動關掉部分暴露——但能力本身仍可能需要,只是不應常駐在模型面前。

下面介紹社區插件 dsh-capability-gateway(維護者 xiaomao361,分類:聯網工具)。它把用戶勾選納入管理的 Skills 與 MCP 工具從模型默認目錄裏收起來,改由單一工具 capability 按意圖搜索、讀 schema 或說明後再調用。插件同時提供 Host 與 Client 能力;不代理遠程流量、不額外架設服務端、也不把數據發往外部。

這是什麼

dsh-capability-gateway 的定位是:在 DSH 中,對已 opt-in 的第三方 Skills 與 MCP 工具提供按需網關(README 英文摘要:One on-demand gateway for opt-in third-party skills and MCP tools in DeepSeek Harness)。當前 package 版本爲 0.6.0,許可證 MIT,依賴 DSH 引擎 0.2.1-rc.5。

與「全部工具長期掛在 system prompt」相比,網關側的變化包括:受管的 Skills 離開模型面向的 skill 目錄(仍可由用戶觸發,經 capability 加載);受管 MCP 保留原生執行鏈與權限校驗,但工具 schema 不再直接進入提示;模型側主要只看到一個 capability 工具,另在 system prompt 中加入有上限的能力名稱索引(僅名字,無描述與 schema)。

核心功能

暴露模型與 PTC 行爲

  • Managed skills:從模型可見 skill 目錄移除,經 capability 的 load 等動作按需加載說明與目錄。
  • Managed MCP:mcp__<server>__* 類工具 schema 從提示中移除;call 仍走原生權限與 guard 鏈。
  • PTC mode:保留 run_code 與 capability SDK 綁定;受管 MCP 聲明省略,搜索/描述後再經 tools.capability 調用。
  • promptIndex / promptHint:可配置是否在提示中加入能力名索引與「能力在 capability 之後」的指引;索引字符上限默認 2000(配置範圍 200–6000)。

capability 工具動作

Action 用途
search 按目標、短關鍵詞或名稱找候選
load 返回某 skill 的說明與 base 目錄
describe 返回單個 MCP 工具的 JSON Schema
call 調用 MCP 工具;先按 schema 校驗參數
status 網關是否啓用及管理範圍概況
inventory 緊湊統計、根目錄、覆蓋與異常摘要
history / stats 當前會話路由元數據與窗口統計
report 導出週報 Markdown

搜索策略偏保守:無匹配時返回 not_found 並指向原生路徑,網關不會自行調用上游工具。

別名與中文檢索

中英文描述詞面不一致時,可通過配置別名縮小 gap,例如:

skillKeywords:
  release-notes: [發佈說明, 變更記錄]

或通過 keywordPacks 引用 JSON 包;Skill 也可在 SKILL.md 中用 keywords: 聲明別名。無效 pack 不阻斷啓動,狀態與設置頁會標出覆蓋不完整項。

本地日誌與隱私

本地 journal 記錄搜索與調用的元數據(動作、目標名、路由、結果、錯誤碼、耗時、候選名與排名、插件版本等),不記錄查詢原文、工具參數、結果正文或錯誤體。默認目錄爲 $DSH_HOME/data/capability-gateway(配置鍵 logDir)。設置頁可查看用量統計與運行時記錄,並導出報告。

安裝與啓用

在 DSH profile 目錄下安裝包並註冊 bundle(命令與片段來自官方 README):

# from your DSH profile directory
pnpm add link:/path/to/dsh-capability-gateway   # or: pnpm add dsh-capability-gateway

在 ~/.dsh/profiles/<profile>/package.json 中註冊,使插件層生效:

{
  "dependencies": { "dsh-capability-gateway": "link:/path/to/dsh-capability-gateway" },
  "dsh": { "profile": { "bundles": [
    "@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-capability-gateway"
  ] } }
}

安裝後打開 Settings → Built-in plugins → Capability gateway → 配置,選擇 MCP 服務與 skill 目錄,覈對增刪後保存;Host 會持久化並重載配置。

也可手動 patch(注意:id 爲 capability-gateway 的 patch 會整體替換 config,需重複寫出所有需要的鍵):

# ~/.dsh/profiles/<profile>/cordis.patch.yml
- id: capability-gateway
  config:
    skillRoots:
      - '~/.agents/skills'
    mcpServers:
      - my-mcp-server

包默認不管理任何 skill/MCP,範圍由安裝後的配置決定。重載插件或重啓 DSH 後,設置頁路徑爲 Settings → Built-in plugins → Capability gateway。

主要配置項

Key 默認 含義
enabled true false 時插件不生效,恢復原生暴露
skillRoots [] 由網關提供服務的 skill 目錄
mcpServers [] 受管 MCP 服務名
wrapSkills / wrapMcp true 分別開關 skill / MCP 包裝
mcpKeywords / skillKeywords {} 別名映射
keywordPacks [] 按序合併的 JSON 別名包
promptHint / promptIndex true 提示指引與名稱索引
promptIndexChars 2000 索引字符上限
maxResults 5 搜索返回候選數(1–10)
logDir $DSH_HOME/data/capability-gateway 日誌目錄

設置頁還提供範圍選擇、Search lab(與模型同一套排序邏輯,不執行 MCP、不寫 journal)、效果與診斷等 workflow;併發編輯會被拒絕,保存失敗時應先確認當前生效範圍再重試。

典型用法

模型或開發者側的可復現路徑可以概括爲:

  1. 在配置中把需要的 skillRoots 與 mcpServers 納入管理並重載。
  2. 用 capability 的 search 按任務意圖或名稱找候選(設置頁 Search lab 可先行驗證排序與匹配原因)。
  3. 對 skill 使用 load 拉取說明;對 MCP 先用 describe 看 schema,再 call 傳參。
  4. 需要排查時用 status、inventory;需要會話級統計時用 history / stats;需要彙總導出時用 report。

示例別名配置見上文 YAML;完整動作表見 README 中 The capability tool 一節。

適用場景與注意

適合:已安裝較多 MCP 與 Skills、希望壓縮模型側工具定義體積,又希望保留按需調用能力的使用者;需要在中文 query 與英文 skill 描述之間建立別名映射的團隊。

注意:

  • 插件在當前 DSH 進程權限下運行,安裝前應自行審閱 GitHub 源碼 與 MIT 許可證;社區目錄 SkillHub 插件頁 與 DeepSeek / 幻方無官方從屬關係,並非官方應用商店。
  • 未納入 skillRoots / mcpServers 的能力仍走 DSH 原生暴露路徑;網關關閉(enabled: false)時行爲與未安裝包裝時一致。
  • 受管 MCP 的執行仍受 DSH 原生權限鏈約束;網關只改變「如何進入模型上下文」,不替代安全策略。

結尾

dsh-capability-gateway 用單一 capability 入口把 opt-in 的 Skills 與 MCP 從常駐工具目錄改爲按需發現與調用,並輔以名稱索引、別名與本地元數據日誌,緩解工具目錄膨脹與誤選問題。進一步瞭解與 issue 反饋見 GitHub;瀏覽社區條目見 SkillHub 目錄頁。

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

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

小夜