跳转到主要内容
动态工作流让 Qoder CLI 可以在后台运行结构化的多 Agent 流程。它适合需要分阶段执行、大规模并发、交叉验证,或需要复用固定流程的任务。 动态工作流会把编排计划放到一段 JavaScript 脚本里。脚本决定启动哪些子 Agent、如何划分阶段、如何合并中间结果,以及最终把什么结果返回到当前会话。

什么时候使用动态工作流

当任务明显大于一次 Agent 调用时,可以使用动态工作流:仓库审计、深度研究、迁移规划、发版检查、跨文件扫描,或需要多个独立视角后再汇总的评审流程。

动态工作流能做什么

运行动态工作流

你可以用自然语言让 Qoder CLI 使用动态工作流:
也可以直接按名称调用已保存或内置的动态工作流:
Qoder CLI 可能会为当前请求创建一个动态工作流,也可能在已有动态工作流与任务匹配时直接使用它。动态生成的工作流在执行前会展示计划;你可以运行、查看原始脚本、带反馈拒绝,或取消。 动态工作流会作为后台任务运行。启动后,Qoder CLI 会返回运行 ID,并在任务界面中持续展示执行进度。

查看动态工作流

在 TUI 中使用 /workflows 打开动态工作流任务面板。
你可以在面板中查看运行中和已完成的动态工作流,检查状态、阶段、Agent、日志、输出路径、错误和最终结果。/tasks 也会和其他后台任务一起显示动态工作流任务。 动态工作流运行时,可以在详情页查看单个 Agent。如果某个 Agent 仍可控制,可以在详情页跳过或重试这个 Agent。

保存动态工作流

保存后的动态工作流可以通过名称复用。Qoder CLI 会从以下位置发现动态工作流: 当名称冲突时,项目级动态工作流的优先级高于插件级和内置动态工作流。团队共享流程适合放在项目级目录;不应该提交到仓库的个人流程适合放在用户级目录。 保存的动态工作流是一个以 meta 导出对象开头的 JavaScript 文件。元信息用于告诉 Qoder CLI 动态工作流的名称、说明、阶段,以及可选的使用场景或输入 schema。
保存到 .qoder/workflows/repo-audit.js 后,可以这样让 Qoder CLI 使用它:
保存的动态工作流可以通过 args 接收输入。目标路径、issue ID、研究问题、选项,或任何每次运行不同但不应该修改脚本的值,都适合通过 args 传入。

动态工作流如何运行

动态工作流脚本是普通 JavaScript。脚本可以使用 agent()parallel()pipeline()phase()log()workflow()argsbudget 等辅助函数。
  1. Qoder CLI 为任务选择已保存的动态工作流,或创建新的动态工作流。
  2. 如果需要审查,Qoder CLI 会展示动态工作流名称、阶段、脚本和运行选项。
  3. 动态工作流作为后台任务启动。
  4. 脚本启动子 Agent,并把它们归入不同阶段。
  5. 中间结果保存在动态工作流运行时中,不会填满主会话上下文。
  6. 最终结果写入动态工作流运行输出,并回到当前会话中总结。
动态工作流运行过程中的脚本、manifest、journal、transcript 和输出会写入 .qoder/sessions 下的当前会话目录。

权限与安全

动态工作流可能会运行多个子 Agent,并较快消耗 token。验证大型或高成本动态工作流时,建议先从较小范围开始。 动态工作流脚本不能直接访问 shell、文件系统、网络、Node.js API 或 MCP 服务。所有副作用都通过子 Agent 发生,而子 Agent 仍然会经过 Qoder CLI 的工具、权限、Hooks 和沙箱设置。 使用 权限 控制动态工作流子 Agent 能做什么;使用 Hooks 在工具调用前后执行组织级策略。