前言¶
DeepSeek Harness (DSH) 支持通过插件扩展能力。dsh-workflows 是一个可安装的 bundle,用于管理保存的 JavaScript 工作流定义、受监督的后台运行、保留的检查机制、斜杠命令以及 Web 仪表板。它补充了基础 Harness 的能力,使开发者能够将工作流脚本持久化,并在后台执行与监控。
核心功能¶
该插件提供以下核心能力:
* 保存的工作流:支持将 JavaScript 工作流定义保存为文件,包含元数据和脚本体。
* 后台运行与监督:支持在后台启动工作流,提供运行时的监督与监控。
* 保留的检查:保留运行过程的检查点与日志,便于事后复盘。
* Web 仪表板:提供可视化的 Web 界面来管理定义与查看运行状态。
* 斜杠命令:提供 /create-workflow、/workflows 和 /workflow 等命令行快捷入口。
* 兼容性评估:内置 MIT 许可的兼容性评估器,用于安全回放。
环境要求与安装¶
在安装之前,需要确认运行环境。
前置条件:
* Node.js 版本需满足 ^22.19.0 || >=24.0.0。
* 需要使用 pnpm@11.7.0。
安装步骤:
1. 确保服务用户的 PATH 中包含 pnpm。
2. 执行安装命令。该命令会添加一个依赖和一个 bundle 层,无需手动构建。
dsh plugin --profile web add @zaalipro/dsh-workflows@0.1.0-rc.5
dsh plugin --profile headless add @zaalipro/dsh-workflows@0.1.0-rc.5
兼容性说明:
该插件编译并针对官方 DeepSeek Harness 0.1.2-rc.1 进行了测试。Stock Harness 0.1.0-rc.8 及后续未发布的版本目前不受支持。
典型用法¶
安装完成后,可以通过斜杠命令进行操作。
创建工作流:
使用 /create-workflow [detail] 命令进行创作。该命令会收集意图,生成 JavaScript 代码,并进行一次模拟验证后保存。元数据以 JSON 数据形式存储,脚本为纯 JavaScript。
启动工作流:
使用 /workflow <name> [<json-args>] 或其生成的别名启动保存的定义。
* /workflow review-changes:直接启动名为 review-changes 的定义。
* /workflow review-changes {"arg": "val"}:传递参数启动。
* 命令返回后,工作流会在后台启动,提示使用 /workflows 监控。
查看仪表板:
* 在 Web 模式下,使用 /workflows 打开 Web 仪表板,查看所有保存的定义、实时运行状态、阶段详情、日志与终端结果。
* 使用 /workflow(不带参数)打开保存定义的选择器。
运行机制与限制¶
了解插件的运行机制有助于正确处理异常情况。
运行存储:
工作流定义通常位于以下位置之一:
1. 配置的 bundled root。
2. Git 项目的 .dsh/workflows 目录(或 Session cwd)。
3. $DSH_HOME/workflows。
运行数据存储在 $DSH_HOME/workflow-runs 目录下。
恢复与中断:
* 暂停与恢复:仅支持同进程下的暂停与恢复。
* 进程死亡:如果进程意外死亡,活跃的运行记录会被转换为不可恢复的 Interrupted 状态。此时无法 Resume 或 Save,仅保留检查数据。
* 重放机制:只有在评估器进入静止状态后的检查点才具备回放权威。外部副作用(如非提交的调用)在重放时会再次执行,因此幂等性很重要。
参数与作用域:
* 用户作用域(save_scope: "user")无需 Session cwd 即可工作。
* 结构化 agent() 参数必须符合特定格式(minItems/maxItems 非负整数,且不能与 oneOf 混用)。
生态与资源¶
该插件由 zaalipro 维护,遵循 MIT 许可证。