DeepSeek Harness 插件:dsh-greet-plugin

DeepSeek Harness(DSH)的設計理念是“一切皆插件”。在開發智能體或工作流時,如果需要模型具備特定的工具能力,開發者需要自行編寫插件。dsh-greet-plugin 是一個最小化的示例插件,它向 Harness 註冊了一個 greet 工具,演示了純 JavaScript 插件的編寫方式。

插件簡介

這是一個由 imiss1314520 維護的插件,許可證爲 MIT。它通過純 JavaScript 實現,不依賴構建步驟,適合作爲開發自定義工具的起點。

核心功能

  • 註冊 greet 工具
  • 純 JavaScript,無構建步驟
  • 通過 package.json 聲明配置層
  • 通過 cordis.patch.yml 向組合中插入插件

安裝與啓用

使用官方命令從 GitHub 安裝:

dsh plugin --profile myprofile add github:<用戶名>/<倉庫名>

安裝後,先驗證配置層是否生效,再啓動 Harness:

dsh --profile myprofile --dump-config   # 輸出裏應出現 "# == dsh-greet-plugin" 這一層
dsh --profile myprofile

典型用法

在會話中輸入:

Use the greet tool to greet Ada.

模型將調用 greet 工具,並收到工具結果 Hello, Ada!。

組成與實現

該插件由三個核心文件組成:

  • package.json:聲明 dsh.bundle.patch,以及運行時依賴。
  • cordis.patch.yml:貢獻配置層,向組合中插入一行插件,按包名引用本包。
  • index.js:插件入口,導出 name、inject、apply,在 apply 中通過 defineTool 註冊工具。

inject = ['tools'] 確保在工具註冊表就緒後再調用 apply。defineTool 依據 parameters 校驗參數,execute 返回 output.schema 聲明的規範值,output.render 再把它轉成面向模型的內容。

如何修改

若要將其改造成自己的插件:

  1. 改 package.json 的 name,例如 dsh-my-plugin。這個包名纔是別人安裝和引用時用的名字,與倉庫名無關。
  2. 改 cordis.patch.yml 中插件行的 name,必須與上面的包名完全一致。
  3. 改 index.js 的 name 導出、工具名、參數與返回值。
  4. 需要用戶可配置的項時,導出一個 Schemastery schema 作爲 Config,並把默認值寫在 schema 裏。

注意事項

  • 不要引入構建步驟。 dsh plugin add github:... 拉取的是源碼而不是構建產物:包若需要 build,使用者安裝會失敗,還得在 profile 的 pnpm-workspace.yaml 中寫 allowBuilds 授權。保持純 JavaScript 就沒有這個問題。
  • 運行時依賴寫進 dependencies;別人通過 git 或 npm 安裝時,pnpm 會自動裝上它們。
  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。

發佈與發現

  • 發佈到 npm:pnpm publish。
  • 讓別人找到這個插件:給 GitHub 倉庫加上 dsh-plugin 話題。

相關鏈接

  • 插件目錄:https://www.skillhub.cn/plugins/imiss1314520/dsh-greet-plugin
  • GitHub 倉庫:https://github.com/imiss1314520/dsh-greet-plugin
羽毛球分组比赛记分
小程序二维码

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

小夜