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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye