DeepSeek Harness 插件:dsh-actions

前言

在開發流程中,反覆執行的操作並不少見:跑測試、生成文檔、數據同步、Lint 檢查、觸發 CI 構建、發佈上線。這些操作通常需要在不同平臺間切換——在終端執行命令,去瀏覽器看 CI 狀態,再登錄另一個系統完成發佈。

如果交給 Agent 處理,成本往往更高:查文檔、編寫、運行、調試,多輪循環才能跑通一次,而下一個會話又需要從頭開始,消耗大量 Token。

DSH Actions 插件的目標是解決這一痛點。它允許你編寫一份 actions.json 配置,這份定義既是右側欄面板的點擊入口,也是 Agent 可直接調用的結構化工具。通過同一份定義,人可以在面板中一鍵運行,Agent 可以在對話中調用,且兩者共用同一個審批閘門和運行狀態。

插件定位

dsh-actions 是 DeepSeek Harness (DSH) 的一個 Web 插件,由開發者 pure-craft 維護。

它的核心價值在於:一份配置,兩個面。
- 對人:右側欄面板的快捷入口。
- 對 Agent:工具調用接口。

插件開源,許可證爲 MIT,目前擁有 4 個 Stars。

核心功能

根據已覈實的事實,該插件具備以下能力:

  1. 右側欄面板入口:在 DSH Web 的開始頁提供 Actions 卡片,點擊即可執行任務。
  2. Agent 工具調用:Agent 擁有四個專用工具,用於發現、執行、取消和配置任務:
    • actions_query:查詢任務列表。
    • actions_run:執行任務。
    • actions_cancel:取消正在運行的任務。
    • actions_configure:在會話層註冊任務(需人工批准)。
  3. 實時流式輸出:運行結果在 run tab 工作區實時出現,狀態一目瞭然。
  4. 三層設計:任務定義分爲全局層、工作區層和會話層,按優先級合併。同名任務上層覆蓋下層。
  5. 審批閘門機制:標記爲高危的任務,無論人點還是 Agent 調用,都需要經過顯式確認纔會啓動。
  6. 同一 actions 定義:一份 JSON 配置文件同時服務於人和 Agent,無需同步兩套定義。

安裝與啓用

在安裝前,請確保你的 DSH 版本滿足要求:

# DSH 版本需 >= 0.1.7-alpha.1

使用官方插件命令進行安裝:

dsh plugin --profile web add dsh-actions

安裝完成後,重啓 DSH Web,即可在右側欄的「開始」頁看到 Actions 卡片。

典型用法

1. 配置任務

在工作區根目錄創建 .dsh/actions.json 文件。這是配置的唯一來源,不依賴其他格式。

{
  "version": "1.0.0",
  "actions": [
    {
      "label": "check",
      "command": "pnpm check",
      "detail": "類型檢查 + lint + 全部測試"
    }
  ]
}

2. 人與 Agent 的使用差異

使用方 發現方式 執行方式
人 右側欄面板點擊 點擊運行,填寫參數(如有),查看流式輸出
Agent actions_query 工具 調用 actions_run,根據返回結果交互

3. 會話層任務

如果某個任務僅在當前會話有意義,可以讓 Agent 通過 actions_configure 註冊。這屬於高危操作,Agent 會請求人工批准。

4. 多倉庫場景

如果會話工作區包含多個倉庫根目錄,Agent 可以在會話層配置 folders 字段,動態加載指定目錄下的 .dsh/actions.json。例如:

{
  "version": "1.0.0",
  "folders": ["frontend", "services/api"],
  "actions": []
}

適用場景與注意

適用場景

  • 策展散落腳本:將 npm scripts、Makefile 或分散的腳本入口統一固化到 .dsh/actions.json。
  • 打通 CI/流水線:將平臺 API 封裝成 Action,實現觸發構建、查詢狀態、參數化發佈。
  • 會話草稿本:在當前會話中臨時固化任務,用完即棄,優質任務可提升至文件層。

權限與安全注意

執行權限根據調用入口不同而有所區分,這是該插件的重要安全特性:

  1. 手動運行(面板):

    • 以 DSH Host 所屬用戶的本機權限執行。
    • 繞過 DSH 文件沙箱,但不會繞過操作系統權限。
    • 因此,請將倉庫中的 Action 視爲可執行的本機代碼。
  2. Agent 調用 (actions_run):

    • 默認繼承會話沙箱(需配合 approval: never)。
    • 若使用 approval: agent/always,Agent 需通過審批閘門,批准後將獲得一次性的 dangerous-full-access 權限,以本機用戶權限執行,不改變會話權限。
    • 權限不足時,可通過 retryRunId + justification 申請提權重試。
  3. 審批閘門的性質:

    • Web 面板及其同源插件代碼屬於同一受信任客戶端邊界。
    • 審批是防誤觸確認機制,不是抵禦已被攻陷客戶端的安全隔離。

結語

DSH Actions 插件通過三層設計(全局/工作區/會話)和統一的定義文件,解決了人與 Agent 在重複性操作上的割裂問題。它降低了固化複雜操作的門檻,減少了 Agent 在調試上的 Token 消耗,並提供了基於入口的細粒度權限控制。

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

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

小夜