前言¶
在開發流程中,反覆執行的操作並不少見:跑測試、生成文檔、數據同步、Lint 檢查、觸發 CI 構建、發佈上線。這些操作通常需要在不同平臺間切換——在終端執行命令,去瀏覽器看 CI 狀態,再登錄另一個系統完成發佈。
如果交給 Agent 處理,成本往往更高:查文檔、編寫、運行、調試,多輪循環才能跑通一次,而下一個會話又需要從頭開始,消耗大量 Token。
DSH Actions 插件的目標是解決這一痛點。它允許你編寫一份 actions.json 配置,這份定義既是右側欄面板的點擊入口,也是 Agent 可直接調用的結構化工具。通過同一份定義,人可以在面板中一鍵運行,Agent 可以在對話中調用,且兩者共用同一個審批閘門和運行狀態。
插件定位¶
dsh-actions 是 DeepSeek Harness (DSH) 的一個 Web 插件,由開發者 pure-craft 維護。
它的核心價值在於:一份配置,兩個面。
- 對人:右側欄面板的快捷入口。
- 對 Agent:工具調用接口。
插件開源,許可證爲 MIT,目前擁有 4 個 Stars。
核心功能¶
根據已覈實的事實,該插件具備以下能力:
- 右側欄面板入口:在 DSH Web 的開始頁提供 Actions 卡片,點擊即可執行任務。
- Agent 工具調用:Agent 擁有四個專用工具,用於發現、執行、取消和配置任務:
actions_query:查詢任務列表。actions_run:執行任務。actions_cancel:取消正在運行的任務。actions_configure:在會話層註冊任務(需人工批准)。
- 實時流式輸出:運行結果在
run tab工作區實時出現,狀態一目瞭然。 - 三層設計:任務定義分爲全局層、工作區層和會話層,按優先級合併。同名任務上層覆蓋下層。
- 審批閘門機制:標記爲高危的任務,無論人點還是 Agent 調用,都需要經過顯式確認纔會啓動。
- 同一 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,實現觸發構建、查詢狀態、參數化發佈。
- 會話草稿本:在當前會話中臨時固化任務,用完即棄,優質任務可提升至文件層。
權限與安全注意¶
執行權限根據調用入口不同而有所區分,這是該插件的重要安全特性:
-
手動運行(面板):
- 以 DSH Host 所屬用戶的本機權限執行。
- 繞過 DSH 文件沙箱,但不會繞過操作系統權限。
- 因此,請將倉庫中的 Action 視爲可執行的本機代碼。
-
Agent 調用 (
actions_run):- 默認繼承會話沙箱(需配合
approval: never)。 - 若使用
approval: agent/always,Agent 需通過審批閘門,批准後將獲得一次性的dangerous-full-access權限,以本機用戶權限執行,不改變會話權限。 - 權限不足時,可通過
retryRunId+justification申請提權重試。
- 默認繼承會話沙箱(需配合
-
審批閘門的性質:
- Web 面板及其同源插件代碼屬於同一受信任客戶端邊界。
- 審批是防誤觸確認機制,不是抵禦已被攻陷客戶端的安全隔離。
結語¶
DSH Actions 插件通過三層設計(全局/工作區/會話)和統一的定義文件,解決了人與 Agent 在重複性操作上的割裂問題。它降低了固化複雜操作的門檻,減少了 Agent 在調試上的 Token 消耗,並提供了基於入口的細粒度權限控制。
- GitHub 倉庫:https://github.com/pure-craft/dsh-actions
- 插件目錄:https://www.skillhub.cn/plugins/pure-craft/dsh-actions