dsh_workflow

90Star1Fork2Issue1Watching

在 DSH 之上提供可命名、可持久、可后台的多 Agent Workflow 引擎,支持保存、暂停、重跑、续跑、生成与审计。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
License
MIT
分支
main
agent-orchestrationdeepseek-harnessdshdsh-plugindshtopicmulti-agentworkflow

安装

$ dsh plugin --profile web add github:icetomoyo/dsh_workflow

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 icetomoyo/dsh_workflow:先查看仓库 https://github.com/icetomoyo/dsh_workflow.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

在 DeepSeek Harness(DSH)原有 workflow 工具之上,加一层可命名、可保存、可暂停、可重跑、可审计的可复用 Workflow 引擎,把多 Agent 协作从一次性技巧变成可维护的工程资产。

核心能力

  • 运行已命名、已保存的多 Agent 工作流(项目级或个人级目录),或在对话中调用 /workflow <name>
  • 从自然语言需求"侦察-生成-运行"自动编排一个可复用的内联 workflow(scout-then-author)
  • 按快照重跑、按 effect cache 续跑、暂停/恢复/停止运行,并保留不可变胶囊用于事后追溯
  • 提供 parallel-investigationscoped-review(含 /workflow review 命令,自动捕获 Git diff)两个内置流程
  • 暴露三个 DSH 工具:workflow_list(发现)、run_workflow(执行/生成/内联)、workflow_manage(生命周期管理)
  • 用 QuickJS WebAssembly 隔离堆运行生成型脚本,仅通过 JSON 能力桥调用宿主,静态拒绝 import/process/文件/网络/计时器

