ai-dev-team 是 AI Skill Hub 本期精选Agent工作流之一。综合评分 7.5 分,整体质量较高。我们推荐使用将其纳入你的 AI 工具库,帮助提升工作效率。
ai-dev-team 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
ai-dev-team 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 方式一:pip 安装(推荐)
pip install ai-dev-team
# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install ai-dev-team
# 方式三:从源码安装(获取最新功能)
git clone https://github.com/wanleung/ai-dev-team
cd ai-dev-team
pip install -e .
# 验证安装
python -c "import ai_dev_team; print('安装成功')"
# 命令行使用
ai-dev-team --help
# 基本用法
ai-dev-team input_file -o output_file
# Python 代码中调用
import ai_dev_team
# 示例
result = ai_dev_team.process("input")
print(result)
# ai-dev-team 配置文件示例(config.yml) app: name: "ai-dev-team" debug: false log_level: "INFO" # 运行时指定配置文件 ai-dev-team --config config.yml # 或通过环境变量配置 export AI_DEV_TEAM_API_KEY="your-key" export AI_DEV_TEAM_OUTPUT_DIR="./output"
A team of AI agents that builds software from a plain-English requirement — creating GitHub Issues, feature branches, pull requests, tests, and deployment smoke tests automatically.
Built on the GitHub Models API — the same AI backbone that powers GitHub Copilot CLI.
---
Build iOS and Android apps for rectal cancer patient questionnaires.
Target repo: wanleung/my-mobile-app
ai-software-house repollm: section in repos-available/*.yaml that overrides the global config for that repo only (model, per-agent overrides, fallback chains, pool limits)pr-campaign to run a 3-stage pipeline (Analyst → Creative → Proposal) that researches your campaign brief and outputs a polished proposal PR with social copy and platform tacticsdiscuss_brainstorm to any pipeline to run a moderated debate; participants can be any agent role file, inline personas, or auto-selected by the LLM from a pool; transcript and synthesis injected into all downstream stagesnone, docker (local docker-compose), or libvirt (remote VM via SSH + CoW overlay) for its deploy test strategymax_revisions rounds)update-branch PR comments and automatically merges the base branch into the PR branch, keeping it up to date without human interventionConflictResolverAgent clones the repo locally, uses real 3-way git conflict markers (<<<</====/>>>>), and resolves each file with a configurable strong LLM; configurable per-repo via conflict_resolver_model in repos.yamlruff, QA Planner searches GitHub Issues; any agent can call tools via call_with_tools()search_codebase, search_memory, and search_docs tools — powered by Ollama, vLLM, or OpenAI embeddingsskills/ that inject domain-specific guidance into agent prompts; auto-detected from project context (issue body, repo languages) or always-loaded from configpipeline.yaml file; use the built-in browser GUI (--config-builder) to build and save it without editing YAML by handpipelines/<label>.yaml file; add a new pipeline type by creating one YAML file, no Python or new workflow required--refactor flag analyses and cleans up workspace code, opens a cleanup PRparallel_issues cap + global settings.max_parallel; per-LLM-backend semaphore pools keep local Ollama at 1 concurrent callconfig.yamlconfig.yamlmetrics_server.py exposes aisw_circuit_breaker_events_total, aisw_dlq_events_total, and aisw_degradation_events_total counters; wired via metrics_url in watchers.yml → events fire-and-forget to the sink so the watcher is never blockedLearningAgent that writes DO NOT rules from failures (Layer 3), and BootstrapPatternsAgent that seeds new repos with cheatsheets from day zero (Layer 4)ai-feature.yaml, ai-fix.yaml, tdd.yaml, and ai-smart-fix.yaml---
stages: - pm - pm_reviewer - architect - discuss_brainstorm # ← insert here, after design, before engineering - reviewer - junior_engineer - senior_engineer - validation_gate - qa_planner - qa_engineer
#### What happens during the stage
| Phase | What happens |
|-------|-------------|
| **Homework** | Each participant thinks independently and writes their initial analysis |
| **Rounds 1–2** | Open discussion — participants can `@mention` each other to respond directly |
| **Early exit** | Stops before max rounds if moderator signals `CONSENSUS_REACHED` |
| **Output** | `discussion_transcript` + `discussion_synthesis` injected into all downstream stages |
Downstream agents (reviewer, engineers, QA) receive the full transcript and synthesis, so they understand the reasoning behind design choices without re-deriving them.
#### Trigger via GitHub issue
Create an issue with your feature or architecture brief and apply whatever label maps to your pipeline:
markdown
Add webhook support to the notification service so external systems can subscribe to job completion events.
Acceptance criteria: - POST /webhooks to register an endpoint - Events fired on job status change (queued, running, done, failed) - Retry on delivery failure (3 attempts, exponential backoff)
The brainstorm stage will debate the approach before the architect and engineers write any code.
#### Create a custom discussion preset
Drop a YAML file into `discussions/` and it's automatically available as a stage:
yaml
repo + read:org (for GitHub Models access)python main.py --file requirements/my-app.txt --repo owner/target-repo
The minimal setup to run the core pipeline — no Docker, no GitHub Actions, no reviewers. Just PM → Architect → Engineers → Code Reviewer → QA Engineer pushing code to a GitHub repo.
git clone https://github.com/your-username/ai-software-house
cd ai-software-house
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
git clone https://github.com/your-username/ai-software-house
cd ai-software-house
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
Instead of editing YAML by hand, launch the browser-based GUI:
python main.py --config-builder
This opens a local web server (URL printed to console) with a drag-and-drop palette:
max / until / inner stagespipeline.yaml next to your config.yamlNo GitHub token needed — --config-builder exits before any network calls.
To add a Memory Bank to any project, use the templates from copilot-agent-setting:
cd /path/to/copilot-agent-setting
./deploy-memory-bank.sh /path/to/your-project
Then fill in memory-bank/projectbrief.md and memory-bank/productContext.md. The pipeline will keep the other files up to date automatically.
from orchestrator import Orchestrator
orch = Orchestrator(
model="gpt-4.1",
github_token="ghp_...",
target_repo="owner/my-app",
num_engineers=3,
)
result = orch.run("Build a REST API for patient questionnaires")
print(result.prd) # PRD markdown
print(result.prd_verdict) # PRD APPROVED / NEEDS REVISION
print(result.design) # System design markdown
print(result.design_verdict) # DESIGN APPROVED / NEEDS REVISION
print(result.qa_plan) # Full test plan from QA Planner
print(result.qa_acceptance_criteria) # ['AC-01', 'AC-02', ...]
print(result.pr_url) # GitHub PR URL
print(result.tests_passed) # True / False / None
print(result.run_id) # UUID for this pipeline run
print(result.total_cost_usd) # estimated USD cost (requires cost_tracking.enabled)
print(result.token_usage) # dict with by_stage and by_model breakdowns
chmod +x setup_cron.sh
./setup_cron.sh
Or manually: ```bash crontab -e
```bash
Create a GitHub Issue, then add the ai-feature label:
```markdown Title: Patient questionnaire mobile app
Every agent's behaviour is controlled entirely by its role file (roles/<agent>.md). This file becomes the LLM's system prompt — change the markdown, change the agent.
Edit config.yaml — change just one line:
github:
repo: "your-username/my-first-agent-app" # ← your new repo
Disable the optional agents to keep it fast:
team:
num_engineers: 1 # start with 1 engineer
agents:
product_manager: true
pm_reviewer: false # skip for MVP
architect: true
engineer: true
code_reviewer: true
qa_planner: false # skip for MVP
qa_engineer: true
deployment_tester: false # skip — needs Docker
cp config.yaml config.local.yaml # optional — edit as needed
export GITHUB_TOKEN=ghp_your_classic_pat
Using Anthropic Claude models? Add your Anthropic key alongsideGITHUB_TOKEN:Model names starting with> # For Anthropic Claude models (claude-sonnet-4.6, claude-opus-4.5, etc.) > export ANTHROPIC_API_KEY=sk-ant-your-key-here >claude-are automatically routed to the Anthropic API.GITHUB_TOKENis still required for all GitHub operations.
Using OpenCode Zen or Go models? Export the OpenCode API key:Both> export OPENCODE_ZEN_API_KEY=your-opencode-api-key >opencode-zen/andopencode-go/model prefixes share this key. Get one at <https://opencode.ai/auth>.
Using OpenAI API (BusinessChatGPT)? Export your OpenAI API key:Use the> export OPENAI_API_KEY=sk-your-key-here >openai/prefix:openai/gpt-4o,openai/gpt-4.1-mini, etc.
Using NVIDIA NIM? Export your NVIDIA API key:Use the> export NVIDIA_API_KEY=nvapi-your-key-here >nvidia-nim/prefix:nvidia-nim/meta/llama-3.1-70b-instruct, etc.
Using Alibaba DashScope / Qwen? Export your DashScope API key:Use the> export DASHSCOPE_API_KEY=sk-your-key-here >dashscope/prefix:dashscope/qwen3-plus,dashscope/qwen3-turbo, etc.
Edit config.yaml:
github:
repo: "your-username/your-repo" # where code will be pushed
To use a local Ollama server instead of GitHub Models or Anthropic:
1. Set any agent's model to an ollama/ prefixed name in config.yaml:
llm:
model: "ollama/llama3.2"
overrides:
engineer: "ollama/qwen2.5-coder"
2. Create config.local.yaml alongside config.yaml to set your Ollama server URL (this file is gitignored — never committed):
llm:
ollama_url: "http://your-ollama-host:11434"
If omitted, defaults to http://localhost:11434.
3. Pull the required model on your Ollama server:
ollama pull llama3.2
Run models through the OpenCode CLI instead of a direct API:
1. Install and authenticate OpenCode:
npm install -g opencode-ai # or follow opencode.ai instructions
opencode auth login
2. Set model names with the opencode/<provider>/<model> prefix:
llm:
model: "opencode/anthropic/claude-sonnet-4-5"
overrides:
engineer: "opencode/openai/gpt-4o"
OpenCode resolves the provider from its own auth config. Override the binary path with OPENCODE_BIN if needed.
⚠️ OpenCode CLI does not support tool-calling. The Code Reviewer agent will fail if assigned anopencode/model. Useopencode-go/oropencode-zen/for tool-calling agents.
Direct HTTP access to OpenCode Zen (Claude, GPT, Gemini, and more):
1. Get an API key at <https://opencode.ai/auth> and export it:
export OPENCODE_ZEN_API_KEY=your-key-here
2. Use the opencode-zen/<model-id> prefix:
llm:
model: "opencode-zen/claude-sonnet-4-6"
overrides:
engineer: "opencode-zen/gpt-5.3-codex"
Claude models route to the Anthropic Messages endpoint; all others use the OpenAI-compatible endpoint and support tool-calling.
Access the OpenCode Go plan models (Kimi, Qwen, GLM, MiMo, MiniMax):
OPENCODE_ZEN_API_KEY.2. Use the opencode-go/<model-id> prefix:
llm:
model: "opencode-go/kimi-k2.5"
overrides:
engineer: "opencode-go/qwen3.6-plus"
| Model ID | Endpoint | Tool-calling | |---|---|---| | kimi-k2.5, qwen3.6-plus, qwen3.5-plus, glm-5.1, glm-5, mimo-v2-pro, mimo-v2-omni | /chat/completions | ✅ | | minimax-m2.7, minimax-m2.5 | Anthropic /messages | ❌ |
Override the base URL with OPENCODE_GO_BASE_URL if needed.
Run xAI Grok models via the Grok CLI subprocess:
2. Set model names with the grok/<model> prefix:
llm:
model: "grok/grok-3"
overrides:
engineer: "grok/grok-3-mini"
Override the binary path with GROK_BIN if needed.
⚠️ Grok CLI does not support tool-calling. The Code Reviewer agent will fail if assigned a grok/ model.
Direct HTTP access to the xAI API using the OAuth browser flow:
1. Use the grok-oauth/<model> prefix — the first call opens a browser for xAI OAuth login:
llm:
model: "grok-oauth/grok-3"
overrides:
engineer: "grok-oauth/grok-3-mini"
Token is refreshed automatically. Override client ID with XAI_OAUTH_CLIENT_ID if needed.
Supports tool-calling (OpenAI-compatible endpoint).
Access NVIDIA-hosted models (Llama, Mistral, Nemotron, etc.) via the NIM inference API:
1. Get an API key from build.nvidia.com and export it:
export NVIDIA_API_KEY=nvapi-your-key-here
2. Use the nvidia-nim/<model> prefix:
llm:
model: "nvidia-nim/meta/llama-3.1-70b-instruct"
overrides:
engineer: "nvidia-nim/mistralai/mistral-7b-instruct-v0.3"
Override the endpoint with NVIDIA_NIM_BASE_URL (default: https://integrate.api.nvidia.com/v1).
Supports tool-calling.
Access Alibaba Cloud Qwen and other DashScope models:
1. Get an API key from dashscope.aliyuncs.com and export it:
export DASHSCOPE_API_KEY=sk-your-key-here
2. Use the dashscope/<model> prefix:
llm:
model: "dashscope/qwen3-plus"
overrides:
engineer: "dashscope/qwen3-turbo"
Default endpoint: https://dashscope-intl.aliyuncs.com/compatible-mode/v1. Override with dashscope_url in config.
Supports tool-calling.
Use GitHub Copilot's internal inference API — requires an active Copilot subscription:
1. Auth is auto-discovered from ~/.copilot/config.json (set by the Copilot CLI). Or export the token directly:
export COPILOT_OAUTH_TOKEN=gho_your-copilot-token
2. Use the copilot/<model> prefix:
llm:
model: "copilot/gpt-4o"
overrides:
engineer: "copilot/gpt-4.1-mini"
Supports tool-calling.
Direct access to the OpenAI API (api.openai.com) — for ChatGPT Plus/Team/Enterprise subscribers using a standard API key:
1. Export your OpenAI API key:
export OPENAI_API_KEY=sk-your-key-here
2. Use the openai/<model> prefix:
llm:
model: "openai/gpt-4o"
overrides:
engineer: "openai/gpt-4.1-mini"
Supports tool-calling. Fallbacks work as normal across all agents.
Run the OpenAI Codex CLI agent (codex exec) as a subprocess — requires a ChatGPT Plus/Pro account:
1. Install and sign in:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
# or: npm install -g @openai/codex
codex # sign in with your ChatGPT account on first run
2. Use the codex/<model> prefix:
llm:
model: "codex/codex-mini-latest"
overrides:
engineer: "codex/o4-mini"
Override the binary path with CODEX_BIN if needed.
⚠️ Codex CLI does not support tool-calling. The Code Reviewer agent will fail if assigned a codex/ model.
python main.py [options]
Input (one required):
--file PATH Path to a .txt file containing the requirement
--requirement TEXT Requirement as a command-line string
Routing:
--repo OWNER/REPO Target repository for code (overrides config.yaml)
Model:
--model MODEL Override model for ALL agents
--model-override AGENT=MODEL Override model for one agent (repeatable)
Agent names: product_manager, pm_reviewer, architect,
architect_reviewer, engineer, code_reviewer,
qa_planner, qa_engineer, deployment_tester
Team:
--engineers N Number of parallel Engineer agents (default: 2)
Pipeline:
--no-resume Ignore checkpoint and start from scratch
--stop-on-review Halt pipeline if Code Reviewer requests changes
--refactor Dream mode: analyse workspace code and open a cleanup PR
--mode {build,revise} 'build' (default) runs full pipeline; 'revise' processes PR feedback
--pr PR_NUMBER PR number to revise — required when --mode=revise
--config-builder Launch browser-based GUI to build/edit pipeline.yaml, then exit
--pipeline NAME Run a named pipeline (matches pipelines/<name>.yaml or built-ins: ai-feature, ai-fix, ai-docs)
--list-pipelines Print all available pipeline names (project + built-in) and exit
watcher.py options:
--once Process all pending issues once, then exit (used by GitHub Actions)
--dry-run Show what would run; make no GitHub changes
--config PATH Use a different repos.yaml file (default: repos.yaml)
---
llm:
# Default model for all agents
# ── GitHub Models (default) ─────────────────────────────────────────────
# gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-4o, gpt-4o-mini, o4-mini, o3
# claude-3.5-sonnet, claude-3.7-sonnet, claude-3-haiku
# meta-llama-3.3-70b-instruct, mistral-large-2411
# deepseek-r1, deepseek-v3, cohere-command-r-plus
#
# ── Anthropic Claude API (ANTHROPIC_API_KEY required) ──────────────────
# claude-sonnet-4-6, claude-opus-4-5, claude-3-5-sonnet-20241022, ...
# Any model starting with "claude-" is auto-routed to Anthropic.
# ⚠️ Does NOT support tool-calling (Code Reviewer will fail).
#
# ── Ollama (local, ollama_url below) ───────────────────────────────────
# ollama/llama3.2, ollama/qwen2.5-coder, ollama/mistral, ...
# Tool-calling ✅
#
# ── OpenCode CLI (opencode must be installed + authenticated) ───────────
# opencode/<provider>/<model>
# e.g. opencode/anthropic/claude-sonnet-4-5
# opencode/openai/gpt-4o
# ⚠️ Does NOT support tool-calling (Code Reviewer will fail).
#
# ── OpenCode Zen API (OPENCODE_ZEN_API_KEY required) ───────────────────
# opencode-zen/<model-id>
# e.g. opencode-zen/claude-sonnet-4-6 → Anthropic endpoint
# opencode-zen/gpt-5.3-codex → OpenAI endpoint (tool-calling ✅)
#
# ── OpenCode Go API (OPENCODE_ZEN_API_KEY required) ────────────────────
# opencode-go/<model-id>
# e.g. opencode-go/kimi-k2.5, opencode-go/qwen3.6-plus (tool-calling ✅)
# opencode-go/minimax-m2.7 → Anthropic endpoint (no tool-calling)
#
# ── Grok CLI (grok must be installed + authenticated) ──────────────────
# grok/<model-id>
# e.g. grok/grok-3, grok/grok-3-mini
# ⚠️ Does NOT support tool-calling (Code Reviewer will fail).
# Override binary path: GROK_BIN env var.
#
# ── Grok OAuth / xAI API (browser OAuth on first use) ──────────────────
# grok-oauth/<model-id>
# e.g. grok-oauth/grok-3, grok-oauth/grok-3-mini
# Tool-calling ✅ Override client ID: XAI_OAUTH_CLIENT_ID env var.
#
# ── NVIDIA NIM (NVIDIA_API_KEY required) ────────────────────────────────
# nvidia-nim/<model-id>
# e.g. nvidia-nim/meta/llama-3.1-70b-instruct
# nvidia-nim/mistralai/mistral-7b-instruct-v0.3
# Tool-calling ✅ Override endpoint: NVIDIA_NIM_BASE_URL env var.
#
# ── Alibaba DashScope / Qwen (DASHSCOPE_API_KEY required) ───────────────
# dashscope/<model-id>
# e.g. dashscope/qwen3-plus, dashscope/qwen3-turbo
# Tool-calling ✅ Override endpoint: dashscope_url in config.
#
# ── GitHub Copilot (COPILOT_OAUTH_TOKEN or ~/.copilot/config.json) ──────
# copilot/<model-id>
# e.g. copilot/gpt-4o, copilot/gpt-4.1-mini
# Tool-calling ✅ Requires active GitHub Copilot subscription.
#
# ── OpenAI API / BusinessChatGPT (OPENAI_API_KEY required) ─────────────
# openai/<model-id>
# e.g. openai/gpt-4o, openai/gpt-4.1-mini
# Tool-calling ✅
#
# ── OpenAI Codex CLI (ChatGPT Plus/Pro account required) ────────────────
# codex/<model-id>
# e.g. codex/codex-mini-latest, codex/o4-mini
# Install: curl -fsSL https://chatgpt.com/codex/install.sh | sh
# ⚠️ Does NOT support tool-calling (Code Reviewer will fail).
# Override binary path: CODEX_BIN env var.
model: "gpt-4.1"
# Per-agent model overrides
overrides:
product_manager: "gpt-4.1" # reasoning-heavy
pm_reviewer: "gpt-4.1"
architect: "gpt-4.1"
architect_reviewer: "gpt-4.1"
engineer: "gpt-4.1-mini" # runs many times — use cheaper model
code_reviewer: "gpt-4.1"
qa_planner: "gpt-4.1" # test planning needs strong reasoning
qa_engineer: "gpt-4.1-mini" # repetitive test writing — cheaper
deployment_tester: "gpt-4.1-mini"
github:
repo: "owner/repo" # default target repo
branch_prefix: "feature/agent"
team:
num_engineers: 2
agents: # enable / disable individual agents
product_manager: true
pm_reviewer: true
architect: true
engineer: true
code_reviewer: true
qa_planner: true
qa_engineer: true
deployment_tester: true
pipeline:
workspace_dir: "./workspace"
stop_on_review_issues: false
max_retries: 2
max_revisions: 3 # max automated PR revision rounds (0 = disabled)
mode: "standard" # "standard" | "tdd" | "blocky"
tdd_commit_tests: false # (TDD mode) commit test files to branch before implementation
# Note: if pipeline.yaml exists in the project root, it overrides pipeline.mode.
skills:
always_load: [] # e.g. [security-audit] to always apply
marketplace_repo: "" # e.g. "myorg/ai-software-house-skills"
cache_dir: "" # defaults to ~/.ai-software-house/skills/
fetch_timeout: 5
mcp:
servers: [] # see "Using MCP Servers" section below
cost_tracking:
enabled: false # set true to enable tracking
db_path: "./token_usage.db" # SQLite file path (relative to project root)
post_to_github: false # post usage summary comment to the GitHub issue
# Pricing per 1M tokens: [input_price_usd, output_price_usd]
# Set to [0.00, 0.00] for local/free models (Ollama, etc.)
# Unlisted models fall back to "default".
pricing:
gpt-4.1: [2.00, 8.00]
gpt-4.1-mini: [0.40, 1.60]
gpt-4o: [2.50, 10.00]
qwen3.6-plus: [0.50, 1.50]
qwen3.5-plus: [0.30, 1.20]
thinker: [0.00, 0.00]
thinker-best: [0.00, 0.00]
coder: [0.00, 0.00]
fast: [0.00, 0.00]
chat: [0.00, 0.00]
default: [2.00, 8.00] # fallback for any unlisted model
---
watchers:
- tracker_repo: wanleung/ai-software-house # where issues are filed
default_target: wanleung/my-app # default target repo for code
parallel_issues: 2 # max simultaneous issues for this repo
labels:
ai-feature: ai-feature # label → pipeline name (matches pipelines/ai-feature.yaml)
ai-fix: ai-fix
ai-docs: ai-docs
enabled: true
- tracker_repo: wanleung/another-project # watch a second repo
default_target: ~ # null = same repo as tracker
enabled: true
settings:
max_parallel: 3 # global cap across all repos
num_engineers: 2
model: "gpt-4.1"
log_dir: ./logs/watcher
Legacyfeature_label/bug_label/doc_labelfields are still supported — they are automatically mapped toai-feature,ai-fix, andai-docspipelines respectively.
Use**Target repo:** owner/repoin the issue body to route code to a different repo thandefault_target.
Each repo entry can declare its own llm: block that deep-merges on top of the global config.yaml LLM config. This lets different projects use different models, fallbacks, or concurrency limits — with no change to the global config.
```yaml
0 cd /home/you/ai-software-house && venv/bin/python watcher.py >> logs/watcher/cron.log 2>&1 ```
python watcher.py --config my-other-repos.yaml ```
```python from orchestrator import Orchestrator
orch = Orchestrator(model="gpt-4.1", github_token="ghp_...", target_repo="owner/repo")
1. 📋 Product Manager — requirement → PRD + GitHub Issue
2. 📝 PM Reviewer — reviews PRD; optionally revises before architecture
3. 🏗️ Architect — PRD → system design + module list
4. 🔎 Arch Reviewer — reviews design; optionally revises before engineering
5. 🗺️ Repo Indexer — injects repo tree into prompts (small repos) or auto-indexes codebase into RAG (large repos)
6. 💻 Engineers ×N — parallel code generation → feature branch + PR
7. 🔍 Code Reviewer — reviews code → PR comment with verdict
8. 📋 QA Planner — PRD + design + code → structured test plan + acceptance criteria
9. 🧪 QA Engineer — implements tests guided by QA Planner's test plan → PR
10. 🏃 Test Runner — runs pytest locally → PR comment with results
11. 🚀 Deployment Tester — generates docker-compose.test.yml + smoke tests → PR
12. 🐳 Deploy Test Runner — runs deploy smoke tests via the repo's configured backend (docker / libvirt / none) → PR comment
13. 🧠 Summariser — writes compact memory entry (what was built, decisions, feedback, tech debt)
**Bug-fix stages** (used in `ai-fix` pipeline):
14. 🔬 Diagnose — reads issue + codebase, pinpoints root cause
15. 🐛 Bug Fix — applies targeted fix → branch + PR
**Documentation stages** (used in `ai-docs` pipeline):
16. 📝 Doc Generate — reads existing docs + source, writes/updates documentation files
17. 📤 Doc Commit/PR — commits doc files to a branch and opens a PR
---
By default the pipeline runs all stages in the order shown above. You can replace this with any custom stage sequence by creating a pipeline.yaml in the project root.
Each GitHub label can trigger its own pipeline. The watcher picks the pipeline file based on the label name.
Built-in pipelines:
| Label | Pipeline File | Purpose |
|---|---|---|
ai-feature | pipelines/ai-feature.yaml | Full feature build (PM → Architect → Engineer → QA) |
ai-fix | pipelines/ai-fix.yaml | Bug-fix flow (diagnose → fix → review → test) |
ai-docs | pipelines/ai-docs.yaml | Generate documentation and open a PR |
Custom pipelines: Create pipelines/<your-label>.yaml with a stages: list and add the label to your repo entry in repos.yaml. See Custom Pipeline (pipeline.yaml) for the full format.
Per-project override: A pipeline.yaml at the project's root takes precedence over the built-in pipelines/<label>.yaml.
When a run completes with issues (failing tests, reviewer changes requested), the watcher automatically swaps the completion label for a follow-up trigger label — no human needed to re-queue.
Issue #42 (ai-feature)
→ tests fail
→ watcher adds ai-fix instead of agent-complete
→ posts comment explaining the chain
→ next watcher cycle picks up ai-fix → runs fix pipeline
→ tests pass → adds agent-complete ← done
Configure in config.yaml:
pipeline:
chaining:
on_test_failure: "ai-fix" # label to apply when tests fail
on_review_issues: "ai-fix" # label to apply when reviewer requests changes
# set to ~ (null) to disable a rule
📖 Seedocs/operations-guide.md§ 6 for full details, priority rules, and how to setnext_labelfrom a custom stage.
Label an issue ai-docs to trigger a lightweight doc-update pipeline — no PM, Architect, or Engineers involved.
The built-in pipeline is defined in pipelines/ai-docs.yaml and runs two stages: 1. doc_generate — reads existing docs + source from the target repo, writes/updates documentation files 2. doc_commit_pr — commits the files to a branch doc/<issue-number>-<slug> and opens a PR referencing and closing the issue
Issue body format:
Update the README installation section and add a troubleshooting guide.
**Docs:** README.md, docs/troubleshooting.md
**Target repo:** owner/my-app
**Docs:** is optional — if omitted, the agent auto-discovers .md files in the repo (up to 5)**Target repo:** is optional — if omitted, the watcher's repo is used---
Label an issue pr-campaign to run a 3-stage content creation pipeline that produces a fully formatted campaign proposal and opens a GitHub PR for human review.
Built-in pipeline: pipelines/pr-campaign.yaml
| Stage | Agent | Output |
|---|---|---|
pr_analyst | Alex — PR Analyst | Structured research: opportunity, audience, angle, channels, risks |
pr_creative | Casey — PR Creative | 3–5 campaign concepts with platform tactics (LinkedIn, Instagram, TikTok, X) and ready-to-post social copy |
pr_proposal | Jordan — PR Proposal | Polished Markdown proposal + PR metadata (title, body) |
The watcher monitors wanleung/pr-campaigns for issues labelled pr-campaign. Create an issue there with your campaign brief and apply the label:
```markdown
| MVP | Full | |
|---|---|---|
| Agents | 4 core agents | 9 agent types |
| Reviewers | Code Reviewer only | PM Reviewer + Arch Reviewer + Code Reviewer |
| Test planning | QA Engineer only | QA Planner → QA Engineer |
| Deployment tests | ❌ | ✅ Docker / libvirt / none (per-repo) |
| GitHub Actions | ❌ | ✅ Auto-trigger on issue labels |
| Time to first PR | ~2–3 min | ~5–10 min |
Once the MVP works, turn agents back on one by one in config.yaml.
---
ai-dev-team 是一个基于 AI Agent 的自动化软件开发团队。它能够根据纯英文的需求描述,自动完成从创建 GitHub Issues、开发 Feature Branches、提交 Pull Requests 到编写测试及执行 Deployment Smoke Tests 的全流程。该项目构建于 GitHub Models API 之上,拥有与 GitHub Copilot CLI 相同的 AI 底座能力,旨在实现从需求到代码的自动化交付。
本项目拥有一套高度专业化的 Agent 团队,包含 PM、Architect、Engineer、Code Reviewer 及 QA Engineer 等 9 种专业角色,支持多 Agent 并行协作。系统具备 Checkpoint/Resume 功能,支持在中断后从最后一个成功阶段恢复。此外,它支持 Multi-repo Routing,Agent 可将代码推送到目标仓库,而任务追踪则集中在中央仓库中,并允许为不同 Agent 配置独立的 LLM。
运行本项目需要 Python 3.11+ 环境。开发者必须准备一个 GitHub Classic PAT(注意不是 Fine-grained PAT),并授予 `repo` 和 `read:org` 权限以访问 GitHub Models。此外,若需要执行 Deployment Smoke Tests,建议安装 Docker 环境。
本项目提供快速的 MVP Setup 方案,可在 5 分钟内完成核心流水线的部署。对于基础运行,无需 Docker 或 GitHub Actions,仅需克隆源码、创建 Python 虚拟环境并使用 pip 安装 requirements.txt 即可。如需完整功能,请参考 Full Setup 指南进行配置。
项目的核心逻辑由每个 Agent 的 Role File(位于 `roles/` 目录下)完全控制。这些 Markdown 文件直接作为 LLM 的 System Prompt。开发者可以通过修改这些 Markdown 文件来定义或改变 Agent 的行为。对于高级用户,可以通过定义 `pipeline.yaml` 来自定义工作流阶段,甚至通过 GitHub Label 触发特定的 Pipeline 逻辑。
项目通过 `config.yaml` 进行配置管理。在 MVP 模式下,您只需修改目标仓库路径。为了保持运行速度,可以通过配置文件禁用可选的 Agent 角色。支持通过环境变量 `GITHUB_TOKEN` 配置 GitHub 访问权限,若需使用 Anthropic Claude 系列模型(如 claude-sonnet),还需配置 `ANTHROPIC_API_KEY`。
除了命令行操作,本项目还提供了强大的 Python API。开发者可以通过导入 `orchestrator` 模块中的 `Orchestrator` 类,直接在自己的 Python 程序中实例化并调用 AI 编排器,实现对模型、GitHub Token 及目标仓库的精细化控制。
项目采用模块化的 Pipeline 阶段设计,涵盖了从 Product Manager(需求转 PRD)到 Architect(系统设计)、再到 Engineer(编码)及 QA(测试验证)的完整生命周期。系统支持通过 `pipeline.yaml` 自定义阶段序列,并支持通过 GitHub Label 映射不同的 Pipeline 逻辑(如 `ai-feature` 或 `ai-fix`),实现差异化的自动化处理。
该项目提供了一种创新性的AI工作流解决方案,虽然仍有改进空间,但其潜力值得关注
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
⚠️ GPL 3.0 — 强 Copyleft,衍生作品须开源,含专利保护条款,不可闭源使用。
经综合评估,ai-dev-team 在Agent工作流赛道中表现稳健,质量良好。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。
| 原始名称 | ai-dev-team |
| 原始描述 | 开源AI工作流:A team of AI agents that builds software from plain-English requirements — PM, A。⭐6 · Python |
| Topics | workflowpython |
| GitHub | https://github.com/wanleung/ai-dev-team |
| License | GPL-3.0 |
| 语言 | Python |
收录时间:2026-05-18 · 更新时间:2026-05-19 · License:GPL-3.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端