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.
- package/README.en.md +539 -0
- package/README.md +391 -256
- package/dist/cli/compose.d.ts +4 -2
- package/dist/cli/compose.js +35 -39
- package/dist/cli/demo.d.ts +8 -0
- package/dist/cli/demo.js +301 -0
- package/dist/cli.js +47 -10
- package/dist/connectors/claude-code.d.ts +11 -0
- package/dist/connectors/claude-code.js +23 -0
- package/dist/connectors/cli-base.d.ts +16 -0
- package/dist/connectors/cli-base.js +53 -0
- package/dist/connectors/codex-cli.d.ts +11 -0
- package/dist/connectors/codex-cli.js +19 -0
- package/dist/connectors/copilot-cli.d.ts +11 -0
- package/dist/connectors/copilot-cli.js +19 -0
- package/dist/connectors/factory.d.ts +5 -0
- package/dist/connectors/factory.js +42 -0
- package/dist/connectors/gemini-cli.d.ts +11 -0
- package/dist/connectors/gemini-cli.js +19 -0
- package/dist/connectors/ollama.js +1 -1
- package/dist/connectors/openclaw-cli.d.ts +15 -0
- package/dist/connectors/openclaw-cli.js +37 -0
- package/dist/core/parser.js +7 -2
- package/dist/index.d.ts +3 -0
- package/dist/index.js +8 -27
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.js +288 -0
- package/dist/types.d.ts +2 -2
- package/examples/sample-code-for-review.md +43 -0
- package/examples/sample-prd.md +31 -0
- package/examples/sample-premise.txt +1 -0
- package/integrations/aider/CONVENTIONS.md +50 -0
- package/integrations/aider/README.md +112 -0
- package/integrations/antigravity/AGENTS.md +1 -1
- package/integrations/antigravity/README.md +2 -2
- package/integrations/claude-code/README.md +27 -11
- package/integrations/codex/README.md +2 -2
- package/integrations/codex/instructions.md +1 -1
- package/integrations/copilot/README.md +111 -0
- package/integrations/copilot/copilot-instructions.md +50 -0
- package/integrations/cursor/README.md +31 -3
- package/integrations/cursor/workflow-runner.mdc +1 -1
- package/integrations/deerflow/README.md +2 -2
- package/integrations/deerflow/SKILL.md +1 -1
- package/integrations/gemini-cli/GEMINI.md +1 -1
- package/integrations/gemini-cli/README.md +2 -2
- package/integrations/kiro/README.md +1 -1
- package/integrations/kiro/ao-workflow-runner.md +1 -1
- package/integrations/openclaw/README.md +2 -2
- package/integrations/opencode/README.md +72 -0
- package/integrations/opencode/instructions.md +50 -0
- package/integrations/qwen/README.md +104 -0
- package/integrations/qwen/ao-workflow-runner.md +50 -0
- package/integrations/trae/README.md +1 -1
- package/integrations/trae/ao-workflow-runner.md +1 -1
- package/integrations/windsurf/.windsurfrules +50 -0
- package/integrations/windsurf/README.md +110 -0
- package/package.json +26 -4
- package/workflows/ai-opinion-article.yaml +122 -0
- package/workflows/content-pipeline.yaml +1 -1
- package/workflows/department-collab/ceo-org-delegation.yaml +189 -0
- package/workflows/dev/pr-review.yaml +20 -10
- package/workflows/dev/tech-design-review.yaml +115 -0
- package/workflows/hr/interview-questions.yaml +108 -0
- package/workflows/legal/contract-review.yaml +106 -0
- package/workflows/marketing/competitor-analysis.yaml +99 -0
- package/workflows/marketing/seo-content-matrix.yaml +98 -0
- package/workflows/marketing/xiaohongshu-content.yaml +103 -0
- package/workflows/ops/weekly-report.yaml +90 -0
- package/workflows/product-review.yaml +56 -21
- package/workflows/story-creation.yaml +48 -33
- package/workflows/strategy/business-plan.yaml +122 -0
- package/README.zh-CN.md +0 -471
package/README.en.md
ADDED
|
@@ -0,0 +1,539 @@
|
|
|
1
|
+
# Agency Orchestrator
|
|
2
|
+
|
|
3
|
+
**English** | [中文](./README.md)
|
|
4
|
+
|
|
5
|
+
> **You're already paying for AI. Why do you need another API key just to run a workflow?**
|
|
6
|
+
|
|
7
|
+
[](https://github.com/jnMetaCode/agency-orchestrator/actions)
|
|
8
|
+
[](https://www.npmjs.com/package/agency-orchestrator)
|
|
9
|
+
[](./LICENSE)
|
|
10
|
+
[](./CONTRIBUTING.md)
|
|
11
|
+
|
|
12
|
+
**186 expert AI roles · Zero-code YAML orchestration · Use your existing subscription · No API key required**
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Claude Max ✓ ChatGPT Plus ✓ GitHub Copilot ✓ Google Account (free) ✓ Ollama ✓
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
> If you find this useful, please **Star** it — helps others discover the project.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Why Agency Orchestrator
|
|
23
|
+
|
|
24
|
+
**Sound familiar?**
|
|
25
|
+
|
|
26
|
+
- You want multiple AI agents to collaborate, but CrewAI/LangGraph require Python and defining every role from scratch
|
|
27
|
+
- You set up the framework, then discover you **still need to get API keys, add credits, and manage quotas**
|
|
28
|
+
- You're already paying $20/month for Claude Max / ChatGPT Plus / Copilot — but you can't use that subscription
|
|
29
|
+
|
|
30
|
+
**Agency Orchestrator's answer:**
|
|
31
|
+
|
|
32
|
+
Write one YAML file → 186 expert roles collaborate automatically → runs on your **existing subscription**.
|
|
33
|
+
|
|
34
|
+
> **Industry first: Every multi-agent framework out there (CrewAI, LangGraph, AutoGen, Dify, n8n, Agency Swarm, MetaGPT, Google ADK, OpenAI Agents SDK) requires API keys. Agency Orchestrator is the only one that lets you bring your subscription.**
|
|
35
|
+
|
|
36
|
+
### 30-Second Comparison
|
|
37
|
+
|
|
38
|
+
```python
|
|
39
|
+
# CrewAI: ~50 lines of Python, define every role, API key required
|
|
40
|
+
researcher = Agent(role="PM", goal="...", backstory="...(write it yourself)...")
|
|
41
|
+
task = Task(description="...", agent=researcher)
|
|
42
|
+
crew = Crew(agents=[researcher], tasks=[task])
|
|
43
|
+
crew.kickoff()
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
```yaml
|
|
47
|
+
# Agency Orchestrator: 10 lines of YAML, 186 roles ready to go, no API key
|
|
48
|
+
steps:
|
|
49
|
+
- id: analyze
|
|
50
|
+
role: "product/product-manager" # expert prompt already written
|
|
51
|
+
task: "Analyze this PRD: {{prd_content}}"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
| | CrewAI | LangGraph | AutoGen | **Agency Orchestrator** |
|
|
55
|
+
|---|--------|-----------|---------|---------------------|
|
|
56
|
+
| Language | Python | Python | Python | **YAML (zero code)** |
|
|
57
|
+
| Roles | Write your own | Write your own | Write your own | **186 ready-to-use** |
|
|
58
|
+
| API Key | Required | Required | Required | **6 providers need none** |
|
|
59
|
+
| Dependencies | pip + LiteLLM + dozens | pip + LangChain | pip + AutoGen | **npm + 2 deps** |
|
|
60
|
+
| Parallelism | Manager mode | Manual graph | Manual | **Auto DAG detection** |
|
|
61
|
+
| Branching | None | Manual | Manual | **Condition expressions** |
|
|
62
|
+
| Loops | None | Manual | Manual | **Declarative loop/exit** |
|
|
63
|
+
| Resume | None | Checkpointers | None | **Built-in `--resume`** |
|
|
64
|
+
| Price | Open-source + $25-99/mo | Open-source | Open-source | **Completely free** |
|
|
65
|
+
|
|
66
|
+
## Get Started in 3 Steps
|
|
67
|
+
|
|
68
|
+
### Step 1: Try it in 5 seconds
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
npx agency-orchestrator demo
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
4 AI roles collaborate on a story. No install, no config, no API key.
|
|
75
|
+
|
|
76
|
+
### Step 2: Run a real workflow with your subscription
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
npm install agency-orchestrator
|
|
80
|
+
npx ao init # download 186 AI roles
|
|
81
|
+
|
|
82
|
+
# Use your existing Claude Max subscription (no API key!)
|
|
83
|
+
npx ao run workflows/story-creation.yaml --input premise="A time travel story"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Just set `provider: "claude-code"` in your YAML. No Claude? Use `gemini-cli` (free with Google account), `copilot-cli`, or `codex-cli`.
|
|
87
|
+
|
|
88
|
+
### Step 3: Use it inside your AI coding tool
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
./scripts/install.sh # one-command install for your AI tools
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Then tell Cursor / Claude Code / Copilot:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
Run workflows/story-creation.yaml with premise="A time travel story"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
It auto-parses YAML → loads roles → executes in DAG order → saves results.
|
|
101
|
+
|
|
102
|
+
**Works with 14 AI coding tools** ([integration guides](./integrations/)): Claude Code · GitHub Copilot · Cursor · Windsurf · Kiro · Trae · Aider · Gemini CLI · Codex CLI · OpenCode · Qwen Code · DeerFlow 2.0 · Antigravity · OpenClaw
|
|
103
|
+
|
|
104
|
+
## Demo: 4 AI Roles Write a Complete Story in 2 Minutes
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
$ ao run workflows/story-creation.yaml -i "premise=A programmer discovers AI replies with things it shouldn't know"
|
|
108
|
+
|
|
109
|
+
Workflow: Short Story Creation
|
|
110
|
+
Steps: 4 | Concurrency: 2 | Model: deepseek-chat
|
|
111
|
+
──────────────────────────────────────────────────
|
|
112
|
+
|
|
113
|
+
── [1/4] story_structure (Narratologist) ──
|
|
114
|
+
Done | 14.9s | 1,919 tokens
|
|
115
|
+
|
|
116
|
+
── [2/4] character_design (Psychologist) ── ← parallel
|
|
117
|
+
Done | 65.5s | 4,016 tokens
|
|
118
|
+
|
|
119
|
+
── [3/4] conflict_design (Narrative Designer) ── ← parallel
|
|
120
|
+
Done | 65.5s | 3,607 tokens
|
|
121
|
+
|
|
122
|
+
── [4/4] write_story (Content Creator) ──
|
|
123
|
+
Done | 33.9s | 5,330 tokens
|
|
124
|
+
|
|
125
|
+
==================================================
|
|
126
|
+
Completed: 4/4 steps | 114.3s | 14,872 tokens
|
|
127
|
+
==================================================
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Steps 2 and 3 run **in parallel** (auto-detected from DAG dependencies). Four specialized AI roles collaborate to produce a complete suspense short story.
|
|
131
|
+
|
|
132
|
+
## How It Works
|
|
133
|
+
|
|
134
|
+
```yaml
|
|
135
|
+
name: "Product Requirements Review"
|
|
136
|
+
agents_dir: "agency-agents-zh"
|
|
137
|
+
|
|
138
|
+
llm:
|
|
139
|
+
provider: "deepseek" # or: claude, openai, ollama
|
|
140
|
+
model: "deepseek-chat"
|
|
141
|
+
|
|
142
|
+
concurrency: 2
|
|
143
|
+
|
|
144
|
+
inputs:
|
|
145
|
+
- name: prd_content
|
|
146
|
+
required: true
|
|
147
|
+
|
|
148
|
+
steps:
|
|
149
|
+
- id: analyze
|
|
150
|
+
role: "product/product-manager"
|
|
151
|
+
task: "Analyze this PRD and extract core requirements:\n\n{{prd_content}}"
|
|
152
|
+
output: requirements
|
|
153
|
+
|
|
154
|
+
- id: tech_review
|
|
155
|
+
role: "engineering/engineering-software-architect"
|
|
156
|
+
task: "Evaluate technical feasibility:\n\n{{requirements}}"
|
|
157
|
+
output: tech_report
|
|
158
|
+
depends_on: [analyze]
|
|
159
|
+
|
|
160
|
+
- id: design_review
|
|
161
|
+
role: "design/design-ux-researcher"
|
|
162
|
+
task: "Evaluate UX risks:\n\n{{requirements}}"
|
|
163
|
+
output: design_report
|
|
164
|
+
depends_on: [analyze]
|
|
165
|
+
|
|
166
|
+
- id: summary
|
|
167
|
+
role: "product/product-manager"
|
|
168
|
+
task: "Synthesize feedback:\n\n{{tech_report}}\n\n{{design_report}}"
|
|
169
|
+
depends_on: [tech_review, design_review]
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
The engine automatically:
|
|
173
|
+
1. Parses YAML → builds a **DAG** (directed acyclic graph)
|
|
174
|
+
2. Detects parallelism — `tech_review` and `design_review` run concurrently
|
|
175
|
+
3. Passes outputs between steps via `{{variables}}`
|
|
176
|
+
4. Loads role definitions from [agency-agents-zh](https://github.com/jnMetaCode/agency-agents-zh) as system prompts
|
|
177
|
+
5. Retries on failure (exponential backoff)
|
|
178
|
+
6. Saves all outputs to `ao-output/`
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
analyze ──→ tech_review ──→ summary
|
|
182
|
+
└→ design_review ──┘
|
|
183
|
+
(parallel)
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Features
|
|
187
|
+
|
|
188
|
+
### AI Workflow Composer
|
|
189
|
+
|
|
190
|
+
Describe your workflow in one sentence — AI selects the right roles, designs the DAG, and generates a ready-to-run YAML:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
ao compose "PR code review covering security and performance"
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
The AI will:
|
|
197
|
+
1. Select matching roles from 186 available (e.g., Code Reviewer, Security Engineer, Performance Benchmarker)
|
|
198
|
+
2. Design the DAG (3-way parallel → summary)
|
|
199
|
+
3. Generate complete YAML with variable passing and task descriptions
|
|
200
|
+
4. Save to `workflows/` — ready to `ao run`
|
|
201
|
+
|
|
202
|
+
Supports `--provider` and `--model` flags (default: DeepSeek).
|
|
203
|
+
|
|
204
|
+
### Condition Branching
|
|
205
|
+
|
|
206
|
+
```yaml
|
|
207
|
+
- id: tech_path
|
|
208
|
+
role: "engineering/engineering-sre"
|
|
209
|
+
task: "Technical evaluation: {{requirements}}"
|
|
210
|
+
depends_on: [classify]
|
|
211
|
+
condition: "{{job_type}} contains technical"
|
|
212
|
+
|
|
213
|
+
- id: biz_path
|
|
214
|
+
role: "marketing/marketing-social-media-strategist"
|
|
215
|
+
task: "Business evaluation: {{requirements}}"
|
|
216
|
+
depends_on: [classify]
|
|
217
|
+
condition: "{{job_type}} contains business"
|
|
218
|
+
|
|
219
|
+
- id: summary
|
|
220
|
+
depends_on: [tech_path, biz_path]
|
|
221
|
+
depends_on_mode: "any_completed" # proceeds when ANY upstream completes
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Supported operators: `contains`, `equals`, `not_contains`, `not_equals`.
|
|
225
|
+
|
|
226
|
+
### Loop Iteration
|
|
227
|
+
|
|
228
|
+
```yaml
|
|
229
|
+
- id: write_draft
|
|
230
|
+
role: "marketing/marketing-content-creator"
|
|
231
|
+
task: "Write article: {{topic}}"
|
|
232
|
+
output: draft
|
|
233
|
+
|
|
234
|
+
- id: brand_review
|
|
235
|
+
role: "design/design-brand-guardian"
|
|
236
|
+
task: "Review brand compliance: {{draft}}"
|
|
237
|
+
output: review_result
|
|
238
|
+
depends_on: [write_draft]
|
|
239
|
+
loop:
|
|
240
|
+
back_to: write_draft
|
|
241
|
+
max_iterations: 3
|
|
242
|
+
exit_condition: "{{review_result}} contains approved"
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
When the exit condition is not met, execution loops back to `back_to`. The `{{_loop_iteration}}` variable tracks the current round.
|
|
246
|
+
|
|
247
|
+
### Resume & Iterate
|
|
248
|
+
|
|
249
|
+
**Problem**: After `ao run` completes, all step outputs are lost. To tweak the final story, you'd have to re-run everything from scratch.
|
|
250
|
+
|
|
251
|
+
**Solution**: `--resume` reloads previous outputs. `--from` specifies where to restart.
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
# Round 1: Normal run
|
|
255
|
+
ao run workflows/story-creation.yaml -i premise="A time travel story"
|
|
256
|
+
|
|
257
|
+
# Round 2: Characters feel flat — re-run from character_design
|
|
258
|
+
ao run workflows/story-creation.yaml --resume last --from character_design
|
|
259
|
+
|
|
260
|
+
# Round 3: Only rewrite the final prose
|
|
261
|
+
ao run workflows/story-creation.yaml --resume last --from write_story
|
|
262
|
+
|
|
263
|
+
# Round 4: Go back to a specific version
|
|
264
|
+
ao run workflows/story-creation.yaml --resume ao-output/<dir>/ --from write_story
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
Each round creates a new timestamped output directory. All versions are preserved.
|
|
268
|
+
|
|
269
|
+
| Scenario | Command |
|
|
270
|
+
|----------|---------|
|
|
271
|
+
| First run | `ao run workflow.yaml -i key=value` |
|
|
272
|
+
| Re-run from a step | `ao run workflow.yaml --resume last --from <step-id>` |
|
|
273
|
+
| Re-run only failed steps | `ao run workflow.yaml --resume last` |
|
|
274
|
+
| Resume specific version | `ao run workflow.yaml --resume ao-output/<dir>/ --from <step-id>` |
|
|
275
|
+
|
|
276
|
+
## 9 LLM Providers — 6 Need No API Key
|
|
277
|
+
|
|
278
|
+
**Already paying for one of these? You're ready to go:**
|
|
279
|
+
|
|
280
|
+
| You have... | Provider config | Install CLI | Cost to you |
|
|
281
|
+
|------------|----------------|-------------|-------------|
|
|
282
|
+
| Claude Max/Pro ($20/mo) | `provider: "claude-code"` | `npm i -g @anthropic-ai/claude-code` | **$0 extra** |
|
|
283
|
+
| Google Account | `provider: "gemini-cli"` | `npm i -g @google/gemini-cli` | **Free** (1000 req/day, Gemini 2.5 Pro) |
|
|
284
|
+
| GitHub Copilot ($10/mo) | `provider: "copilot-cli"` | `npm i -g @github/copilot` | **$0 extra** |
|
|
285
|
+
| ChatGPT Plus/Pro ($20/mo) | `provider: "codex-cli"` | `npm i -g @openai/codex` | **$0 extra** |
|
|
286
|
+
| OpenClaw account | `provider: "openclaw-cli"` | `npm i -g openclaw` | **$0 extra** |
|
|
287
|
+
| A computer | `provider: "ollama"` | [ollama.ai](https://ollama.ai) | **Free** (local models) |
|
|
288
|
+
|
|
289
|
+
**Or use traditional API keys:**
|
|
290
|
+
|
|
291
|
+
| Provider | Config | Env Variable |
|
|
292
|
+
|----------|--------|-------------|
|
|
293
|
+
| DeepSeek | `provider: "deepseek"` | `DEEPSEEK_API_KEY` |
|
|
294
|
+
| Claude API | `provider: "claude"` | `ANTHROPIC_API_KEY` |
|
|
295
|
+
| OpenAI | `provider: "openai"` | `OPENAI_API_KEY` |
|
|
296
|
+
|
|
297
|
+
All API providers support custom `base_url` and `api_key`, compatible with any OpenAI-compatible API.
|
|
298
|
+
|
|
299
|
+
## CLI Reference
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
ao demo # Zero-config multi-agent demo
|
|
303
|
+
ao init # Download 186 AI roles
|
|
304
|
+
ao init --workflow # Interactive workflow creator
|
|
305
|
+
ao compose "description" # AI-powered workflow generation
|
|
306
|
+
ao run <workflow.yaml> [options] # Execute workflow
|
|
307
|
+
ao validate <workflow.yaml> # Validate without running
|
|
308
|
+
ao plan <workflow.yaml> # Show execution plan (DAG)
|
|
309
|
+
ao explain <workflow.yaml> # Explain execution plan in natural language
|
|
310
|
+
ao roles # List all available roles
|
|
311
|
+
ao serve # Start MCP Server (for Claude Code / Cursor)
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
| Option | Description |
|
|
315
|
+
|--------|-------------|
|
|
316
|
+
| `--input key=value` | Pass input variables |
|
|
317
|
+
| `--input key=@file` | Read variable value from file |
|
|
318
|
+
| `--output dir` | Output directory (default `ao-output/`) |
|
|
319
|
+
| `--resume <dir\|last>` | Resume from previous run |
|
|
320
|
+
| `--from <step-id>` | With `--resume`, restart from a specific step |
|
|
321
|
+
| `--watch` | Real-time terminal progress display |
|
|
322
|
+
| `--quiet` | Quiet mode |
|
|
323
|
+
|
|
324
|
+
## MCP Server Mode
|
|
325
|
+
|
|
326
|
+
AI coding tools (Claude Code, Cursor, etc.) can invoke workflow operations directly via the MCP protocol:
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
ao serve # Start MCP stdio server
|
|
330
|
+
ao serve --verbose # With debug logging
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
Claude Code (`settings.json`):
|
|
334
|
+
|
|
335
|
+
```json
|
|
336
|
+
{
|
|
337
|
+
"mcpServers": {
|
|
338
|
+
"agency-orchestrator": {
|
|
339
|
+
"command": "npx",
|
|
340
|
+
"args": ["agency-orchestrator", "serve"]
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
Cursor (`.cursor/mcp.json`):
|
|
347
|
+
|
|
348
|
+
```json
|
|
349
|
+
{
|
|
350
|
+
"mcpServers": {
|
|
351
|
+
"agency-orchestrator": {
|
|
352
|
+
"command": "npx",
|
|
353
|
+
"args": ["agency-orchestrator", "serve"]
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
6 tools available: `run_workflow`, `validate_workflow`, `list_workflows`, `plan_workflow`, `compose_workflow`, `list_roles`.
|
|
360
|
+
|
|
361
|
+
## YAML Schema
|
|
362
|
+
|
|
363
|
+
### Workflow
|
|
364
|
+
|
|
365
|
+
| Field | Type | Required | Description |
|
|
366
|
+
|-------|------|----------|-------------|
|
|
367
|
+
| `name` | string | Yes | Workflow name |
|
|
368
|
+
| `agents_dir` | string | Yes | Path to role definitions directory |
|
|
369
|
+
| `llm.provider` | string | Yes | `claude-code` / `gemini-cli` / `copilot-cli` / `codex-cli` / `openclaw-cli` / `ollama` / `claude` / `deepseek` / `openai` |
|
|
370
|
+
| `llm.model` | string | Yes | Model name |
|
|
371
|
+
| `llm.max_tokens` | number | No | Default 4096 |
|
|
372
|
+
| `llm.timeout` | number | No | Step timeout in ms (default 120000) |
|
|
373
|
+
| `llm.retry` | number | No | Retry count (default 3) |
|
|
374
|
+
| `concurrency` | number | No | Max parallel steps (default 2) |
|
|
375
|
+
| `inputs` | array | No | Input variable definitions |
|
|
376
|
+
| `steps` | array | Yes | Workflow steps |
|
|
377
|
+
|
|
378
|
+
### Step
|
|
379
|
+
|
|
380
|
+
| Field | Type | Required | Description |
|
|
381
|
+
|-------|------|----------|-------------|
|
|
382
|
+
| `id` | string | Yes | Unique step identifier |
|
|
383
|
+
| `role` | string | Yes | Role path (e.g. `"engineering/engineering-sre"`) |
|
|
384
|
+
| `task` | string | Yes | Task description, supports `{{variables}}` |
|
|
385
|
+
| `output` | string | No | Output variable name |
|
|
386
|
+
| `depends_on` | string[] | No | Dependent step IDs |
|
|
387
|
+
| `depends_on_mode` | string | No | `"all"` (default) or `"any_completed"` |
|
|
388
|
+
| `condition` | string | No | Condition expression; step skipped if not met |
|
|
389
|
+
| `type` | string | No | `"approval"` for human approval gate |
|
|
390
|
+
| `prompt` | string | No | Prompt text for approval nodes |
|
|
391
|
+
| `loop` | object | No | Loop config |
|
|
392
|
+
| `loop.back_to` | string | No | Step ID to loop back to |
|
|
393
|
+
| `loop.max_iterations` | number | No | Max loop rounds (1-10) |
|
|
394
|
+
| `loop.exit_condition` | string | No | Exit condition expression |
|
|
395
|
+
|
|
396
|
+
## Programmatic API
|
|
397
|
+
|
|
398
|
+
```typescript
|
|
399
|
+
import { run } from 'agency-orchestrator';
|
|
400
|
+
|
|
401
|
+
const result = await run('workflow.yaml', {
|
|
402
|
+
prd_content: 'Your PRD here...',
|
|
403
|
+
});
|
|
404
|
+
|
|
405
|
+
console.log(result.success); // true/false
|
|
406
|
+
console.log(result.totalTokens); // { input: 1234, output: 5678 }
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
## Integrations
|
|
410
|
+
|
|
411
|
+
Works with **14 AI coding tools** — install with one command:
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
./scripts/install.sh # auto-detect installed tools
|
|
415
|
+
./scripts/install.sh --tool copilot # or specify one
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
| Tool | Config Location | Install Command | Docs |
|
|
419
|
+
|------|----------------|----------------|------|
|
|
420
|
+
| **Claude Code** | Skill mode | `npx superpowers-zh` | [Guide](./integrations/claude-code/) |
|
|
421
|
+
| **GitHub Copilot** | `.github/copilot-instructions.md` | `--tool copilot` | [Guide](./integrations/copilot/) |
|
|
422
|
+
| **Cursor** | `.cursor/rules/` | `--tool cursor` | [Guide](./integrations/cursor/) |
|
|
423
|
+
| **Windsurf** | `.windsurfrules` | `--tool windsurf` | [Guide](./integrations/windsurf/) |
|
|
424
|
+
| **Kiro** | `.kiro/steering/` | `--tool kiro` | [Guide](./integrations/kiro/) |
|
|
425
|
+
| **Trae** | `.trae/rules/` | `--tool trae` | [Guide](./integrations/trae/) |
|
|
426
|
+
| **Aider** | `CONVENTIONS.md` | `--tool aider` | [Guide](./integrations/aider/) |
|
|
427
|
+
| **Gemini CLI** | `GEMINI.md` | `--tool gemini-cli` | [Guide](./integrations/gemini-cli/) |
|
|
428
|
+
| **Codex CLI** | `.codex/instructions.md` | `--tool codex` | [Guide](./integrations/codex/) |
|
|
429
|
+
| **OpenCode** | `.opencode/instructions.md` | `--tool opencode` | [Guide](./integrations/opencode/) |
|
|
430
|
+
| **Qwen Code** | `.qwen/rules/` | `--tool qwen` | [Guide](./integrations/qwen/) |
|
|
431
|
+
| **DeerFlow 2.0** | `skills/custom/` | `--tool deerflow` | [Guide](./integrations/deerflow/) |
|
|
432
|
+
| **Antigravity** | `AGENTS.md` | `--tool antigravity` | [Guide](./integrations/antigravity/) |
|
|
433
|
+
| **OpenClaw** | Skill mode | `--tool openclaw` | [Guide](./integrations/openclaw/) |
|
|
434
|
+
|
|
435
|
+
## Workflow Templates (30)
|
|
436
|
+
|
|
437
|
+
### Dev Workflows (7)
|
|
438
|
+
|
|
439
|
+
| Template | Roles | Description |
|
|
440
|
+
|----------|-------|-------------|
|
|
441
|
+
| `dev/tech-design-review.yaml` | Architect, Backend Architect, Security Engineer, Code Reviewer | **Tech design review** (design → parallel review → verdict) |
|
|
442
|
+
| `dev/pr-review.yaml` | Code Reviewer, Security Engineer, Performance Benchmarker | PR review (3-way parallel → summary) |
|
|
443
|
+
| `dev/tech-debt-audit.yaml` | Architect, Code Reviewer, Test Analyst, Sprint Prioritizer | Tech debt audit (parallel → prioritize) |
|
|
444
|
+
| `dev/api-doc-gen.yaml` | Tech Writer, API Tester | API doc generation (analyze → validate → finalize) |
|
|
445
|
+
| `dev/readme-i18n.yaml` | Content Creator, Tech Writer | README internationalization |
|
|
446
|
+
| `dev/security-audit.yaml` | Security Engineer, Threat Detection Engineer | Security audit (parallel → report) |
|
|
447
|
+
| `dev/release-checklist.yaml` | SRE, Performance Benchmarker, Security Engineer, PM | Release Go/No-Go decision |
|
|
448
|
+
|
|
449
|
+
### Marketing Workflows (3)
|
|
450
|
+
|
|
451
|
+
| Template | Roles | Description |
|
|
452
|
+
|----------|-------|-------------|
|
|
453
|
+
| `marketing/competitor-analysis.yaml` | Trend Researcher, Analyst, SEO Specialist, Executive Summary | **Competitor analysis** (research → parallel analysis → summary) |
|
|
454
|
+
| `marketing/xiaohongshu-content.yaml` | Xiaohongshu Expert, Creator, Visual Storyteller, Operator | **Xiaohongshu content** (topic → parallel creation → optimize) |
|
|
455
|
+
| `marketing/seo-content-matrix.yaml` | SEO Specialist, Strategist, Content Creator | **SEO content matrix** (keywords → strategy → batch generate → review) |
|
|
456
|
+
|
|
457
|
+
### Data / Design / Ops Workflows (7)
|
|
458
|
+
|
|
459
|
+
| Template | Roles | Description |
|
|
460
|
+
|----------|-------|-------------|
|
|
461
|
+
| `data/data-pipeline-review.yaml` | Data Engineer, DB Optimizer, Data Analyst | Data pipeline review |
|
|
462
|
+
| `data/dashboard-design.yaml` | Data Analyst, UX Researcher, UI Designer | Dashboard design |
|
|
463
|
+
| `design/requirement-to-plan.yaml` | PM, Architect, Project Manager | Requirements → tech design → task breakdown |
|
|
464
|
+
| `design/ux-review.yaml` | UX Researcher, Accessibility Auditor, UX Architect | UX review |
|
|
465
|
+
| `ops/incident-postmortem.yaml` | Incident Commander, SRE, PM | Incident postmortem |
|
|
466
|
+
| `ops/sre-health-check.yaml` | SRE, Performance Benchmarker, Infra Ops | SRE health check (3-way parallel) |
|
|
467
|
+
| `ops/weekly-report.yaml` | Meeting Assistant, Content Creator, Executive Summary | **Weekly/monthly report** (organize → highlights → finalize) |
|
|
468
|
+
|
|
469
|
+
### Strategy / Legal / HR Workflows (3)
|
|
470
|
+
|
|
471
|
+
| Template | Roles | Description |
|
|
472
|
+
|----------|-------|-------------|
|
|
473
|
+
| `strategy/business-plan.yaml` | Trend Researcher, Financial Forecaster, PM, Executive Summary | **Business plan** (market → parallel analysis → integrate) |
|
|
474
|
+
| `legal/contract-review.yaml` | Contract Reviewer, Legal Compliance | **Contract review** (clause analysis → compliance → opinion) |
|
|
475
|
+
| `hr/interview-questions.yaml` | Recruiter, Psychologist, Backend Architect | **Interview questions** (dimensions → parallel design → scorecard) |
|
|
476
|
+
|
|
477
|
+
### General Workflows (10)
|
|
478
|
+
|
|
479
|
+
| Template | Roles | Description |
|
|
480
|
+
|----------|-------|-------------|
|
|
481
|
+
| `product-review.yaml` | PM, Architect, UX Researcher | Product requirements review |
|
|
482
|
+
| `content-pipeline.yaml` | Strategist, Creator, Growth Hacker | Content creation pipeline |
|
|
483
|
+
| `story-creation.yaml` | Narratologist, Psychologist, Narrative Designer, Creator | Collaborative fiction (4 roles) |
|
|
484
|
+
| `ai-opinion-article.yaml` | Trend Researcher, Narrative Designer, Psychologist, Creator | AI opinion long-form article |
|
|
485
|
+
| `department-collab/code-review.yaml` | Code Reviewer, Security Engineer | Code review (review loop) |
|
|
486
|
+
| `department-collab/hiring-pipeline.yaml` | HR, Tech Interviewer, Biz Interviewer | Hiring pipeline |
|
|
487
|
+
| `department-collab/content-publish.yaml` | Content Creator, Brand Guardian | Content publishing (review loop) |
|
|
488
|
+
| `department-collab/incident-response.yaml` | SRE, Security Engineer, Backend Architect | Incident response |
|
|
489
|
+
| `department-collab/marketing-campaign.yaml` | Strategist, Creator, Approver | Marketing campaign (human approval) |
|
|
490
|
+
| `department-collab/ceo-org-delegation.yaml` | CEO, Engineering/Marketing/Product/HR Leads | **CEO org delegation** (decide → parallel depts → summary) |
|
|
491
|
+
|
|
492
|
+
## Output Structure
|
|
493
|
+
|
|
494
|
+
Each run saves to `ao-output/<name>-<timestamp>/`:
|
|
495
|
+
|
|
496
|
+
```
|
|
497
|
+
ao-output/product-review-2026-03-22/
|
|
498
|
+
├── summary.md # Final step output
|
|
499
|
+
├── steps/
|
|
500
|
+
│ ├── 1-analyze.md
|
|
501
|
+
│ ├── 2-tech_review.md
|
|
502
|
+
│ ├── 3-design_review.md
|
|
503
|
+
│ └── 4-summary.md
|
|
504
|
+
└── metadata.json # Timing, token usage, step states
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
## Ecosystem
|
|
508
|
+
|
|
509
|
+
```
|
|
510
|
+
Your AI subscription ──→ agency-orchestrator ──→ 186 expert roles collaborate ──→ quality output
|
|
511
|
+
│
|
|
512
|
+
┌────────────────┼────────────────┐
|
|
513
|
+
▼ ▼ ▼
|
|
514
|
+
14 AI Coding Tools CLI Mode MCP Server
|
|
515
|
+
(Cursor/Claude Code (automation/ (Claude Code/
|
|
516
|
+
/Copilot/...) CI/CD) Cursor direct)
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
| Project | Description |
|
|
520
|
+
|---------|-------------|
|
|
521
|
+
| [agency-agents-zh](https://github.com/jnMetaCode/agency-agents-zh) | 186 AI role definitions — the role library for this engine |
|
|
522
|
+
| [superpowers-zh](https://github.com/jnMetaCode/superpowers-zh) | AI coding superpowers — 20 skills for Claude Code / Cursor |
|
|
523
|
+
| [shellward](https://github.com/jnMetaCode/shellward) | AI agent security middleware — prompt injection detection, DLP, command safety |
|
|
524
|
+
|
|
525
|
+
## Roadmap
|
|
526
|
+
|
|
527
|
+
- [x] **v0.1** — YAML workflows, DAG engine, 4 LLM connectors, CLI, streaming output
|
|
528
|
+
- [x] **v0.2** — Condition branching, loop iteration, human approval, Resume, 5 department-collab templates
|
|
529
|
+
- [x] **v0.3** — 9 AI tool integrations, 20+ workflow templates, `ao explain`, `ao init --workflow`, `--watch` mode
|
|
530
|
+
- [x] **v0.4** — MCP Server mode (`ao serve`), 14 AI tool integrations, one-command installer, 30 workflow templates, **9 LLM providers (6 need no API key: Claude Code / Gemini / Copilot / Codex / OpenClaw / Ollama)**
|
|
531
|
+
- [ ] **v0.5** — Web UI, visual DAG editor, English role support, workflow marketplace
|
|
532
|
+
|
|
533
|
+
## Contributing
|
|
534
|
+
|
|
535
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md). PRs welcome!
|
|
536
|
+
|
|
537
|
+
## License
|
|
538
|
+
|
|
539
|
+
[Apache-2.0](./LICENSE)
|