能力标签
⚙️
Agent工作流

ai-dev-team

基于 Python · 无代码搭建完整 AI 自动化流程
⭐ 6 Stars 🍴 2 Forks 💻 Python 📄 GPL-3.0 🏷 AI 7.5分
7.5AI 综合评分
workflowpython
✦ AI Skill Hub 推荐

ai-dev-team 是 AI Skill Hub 本期精选Agent工作流之一。综合评分 7.5 分,整体质量较高。我们推荐使用将其纳入你的 AI 工具库,帮助提升工作效率。

📚 深度解析
ai-dev-team 是一套完整的 AI Agent 自动化工作流方案。随着 AI 能力的不断提升,基于 Agent 的自动化工作流正在成为提升个人和团队效率的核心方式。区别于传统的 RPA 自动化(模拟鼠标键盘操作),AI Agent 工作流通过理解任务意图、动态规划执行路径,能够处理更复杂的非结构化任务。

ai-dev-team 工作流的设计遵循"最小配置,最大复用"原则:核心逻辑已经封装好,用户只需配置自己的 API Key 和业务参数即可快速上手。工作流内置错误处理和重试机制,在网络波动或 API 限速等情况下仍能稳定运行,适合作为生产环境的自动化基础设施。

在实际部署时,建议先在测试环境中运行 3-5 次,验证各个环节的输出结果符合预期,再部署到生产环境。AI Skill Hub 评分 7.5 分,是同类 Agent 工作流中的精选推荐。
📋 工具概览

ai-dev-team 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。

GitHub Stars
⭐ 6
开发语言
Python
支持平台
Windows / macOS / Linux
维护状态
轻量级项目,按需更新
开源协议
GPL-3.0
AI 综合评分
7.5 分
工具类型
Agent工作流
Forks
2
📖 中文文档
以下内容由 AI Skill Hub 根据项目信息自动整理,如需查看完整原始文档请访问底部「原始来源」。

ai-dev-team 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。

📌 核心特色
  • 可视化 Agent 工作流编排,无需编写复杂代码
  • 支持多步骤自动化任务链,实现全流程无人值守
  • 与外部 API、数据库和第三方服务无缝集成
  • 内置错误处理与自动重试机制,保障稳定运行
  • 提供可复用的自动化模板,快速在同类场景部署
🎯 主要使用场景
  • 自动化日常重复性工作,将精力集中于创造性任务
  • 构建数据采集 → 处理 → 输出的完整自动化管线
  • 实现跨平台、跨系统的数据流转和业务协同
以下安装命令基于项目开发语言和类型自动生成,实际以官方 README 为准。
安装命令
# 方式一: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('安装成功')"
📋 安装步骤说明
  1. 访问 GitHub 仓库获取工作流文件
  2. 在对应平台(Dify / Flowise / Make 等)中找到「导入工作流」功能
  3. 上传工作流文件
  4. 按照提示配置必要的环境变量和 API Key
  5. 运行测试确认流程正常后投入使用
以下用法示例由 AI Skill Hub 整理,涵盖最常见的使用场景。
常用命令 / 代码示例
# 命令行使用
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"
📑 README 深度解析 真实文档 完整度 87/100 查看 GitHub 原文 →
以下内容由系统直接从 GitHub README 解析整理,保留代码块、表格与列表结构。

🏢 AI Software House

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.

---

Description

Build iOS and Android apps for rectal cancer patient questionnaires.

Target repo: wanleung/my-mobile-app