技术实现

  • 语言: TypeScript(构建到 ESM lib/*.js
  • 关键依赖: quickjs-emscripten(受限脚本沙箱)、@deepseek-ai/cordis(插件注入)、@deepseek-ai/schemastery(配置 schema)
  • 架构模式: Cordis bundle patch — cordis.patch.yml 声明 dsh-external-workflow 节点;index.ts 导出 name + inject: ['subagents','tools'] + apply(ctx, config);运行时注册一条 /workflow 命令、三个 DSH 工具、System Prompt 段落,并通过 ctx.plugin(DynamicWorkflowService) 装载 service/engine/catalog/runtime/store 子模块
  • 入口文件: src/index.ts(已编译为 lib/index.js

适用场景

适合需要把多 Agent 协作流程沉淀下来反复使用的团队:在仓库里保存代码评审、并行调查、竞品对比等固定流程,避免每次重新提示"如何拆任务、如何并发、如何验证"。也适合需要把工作流跑成长任务或后台任务的开发者——插件默认返回 { runId, status, jobId },由 DSH 后台 jobs 托管,不会占用当前对话。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness0.0.1-rc.2compatibility.json 中 pin 的 commit;要求宿主装齐 Cordis、subagent、agent、commands、jobs、llm、session、tools、workflow、user-approval、user-questions、system-prompt 等 12 个 peer 包
Node.js22.19.0(也支持 >=24)来自 package.jsonengines 字段;trusted-local .ts 依赖 Node 22 的原生 erasable-syntax TypeScript
平台跨平台os/cpu 限制;纯 JS 代码 + WebAssembly 沙箱
原生模块quickjs-emscripten 0.32.0WASM 形态,打包时已含目标二进制,无需本地编译

安装方式

dsh plugin --profile web add github:icetomoyo/dsh_workflow

配置项

配置类型说明默认值
approvalMode枚举审批策略:never / generated-and-local(默认值,仅生成与本地可信流程走一次性授权) / alwaysgenerated-and-local
maxAgents自然数单 run 内允许的最大 Agent 数(部署上限)64
maxConcurrency自然数全局并发子 Agent 上限8
maxRetainedRuns自然数自动保留的最近终态 run 数量(活跃 run 永不被清理)500
fastProvider / fastModelProvider / fastModel / fastMaxTokens字符串/自然数轻量层模型路由(subagent 传输 + 模型供应商 + 模型 + 最大 token)spawn / 空 / 空 / 4096
balancedProvider / balancedModelProvider / balancedModel / balancedMaxTokens字符串/自然数平衡层模型路由spawn / 空 / 空 / 8192
deepProvider / deepModelProvider / deepModel / deepMaxTokens字符串/自然数深度层模型路由spawn / 空 / 空 / 16384
readOnlyAllowedTools字符串数组只读模式的白名单(与父 Agent 实时可见工具取交集)read, read_image, glob, grep, lsp, skill, web_search
availableTools / availableMcp / availableSkills字符串数组部署能力清单,用于胶囊预检;超出清单的 requirement 会被拒绝而非悄悄降级[]
projectDirectory / personalDirectory / runDirectory路径字符串项目级 catalog、个人级 catalog、持久运行产物目录.dsh/workflows / workflows / .dsh/workflow-runs
listToolName / runToolName / manageToolName字符串三个 DSH 工具的名字workflow_list / run_workflow / workflow_manage
maxCapsuleBytes自然数单个 workflow 文件的准入大小上限512000
maxCatalogEntries自然数向调用方返回的目录条目上限200
maxResultChars自然数渲染给用户的结果摘要字符上限(完整 JSON 仍在 run.json50000
scriptSyncTimeoutMs / scriptWallTimeoutMs毫秒沙箱脚本的同步切片上限与墙钟上限10000 / 3600000
defaultProvider / synthesisProvider字符串默认与综合阶段使用的子 Agent 传输spawn / spawn
readOnlyDeniedTools字符串数组已弃用的差集字段,请改用 readOnlyAllowedTools[]

完整字段与"部署适配器"(registerIsolationAdapter / registerVerificationAdapter / registerDispatchAdapter)的注册方式见 docs/CONFIGURATION.md

常见问题

Q: 这个插件会接管 DSH 自带的 workflow 工具吗?

A: 不会。两个并存:DSH 自带工具仍负责"这一次把若干工作并行跑完",本插件负责"把这种过程命名、持久、复用、治理"。它以 Cordis bundle patch 形式注入而非替换核心。

Q: 安装后默认能跑吗?需要额外配置吗?

A: 可以。开箱即用——配置 schema 提供全部默认值,常见调整项是 approvalModemaxAgentsmaxConcurrencyfast/balanced/deep 三层模型路由,或在 readOnlyAllowedTools 里追加要保留的只读工具。

Q: 内置的代码评审流程怎么用?

A: 在会话中输入 /workflow review。插件会调用 git diff 捕获当前变更(默认对比 main/master/develop,都失败则对比未提交内容),并启动 scoped-review 流程。参数:--risk low|medium|high(路由风险)、--requirement "..."(评审约束)、--test-evidence "..."(已有测试证据)、--wait(同步等待)、-- 后追加评审焦点。

Q: 生成的脚本安全吗?能访问我的文件吗?

A: 默认不能。生成型脚本运行在 QuickJS WebAssembly 独立堆中,只通过 JSON 能力桥调用宿主;静态策略拒绝 import/require/process/文件/Shell/网络/计时器/非确定性 API。同步时长、墙钟、内存、栈都有上限。 trusted-local 形态继承宿主 Node 权限,每次执行都需显式确认——不要把不可信第三方源码标为 trusted-local

Q: 如何暂停、恢复、重跑一个运行?

A: 用 /workflow 命令:pause|resume|stop 控制当前活动 run;rerun 用当前保存版本重跑,resume-run 用不可变胶囊快照续跑(命中 effect cache 的任务会跳过)。模型侧用 workflow_manage 工具的对应 action。

Q: 持久化数据存在哪里?怎么清理?

A: 运行产物默认在项目根的 .dsh/workflow-runs/<run-id>/(含 run.jsonevents.jsonlworkflow.workflow.jsonresults/artifacts/)。命名 workflow 在 .dsh/workflows/(项目)或 $DSH_HOME/workflows/(个人)。可用 /workflow prune 按数量或时间窗预览/删除;超过 maxRetainedRuns 时终态 run 也会自动清理。

Q: 卸载插件会留下数据吗?

A: 命令与工具会停止注册,但已经写入项目的目录仍保留。重新安装插件可以继续访问历史 run;想彻底清空请删除 .dsh/workflow-runs/.dsh/workflows/ 目录。

Q: 我能写自己的 workflow 让其他人复用吗?

A: 可以。把 .workflow.json(含 manifest + source + intent + requires + provenance)放进项目 .dsh/workflows/ 或个人目录;文件名不匹配 manifest.name、未知字段、版本不兼容、符号链接逃逸、超大文件都会被预检拒绝。生成型内联 workflow 可通过 /workflow create <需求> 让插件自动产出。

上手难度

进阶 — 需要理解 DSH 子 Agent、内置工具命名、模型路由等概念,但所有配置有默认值,按 README.md 跑一次 /workflow list/workflow parallel-investigation 即可看到效果。

已知问题与限制

  • trusted-local 形态的 .ts 文件依赖 Node 22 原生 erasable-syntax TypeScript 与 Node 模块缓存,修改后需重启 DSH;若需要 enum、装饰器等 transform-only 语法或热重载,请发布为 .mjs/.js
  • 嵌套 workflow 仅支持一层;尝试两层会被 WorkflowControlError 立即拒绝。
  • /workflow create <request> 与自由文本请求不接受 --wait——它们的执行归当前 Agent 接管,必须等当前 turn 结束。
  • DSH 当前子 Agent seam 不原生支持 existing-agent targetper-agent effort、通用 worktree;相关请求需要部署注册 registerDispatchAdapter/registerIsolationAdapter,未注册时显式失败。
  • 内置验证覆盖"已执行的读工具证据 / Git 工作区变更 / 每个 required path 的前后指纹 / final-text 后置条件";非 Git 工作区或外部权威证据由 registerVerificationAdapter 补充。
  • 只有生成型 capsule 的 run 才能保存不可变脚本快照用于按 run id 重跑;纯函数 trusted-package/trusted-local 的 run 不能从 run id 再保存。
  • dsh.workflow v1 capsule 与 KodaX capsule 不做 wire 兼容;外部 KodaX capsule 不会被误执行。
  • DSH Web 左侧工作区在"手动排序"且当前 workspace 会话超过 5 条时会折叠其余会话;新 workflow 会话已归属对应工作区,可点击"展开其余 N 个会话"或切换到"最近更新"排序。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/icetomoyo/dsh_workflow)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录