AI Skill Hub 推荐使用:AutoDev 是一款优质的Agent工作流。AI 综合评分 7.5 分,在同类工具中表现稳健。如果你正在寻找可靠的Agent工作流解决方案,这是一个值得深入了解的选择。
Deterministic, resumable, tournament-based orchestrator for LLM-driven software,提高软件开发效率和质量。
AutoDev 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
Deterministic, resumable, tournament-based orchestrator for LLM-driven software,提高软件开发效率和质量。
AutoDev 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 方式一:pip 安装(推荐)
pip install autodev
# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install autodev
# 方式三:从源码安装(获取最新功能)
git clone https://github.com/mohamedameen-io/AutoDev
cd AutoDev
pip install -e .
# 验证安装
python -c "import autodev; print('安装成功')"
# 命令行使用
autodev --help
# 基本用法
autodev input_file -o output_file
# Python 代码中调用
import autodev
# 示例
result = autodev.process("input")
print(result)
# autodev 配置文件示例(config.yml) app: name: "autodev" debug: false log_level: "INFO" # 运行时指定配置文件 autodev --config config.yml # 或通过环境变量配置 export AUTODEV_API_KEY="your-key" export AUTODEV_OUTPUT_DIR="./output"
An open-source agentic orchestration layer that wraps any AI coding agent into a multi-agent swarm, raising its output to enterprise-grade quality.
Overview · Quick Start · Four Mechanisms · Architecture · Tournaments · Documentation
</div>
---
docs/architecture.md — subsystems, FSM states, data flowThe current line is v0.21.1. Highlights from recent releases:
Phase.end_checkpoint_commit for stable handoff); WorktreePool warm-start; multi-branch impl tournament with diff-based meta-merge synthesis (render_for_diff_synthesis).cfg.prm.strategy="rules+ml"); regression-based plateau detector (cfg.plateau_detector.strategy="regression"); mutation-test promotion gate; extended-scope editor expansion; dynamic sparse-checkout expansion; per-event-type knowledge decay curves.kill_rate signal); holdout-set evaluation pre-promotion; hallucination guard extended to TypeScript / JavaScript / C++; per-repo secretscan baseline with allowlist.judge_roles + judge_role_weights); veto voting strategy; cross-family plateau detection; architect council with CriterionVote; lane-aware tournament events; web-search escalation rung wired into recovery ladder.drift_verifier_enabled default flipped to True.See CHANGELOG.md for full release history.
---
AUTODEV_LIVE=1 uv run pytest tests/ -k live -v
```bash git clone https://github.com/mohamedameen/autodev cd autodev uv sync
Install once, opt in per project, then describe what you want built.
pip install ai-autodev
cd /your/project
autodev init
In your AI coding agent, invoke the /autodev skill with your feature request:
/autodev Build a REST API with user registration, login, and JWT auth.
AutoDev shells out to your AI coding agent (Claude Code or Cursor) via subprocess for every dispatch — no API keys to wire up, no embedded session state machine. The /autodev slash command is a thin dispatch layer that runs autodev plan / autodev execute for you.
---
examples/subtract/ — smoke test: add a subtract(a, b) function to a tiny repoexamples/jwt_auth/ — realistic spec: build JWT authentication end-to-end---
.autodev/config.json is a versioned, strict pydantic schema (AutodevConfig). Model defaults are platform-aware — Claude Code uses model aliases (opus/sonnet/haiku) that resolve to the latest version, while Cursor uses explicit models with auto for intelligent selection and automatic fallback on rate limits. Each agent has a configurable max_turns — the number of turns the agent gets per invocation (tool-heavy roles like developer get more turns; text-only tournament roles get 1).
Regenerate the defaults with:
uv run python -c "from config.defaults import default_config; print(default_config('claude_code').model_dump_json(indent=2))"
<details> <summary>Full default configuration (Claude Code platform)</summary>
{
"schema_version": "1.0.0",
"platform": "auto",
"agents": {
"architect": {
"model": "opus",
"disabled": false,
"max_turns": 5,
"effort": null
},
"explorer": {
"model": "haiku",
"disabled": false,
"max_turns": 3,
"effort": null
},
"domain_expert": {
"model": "sonnet",
"disabled": false,
"max_turns": 3,
"effort": null
},
"developer": {
"model": "sonnet",
"disabled": false,
"max_turns": 10,
"effort": null
},
"reviewer": {
"model": "sonnet",
"disabled": false,
"max_turns": 3,
"effort": null
},
"test_engineer": {
"model": "sonnet",
"disabled": false,
"max_turns": 5,
"effort": null
},
"critic_sounding_board": {
"model": "sonnet",
"disabled": false,
"max_turns": 3,
"effort": null
},
"critic_drift_verifier": {
"model": "sonnet",
"disabled": false,
"max_turns": 3,
"effort": null
},
"docs": {
"model": "sonnet",
"disabled": false,
"max_turns": 3,
"effort": null
},
"designer": {
"model": "sonnet",
"disabled": false,
"max_turns": 3,
"effort": null
},
"critic_t": {
"model": "sonnet",
"disabled": false,
"max_turns": 1,
"effort": null
},
"architect_b": {
"model": "sonnet",
"disabled": false,
"max_turns": 5,
"effort": null
},
"synthesizer": {
"model": "sonnet",
"disabled": false,
"max_turns": 1,
"effort": null
},
"judge": {
"model": "sonnet",
"disabled": false,
"max_turns": 1,
"effort": null
}
},
"tournaments": {
"plan": {
"enabled": true,
"num_judges": 5,
"convergence_k": 2,
"max_rounds": 15,
"score_stability_window": 4,
"score_stability_max_delta": 2,
"winner_stability_window": 3,
"max_plan_lines_growth_ratio": 1.5,
"complex_plan_num_judges_override": 7,
"num_branches": 3,
"branches": null,
"promotion_grade_enabled": false,
"holdout_evaluation_enabled": false,
"drift_verifier_enabled": true,
"explorer_enabled": false,
"voting_strategy": "borda",
"judge_roles": null,
"judge_role_weights": null,
"plateau_detection_enabled": false,
"plateau_window": 4,
"cross_family_plateau_enabled": false,
"cross_family_plateau_window": 10
},
"impl": {
"enabled": true,
"num_judges": 1,
"convergence_k": 1,
"max_rounds": 3,
"score_stability_window": 2,
"score_stability_max_delta": 1,
"winner_stability_window": 2,
"max_plan_lines_growth_ratio": null,
"complex_plan_num_judges_override": null,
"num_branches": 1,
"branches": null,
"promotion_grade_enabled": false,
"holdout_evaluation_enabled": false,
"drift_verifier_enabled": true,
"explorer_enabled": false,
"voting_strategy": "borda",
"judge_roles": null,
"judge_role_weights": null,
"plateau_detection_enabled": false,
"plateau_window": 4,
"cross_family_plateau_enabled": false,
"cross_family_plateau_window": 10
},
"phase_review": {
"enabled": true,
"num_judges": 3,
"convergence_k": 1,
"max_rounds": 2,
"score_stability_window": null,
"score_stability_max_delta": null,
"winner_stability_window": null,
"max_plan_lines_growth_ratio": null,
"complex_plan_num_judges_override": null,
"num_branches": 1,
"branches": null,
"promotion_grade_enabled": false,
"holdout_evaluation_enabled": false,
"drift_verifier_enabled": true,
"explorer_enabled": false,
"voting_strategy": "borda",
"judge_roles": null,
"judge_role_weights": null,
"plateau_detection_enabled": false,
"plateau_window": 4,
"cross_family_plateau_enabled": false,
"cross_family_plateau_window": 10
},
"max_parallel_subprocesses": null,
"execute_max_parallel_tasks": null,
"auto_disable_for_models": [
"opus"
]
},
"qa_gates": {
"syntax_check": true,
"lint": true,
"build_check": true,
"test_runner": true,
"secretscan": true,
"secretscan_baseline_enabled": false,
"secretscan_per_extension_thresholds": null,
"sast_scan": false,
"mutation_test": false,
"mutation_test_enabled": false,
"mutation_test_threshold": 0.7
},
"qa_retry_limit": 3,
"user_complexity": "medium",
"guardrails": {
"max_invocations_per_task": 60,
"max_tool_calls_per_task": 60,
"max_duration_s_per_task": 900,
"max_diff_bytes": 5242880,
"cost_budget_usd_per_plan": null
},
"task_overrides": {
"huge_repo_multipliers": null
},
"prm": {
"strategy": "rules",
"ml_threshold": 0.7,
"ml_min_events": 3
},
"plateau_detector": {
"strategy": "rules",
"regression_window": 10,
"plateau_slope_threshold": 0.1
},
"hive": {
"enabled": true,
"path": "~/.local/share/autodev/shared-learnings.jsonl"
},
"knowledge": {
"enabled": true,
"swarm_max_entries": 100,
"hive_max_entries": 200,
"dedup_threshold": 0.6,
"max_inject_count": 5,
"hive_enabled": true,
"promotion_min_confirmations": 3,
"promotion_min_confidence": 0.7,
"denylist_roles": [
"explorer",
"judge",
"critic_t",
"architect_b",
"synthesizer"
],
"lane_aware_injection_enabled": true,
"decay_curves": null
},
"hallucination_guard": true,
"repeated_hypothesis_threshold": 0.6,
"web_search_enabled": false,
"worktree_sparse_checkout_enabled": false,
"worktree_pool_enabled": false,
"cross_phase_parallelism_enabled": false,
"speculative_execution_enabled": false
}
</details>
Note: On Cursor,architectandarchitect_bdefault toopuswith automatic fallback toautowhen rate limited. Roles likeexplorer,developer,test_engineerdefault toautofor intelligent model selection.
---
| Command | Purpose |
|---|---|
autodev init [--platform …] [--force] | Scaffold .autodev/, render agent files, render the /autodev slash command. --inline is a deprecated noop alias (removed in v0.27.0). |
autodev plan "<intent>" | PLAN phase: explore -> domain_expert -> architect-draft -> plan tournament -> critic_t-gate -> persist |
autodev execute [--task ID] [--dry-run] [--no-impl-tournament] | EXECUTE phase: developer -> QA gates -> review -> tests -> impl tournament -> advance |
autodev resume | Replay ledger, continue at last FSM edge |
autodev status | Current phase, task FSM states, evidence counts, knowledge summary |
autodev tournament --phase=plan\|impl --input FILE [--dry-run] | Ad-hoc tournament runner (debugging, experimentation) |
autodev doctor | CLI detection, config validation, plugin discovery, guardrail configuration |
autodev logs [--session SID] | Tail the structlog event stream |
autodev plugins | List discovered plugins (QA gates, judge providers, agent extensions) |
autodev prune [--older-than 30d] | GC stale tournament artifacts |
autodev reset [--hard] | Destructive: clear .autodev/plan* (prompts for confirmation) |
autodev secretscan baseline | Refresh the per-repo secretscan baseline |
---
```python
[project.entry-points."autodev.plugins"] my_gate = "my_package.gates:MyCustomGate" # QAGatePlugin my_judge = "my_package.judges:MyJudge" # JudgeProviderPlugin my_agent = "my_package.agents:MyAgentSpec" # AgentExtensionPlugin ```
Install the wheel, run autodev doctor — your plugin is live. The registry validates against the QAGatePlugin, JudgeProviderPlugin, and AgentExtensionPlugin protocols; invalid plugins are skipped with a warning (no hard fail).
uv run pytest tests/integration/ -v
| AutoDev | Single-agent AI coding | Prompt chains | |
|---|---|---|---|
| Multiple specialized agents | Yes — 14 roles | No | Partial |
| Plan tournament before coding | Yes — Borda-ranked, converges in k passes | No | No |
| Implementation tournament per task | Yes — A/B/AB judged with git worktree isolation | No | No |
| Phase-review tournament between phases | Yes — 3 judges | No | No |
| Multi-branch heterogeneous-model fan-out | Yes — BranchConfig per-role overrides | No | No |
| Reviewer != author | Yes — enforced at the agent level | No | No |
| QA gates (lint, build, test, secrets, mutation) | Yes — bounded retry + escalation | No | Ad-hoc |
| Append-only CAS ledger | Yes — SHA-256 chained, replay-safe | No | No |
| Crash-safe resume | Yes — autodev resume | No | No |
| Speculative execution + crash-safe rollback | Yes — opt-in, per-phase cap | No | No |
| Works inside your existing AI coding agent | Yes — subprocess shell-out from /autodev slash command | N/A | No |
Plugin ecosystem (entry_points) | Yes | No | No |
| Subscription-based, zero per-token cost | Yes | — | — |
| Cost guardrails (duration / calls / budget) | Yes — per-task + per-plan | No | No |
| Typed contracts (pydantic v2 strict) | Yes — everywhere | No | No |
---
Every diff runs through syntax check, lint, build, test runner, and secret scan before it can leave the FSM as tested. A failure feeds structured feedback back to the developer with bounded retry. Mutation testing (opt-in, mutation_test_enabled) and per-repo secret-scan baselines (secretscan_baseline_enabled) are also available.
Reviewer never wastes time on a diff that doesn't compile or fails its own tests.
Five standard gates run on every developer diff, in order. All are default-on:
| Gate | What it does |
|---|---|
syntax_check | Per-language parse check before anything else runs |
lint | Project linter (ruff / eslint / etc., autodetected) |
build_check | Type-check + build (mypy, tsc, etc.) |
test_runner | Project test suite scoped to changed files where possible |
secretscan | High-entropy strings + regex secret detection |
Failures feed structured feedback back to the developer; qa_retry_limit (default 3) bounds the retry loop. After exhaustion, escalation goes to critic_sounding_board for a pre-abort sanity check.
Opt-in extras: - Mutation testing (mutation_test_enabled, mutation_test_threshold=0.7): runs mutmut on developer diffs as a promotion gate. The Stage-1/2 pipeline (v0.19.0) filters equivalent mutants statically and via LLM judge, surfacing real survivors as a kill_rate signal that feeds promotion grading. - Per-repo secretscan baseline (secretscan_baseline_enabled): pre-existing-secret allowlist with per-extension entropy thresholds. Refresh with autodev secretscan baseline. - Hallucination guard (default-on, hallucination_guard=true): AST-based check for invented identifiers in Python, TypeScript, JavaScript, and C++. - Drift verifier (default-on, drift_verifier_enabled=true): plan-vs-reality cross-check before phase_complete. - Extended-scope editor expansion (Task.extended_scope): a task may widen its allowed edit set when justified; the architect marks Extended-Scope: { ... } blocks. Sync validation runs by default; the critic-review path (extended_scope_critic.py) is opt-in.
Guardrails (per-task hard caps, all default-on): - max_invocations_per_task: 60 - max_tool_calls_per_task: 60 - max_duration_s_per_task: 900 - max_diff_bytes: 5_242_880 - cost_budget_usd_per_plan: null (set to enforce a per-plan circuit breaker)
See docs/design_documentation/qa_gates_design.md, docs/design_documentation/guardrails_design.md, and docs/design_documentation/extended_scope.md.
---
AutoDev 是一个开源的代理式编排层,能够将任何 AI 编码代理包装成一个多代理群,提高输出质量到企业级别。
AutoDev 的当前版本 v0.21.x 的亮点包括:
为了进行实时测试,需要使用 claude CLI 进行登录,并且需要设置环境变量 AUTODEV_LIVE=1
开发环境设置:使用 git clone 克隆 AutoDev 仓库,使用 uv sync 进行同步
快速开始:安装 AutoDev,初始化项目,使用 /autodev 命令来描述需要构建的功能
配置说明:AutoDev 使用 .autodev/config.json 文件作为配置文件,支持多种配置选项
CLI 参考:AutoDev 提供了多个 CLI 命令,包括 autodev init、autodev plan 等
工作流 / 模块说明:AutoDev 支持通过 entry_points 来注册插件,支持多种类型的插件,包括 gate、judge 和 agent
常见问题:AutoDev 提供了多个 QA 门槛和守护线,包括语法检查、lint、构建检查等
AutoDev是一个有潜力的开源AI工作流,提供了一个可靠和可恢复的orchestrator,适合用于LLM驱动软件开发,但仍需要进一步的优化和测试。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
⚠️ GPL 3.0 — 强 Copyleft,衍生作品须开源,含专利保护条款,不可闭源使用。
总体来看,AutoDev 是一款质量良好的Agent工作流,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | AutoDev |
| 原始描述 | 开源AI工作流:Deterministic, resumable, tournament-based orchestrator for LLM-driven software 。⭐21 · Python |
| Topics | workflowpython |
| GitHub | https://github.com/mohamedameen-io/AutoDev |
| License | GPL-3.0 |
| 语言 | Python |
收录时间:2026-06-14 · 更新时间:2026-06-16 · License:GPL-3.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端