mcpField
W
workflow-builder

workflow-builder

github.com/alirezarezvaniAgent 工作流28.9k119 次安装2 天前更新
代码仓库

关于 workflow-builder

为 Claude Code 的 Workflow 工具编写可运行工作流脚本的技能,使用 JavaScript 编排在独立上下文中执行的子 Agent。适合需要固定拓扑、多阶段或可恢复执行的重复任务,并提供方案推荐、脚手架和校验工具。

主要功能

  1. 01根据任务推荐工作流拓扑
  2. 02生成工作流脚本起始模板
  3. 03校验脚本规则与语法约束
  4. 04编排并行、流水线和分阶段任务
  5. 05支持暂停、恢复与失败重试

适用场景

  1. 01并行处理一批相似任务
  2. 02编排多阶段代码审查流程
  3. 03为长时间运行的工作流配置恢复能力

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alirezarezvani/claude-skills --skill workflow-builder

安装后在 Claude Code 中输入/workflow-builder确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
assets/examples/
pr-triage.js
assets/templates/
fan-out.js
loop-until-budget.js
pipeline.js
expected_outputs/
intake_pr_review.json
scaffold_pipeline.js
validate_sample.txt
references/
api_reference.md
decision_and_intake_guide.md
orchestration_patterns.md
scripts/
scaffold_workflow.py
validate_workflow.py
workflow_intake.py

详细介绍

工作流构建器

为 Claude Code 的 Workflow 工具编写可运行的工作流脚本:以确定性方式编排多个 Agent 的文件(.js),通过纯 JavaScript 控制流将工作分配给使用全新上下文的子 Agent。只有叶节点上的 agent() 调用会消耗令牌,因此主会话始终保持干净,整个运行也可恢复。

每次会话都必须从信息收集开始(不可协商)

在提出或编写任何工作流之前,先进行信息收集。不要跳过这一步,直接编写代码。

  1. 询问用户想要什么类型的工作流。 使用以下开场问题:

    • 你想自动化哪种可重复的多步骤任务?
    • 单个子 Agent 一次执行的工作单元是什么?
    • 有多少个工作单元——是已知列表,还是需要通过循环来发现?
    • 后续步骤需要同时获得所有先前结果,还是每个项目可以单独流转?
    • 是否有步骤需要返回结构化数据(判定结果、列表、分数)?
    • 大致需要多少令牌/多深入?
  2. 如果用户描述含糊,不要停滞不前。 运行推荐引擎,将已有信息转化为 1–2 个具体方案,然后附上推理过程一并呈现:

    python scripts/workflow_intake.py --task "their description" \
      --units unknown --stages unknown --needs-all unknown --structured unknown
    

    引擎会返回推荐的拓扑结构(扇出/流水线/循环/屏障/评审组)、模型选择、预算限制,以及每项选择的一句话理由。请以“我会这样构建,原因如下”来呈现——绝不要让用户重新回答他们已经回答了一半的问题。

  3. 在编写文件之前,向用户确认方案结构(拓扑结构 + 阶段 + 并行还是流水线)。这是唯一的审批关卡。

完整的问题框架、含糊输入的处理指南和推荐示例,请参阅 references/decision_and_intake_guide.md。

判断工作流是否适合此任务

场景使用
单个子 Agent,只执行一项任务普通 Agent 工具
可复用的流程,由 Claude 动态选择步骤Skill
多个子 Agent,采用固定拓扑结构,具备确定性且可恢复Workflow ✓

当任务可以并行处理或分为多个阶段、必须可复现、耗时较长而可能中途失败(因此需要恢复),或适合将每个步骤隔离在独立上下文窗口中时,工作流才值得付出成本。对于一次性任务,直接使用 Claude 即可。

构建 → 验证 → 运行循环

  1. 根据已确认的拓扑结构搭建起始模板:
    python scripts/scaffold_workflow.py --topology pipeline --name pr-triage \
      --description "Triage open PRs" > .claude/workflows/pr-triage.js
    
  2. 编辑文件:先写 meta 块(纯字面量,且必须是第一条语句),然后使用注入的全局对象编写异步主体——agent()、pipeline()、parallel()、phase()、log()、budget、args、workflow()。完整接口请参阅 references/api_reference.md;可复制粘贴的模式请参阅 references/orchestration_patterns.md。
  3. 运行前进行验证——检查会导致解析器致命错误的问题:
    python scripts/validate_workflow.py .claude/workflows/pr-triage.js
    
  4. 运行工作流:通过 export CLAUDE_CODE_WORKFLOWS=1 启用该功能,将文件保存到 .claude/workflows/ 下,然后使用 /workflows 启动并实时监看。按 P 暂停/恢复,按 X 跳过某个子 Agent。失败的 Agent 会自动重试。

硬性规则(验证器会强制执行)

  • meta 必须是纯字面量,且是第一条语句——其中不能有变量、展开语法、模板字符串或函数调用。
  • 禁止非确定性操作: Date.now()、Math.random() 和不带参数的 new Date() 会导致恢复失败——通过 args 传入时间戳。
  • 编排器中禁止使用文件系统/Node API(require、fs、process、网络)——此类操作应放在 agent() 提示词中。
  • parallel() 接受的是 thunk(() => agent(...)),而不是普通的 Promise。除非某个阶段需要完整的先前结果集,否则默认使用 pipeline()。
  • 为每个开放式循环添加保护,使用计数器或 budget.remaining() 检查——不受保护的循环会触及 1000 个 Agent 的上限。
  • 过滤已跳过/失败的 Agent:results.filter(Boolean)。

工具

  • scripts/workflow_intake.py — 推荐引擎(根据模糊输入给出拓扑、模型、预算和理由)。
  • scripts/validate_workflow.py — 针对上述规则的标准库检查工具;按行号显示 PASS / WARN / FAIL。
  • scripts/scaffold_workflow.py — 为任意拓扑生成 .js 起始文件。
  • assets/templates/ — 扇出、流水线、循环直至预算耗尽的起始模板。assets/examples/ — 完整的可运行工作流。

所有脚本均可使用 --sample(不带参数)和 --help 运行。

评论

支持 Markdown