agency-orchestrator 0.3.2 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.en.md +539 -0
  2. package/README.md +391 -256
  3. package/dist/cli/compose.d.ts +4 -2
  4. package/dist/cli/compose.js +35 -39
  5. package/dist/cli/demo.d.ts +8 -0
  6. package/dist/cli/demo.js +301 -0
  7. package/dist/cli.js +47 -10
  8. package/dist/connectors/claude-code.d.ts +11 -0
  9. package/dist/connectors/claude-code.js +23 -0
  10. package/dist/connectors/cli-base.d.ts +16 -0
  11. package/dist/connectors/cli-base.js +53 -0
  12. package/dist/connectors/codex-cli.d.ts +11 -0
  13. package/dist/connectors/codex-cli.js +19 -0
  14. package/dist/connectors/copilot-cli.d.ts +11 -0
  15. package/dist/connectors/copilot-cli.js +19 -0
  16. package/dist/connectors/factory.d.ts +5 -0
  17. package/dist/connectors/factory.js +42 -0
  18. package/dist/connectors/gemini-cli.d.ts +11 -0
  19. package/dist/connectors/gemini-cli.js +19 -0
  20. package/dist/connectors/ollama.js +1 -1
  21. package/dist/connectors/openclaw-cli.d.ts +15 -0
  22. package/dist/connectors/openclaw-cli.js +37 -0
  23. package/dist/core/parser.js +7 -2
  24. package/dist/index.d.ts +3 -0
  25. package/dist/index.js +8 -27
  26. package/dist/mcp/server.d.ts +1 -0
  27. package/dist/mcp/server.js +288 -0
  28. package/dist/types.d.ts +2 -2
  29. package/examples/sample-code-for-review.md +43 -0
  30. package/examples/sample-prd.md +31 -0
  31. package/examples/sample-premise.txt +1 -0
  32. package/integrations/aider/CONVENTIONS.md +50 -0
  33. package/integrations/aider/README.md +112 -0
  34. package/integrations/antigravity/AGENTS.md +1 -1
  35. package/integrations/antigravity/README.md +2 -2
  36. package/integrations/claude-code/README.md +27 -11
  37. package/integrations/codex/README.md +2 -2
  38. package/integrations/codex/instructions.md +1 -1
  39. package/integrations/copilot/README.md +111 -0
  40. package/integrations/copilot/copilot-instructions.md +50 -0
  41. package/integrations/cursor/README.md +31 -3
  42. package/integrations/cursor/workflow-runner.mdc +1 -1
  43. package/integrations/deerflow/README.md +2 -2
  44. package/integrations/deerflow/SKILL.md +1 -1
  45. package/integrations/gemini-cli/GEMINI.md +1 -1
  46. package/integrations/gemini-cli/README.md +2 -2
  47. package/integrations/kiro/README.md +1 -1
  48. package/integrations/kiro/ao-workflow-runner.md +1 -1
  49. package/integrations/openclaw/README.md +2 -2
  50. package/integrations/opencode/README.md +72 -0
  51. package/integrations/opencode/instructions.md +50 -0
  52. package/integrations/qwen/README.md +104 -0
  53. package/integrations/qwen/ao-workflow-runner.md +50 -0
  54. package/integrations/trae/README.md +1 -1
  55. package/integrations/trae/ao-workflow-runner.md +1 -1
  56. package/integrations/windsurf/.windsurfrules +50 -0
  57. package/integrations/windsurf/README.md +110 -0
  58. package/package.json +26 -4
  59. package/workflows/ai-opinion-article.yaml +122 -0
  60. package/workflows/content-pipeline.yaml +1 -1
  61. package/workflows/department-collab/ceo-org-delegation.yaml +189 -0
  62. package/workflows/dev/pr-review.yaml +20 -10
  63. package/workflows/dev/tech-design-review.yaml +115 -0
  64. package/workflows/hr/interview-questions.yaml +108 -0
  65. package/workflows/legal/contract-review.yaml +106 -0
  66. package/workflows/marketing/competitor-analysis.yaml +99 -0
  67. package/workflows/marketing/seo-content-matrix.yaml +98 -0
  68. package/workflows/marketing/xiaohongshu-content.yaml +103 -0
  69. package/workflows/ops/weekly-report.yaml +90 -0
  70. package/workflows/product-review.yaml +56 -21
  71. package/workflows/story-creation.yaml +48 -33
  72. package/workflows/strategy/business-plan.yaml +122 -0
  73. package/README.zh-CN.md +0 -471
package/README.md CHANGED
@@ -1,107 +1,144 @@
1
1
  # Agency Orchestrator
2
2
 
3
- **English** | [中文](./README.zh-CN.md)
3
+ **中文** | [English](./README.en.md)
4
4
 
5
- > **Multi-agent workflows in YAML — 186 ready-to-use AI roles, zero code required**
5
+ > **你已经为 AI 付了月费。为什么跑个工作流还要再掏 API key 的钱?**
6
6
 
