前言¶
在开发流程中,反复执行的操作并不少见:跑测试、生成文档、数据同步、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