名称: adw-design 描述: 指导创建AI开发者工作流(ADWs),结合确定性编排代码与非确定性代理。用于构建自动化开发管道、设计AFK代理系统或实施PITER框架时。 允许工具: 读取、grep、glob
ADW 设计
创建AI开发者工作流的指南 - 可复用的代理工作流,结合确定性代码与非确定性代理。
何时使用
- 构建自动化开发管道
- 设计AFK(离开键盘)代理系统
- 实施PITER框架
- 创建微代理架构
- 设置GitHub问题→PR自动化
什么是ADW?
ADW是代理编码的最高组合层次:
ADW = 编排器 + 微代理 + 触发器 + 可观测性
组件:
- 编排器 - 协调工作流的Python/TypeScript代码
- 微代理 - 具有单一职责的专业化Claude Code调用
- 触发器 - Webhooks、cron或手动调用
- 可观测性 - 日志记录、问题评论、跟踪
ADW设计流程
步骤 1: 定义工作流
映射阶段:
输入 → 分类 → 分支 → 规划 → 实施 → 审查
需要回答的问题:
- 输入源是什么?(GitHub问题、Notion、Slack)
- 有哪些阶段?(分类、规划、实施、审查)
- 输出是什么?(PR、部署、报告)
步骤 2: 设计微代理
为每个阶段定义一个专业代理:
| 阶段 | 代理 | 职责 | 模型 |
|---|---|---|---|
| 分类 | issue_classifier |
确定工作类型 | Haiku |
| 分支 | branch_generator |
创建分支名称 | Haiku |
| 规划 | sdlc_planner |
生成实施计划 | Sonnet |
| 构建 | sdlc_implementer |
实施解决方案 | Sonnet |
| 提交 | committer |
创建语义提交 | Haiku |
| PR | pr_creator |
创建拉取请求 | Haiku |
步骤 3: 创建模板
每个代理需要一个斜杠命令:
/classify-issue- 分类问题类型/generate-branch-name- 创建分支名称/chore,/bug,/feature- 生成计划/implement- 执行计划/commit-with-agent- 创建提交/pull-request- 创建PR
步骤 4: 构建编排器
编排器协调所有内容:
# 伪代码结构
def run_adw(issue_number, adw_id):
issue = fetch_issue(issue_number)
issue_type = execute_agent("classifier", issue)
branch = execute_agent("branch_generator", issue)
plan = execute_agent("planner", issue_type, issue)
execute_agent("implementer", plan)
execute_agent("pr_creator", branch, issue, plan)
步骤 5: 添加可观测性
跟踪所有内容:
- ADW ID: 用于相关性的8字符UUID
- 问题评论: 进度更新
- 日志: 每个代理的结构化输出
- 指标: 成功率、持续时间
ADW目录结构
adws/
├── main_workflow.py # 主编排器
├── agent.py # Claude Code集成
├── data_types.py # 类型定义
├── github.py # GitHub操作
├── trigger_cron.py # Cron触发器
├── trigger_webhook.py # Webhook触发器
├── health_check.py # 环境验证
└── README.md # 文档
模型选择策略
匹配模型到任务:
| 任务复杂性 | 模型 | 示例 |
|---|---|---|
| 简单决策 | Haiku | 分类、分支命名 |
| 格式化 | Haiku | 提交消息、PR正文 |
| 推理 | Sonnet | 计划生成 |
| 复杂编码 | Sonnet/Opus | 实施 |
ADW质量检查清单
部署前:
- [ ] 每个代理有单一职责
- [ ] 模型选择匹配任务复杂性
- [ ] ADW ID跟踪已实施
- [ ] 每个阶段发布问题评论
- [ ] 错误处理有意义的消息
- [ ] 日志捕获所有代理输出
- [ ] 健康检查验证环境
- [ ] 模板独立测试
- [ ] 端到端工作流测试
常见模式
代理执行器模式
def execute_agent(agent_name, *args):
prompt = build_prompt(agent_name, args)
result = subprocess.run([
"claude", "-p", prompt,
"--model", get_model(agent_name),
"--output-format", "stream-json"
])
log_result(agent_name, result)
return parse_result(result)
问题评论模式
def update_issue(issue_number, adw_id, agent_name, message):
comment = f"[{adw_id}_{agent_name}] {message}"
gh_issue_comment(issue_number, comment)
错误处理模式
def check_error(result, phase):
if not result.success:
update_issue(issue, adw_id, phase, f"ERROR: {result.error}")
sys.exit(1)
应避免的反模式
单体代理
坏: 一个代理做所有事
好: 具有单一职责的微代理
缺乏可观测性
坏: 无日志记录、无问题评论
好: ADW ID跟踪、结构化日志、进度评论
错误的模型选择
坏: 使用Opus进行分支命名
好: 匹配模型到任务复杂性
无错误处理
坏: 静默失败
好: 错误评论、优雅降级
相关记忆文件
- @piter-framework.md - AFK代理的PITER元素
- @adw-anatomy.md - ADW结构和模式
- @outloop-checklist.md - 部署准备就绪
- @inloop-vs-outloop.md - 何时使用ADW
版本历史
- v1.0.0 (2025-12-26): 初始发布
最后更新
日期: 2025-12-26 模型: claude-opus-4-5-20251101