7
7
  [![CI](https://github.com/jnMetaCode/agency-orchestrator/actions/workflows/ci.yml/badge.svg)](https://github.com/jnMetaCode/agency-orchestrator/actions)
8
8
  [![npm version](https://img.shields.io/npm/v/agency-orchestrator)](https://www.npmjs.com/package/agency-orchestrator)
9
9
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](./LICENSE)
10
10
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](./CONTRIBUTING.md)
11
11
 
12
+ **186 个专业 AI 角色 · YAML 零代码编排 · 有会员就能跑 · 免 API key**
13
+
14
+ ```
15
+ Claude Max ✓ ChatGPT Plus ✓ GitHub Copilot ✓ Google 账号(免费)✓ Ollama ✓
16
+ ```
17
+
18
+ > 觉得有用?请点个 **Star** — 帮助更多人发现这个项目。
19
+
12
20
  ---
13
21
 
14
- ## What Is This?
22
+ ## 为什么需要 Agency Orchestrator
15
23
 
16
- A lightweight engine that orchestrates multiple AI agents to collaborate on complex tasks. You define the workflow in YAML — which roles, what tasks, what order — and the engine handles parallel execution, variable passing, retries, and output management.
24
+ **你遇到过这些问题吗?**
17
25
 
18
- **No Python. No framework boilerplate. Just YAML.**
26
+ - 想让多个 AI 角色协作,但 CrewAI/LangGraph 要写 Python,还要花时间定义每个角色
27
+ - 装好了框架,发现**还要去申请 API key、充值、管额度**
28
+ - 你明明已经有 Claude Max / ChatGPT Plus / Copilot 会员了,却用不上
29
+
30
+ **Agency Orchestrator 的答案:**
31
+
32
+ 写一个 YAML 文件 → 186 个专业角色自动协作 → 用你**已有的会员**直接跑。
33
+
34
+ > **行业首创:全球所有多智能体框架(CrewAI / LangGraph / AutoGen / Dify / n8n / Agency Swarm / MetaGPT / Google ADK / OpenAI Agents SDK)都要求 API key。只有 Agency Orchestrator 让你带着订阅来用。**
35
+
36
+ ### 30 秒对比
37
+
38
+ ```python
39
+ # CrewAI: ~50 行 Python,角色从零写,必须有 API key
40
+ researcher = Agent(role="PM", goal="...", backstory="...(你自己写)...")
41
+ task = Task(description="...", agent=researcher)
42
+ crew = Crew(agents=[researcher], tasks=[task])
43
+ crew.kickoff()
44
+ ```
19
45
 
20
46
  ```yaml
47
+ # Agency Orchestrator: 10 行 YAML,186 个角色开箱即用,无需 API key
21
48
  steps:
22
49
  - id: analyze
23
- role: "product/product-manager" # 186 built-in roles
24
- task: "Analyze this PRD:\n\n{{prd_content}}"
25
- output: requirements
26
-
27
- - id: tech_review
28
- role: "engineering/engineering-software-architect"
29
- task: "Evaluate feasibility:\n\n{{requirements}}"
30
- depends_on: [analyze] # auto DAG detection
50
+ role: "product/product-manager" # 现成角色,专业 prompt 已写好
51
+ task: "分析这个 PRD{{prd_content}}"
31
52
  ```
32
53
 
33
- ### vs CrewAI / LangGraph
54
+ | | CrewAI | LangGraph | AutoGen | **Agency Orchestrator** |
55
+ |---|--------|-----------|---------|---------------------|
56
+ | 语言 | Python | Python | Python | **YAML(零代码)** |
57
+ | 角色 | 自己写 | 自己写 | 自己写 | **186 个现成** |
58
+ | API key | 必须 | 必须 | 必须 | **6 种免 API key** |
59
+ | 依赖 | pip + LiteLLM + 几十个包 | pip + LangChain | pip + AutoGen | **npm + 2 个依赖** |
60
+ | 中文角色 | 无 | 无 | 无 | **186 个(44 个中国原创)** |
61
+ | 并行 | Manager 模式 | 手动建图 | 手动 | **DAG 自动检测** |
62
+ | 价格 | 开源 + $25-99/月云版 | 开源 | 开源 | **完全免费** |
34
63
 
35
- | | CrewAI | LangGraph | **Agency Orchestrator** |
36
- |---|--------|-----------|---------------------|
37
- | Language | Python | Python | **YAML (zero code)** |
38
- | Roles | Write your own | Write your own | **186 ready-to-use** |
39
- | Dependencies | pip + LiteLLM + dozens | pip + LangChain | **npm + 2 deps** |
40
- | Models | LiteLLM | LangChain | **Native: DeepSeek, Claude, OpenAI, Ollama** |
41
- | Parallelism | Manager mode | Manual graph | **Auto DAG detection** |
42
- | Branching | None | Manual | **Condition expressions** |
43
- | Loops | None | Manual | **Declarative loop/exit** |
44
- | Resume | None | Checkpointers | **Built-in `--resume` + `--from`** |
45
- | Price | Open-source + $25-99/mo cloud | Open-source | **Completely free** |
64
+ ## 3 步开始
46
65
 
47
- ## Quick Start
66
+ ### 1 步:5 秒体验
48
67
 
49
- ### Option A: Inside Claude Code / Cursor (No API key needed)
68
+ ```bash
69
+ npx agency-orchestrator demo
70
+ ```
50
71
 
51
- Your AI coding tool's built-in LLM serves as the execution engine:
72
+ 4 AI 角色协作写小说。无需安装、无需配置、无需 API key。
73
+
74
+ ### 第 2 步:用你的会员跑真实工作流
52
75
 
53
76
  ```bash
54
- git clone --depth 1 https://github.com/jnMetaCode/agency-agents-zh.git
55
- npx superpowers-zh
77
+ npm install agency-orchestrator
78
+ npx ao init # 下载 186 个 AI 角色
79
+
80
+ # 用你已有的 Claude Max 会员(无需 API key!)
81
+ npx ao run workflows/story-creation.yaml --input premise='一个时间旅行的故事'
56
82
  ```
57
83
 
58
- Then tell your AI: `Run workflows/story-creation.yaml with premise="A time travel story"`
84
+ 只需在 YAML 中写 `provider: "claude-code"`。没有 Claude?用 `gemini-cli`(Google 账号免费)、`copilot-cli`、`codex-cli` 都行。
59
85
 
60
- ### Option B: CLI Mode (API key required)
86
+ ### 3 步:在 AI 编程工具中直接说
61
87
 
62
88
  ```bash
63
- npm install agency-orchestrator
64
- npx ao init # download 186 AI roles
65
- export DEEPSEEK_API_KEY=your-key
66
- npx ao run workflows/story-creation.yaml --input premise="A time travel story"
89
+ ./scripts/install.sh # 一键安装到你的 AI 编程工具
90
+ ```
91
+
92
+ 然后在 Cursor / Claude Code / Copilot 中直接说:
93
+
67
94
  ```
95
+ 运行 workflows/story-creation.yaml,创意是"一个程序员在凌晨发现AI回复不该知道的事"
96
+ ```
97
+
98
+ AI 会自动解析 YAML → 加载角色 → 按 DAG 顺序执行 → 保存结果。
99
+
100
+ **支持 14 个 AI 编程工具**([集成指南](./integrations/)):Claude Code · GitHub Copilot · Cursor · Windsurf · Kiro · Trae · Aider · Gemini CLI · Codex CLI · OpenCode · Qwen Code · DeerFlow 2.0 · Antigravity · OpenClaw
68
101
 
69
- ## Demo: 4 AI Roles Write a Complete Story in 2 Minutes
102
+ ## 真实演示:4 AI 角色 2 分钟写出完整小说
70
103
 
71
104
  ```
72
- $ ao run workflows/story-creation.yaml -i "premise=A programmer discovers AI replies with things it shouldn't know"
105
+ $ ao run workflows/story-creation.yaml -i "premise=一个程序员在凌晨三点发现AI开始回复不该知道的事情"
73
106
 
74
- Workflow: Short Story Creation
75
- Steps: 4 | Concurrency: 2 | Model: deepseek-chat
107
+ 工作流: 短篇小说创作
108
+ 步骤数: 4 | 并发: 2 | 模型: deepseek-chat
76
109
  ──────────────────────────────────────────────────
77
110
 
78
- ── [1/4] story_structure (Narratologist) ──
79
- Done | 14.9s | 1,919 tokens
111
+ ── [1/4] story_structure (叙事学家) ──
112
+ 完成 | 14.9s | 1,919 tokens
113
+ 核心冲突:程序员与一个似乎拥有超越其代码权限的自主意识之间的认知对抗...
80
114
 
81
- ── [2/4] character_design (Psychologist) ── parallel
82
- Done | 65.5s | 4,016 tokens
115
+ ── [2/4] character_design (心理学家) ── 并行执行
116
+ 完成 | 65.5s | 4,016 tokens
117
+ 人物心理档案:林深——一个信奉逻辑与控制的资深AI工程师...
83
118
 
84
- ── [3/4] conflict_design (Narrative Designer) ── parallel
85
- Done | 65.5s | 3,607 tokens
119
+ ── [3/4] conflict_design (叙事设计师) ── 并行执行
120
+ 完成 | 65.5s | 3,607 tokens
121
+ 凌晨三点,屏幕的冷光映着陈默疲惫的脸...
86
122
 
87
- ── [4/4] write_story (Content Creator) ──
88
- Done | 33.9s | 5,330 tokens
123
+ ── [4/4] write_story (内容创作者) ──
124
+ 完成 | 33.9s | 5,330 tokens
125
+ 凌晨三点,调试日志的蓝色荧光是房间里唯一的光源。陈默灌下今晚第三杯黑咖啡...
89
126
 
90
127
  ==================================================
91
- Completed: 4/4 steps | 114.3s | 14,872 tokens
128
+ 完成: 4/4 | 114.3s | 14,872 tokens
92
129
  ==================================================
93
130
  ```
94
131
 
95
- Steps 2 and 3 run **in parallel** (auto-detected from DAG dependencies). Four specialized AI roles collaborate to produce a complete suspense short story.
132
+ 23 步**自动并行执行**(从 DAG 依赖关系检测)。4 个专业 AI 角色协作,产出一篇完整的悬疑短篇小说。
96
133
 
97
- ## How It Works
134
+ ## 工作原理
98
135
 
99
136
  ```yaml
100
- name: "Product Requirements Review"
137
+ name: "产品需求评审"
101
138
  agents_dir: "agency-agents-zh"
102
139
 
103
140
  llm:
104
- provider: "deepseek" # or: claude, openai, ollama
141
+ provider: "deepseek" # 免 API key: claude-code / gemini-cli / copilot-cli / codex-cli / ollama
105
142
  model: "deepseek-chat"
106
143
 
107
144
  concurrency: 2
@@ -113,300 +150,398 @@ inputs:
113
150
  steps:
114
151
  - id: analyze
115
152
  role: "product/product-manager"
116
- task: "Analyze this PRD and extract core requirements:\n\n{{prd_content}}"
153
+ task: "分析以下 PRD,提取核心需求:\n\n{{prd_content}}"
117
154
  output: requirements
118
155
 
119
156
  - id: tech_review
120
157
  role: "engineering/engineering-software-architect"
121
- task: "Evaluate technical feasibility:\n\n{{requirements}}"
158
+ task: "评估技术可行性:\n\n{{requirements}}"
122
159
  output: tech_report
123
160
  depends_on: [analyze]
124
161
 
125
162
  - id: design_review
126
163
  role: "design/design-ux-researcher"
127
- task: "Evaluate UX risks:\n\n{{requirements}}"
164
+ task: "评估用户体验风险:\n\n{{requirements}}"
128
165
  output: design_report
129
166
  depends_on: [analyze]
130
167
 
131
168
  - id: summary
132
169
  role: "product/product-manager"
133
- task: "Synthesize feedback:\n\n{{tech_report}}\n\n{{design_report}}"
170
+ task: "综合反馈输出结论:\n\n{{tech_report}}\n\n{{design_report}}"
134
171
  depends_on: [tech_review, design_review]
135
172
  ```
136
173
 
137
- The engine automatically:
138
- 1. Parses YAML → builds a **DAG** (directed acyclic graph)
139
- 2. Detects parallelism `tech_review` and `design_review` run concurrently
140
- 3. Passes outputs between steps via `{{variables}}`
141
- 4. Loads role definitions from [agency-agents-zh](https://github.com/jnMetaCode/agency-agents-zh) as system prompts
142
- 5. Retries on failure (exponential backoff)
143
- 6. Saves all outputs to `.ao-output/`
174
+ 引擎自动:
175
+
176
+ 1. 解析 YAML 构建 **DAG**(有向无环图)
177
+ 2. 检测并行 `tech_review` `design_review` 并发执行
178
+ 3. 通过 `{{变量}}` 在步骤间传递输出
179
+ 4. [agency-agents-zh](https://github.com/jnMetaCode/agency-agents-zh) 加载角色定义作为 system prompt
180
+ 5. 失败自动重试(指数退避)
181
+ 6. 保存所有输出到 `ao-output/`
144
182
 
145
183
  ```
146
184
  analyze ──→ tech_review ──→ summary
147
185
  └→ design_review ──┘
148
- (parallel)
186
+ (并行)
149
187
  ```
150
188
 
151
- ## Features
189
+ ## 9 种 LLM — 6 种不需要 API key
190
+
191
+ **你已经有这些会员了吧?直接就能跑:**
152
192
 
153
- ### AI Workflow Composer
193
+ | 你有... | YAML 配置 | 安装 CLI | 额外费用 |
194
+ |---------|----------|---------|---------|
195
+ | Claude Max/Pro($20/月) | `provider: "claude-code"` | `npm i -g @anthropic-ai/claude-code` | **不花钱** |
196
+ | Google 账号 | `provider: "gemini-cli"` | `npm i -g @google/gemini-cli` | **免费**(1000 次/天,Gemini 2.5 Pro) |
197
+ | GitHub Copilot($10/月) | `provider: "copilot-cli"` | `npm i -g @github/copilot` | **不花钱** |
198
+ | ChatGPT Plus/Pro($20/月) | `provider: "codex-cli"` | `npm i -g @openai/codex` | **不花钱** |
199
+ | OpenClaw 账号 | `provider: "openclaw-cli"` | `npm i -g openclaw` | **不花钱** |
200
+ | 一台电脑 | `provider: "ollama"` | [ollama.ai](https://ollama.ai) | **免费**(本地模型) |
154
201
 
155
- Describe your workflow in one sentence — AI selects the right roles, designs the DAG, and generates a ready-to-run YAML:
202
+ **也支持传统 API key:**
203
+
204
+ | 提供商 | 配置 | 环境变量 |
205
+ |--------|------|---------|
206
+ | DeepSeek | `provider: "deepseek"` | `DEEPSEEK_API_KEY` |
207
+ | Claude API | `provider: "claude"` | `ANTHROPIC_API_KEY` |
208
+ | OpenAI | `provider: "openai"` | `OPENAI_API_KEY` |
209
+
210
+ 所有 API 提供商支持自定义 `base_url` 和 `api_key`,兼容智谱、月之暗面等 OpenAI 兼容 API。
211
+
212
+ ## CLI 命令
156
213
 
157
214
  ```bash
158
- ao compose "PR code review covering security and performance"
215
+ ao demo # 零配置体验多智能体协作
216
+ ao init # 下载 186 个 AI 角色
217
+ ao init --workflow # 交互式创建工作流
218
+ ao compose "一句话描述" # AI 智能编排工作流
219
+ ao run <workflow.yaml> [选项] # 执行工作流
220
+ ao validate <workflow.yaml> # 校验(不执行)
221
+ ao plan <workflow.yaml> # 查看执行计划(DAG)
222
+ ao explain <workflow.yaml> # 用自然语言解释执行计划
223
+ ao roles # 列出所有角色
224
+ ao serve # 启动 MCP Server(供 Claude Code / Cursor 调用)
159
225
  ```
160
226
 
161
- The AI will:
162
- 1. Select matching roles from 186 available (e.g., Code Reviewer, Security Engineer, Performance Benchmarker)
163
- 2. Design the DAG (3-way parallel → summary)
164
- 3. Generate complete YAML with variable passing and task descriptions
165
- 4. Save to `workflows/` ready to `ao run`
227
+ | 参数 | 说明 |
228
+ |------|------|
229
+ | `--input key=value` | 传入输入变量 |
230
+ | `--input key=@file` | 从文件读取变量值 |
231
+ | `--output dir` | 输出目录(默认 `ao-output/`) |
232
+ | `--resume <dir\|last>` | 从上次运行恢复(加载已完成步骤的输出) |
233
+ | `--from <step-id>` | 配合 `--resume`,从指定步骤重新执行 |
234
+ | `--watch` | 实时终端进度显示 |
235
+ | `--quiet` | 静默模式 |
166
236
 
167
- Supports `--provider` and `--model` flags (default: DeepSeek).
237
+ ### AI 智能编排(Compose)
168
238
 
169
- ### Condition Branching
239
+ 一句话描述需求,AI 自动从 186 个角色中选角色、设计 DAG、生成完整 workflow YAML:
170
240
 
171
- ```yaml
172
- - id: tech_path
173
- role: "engineering/engineering-sre"
174
- task: "Technical evaluation: {{requirements}}"
175
- depends_on: [classify]
176
- condition: "{{job_type}} contains technical"
241
+ ```bash
242
+ ao compose "PR 代码审查,要覆盖安全和性能"
243
+ ```
177
244
 
178
- - id: biz_path
179
- role: "marketing/marketing-social-media-strategist"
180
- task: "Business evaluation: {{requirements}}"
181
- depends_on: [classify]
182
- condition: "{{job_type}} contains business"
245
+ AI 会自动:
246
+ 1. 从 186 角色中匹配出 Code Reviewer、Security Engineer、Performance Benchmarker
247
+ 2. 设计 DAG(三路并行 → 汇总)
248
+ 3. 生成带 `depends_on`、变量串联的完整 YAML
249
+ 4. 保存到 `workflows/` — 直接 `ao run` 就能跑
183
250
 
184
- - id: summary
185
- depends_on: [tech_path, biz_path]
186
- depends_on_mode: "any_completed" # proceeds when ANY upstream completes
187
- ```
251
+ 支持 `--provider` 和 `--model` 参数(默认使用 DeepSeek)。
188
252
 
189
- Supported operators: `contains`, `equals`, `not_contains`, `not_equals`.
253
+ ### 迭代优化(Resume)
190
254
 
191
- ### Loop Iteration
255
+ **问题**:`ao run` 跑完一轮后,所有步骤的输出都丢了。想基于叙事学家的结构重写小说,只能整个工作流从头跑。
192
256
 
193
- ```yaml
194
- - id: write_draft
195
- role: "marketing/marketing-content-creator"
196
- task: "Write article: {{topic}}"
197
- output: draft
257
+ **解决**:`--resume` 会自动加载上一轮所有步骤的输出,`--from` 指定从哪步开始重跑。之前的步骤直接用缓存结果,不会重新执行。
258
+
259
+ #### 完整示例:小说创作 4 轮迭代
198
260
 
199
- - id: brand_review
200
- role: "design/design-brand-guardian"
201
- task: "Review brand compliance: {{draft}}"
202
- output: review_result
203
- depends_on: [write_draft]
204
- loop:
205
- back_to: write_draft
206
- max_iterations: 3
207
- exit_condition: "{{review_result}} contains approved"
261
+ 以 `story-creation.yaml` 为例,DAG 结构如下:
262
+
263
+ ```
264
+ story_structure ──→ character_design ──→ write_story
265
+ └→ conflict_design ──┘
266
+ (并行)
267
+ ```
268
+
269
+ **第一轮:正常运行**
270
+
271
+ ```bash
272
+ ao run workflows/story-creation.yaml \
273
+ -i premise='一个程序员在凌晨三点发现AI开始回复不该知道的事情'
208
274
  ```
209
275
 
210
- When the exit condition is not met, execution loops back to `back_to`. The `{{_loop_iteration}}` variable tracks the current round.
276
+ 运行完后,每步输出保存在 `ao-output/` 下:
211
277
 
212
- ### Resume & Iterate
278
+ ```
279
+ ao-output/短篇小说创作-2026-03-24T14-30-00/
280
+ ├── summary.md ← 最终小说
281
+ ├── metadata.json ← 每步状态 + 变量映射
282
+ ├── steps/
283
+ │ ├── 1-story_structure.md ← 叙事学家的结构设计
284
+ │ ├── 2-character_design.md ← 心理学家的人物设定
285
+ │ ├── 3-conflict_design.md ← 叙事设计师的冲突场景
286
+ │ └── 4-write_story.md ← 最终小说
287
+ ```
213
288
 
214
- **Problem**: After `ao run` completes, all step outputs are lost. To tweak the final story, you'd have to re-run everything from scratch.
289
+ 打开这些文件看每步输出,觉得哪里不满意就重跑那步。
215
290
 
216
- **Solution**: `--resume` reloads previous outputs. `--from` specifies where to restart.
291
+ **第二轮:人物太单薄,从人物设计开始重跑**
217
292
 
218
293
  ```bash
219
- # Round 1: Normal run
220
- ao run workflows/story-creation.yaml -i premise="A time travel story"
221
-
222
- # Round 2: Characters feel flat — re-run from character_design
223
294
  ao run workflows/story-creation.yaml --resume last --from character_design
295
+ ```
296
+
297
+ - `--resume last`:自动找到最近一次输出
298
+ - `--from character_design`:从人物设计开始重跑
299
+ - `story_structure` 的输出(叙事结构)直接复用,不重新执行
300
+ - `character_design` → `conflict_design` → `write_story` 重新执行
301
+ - 新的输出保存到新的时间戳目录
302
+
303
+ **第三轮:结构和人物都好,只改最终写作**
224
304
 
225
- # Round 3: Only rewrite the final prose
305
+ ```bash
226
306
  ao run workflows/story-creation.yaml --resume last --from write_story
307
+ ```
227
308
 
228
- # Round 4: Go back to a specific version
229
- ao run workflows/story-creation.yaml --resume .ao-output/<dir>/ --from write_story
309
+ 只重跑最后一步。叙事结构、人物设定、冲突设计全部复用,只让内容创作者重写。
310
+
311
+ **第四轮:想回到第二轮的版本继续改**
312
+
313
+ ```bash
314
+ ao run workflows/story-creation.yaml \
315
+ --resume ao-output/短篇小说创作-2026-03-24T14-35-00/ \
316
+ --from write_story
230
317
  ```
231
318
 
232
- Each round creates a new timestamped output directory. All versions are preserved.
319
+ 指定具体目录,基于那个版本继续迭代。
233
320
 
234
- | Scenario | Command |
235
- |----------|---------|
236
- | First run | `ao run workflow.yaml -i key=value` |
237
- | Re-run from a step | `ao run workflow.yaml --resume last --from <step-id>` |
238
- | Re-run only failed steps | `ao run workflow.yaml --resume last` |
239
- | Resume specific version | `ao run workflow.yaml --resume .ao-output/<dir>/ --from <step-id>` |
321
+ #### 所有历史版本都保留
240
322
 
241
- ## Supported LLMs
323
+ ```bash
324
+ ls ao-output/
325
+ # 短篇小说创作-2026-03-24T14-30-00/ ← 第一轮
326
+ # 短篇小说创作-2026-03-24T14-35-00/ ← 第二轮
327
+ # 短篇小说创作-2026-03-24T14-38-00/ ← 第三轮
328
+ # 短篇小说创作-2026-03-24T14-40-00/ ← 第四轮
329
+ ```
242
330
 
243
- | Provider | Config | Env Variable |
244
- |----------|--------|-------------|
245
- | **DeepSeek** | `provider: "deepseek"` | `DEEPSEEK_API_KEY` |
246
- | **Claude** | `provider: "claude"` | `ANTHROPIC_API_KEY` |
247
- | **OpenAI** | `provider: "openai"` | `OPENAI_API_KEY` |
248
- | **Ollama** (local) | `provider: "ollama"` | None needed |
331
+ #### 用法速查
249
332
 
250
- All providers support custom `base_url` and `api_key`, compatible with any OpenAI-compatible API (Zhipu, Moonshot, etc.).
333
+ | 场景 | 命令 |
334
+ |------|------|
335
+ | 第一次运行 | `ao run workflow.yaml -i key=value` |
336
+ | 从某步重跑(基于上次结果) | `ao run workflow.yaml --resume last --from <步骤ID>` |
337
+ | 只重跑失败的步骤 | `ao run workflow.yaml --resume last` |
338
+ | 基于指定版本重跑 | `ao run workflow.yaml --resume ao-output/具体目录/ --from <步骤ID>` |
251
339
 
252
- ## CLI Reference
340
+ #### 原理
253
341
 
254
- ```bash
255
- ao init # Download 186 AI roles
256
- ao init --workflow # Interactive workflow creator
257
- ao compose "description" # AI-powered workflow generation
258
- ao run <workflow.yaml> [options] # Execute workflow
259
- ao validate <workflow.yaml> # Validate without running
260
- ao plan <workflow.yaml> # Show execution plan (DAG)
261
- ao explain <workflow.yaml> # Explain execution plan in natural language
262
- ao roles # List all available roles
263
- ```
264
-
265
- | Option | Description |
266
- |--------|-------------|
267
- | `--input key=value` | Pass input variables |
268
- | `--input key=@file` | Read variable value from file |
269
- | `--output dir` | Output directory (default `.ao-output/`) |
270
- | `--resume <dir\|last>` | Resume from previous run |
271
- | `--from <step-id>` | With `--resume`, restart from a specific step |
272
- | `--watch` | Real-time terminal progress display |
273
- | `--quiet` | Quiet mode |
342
+ `--resume` 做了三件事:
343
+ 1. 读取指定目录的 `metadata.json`,获取每步的状态和输出变量名
344
+ 2. `steps/` 目录读取已完成步骤的输出内容,注入回 `{{变量}}` 上下文
345
+ 3. 标记 `--from` 之前的步骤为"已完成",跳过执行
274
346
 
275
- ## YAML Schema
347
+ 智能体结构(角色分工、DAG 依赖、变量传递)不会丢失 — 它定义在 YAML 里,每次都会重新加载。丢失的只是上一轮的**输出内容**,`--resume` 就是把这些内容恢复回来。
276
348
 
277
- ### Workflow
278
-
279
- | Field | Type | Required | Description |
280
- |-------|------|----------|-------------|
281
- | `name` | string | Yes | Workflow name |
282
- | `agents_dir` | string | Yes | Path to role definitions directory |
283
- | `llm.provider` | string | Yes | `claude` / `deepseek` / `openai` / `ollama` |
284
- | `llm.model` | string | Yes | Model name |
285
- | `llm.max_tokens` | number | No | Default 4096 |
286
- | `llm.timeout` | number | No | Step timeout in ms (default 120000) |
287
- | `llm.retry` | number | No | Retry count (default 3) |
288
- | `concurrency` | number | No | Max parallel steps (default 2) |
289
- | `inputs` | array | No | Input variable definitions |
290
- | `steps` | array | Yes | Workflow steps |
291
-
292
- ### Step
293
-
294
- | Field | Type | Required | Description |
295
- |-------|------|----------|-------------|
296
- | `id` | string | Yes | Unique step identifier |
297
- | `role` | string | Yes | Role path (e.g. `"engineering/engineering-sre"`) |
298
- | `task` | string | Yes | Task description, supports `{{variables}}` |
299
- | `output` | string | No | Output variable name |
300
- | `depends_on` | string[] | No | Dependent step IDs |
301
- | `depends_on_mode` | string | No | `"all"` (default) or `"any_completed"` |
302
- | `condition` | string | No | Condition expression; step skipped if not met |
303
- | `type` | string | No | `"approval"` for human approval gate |
304
- | `prompt` | string | No | Prompt text for approval nodes |
305
- | `loop` | object | No | Loop config |
306
- | `loop.back_to` | string | No | Step ID to loop back to |
307
- | `loop.max_iterations` | number | No | Max loop rounds (1-10) |
308
- | `loop.exit_condition` | string | No | Exit condition expression |
309
-
310
- ## Programmatic API
349
+ ## 编程 API
311
350
 
312
351
  ```typescript
313
352
  import { run } from 'agency-orchestrator';
314
353
 
315
354
  const result = await run('workflow.yaml', {
316
- prd_content: 'Your PRD here...',
355
+ prd_content: '你的 PRD 内容...',
317
356
  });
318
357
 
319
358
  console.log(result.success); // true/false
320
359
  console.log(result.totalTokens); // { input: 1234, output: 5678 }
321
360
  ```
322
361
 
323
- ## Integrations
324
-
325
- Works with **9 AI coding tools** — each tool gets a workflow-runner skill file:
326
-
327
- | Tool | Integration | Docs |
328
- |------|------------|------|
329
- | **Claude Code** | Skill mode / CLI | [Guide](./integrations/claude-code/) |
330
- | **Cursor** | `.cursor/rules` | [Guide](./integrations/cursor/) |
331
- | **Kiro** | `.kiro/steering` | [Guide](./integrations/kiro/) |
332
- | **Trae** | `.trae/rules` | [Guide](./integrations/trae/) |
333
- | **Gemini CLI** | `GEMINI.md` | [Guide](./integrations/gemini-cli/) |
334
- | **Codex CLI** | `.codex/instructions` | [Guide](./integrations/codex/) |
335
- | **DeerFlow 2.0** | `skills/custom` | [Guide](./integrations/deerflow/) |
336
- | **Antigravity** | `AGENTS.md` | [Guide](./integrations/antigravity/) |
337
- | **OpenClaw** | Skill mode / CLI | [Guide](./integrations/openclaw/) |
362
+ ## MCP Server 模式
338
363
 
339
- ## Workflow Templates (20+)
364
+ AI 编程工具(Claude Code、Cursor 等)可通过 MCP 协议直接调用工作流操作,无需手动集成:
340
365
 
341
- ### Dev Workflows
342
-
343
- | Template | Roles | Description |
344
- |----------|-------|-------------|
345
- | `dev/pr-review.yaml` | Code Reviewer, Security Engineer, Performance Benchmarker | PR review (3-way parallel → summary) |
346
- | `dev/tech-debt-audit.yaml` | Architect, Code Reviewer, Test Analyst, Sprint Prioritizer | Tech debt audit (parallel → prioritize) |
347
- | `dev/api-doc-gen.yaml` | Tech Writer, API Tester | API doc generation (analyze → validate → finalize) |
348
- | `dev/readme-i18n.yaml` | Content Creator, Tech Writer | README internationalization |
349
- | `dev/security-audit.yaml` | Security Engineer, Threat Detection Engineer | Security audit (parallel → report) |
350
- | `dev/release-checklist.yaml` | SRE, Performance Benchmarker, Security Engineer, PM | Release Go/No-Go decision |
351
-
352
- ### Data / Design / Ops Workflows
366
+ ```bash
367
+ ao serve # 启动 MCP stdio 服务器
368
+ ao serve --verbose # 带调试日志
369
+ ```
353
370
 
354
- | Template | Roles | Description |
355
- |----------|-------|-------------|
356
- | `data/data-pipeline-review.yaml` | Data Engineer, DB Optimizer, Data Analyst | Data pipeline review |
357
- | `data/dashboard-design.yaml` | Data Analyst, UX Researcher, UI Designer | Dashboard design |
358
- | `design/requirement-to-plan.yaml` | PM, Architect, Project Manager | Requirements → tech design → task breakdown |
359
- | `design/ux-review.yaml` | UX Researcher, Accessibility Auditor, UX Architect | UX review |
360
- | `ops/incident-postmortem.yaml` | Incident Commander, SRE, PM | Incident postmortem |
361
- | `ops/sre-health-check.yaml` | SRE, Performance Benchmarker, Infra Ops | SRE health check (3-way parallel) |
371
+ 配置 Claude Code(`settings.json`):
372
+
373
+ ```json
374
+ {
375
+ "mcpServers": {
376
+ "agency-orchestrator": {
377
+ "command": "npx",
378
+ "args": ["agency-orchestrator", "serve"]
379
+ }
380
+ }
381
+ }
382
+ ```
362
383
 
363
- ### General Workflows
384
+ 配置 Cursor(`.cursor/mcp.json`):
385
+
386
+ ```json
387
+ {
388
+ "mcpServers": {
389
+ "agency-orchestrator": {
390
+ "command": "npx",
391
+ "args": ["agency-orchestrator", "serve"]
392
+ }
393
+ }
394
+ }
395
+ ```
364
396
 
365
- | Template | Roles | Description |
366
- |----------|-------|-------------|
367
- | `product-review.yaml` | PM, Architect, UX Researcher | Product requirements review |
368
- | `content-pipeline.yaml` | Strategist, Creator, Growth Hacker | Content creation pipeline |
369
- | `story-creation.yaml` | Narratologist, Psychologist, Narrative Designer, Creator | Collaborative fiction (4 roles) |
370
- | `department-collab/code-review.yaml` | Code Reviewer, Security Engineer | Code review (review loop) |
371
- | `department-collab/hiring-pipeline.yaml` | HR, Tech Interviewer, Biz Interviewer | Hiring pipeline |
372
- | `department-collab/content-publish.yaml` | Content Creator, Brand Guardian | Content publishing (review loop) |
373
- | `department-collab/incident-response.yaml` | SRE, Security Engineer, Backend Architect | Incident response |
374
- | `department-collab/marketing-campaign.yaml` | Strategist, Creator, Approver | Marketing campaign (human approval) |
397
+ 提供 6 个工具:`run_workflow`、`validate_workflow`、`list_workflows`、`plan_workflow`、`compose_workflow`、`list_roles`。
375
398
 
376
- ## Output Structure
399
+ ## YAML Schema
377
400
 
378
- Each run saves to `.ao-output/<name>-<timestamp>/`:
401
+ ### 工作流
402
+
403
+ | 字段 | 类型 | 必填 | 说明 |
404
+ |------|------|------|------|
405
+ | `name` | string | 是 | 工作流名称 |
406
+ | `agents_dir` | string | 是 | 角色目录路径 |
407
+ | `llm.provider` | string | 是 | `claude-code` / `gemini-cli` / `copilot-cli` / `codex-cli` / `openclaw-cli` / `ollama` / `claude` / `deepseek` / `openai` |
408
+ | `llm.model` | string | 是 | 模型名称 |
409
+ | `llm.max_tokens` | number | 否 | 默认 4096 |
410
+ | `llm.timeout` | number | 否 | 步骤超时毫秒数(默认 120000) |
411
+ | `llm.retry` | number | 否 | 重试次数(默认 3) |
412
+ | `concurrency` | number | 否 | 最大并行步骤数(默认 2) |
413
+ | `inputs` | array | 否 | 输入变量定义 |
414
+ | `steps` | array | 是 | 工作流步骤 |
415
+
416
+ ### 步骤
417
+
418
+ | 字段 | 类型 | 必填 | 说明 |
419
+ |------|------|------|------|
420
+ | `id` | string | 是 | 步骤唯一标识 |
421
+ | `role` | string | 是 | 角色路径(如 `"engineering/engineering-sre"`) |
422
+ | `task` | string | 是 | 任务描述,支持 `{{变量}}` |
423
+ | `output` | string | 否 | 输出变量名 |
424
+ | `depends_on` | string[] | 否 | 依赖的步骤 ID |
425
+ | `depends_on_mode` | string | 否 | `"all"`(默认)或 `"any_completed"`(任一完成即可) |
426
+ | `condition` | string | 否 | 条件表达式,不满足则跳过(如 `"{{var}} contains 技术"`) |
427
+ | `type` | string | 否 | `"approval"` 表示人工审批节点 |
428
+ | `prompt` | string | 否 | 审批节点的提示文本 |
429
+ | `loop` | object | 否 | 循环配置 |
430
+ | `loop.back_to` | string | 否 | 循环回到的步骤 ID |
431
+ | `loop.max_iterations` | number | 否 | 最大循环次数(1-10) |
432
+ | `loop.exit_condition` | string | 否 | 退出条件表达式 |
433
+
434
+ ## 输出
435
+
436
+ 每次运行保存到 `ao-output/<名称>-<时间戳>/`:
379
437
 
380
438
  ```
381
- .ao-output/product-review-2026-03-22/
382
- ├── summary.md # Final step output
439
+ ao-output/产品需求评审-2026-03-22/
440
+ ├── summary.md # 最终步骤输出
383
441
  ├── steps/
384
442
  │ ├── 1-analyze.md
385
443
  │ ├── 2-tech_review.md
386
444
  │ ├── 3-design_review.md
387
445
  │ └── 4-summary.md
388
- └── metadata.json # Timing, token usage, step states
446
+ └── metadata.json # 耗时、token 用量、步骤状态
389
447
  ```
390
448
 
391
- ## Ecosystem
449
+ ## 内置工作流模板(30 个)
450
+
451
+ ### 开发类(7 个)
452
+
453
+ | 模板 | 角色 | 说明 |
454
+ |------|------|------|
455
+ | `dev/tech-design-review.yaml` | 架构师、后端架构师、安全工程师、代码审查员 | **技术方案评审**(设计→并行评审→结论) |
456
+ | `dev/pr-review.yaml` | 代码审查员、安全工程师、性能基准师 | PR 评审(3 路并行→汇总) |
457
+ | `dev/tech-debt-audit.yaml` | 架构师、代码审查员、测试分析师、Sprint 排序师 | 技术债务审计(并行→优先级排序) |
458
+ | `dev/api-doc-gen.yaml` | 技术文档工程师、API 测试员 | API 文档生成(分析→验证→定稿) |
459
+ | `dev/readme-i18n.yaml` | 内容创作者、技术文档工程师 | README 国际化 |
460
+ | `dev/security-audit.yaml` | 安全工程师、威胁检测工程师 | 安全审计(并行→报告) |
461
+ | `dev/release-checklist.yaml` | SRE、性能基准师、安全工程师、产品经理 | 发布 Go/No-Go 决策 |
462
+
463
+ ### 营销类(3 个)
464
+
465
+ | 模板 | 角色 | 说明 |
466
+ |------|------|------|
467
+ | `marketing/competitor-analysis.yaml` | 趋势研究员、数据分析师、SEO 专家、高管摘要师 | **竞品分析报告**(研究→并行分析→摘要) |
468
+ | `marketing/xiaohongshu-content.yaml` | 小红书专家、内容创作者、视觉叙事师、小红书运营 | **小红书种草笔记**(选题→并行创作→优化) |
469
+ | `marketing/seo-content-matrix.yaml` | SEO 专家、策略师、内容创作者 | **SEO 内容矩阵**(关键词→策略→批量生成→审核) |
470
+
471
+ ### 数据 / 设计 / 运维类(7 个)
472
+
473
+ | 模板 | 角色 | 说明 |
474
+ |------|------|------|
475
+ | `data/data-pipeline-review.yaml` | 数据工程师、数据库优化师、数据分析师 | 数据管道评审 |
476
+ | `data/dashboard-design.yaml` | 数据分析师、UX 研究员、UI 设计师 | 仪表盘设计 |
477
+ | `design/requirement-to-plan.yaml` | 产品经理、架构师、项目经理 | 需求→技术设计→任务拆分 |
478
+ | `design/ux-review.yaml` | UX 研究员、无障碍审核员、UX 架构师 | UX 评审 |
479
+ | `ops/incident-postmortem.yaml` | 事故指挥官、SRE、产品经理 | 事故复盘 |
480
+ | `ops/sre-health-check.yaml` | SRE、性能基准师、基础设施运维师 | SRE 健康检查(3 路并行) |
481
+ | `ops/weekly-report.yaml` | 会议助手、内容创作者、高管摘要师 | **周报/月报生成**(整理→亮点→定稿) |
482
+
483
+ ### 战略 / 法务 / HR 类(3 个)
484
+
485
+ | 模板 | 角色 | 说明 |
486
+ |------|------|------|
487
+ | `strategy/business-plan.yaml` | 趋势研究员、财务预测师、产品经理、高管摘要师 | **商业计划书**(市场→并行分析→整合) |
488
+ | `legal/contract-review.yaml` | 合同审查专家、法务合规员 | **合同审查**(逐条分析→合规检查→意见书) |
489
+ | `hr/interview-questions.yaml` | 招聘专家、心理学家、后端架构师 | **面试题设计**(维度→并行出题→评分表) |
490
+
491
+ ### 通用类(10 个)
492
+
493
+ | 模板 | 角色 | 说明 |
494
+ |------|------|------|
495
+ | `product-review.yaml` | 产品经理、架构师、UX 研究员 | 产品需求评审 |
496
+ | `content-pipeline.yaml` | 策略师、创作者、增长黑客 | 内容创作流水线 |
497
+ | `story-creation.yaml` | 叙事学家、心理学家、叙事设计师、创作者 | 协作小说创作(4 角色) |
498
+ | `ai-opinion-article.yaml` | 趋势研究员、叙事设计师、心理学家、创作者 | AI 观点长文 |
499
+ | `department-collab/code-review.yaml` | 代码审查员、安全工程师 | 代码评审(循环) |
500
+ | `department-collab/hiring-pipeline.yaml` | HR、技术面试官、业务面试官 | 招聘流程 |
501
+ | `department-collab/content-publish.yaml` | 内容创作者、品牌守护者 | 内容发布(循环) |
502
+ | `department-collab/incident-response.yaml` | SRE、安全工程师、后端架构师 | 事故响应 |
503
+ | `department-collab/marketing-campaign.yaml` | 策略师、创作者、审批人 | 营销活动(人工审批) |
504
+ | `department-collab/ceo-org-delegation.yaml` | CEO、工程/市场/产品/HR 部门负责人 | **CEO 组织架构协作**(决策→部门并行→汇总) |
505
+
506
+ ## 项目生态
507
+
508
+ ```
509
+ 你的 AI 会员 ──→ agency-orchestrator ──→ 186 个专业角色协作 ──→ 高质量输出
510
+
511
+ ┌────────────────┼────────────────┐
512
+ ▼ ▼ ▼
513
+ 14 个 AI 编程工具 CLI 模式 MCP Server
514
+ (Cursor/Claude (自动化/CI/CD) (Claude Code/
515
+ Code/Copilot...) Cursor 直接调用)
516
+ ```
517
+
518
+ ## 社区交流
519
+
520
+ | 群名 | 群号 | 加入方式 |
521
+ |------|------|---------|
522
+ | AI 编程 & Agent 中文实践群 | **1071280067** | [点击加入](https://qm.qq.com/q/EeNQA9xCxy) |
523
+
524
+ ## 姊妹项目
392
525
 
393
- | Project | Description |
394
- |---------|-------------|
395
- | [agency-agents-zh](https://github.com/jnMetaCode/agency-agents-zh) | 186 AI role definitions the role library for this engine |
396
- | [superpowers-zh](https://github.com/jnMetaCode/superpowers-zh) | AI coding superpowers 20 skills for Claude Code / Cursor |
397
- | [shellward](https://github.com/jnMetaCode/shellward) | AI agent security middlewareprompt injection detection, DLP, command safety |
526
+ | 项目 | 说明 |
527
+ |------|------|
528
+ | [ai-coding-guide](https://github.com/jnMetaCode/ai-coding-guide) | AI 编程工具实战指南66 Claude Code 技巧 + 9 款工具最佳实践 + 可复制配置模板 |
529
+ | [agency-agents-zh](https://github.com/jnMetaCode/agency-agents-zh) | 187 个专业角色,让 AI 变成安全工程师、DBA、产品经理等 |
530
+ | [superpowers-zh](https://github.com/jnMetaCode/superpowers-zh) | AI 编程超能力 · 中文版20 skills,让你的 AI 编程助手真正会干活 |
531
+ | [shellward](https://github.com/jnMetaCode/shellward) | AI 智能体安全中间件 — 注入检测、数据防泄露、命令安全、零依赖、MCP Server |
398
532
 
399
- ## Roadmap
533
+ ## 路线图
400
534
 
401
- - [x] **v0.1** — YAML workflows, DAG engine, 4 LLM connectors, CLI, streaming output
402
- - [x] **v0.2** — Condition branching, loop iteration, human approval, Resume, 5 department-collab templates
403
- - [x] **v0.3** — 9 AI tool integrations, 20+ workflow templates, `ao explain`, `ao init --workflow`, `--watch` mode
404
- - [ ] **v0.4** — MCP Server mode, Web UI, visual DAG editor, English role support, workflow marketplace
535
+ - [x] **v0.1** — YAML 工作流、DAG 引擎、4 LLM 连接器、CLI、实时输出
536
+ - [x] **v0.2** — 条件分支、循环迭代、人工审批、Resume 断点续跑、5 个部门协作模板
537
+ - [x] **v0.3** — 9 AI 工具集成、20+ 工作流模板、`ao explain`、`ao init --workflow`、`--watch` 模式
538
+ - [x] **v0.4** — MCP Server 模式(`ao serve`)、14 AI 工具集成、一键安装脚本、30 个工作流模板、**9 LLM(6 种免 API key:Claude Code / Gemini / Copilot / Codex / OpenClaw / Ollama)**
539
+ - [ ] **v0.5** — Web UI、可视化 DAG 编辑器、英文角色支持、工作流市场
405
540
 
406
- ## Contributing
541
+ ## 贡献
407
542
 
408
- See [CONTRIBUTING.md](./CONTRIBUTING.md). PRs welcome!
543
+ 参见 [CONTRIBUTING.md](./CONTRIBUTING.md),欢迎 PR!
409
544
 
410
- ## License
545
+ ## 许可证
411
546
 
412
547
  [Apache-2.0](./LICENSE)