DSH 提供了官方的 workflow 工具,用于处理大规模多智能体编排,但缺乏现成的模板库。dsh-workflow-templates 插件内置了 12 个可复用的 workflow 编排脚本模板,并提供 list、search、run、validate 四个面向模型的工具,以及模板格式的静态校验能力。该插件对齐官方 tool-workflow 契约,但不强制限制官方合法脚本(例如允许 return 1 等计算型返回),旨在降低编排脚本的编写门槛。
核心功能¶
该插件提供四个核心工具,用于模板的管理、检索与调用。
- wf_template_list:列出模板目录,支持按领域(
domain)或标签(tag)过滤,输出 Markdown 格式的模板清单。 - wf_template_search:按关键词搜索,匹配名称、标签、描述、领域及参数名,并标注命中依据。
- wf_template_run:读取模板内容,生成调用官方
workflow工具的三参数起点(meta、script、args)及参数填充引导。它仅输出调用起点,不自动执行模板脚本。 - wf_template_validate:检查模板格式合法性,包括 META 的必填字段、结尾
return表达式结构、脚本钩子使用情况等,对齐官方 tool-workflow 契约。
安装与配置¶
插件以 Cordis 插件包组织。安装依赖并构建后,通过 cordis.yml 挂载。
1. 安装依赖与构建¶
npm install
npm run build # tsc → lib/
2. 挂载插件¶
在 DSH 的配置文件(如 cordis.yml)中添加以下条目。插件支持两种挂载模式:
- 已发布态(推荐):使用裸包名。
- insert:
- id: workflow-templates
name: 'dsh-workflow-templates'
config:
workflowToolName: workflow
- 开发态:使用相对路径直挂源码(仅限本地开发/测试)。
- insert:
- id: workflow-templates
name: './src/index.ts'
config:
workflowToolName: workflow
3. 配置项¶
| 键 | 默认值 | 说明 |
|---|---|---|
workflowToolName |
workflow |
官方 workflow 工具名称,需与宿主配置中的 toolName 保持一致,否则可见性探测会误报。 |
templatesDir |
包内 templates/ |
覆盖模板目录的绝对路径。 |
使用方法¶
1. 列出与搜索¶
使用 wf_template_list 查看所有模板,或使用 wf_template_search 查找特定关键词。
- 按领域过滤:
wf_template_list domain=security - 按标签过滤:
wf_template_list tag=release - 关键词搜索:
wf_template_search docker
2. 生成调用起点¶
当需要执行 workflow 时,使用 wf_template_run。它不直接运行脚本,而是输出符合官方 workflow 工具规范的调用起点(meta/script/args),供模型或用户进一步执行。
// 示例:调用 wf_template_run 生成 workflow 起点
// wf_template_run pr-deep-review
3. 校验模板¶
在修改或编写模板前,使用 wf_template_validate 进行静态检查。它会报错(E)或警告(W),例如缺少必填的 name/description,或使用了非官方钩子。
// 示例:校验模板格式
// wf_template_validate templates/security/dep-vuln-sweep.js
模板契约与校验规则¶
插件内置校验器,确保模板符合官方 tool-workflow 契约,但不会比官方更严格。
- META 字段:
name和description必填。tags、args、phases为可选扩展,缺失仅警告。 - REQUIRED_REASON:可选字段,用于声明为何必须走官方
workflow工具执行,缺失仅警告。 - 脚本钩子:仅允许使用官方钩子(
agent/pipeline/parallel/phase/log)。禁止使用模块语句(import/export/require)。 - 结尾 Return:必须以
return <表达式>结尾,不做 JSON 字面量限制,允许计算型返回值。
注意事项与权限¶
- 使用边界:仅在模型/用户显式要求 workflow 或大规模多智能体编排时使用。简单的委派任务不应使用 workflow 工具。
- 执行机制:插件不自动执行模板脚本,仅输出调用起点。执行权在官方
workflow工具。 - 权限范围:插件仅具备读取模板与渲染输出的权限,不写入文件,不调用外部服务。
- 开发依赖:开发形态下依赖相邻的
dsh-src检出(使用link:依赖),需确保目录布局为<parent>/dsh-src。