✨ Features

  • 9 specialised agent types (10+ agents in parallel): PM → PM Reviewer → Architect → Arch Reviewer → Engineers ×N → Code Reviewer → QA Planner → QA Engineer → Deployment Tester
  • Checkpoint / resume — interrupted runs pick up from the last successful stage
  • Multi-repo routing — agents push to a target repo; tracking issues live in a central ai-software-house repo
  • Per-agent LLM config — assign any GitHub Models model to each agent independently
  • Per-repo LLM config — each repo can declare its own llm: section in repos-available/*.yaml that overrides the global config for that repo only (model, per-agent overrides, fallback chains, pool limits)
  • 📣 PR & marketing campaign pipeline — label an issue 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 tactics
  • 💬 Multi-agent brainstorm stage — add discuss_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 stages
  • Actual test execution — pytest runs locally; results posted back to the PR as a comment
  • Pluggable deploy backends — deployment tester generates smoke tests; each repo independently chooses none, docker (local docker-compose), or libvirt (remote VM via SSH + CoW overlay) for its deploy test strategy
  • GitHub Actions integration — label an issue to trigger the full pipeline automatically; 15-minute watcher catches pre-labelled issues too
  • PR feedback loop — humans post review comments on AI-generated PRs → Engineer + Code Reviewer + QA automatically re-run, push fixes, and update the PR (up to max_revisions rounds)
  • Auto update-branch — watcher detects update-branch PR comments and automatically merges the base branch into the PR branch, keeping it up to date without human intervention
  • AI conflict resolution — when a merge conflict is detected, ConflictResolverAgent 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.yaml
  • Tool calling built-in — Code Reviewer runs ruff, QA Planner searches GitHub Issues; any agent can call tools via call_with_tools()
  • MCP server support — connect any MCP-compatible server (stdio or SSE); tools are automatically merged and injected into tool-calling agents
  • 🔍 RAG knowledge base — Engineer, Architect, and QA Engineer agents can search an indexed pgvector knowledge base (codebase, past designs, docs) via search_codebase, search_memory, and search_docs tools — powered by Ollama, vLLM, or OpenAI embeddings
  • Pluggable skill system — skills are markdown files in skills/ that inject domain-specific guidance into agent prompts; auto-detected from project context (issue body, repo languages) or always-loaded from config
  • 🧩 Custom pipeline stages — define any stage sequence (including review loops) in a pipeline.yaml file; use the built-in browser GUI (--config-builder) to build and save it without editing YAML by hand
  • 🏷️ Label → pipeline dispatch — each GitHub label maps to a pipelines/<label>.yaml file; add a new pipeline type by creating one YAML file, no Python or new workflow required
  • Fully customisable — add agents, skills, and tools by editing markdown role files and Python tool functions
  • 🧠 Agent memory — tiered SQLite memory (run → monthly → quarterly), conversation history within each run, auto-summariser after every pipeline
  • 🌙 Refactor / dream mode--refactor flag analyses and cleans up workspace code, opens a cleanup PR
  • 🤖 13 LLM backends — GitHub Models (default), Anthropic Claude, Ollama (local), OpenCode CLI, OpenCode Zen API, OpenCode Go API, Grok CLI, Grok OAuth, NVIDIA NIM, Alibaba DashScope, GitHub Copilot, OpenAI API, and Codex CLI; switch per-agent with a model prefix
  • Two-level concurrency — per-repo parallel_issues cap + global settings.max_parallel; per-LLM-backend semaphore pools keep local Ollama at 1 concurrent call
  • Resilient checkpoints — atomic writes prevent corruption on Ctrl+C; best-checkpoint-wins logic survives bad config runs
  • 🗺️ Repo context awareness — before engineering, the pipeline injects the full repo file tree into PM/Architect prompts (small repos) or auto-indexes the codebase into RAG (large repos), so agents understand what already exists before writing code
  • 🔁 Pipeline self-chaining — after a run, agents automatically re-label issues for follow-up pipelines (bug fix, re-review) without human intervention; configurable rules in config.yaml
  • 💰 Token usage & cost tracking — per-run token counts and USD cost per model; flushed to SQLite; optional GitHub issue comment with per-stage breakdown; configurable pricing table in config.yaml
  • Streaming for all backends — streaming responses from GitHub Models, Anthropic, OpenCode Go, and Ollama; configurable per-agent
  • 🧪 TDD early-commit — in TDD pipeline mode, test files can be committed to a branch early so engineers see failing tests before implementing
  • 📊 Prometheus metrics — standalone metrics_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 blocked
  • 🎯 Agent Accuracy System — four-layer system to prevent, detect, learn from, and bootstrap against agent mistakes: context injection (Layer 1), validation gate before every PR (Layer 2), LearningAgent that writes DO NOT rules from failures (Layer 3), and BootstrapPatternsAgent that seeds new repos with cheatsheets from day zero (Layer 4)
  • Validation gate — syntax check → ruff lint → pytest runs before any PR is opened; failures re-prompt the engineer with the exact error message (max 2 retries); hardened on ai-feature.yaml, ai-fix.yaml, tdd.yaml, and ai-smart-fix.yaml

---

pipelines/my-feature.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

Feature Brief

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

1. Prerequisites

  • Python 3.11+
  • A GitHub classic PAT (not fine-grained) with scopes: repo + read:org (for GitHub Models access)
  • Docker (optional — for deployment smoke tests)

From a requirement file

python main.py --file requirements/my-app.txt --repo owner/target-repo

⚡ MVP Setup (Get Running in 5 Minutes)

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.

Step 1 — Clone & install

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

🚀 Full Setup

2. Install

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

GUI Config Builder

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:

  • Palette — lists every available stage, colour-coded by category
  • Pipeline canvas — drag stages from the palette to build your sequence; drag to reorder
  • Loop blocks — drag the "Loop" stage into the canvas and configure max / until / inner stages
  • Save — writes pipeline.yaml next to your config.yaml

No GitHub token needed — --config-builder exits before any network calls.

Deploy to a target repo

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.

`orchestrator.py` — Full Feature Build

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

Install cron job (runs every hour at :00)

chmod +x setup_cron.sh
./setup_cron.sh

Or manually: ```bash crontab -e

One-Time Setup

```bash

3. (Optional) Set target repo for cross-repo builds

Triggering a Feature Build

Create a GitHub Issue, then add the ai-feature label:

```markdown Title: Patient questionnaire mobile app

🎨 Defining Agent Skills & Guides

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.

Step 4 — Minimal config

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

3. Configure

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 alongside GITHUB_TOKEN:
> # For Anthropic Claude models (claude-sonnet-4.6, claude-opus-4.5, etc.)
> export ANTHROPIC_API_KEY=sk-ant-your-key-here
> 
Model names starting with claude- are automatically routed to the Anthropic API. GITHUB_TOKEN is still required for all GitHub operations.
Using OpenCode Zen or Go models? Export the OpenCode API key:
> export OPENCODE_ZEN_API_KEY=your-opencode-api-key
> 
Both opencode-zen/ and opencode-go/ model prefixes share this key. Get one at <https://opencode.ai/auth>.
Using OpenAI API (BusinessChatGPT)? Export your OpenAI API key:
> export OPENAI_API_KEY=sk-your-key-here
> 
Use the openai/ prefix: openai/gpt-4o, openai/gpt-4.1-mini, etc.
Using NVIDIA NIM? Export your NVIDIA API key:
> export NVIDIA_API_KEY=nvapi-your-key-here
> 
Use the nvidia-nim/ prefix: nvidia-nim/meta/llama-3.1-70b-instruct, etc.
Using Alibaba DashScope / Qwen? Export your DashScope API key:
> export DASHSCOPE_API_KEY=sk-your-key-here
> 
Use the dashscope/ prefix: dashscope/qwen3-plus, dashscope/qwen3-turbo, etc.

Edit config.yaml:

github:
  repo: "your-username/your-repo"   # where code will be pushed

Using Ollama (Local LLM)

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
   

Using OpenCode CLI

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 an opencode/ model. Use opencode-go/ or opencode-zen/ for tool-calling agents.

Using OpenCode Zen API

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.

Using OpenCode Go API

Access the OpenCode Go plan models (Kimi, Qwen, GLM, MiMo, MiniMax):

  1. Same API key as Zen — 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.

Using Grok CLI

Run xAI Grok models via the Grok CLI subprocess:

  1. Install the Grok CLI and ensure it is authenticated.

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.

Using Grok OAuth (xAI API)

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).

Using NVIDIA NIM

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.

Using Alibaba DashScope (Qwen models)

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.

Using GitHub Copilot

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.

Using OpenAI API (BusinessChatGPT)

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.

Using OpenAI Codex CLI

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.

📋 All CLI Options (`main.py`)

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)

---

⚙️ Configuration Reference (`config.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

---

Configure repos.yaml

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
Legacy feature_label / bug_label / doc_label fields are still supported — they are automatically mapped to ai-feature, ai-fix, and ai-docs pipelines respectively.
Use **Target repo:** owner/repo in the issue body to route code to a different repo than default_target.

🧠 Per-Repo LLM Config

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.

Minimal example — override the default model for one repo

```yaml

Add this line (use the venv python directly — 'source activate' breaks in cron's /bin/sh):

0 cd /home/you/ai-software-house && venv/bin/python watcher.py >> logs/watcher/cron.log 2>&1 ```

Use a different config file

python watcher.py --config my-other-repos.yaml ```

Go to: Settings → Secrets → Actions → New repository secret

Python API

```python from orchestrator import Orchestrator

orch = Orchestrator(model="gpt-4.1", github_token="ghp_...", target_repo="owner/repo")

🎛️ Using the Orchestrators Directly (Python API)

🤖 Pipeline Stages

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

---

🧩 Custom Pipeline (`pipeline.yaml`)

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.

🏷️ Label → Pipeline Mapping

Each GitHub label can trigger its own pipeline. The watcher picks the pipeline file based on the label name.

Built-in pipelines:

LabelPipeline FilePurpose
ai-featurepipelines/ai-feature.yamlFull feature build (PM → Architect → Engineer → QA)
ai-fixpipelines/ai-fix.yamlBug-fix flow (diagnose → fix → review → test)
ai-docspipelines/ai-docs.yamlGenerate 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.

🔁 Pipeline Self-Chaining

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

📖 See docs/operations-guide.md § 6 for full details, priority rules, and how to set next_label from a custom stage.

`ai-docs` pipeline — Documentation-only

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

---

📣 `pr-campaign` pipeline — PR & Marketing Campaign

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

StageAgentOutput
pr_analystAlex — PR AnalystStructured research: opportunity, audience, angle, channels, risks
pr_creativeCasey — PR Creative3–5 campaign concepts with platform tactics (LinkedIn, Instagram, TikTok, X) and ready-to-post social copy
pr_proposalJordan — PR ProposalPolished Markdown proposal + PR metadata (title, body)

Trigger via GitHub issue (recommended)

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 vs Full Pipeline

MVPFull
Agents4 core agents9 agent types
ReviewersCode Reviewer onlyPM Reviewer + Arch Reviewer + Code Reviewer
Test planningQA Engineer onlyQA 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 翻译 2026-05-25
英文原文章节由系统翻译为中文摘要,便于快速理解。完整原文见上方 "📑 README 深度解析"。
📌 简介

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 环境。

🛠 安装步骤(Docker/pip/源码)

本项目提供快速的 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 逻辑。

⚙️ 配置说明(含 MCP / env)

项目通过 `config.yaml` 进行配置管理。在 MVP 模式下,您只需修改目标仓库路径。为了保持运行速度,可以通过配置文件禁用可选的 Agent 角色。支持通过环境变量 `GITHUB_TOKEN` 配置 GitHub 访问权限,若需使用 Anthropic Claude 系列模型(如 claude-sonnet),还需配置 `ANTHROPIC_API_KEY`。

🔌 API 说明

除了命令行操作,本项目还提供了强大的 Python API。开发者可以通过导入 `orchestrator` 模块中的 `Orchestrator` 类,直接在自己的 Python 程序中实例化并调用 AI 编排器,实现对模型、GitHub Token 及目标仓库的精细化控制。

🔄 工作流/模块

项目采用模块化的 Pipeline 阶段设计,涵盖了从 Product Manager(需求转 PRD)到 Architect(系统设计)、再到 Engineer(编码)及 QA(测试验证)的完整生命周期。系统支持通过 `pipeline.yaml` 自定义阶段序列,并支持通过 GitHub Label 映射不同的 Pipeline 逻辑(如 `ai-feature` 或 `ai-fix`),实现差异化的自动化处理。

🎯 aiskill88 AI 点评 A 级 2026-05-24

该项目提供了一种创新性的AI工作流解决方案,虽然仍有改进空间,但其潜力值得关注

📚 实用指南(长尾问题)
适合谁
  • 需要让 Claude / Cursor 操作本地工具的 AI 工程师
  • 构建多智能体协作系统的 Agent 开发者
  • 构建企业知识库 / RAG 检索应用的团队
最佳实践
  • 配置 MCP 服务器时建议使用 stdio 传输 + JSON-RPC,避免暴露公网
  • 生产部署优先使用 Docker Compose 隔离依赖,并挂载 volume 持久化数据
  • 本地部署优先选 GGUF 量化模型,节省显存并保持响应速度
  • 分块大小建议 256-512 tokens,向量库优选 pgvector 或 Qdrant
  • Agent 任务先做 dry-run 验证工具调用链,再开启自主执行
常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • MCP 配置路径拼错或权限不足,重启 Claude Desktop 才生效
  • 容器内无法访问宿主机 localhost — 使用 host.docker.internal
  • embedding 模型与查询模型不一致导致检索失效
  • 显存不足直接 OOM — 优先降低 context 或换更小的量化模型
  • Python 依赖冲突:建议用 venv / uv 隔离环境
部署方案
  • Docker:ai-dev-team 提供官方镜像,docker compose up 一键启动
  • CLI:直接 npm install -g / pip install,命令行调用
  • 本地部署:CPU 8GB 起,GPU 推荐 16GB+ 显存
  • 云端托管:可放在 Vercel / Railway / Fly.io 等 PaaS 平台
相关搜索
ai-dev-team 中文教程ai-dev-team 安装报错怎么办ai-dev-team MCP 配置ai-dev-team Docker 部署ai-dev-team Agent 工作流ai-dev-team 与同类工具对比ai-dev-team 最佳实践ai-dev-team 适合谁用
⚡ 核心功能
👥 适合谁
  • 需要让 Claude / Cursor 操作本地工具的 AI 工程师
  • 构建多智能体协作系统的 Agent 开发者
  • 构建企业知识库 / RAG 检索应用的团队
⭐ 最佳实践
  • 配置 MCP 服务器时建议使用 stdio 传输 + JSON-RPC,避免暴露公网
  • 生产部署优先使用 Docker Compose 隔离依赖,并挂载 volume 持久化数据
  • 本地部署优先选 GGUF 量化模型,节省显存并保持响应速度
  • 分块大小建议 256-512 tokens,向量库优选 pgvector 或 Qdrant
⚠️ 常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • MCP 配置路径拼错或权限不足,重启 Claude Desktop 才生效
  • 容器内无法访问宿主机 localhost — 使用 host.docker.internal
  • embedding 模型与查询模型不一致导致检索失效
👥 适合人群
自动化工程师和运维人员项目经理和业务分析师希望减少重复性工作的专业人士数字化转型团队
🎯 使用场景
  • 自动化日常重复性工作,将精力集中于创造性任务
  • 构建数据采集 → 处理 → 输出的完整自动化管线
  • 实现跨平台、跨系统的数据流转和业务协同
⚖️ 优点与不足
✅ 优点
  • +GPL-3.0 协议,可免费商用
  • +大幅减少重复性人工操作
  • +可视化流程,清晰直观
  • +可扩展性强,支持复杂场景
⚠️ 不足
  • 初始配置和调试需投入一定时间
  • 强依赖外部服务的稳定性
  • 复杂场景需具备一定技术基础
⚠️ 使用须知

AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。

建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。

📄 License 说明

⚠️ GPL 3.0 — 强 Copyleft,衍生作品须开源,含专利保护条款,不可闭源使用。

🔗 相关工具推荐
📰 相关 AI 新闻
🍿 AI 圈相关吃瓜
🗺️ 相关解决方案
🧩 你可能还需要
基于当前 Skill 的能力图谱,自动补全的工具组合
❓ 常见问题 FAQ
解答
💡 AI Skill Hub 点评

经综合评估,ai-dev-team 在Agent工作流赛道中表现稳健,质量良好。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。

⬇️ 获取与下载
⬇ 下载源码(GPL)
⚠️ 本工具使用 GPL-3.0 协议。您可以自由下载和使用,但衍生作品必须以相同协议开源,不可商业闭源。使用前请确认符合协议要求。
📚 深入学习 ai-dev-team
查看分步骤安装教程和完整使用指南,快速上手这款工具
🌐 原始信息
原始名称 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
🔗 原始来源
🐙 GitHub 仓库  https://github.com/wanleung/ai-dev-team

收录时间:2026-05-18 · 更新时间:2026-05-19 · License:GPL-3.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。