智能体工作流

agentflow
分类编程
作者Agentic Awesome Skills 社区
许可MIT
评分4.50/5
使用10.9K

AgentFlow

概述

AgentFlow 将你现有的看板转化为一个完全自主的 AI 开发流水线。它无需构建自定义的编排基础设施,而是将你的项目管理工具(Asana, GitHub Projects, Linear)视为一个分布式状态机——任务在不同阶段之间移动,AI Agent 通过评论读取和写入状态,而人类则通过原有的 UI 进行干预。

其结果是:你可以通过手机实现完整的流水线可观测性,拥有免费的崩溃恢复能力(状态存储在项目管理工具中而非内存中),并且可以通过拖动卡片在任何时间点进行人工覆盖。

何时使用此技能

  • 需要在完整的开发生命周期(构建、评审、测试、集成)中编排多个 Claude Code Worker 时。
  • 在 AI 评审 AI 生成的代码之前,需要确定性的质量门禁(tsc/eslint/tests)时。
  • 希望通过看板或手机获得完整的流水线可见性时。
  • 在运行需要自主任务调度和成本追踪的个人或团队项目时。
  • 需要能够在会话重启后依然生存的防崩溃编排时。

核心概念

7 阶段看板流水线

任务流转路径:待办 (Backlog) $\rightarrow$ 研究 (Research) $\rightarrow$ 构建 (Build) $\rightarrow$ 评审 (Review) $\rightarrow$ 测试 (Test) $\rightarrow$ 集成 (Integrate) $\rightarrow$ 完成 (Done)。每个阶段都有特定的门禁。看板本身就是编排层——无需独立数据库,无需消息队列,无需自定义基础设施。

无状态编排器

由 crontab 驱动的单次扫描每 15 分钟运行一次。无需守护进程,不依赖会话。如果崩溃,下一次扫描将从上次中断的地方继续,因为所有状态都存储在项目管理工具中。

确定性优先于概率性

在任何 AI 评审之前先运行硬门禁(tsc + eslint + 测试),以近乎零的成本拦截约 60% 的问题。AI 评审作为第二层在之后进行。

对抗性评审

由另一个不同的 AI Agent 评审代码,且必须列出 3 个错误点后才能决定通过。这防止了形式主义的直接批准。

传递优先级调度

优先构建能解锁最多下游工作的任务,自动计算关键路径。

技能 / 命令

/spec-to-board

SPEC.md 分解为看板上的原子任务,并映射依赖关系。

/sdlc-orchestrate

根据传递优先级和冲突检测将任务分发给 Worker。以 crontab 扫描形式运行。

/sdlc-worker --slot <N>

在终端槽位中运行一个 Worker,负责领取任务、构建代码并创建 PR。可并行运行 3-4 个 Worker。

/sdlc-health

实时流水线状态仪表盘,显示每个任务的当前阶段、分配的 Agent、重试次数和累计成本。

/sdlc-stop

优雅停机:活跃的 Worker 完成当前任务,未开始的任务返回待办列表。

分步指南

1. 编写规格说明书

为你的项目创建一个 SPEC.md,描述你想要构建的内容。

2. 分解为任务

code
claude -p "/spec-to-board"

这将读取你的 SPEC.md,将其分解为原子任务,映射依赖关系,并在你的看板上创建这些任务。

3. 启动 Worker

打开 3-4 个终端窗口,每个窗口作为一个 Worker 槽位:

bash
# 终端 2 — 构建者
claude -p "/sdlc-worker --slot T2"

终端 3 — 构建者 (Builder)

claude -p "/sdlc-worker --slot T3"

终端 4 — 评审员 (Reviewer)

claude -p "/sdlc-worker --slot T4"

终端 5 — 测试员 (Tester)

claude -p "/sdlc-worker --slot T5"
code
### 4. 启动编排器 (Orchestrator)
bash

添加到 crontab(每 15 分钟运行一次)

crontab -e

添加: */15 * * * * ~/.claude/sdlc/agentflow-cron.sh >> /tmp/agentflow-orchestrate.log 2>&1

code
### 5. 监控与干预

在手机上打开你的 Kanban 看板。观察任务在流水线中的流动。将任何卡片拖动到“Needs Human”即可进行干预。运行 /sdlc-health 可查看终端仪表盘。

