description: "面向模型的 workflow 工具:运行扇出 subagent 的 JavaScript 编排脚本,供选择或配置模型驱动编排的用户与维护者阅读。"
English | 中文
dsh-tool-workflow 让模型运行 JavaScript 编排脚本,把工作委派给多个 subagent,并返回脚本的最终 JSON 值。仅当用户明确要求工作流或大型多 agent 编排时使用;一两项委派应使用普通 subagent 调用。父级轮次会等待所有委派任务结束;取消或异常完成会返回错误,而不是部分成功。部署方可以通过 toolName 重命名工具,并通过 maxResultChars 限制渲染结果文本。
workflow 工具运行由模型编写的编排脚本,把工作扇出到多个 subagent,并返回脚本的最终 JSON 值。仅当用户明确要求工作流或大型多 agent 编排时使用——例如跨多个文件的审计、一次迁移、多角度研究;一两项委派时优先使用普通 subagent 调用。
模型提交三个参数:meta(必需的身份数据:name、description,以及可选的 whenToUse 与 phases)、script(必需的纯 JavaScript 脚本体——不含 export const meta 语句;工具描述携带完整的编写约定)与 args(可选 JSON 对象,作为全局变量 args 向脚本公开;裸列表应包装到字段中,使协议 schema 如实表达形态)。
成功返回规范包络 { runId, agentsStarted, result },向模型渲染为 workflow "<name>" completed (<count> agent<optional-s>).,后接 Return value: 与美化打印的 JSON。无法启动的工作流——脚本解析或 meta 校验失败——返回模型可以修正的错误。取消与执行失败返回 Error: workflow run was cancelled 或 Error: workflow run failed: <error>;部分输出绝不会被报告为成功。
脚本运行期间,父级轮次会等待:工具启动运行、等待其结果,并始终 dispose(资源释放)它,因此脚本及其子 agent 在每条路径上完全停稳——包括从父级步骤中止信号桥接而来的取消。模型只看到最终结果,永远不会看到中间子 agent 消息;子 agent 自己的工作不会进入父级对话。
| 字段 | 默认值 | 含义 |
|---|---|---|
toolName |
workflow |
要注册的面向模型工具名称。 |
maxResultChars |
50000 |
渲染结果上限;更长的 JSON 会被截断并附上提示。 |
生成的配置目录是每个受支持字段的穷尽式真源。
当工具级契约不够用时阅读以下页面。它们从共享工作流模型逐步进入引擎与可比的委派工具。
在该插件的注册作用域内,每个父级请求都会收到下方的工作流指导。作用域工具限制可以隐藏 schema,而不移除这段独立注册的指导。
Use the <toolName> tool ONLY when the user explicitly asks for a workflow or for large multi-agent orchestration: you write a JavaScript script (the tool description documents the exact format) that fans work out across many subagents with phases and structured results. For one or two delegations, prefer plain subagent calls.
插件启用期间,每个请求都会产生少量固定的指导 token 开销。
只要插件作用域与指导文本不变,前缀就保持稳定。启用或 dispose(资源释放)可能会使从该提示词段起的缓存复用失效。
工具可见时,已生成的默认 workflow schema 包含完整的 JavaScript 钩子与元数据约定;toolName 可以重命名该定义,模型会提交脚本、元数据与可选 args。
工具可见时,每个请求都会产生较大的固定 schema token 开销。
只要 toolName、定义与可见性不变,前缀就保持稳定。重命名、插件生命周期或作用域限制可能会使从该 schema 起的缓存复用失效。
由模型编写的完整脚本、元数据与 args 会保留在 assistant 工具调用中。成功结果精确为 workflow "<name>" completed (<count> agent<optional-s>).、换行、Return value:、换行,以及美化打印且依赖数据的 JSON;达到上限时,会在新行添加 … [truncated: <omitted> more characters]。失败结果精确为 Error: workflow run was cancelled(可以追加后缀 (<error>))、Error: workflow run failed: <error-or-unknown error> 或防御性的 Error: workflow run ended abnormally (<reason>);没有所属 agent 的调用变为 Error: workflow tool requires a calling agent (exec.agent was undefined)。中间子 agent 消息会被省略。
调用 token 可能很多,并会保留到压缩(compaction)为止。结果渲染受 maxResultChars 限制;子模型 token 与父级保留的上下文相互独立。
仅追加;新增可见内容位于可复用请求前缀之后,不会使现有 KV Cache 条目失效。
这些限制说明该工具尚未支持什么。它们是当前约束,不是任务积压。
args 必须是对象,Native 结果文本有界——调用方把顶层数组/标量包装到字段中;规范工作流结果保持完整,超过 maxResultChars 的 JSON 会在面向模型的投影中截断,而不是存储在检索句柄背后。