6. 停止流水线

claude -p "/sdlc-stop"
code
## 质量门禁 (Quality Gates)

每个阶段在晋级前必须通过特定的门禁:

  • 构建 $\rightarrow$ 评审tsc + eslint + npm test 必须全部通过(确定性检查)
  • 评审 $\rightarrow$ 测试:对抗性评审员必须列出 3 个问题后方可通过
  • 测试 $\rightarrow$ 集成:新文件的测试覆盖率需达到 80%
  • 集成 $\rightarrow$ 完成:合并后在 main 分支运行全量测试集;失败则自动回滚

成本追踪

按任务追踪成本并设置阶段上限(Sonnet 默认值):

  • 研究 (Research): ~$0.10
  • 构建 (Build): ~$0.40
  • 评审 (Review): ~$0.10
  • 测试 (Test): ~$0.05
  • 集成 (Integrate): ~$0.03

自动防护栏:在 $3/$8 时发出警告,在 $10/$20 (Sonnet/Opus) 时强制停止并升级至人工处理。

安全与恢复

  • 自动回滚:集成失败将触发 git revert(创建新提交,绝不强制推送)
  • 阻塞任务:尝试 2 次失败后,任务将升级至人工评审
  • 僵死 Agent 检测:每 5 分钟发送一次心跳,超时 10 分钟后重新分配
  • 优雅停机/sdlc-stop 会排空 Worker,并将未开始的任务返回到待办列表 (Backlog)
  • 范围蔓延检测:将 PR 的 diff 文件与预测的文件列表进行对比
  • 规格漂移检测:通过 SHA-256 哈希对比捕捉 Sprint 中途的需求变更

安装

bash

克隆仓库

git clone https://github.com/UrRhb/agentflow.git

将 skills 和 prompts 复制到你的 Claude Code 配置中

cp -r agentflow/skills/* ~/.claude/skills/ cp -r agentflow/prompts/* ~/.claude/sdlc/prompts/ cp agentflow/conventions.md ~/.claude/sdlc/conventions.md
code
或者作为 Claude Code 插件安装:
bash /plugin marketplace add UrRhb/agentflow /plugin install agentflow ``

最佳实践

  • 建议:在运行 /spec-to-board 之前编写清晰的 SPEC.md
  • 建议:典型项目建议启动 3-4 个 Worker
  • 建议:通过 Kanban 看板进行监控,必要时将卡片拖至“Needs Human”
  • 建议:定期审阅 LEARNINGS.md —— 它记录了常见的失败模式
  • 避免:跳过确定性质量门禁 —— 它们能以极低成本拦截大多数问题
  • 避免:强制推送 (Force-push) 到 main 分支 —— AgentFlow 使用 git revert 以确保安全
  • 避免:运行超过项目并行能力支持的 Worker 数量

故障排除

问题:Worker 似乎卡死或失效

症状: 任务卡片 15 分钟以上没有移动,且没有新评论 解决方案: 编排器会通过心跳检测僵死 Agent 并在 10 分钟后重新分配。如果问题仍然存在,运行
/sdlc-health 检查状态,并手动将卡片拖回 Backlog。

问题:触发成本防护栏

症状: 任务被移至“Needs Human”并带有
COST:CRITICAL 标签 解决方案: 查看任务的评论线程以了解累积的上下文。决定是增加预算、简化任务,还是将其拆分为更小的部分。

问题:合并后集成测试失败

症状: 任务从 main 分支被自动回滚 解决方案: 自动回滚保留了 ma 稳定性。请在评论中检查任务的重试上下文,其中记录了已尝试的操作及失败原因。下一位被分配的执行者将使用此上下文。

相关技能

  • @brainstorming - 在使用 AgentFlow 之前,用于设计你的 SPEC.md
  • @writing-plans - 补充规范编写,用于任务分解
  • @test-driven-development - 与 AgentFlow 的质量门禁(quality gates)配合良好
  • @subagent-driven-development` - 多智能体协作的另一种方法

附加资源

局限性

  • 仅在任务明确符合上述范围时使用此技能。
  • 不要将输出视为针对特定环境的验证、测试或专家评审的替代方案。
  • 如果缺失必要的输入、权限、安全边界或成功标准,请停止并请求澄清。