|
7 | 7 | Part of the [Coding-Autopilot-System](https://github.com/Coding-Autopilot-System) ecosystem: |
8 | 8 | [gsd-orchestrator](https://github.com/Coding-Autopilot-System/gsd-orchestrator) | [Promptimprover](https://github.com/Coding-Autopilot-System/Promptimprover) |
9 | 9 |
|
10 | | -autogen is a Python multi-agent orchestration runtime built on Microsoft Agent Framework — combining a Gemini/Claude provider fallback chain, AG-UI observability, and a local operator workbench for end-to-end autonomous engineering workflows. |
11 | | - |
12 | | -## Features |
13 | | - |
14 | | -- **Provider fallback chain** — Gemini API (primary) -> Anthropic API -> local CLI fallback; routing policy classifies prompt complexity and selects provider automatically |
15 | | -- **Multi-agent team orchestration** — sequential planner->researcher->implementer->reviewer chain with FileCheckpointStorage for resumable runs |
16 | | -- **Bounded repo tools** — read/list/search/write with enforced scope limits; agents cannot access paths outside the configured repo root |
17 | | -- **AG-UI observability** — DevUI-discoverable workflows expose run state, specialist handoffs, and pause/approval events |
18 | | -- **Human-in-the-loop approvals** — approval policy gates destructive writes; operators review before execution proceeds |
19 | | - |
20 | | -## Architecture |
21 | | - |
22 | | -```mermaid |
23 | | -flowchart LR |
24 | | - Op["Operator\n(DevUI / Workbench)"] -->|"prompt"| MAF["autogen\n(MAF Runtime)"] |
25 | | - MAF --> Gemini["Gemini API\n(primary)"] |
26 | | - MAF --> Anthropic["Anthropic API\n(fallback)"] |
27 | | - MAF --> CLI["Local CLIs\n(gemini-cli / claude)"] |
28 | | - MAF --> Entities["Entities\n(repo_team, copilots)"] |
29 | | - MAF --> Tools["Repo Tools\n(read / write / search)"] |
30 | | - MAF --> Checkpoints["Checkpoints\n(FileCheckpointStorage)"] |
31 | | - Entities --> Out["Run Output\n+ Artifacts"] |
32 | | - Tools --> Out |
33 | | - Checkpoints --> Out |
34 | | -``` |
35 | | - |
36 | | -## Quickstart |
37 | | - |
38 | | -```bash |
39 | | -git clone https://github.com/Coding-Autopilot-System/autogen.git |
40 | | -cd autogen |
41 | | -python -m venv .venv |
42 | | -# Windows: .\.venv\Scripts\Activate.ps1 |
43 | | -# macOS/Linux: source .venv/bin/activate |
44 | | -pip install agent-framework python-dotenv |
45 | | -``` |
46 | | - |
47 | | -Copy `.env.example` to `.env` and set `GEMINI_API_KEY`. See the [Setup Guide](https://github.com/Coding-Autopilot-System/autogen/wiki/Setup-Guide) for full configuration instructions. |
48 | | - |
49 | | -## Configuration |
50 | | - |
51 | | -| Variable | Required | Default | Description | |
52 | | -|----------|----------|---------|-------------| |
53 | | -| `GEMINI_API_KEY` | Yes | -- | Gemini API key for primary model | |
54 | | -| `MAF_MODEL` | No | `gemini-2.5-flash` | Primary model for agent runs | |
55 | | -| `MAF_FALLBACK_CHAIN` | No | Auto | Comma-separated provider fallback order | |
56 | | -| `ANTHROPIC_API_KEY` | No | -- | Anthropic API key for Claude fallback | |
57 | | - |
58 | | -See the [Configuration Reference](https://github.com/Coding-Autopilot-System/autogen/wiki/Configuration-Reference) for the full variable list. |
| 10 | +`autogen` is a local-first multi-agent engineering workbench built on Microsoft Agent Framework. The product goal is simple: point the system at a real repository, give it one engineering objective, and let a manager-led workflow coordinate planning, research, implementation, review, approvals, validation, and durable artifacts with less manual steering than a chat-first coding loop. |
| 11 | + |
| 12 | +This repository is strongest as an architecture and operator-systems portfolio piece: it shows how to turn LLM tooling into a controlled engineering runtime instead of a demo chatbot. |
| 13 | + |
| 14 | +## Product Story |
| 15 | + |
| 16 | +Most agent demos stop at "the model answered." `autogen` focuses on the operator problem after that: |
| 17 | + |
| 18 | +- How do you scope agents to a real repo without letting them roam the machine? |
| 19 | +- How do you keep a manager, specialists, and provider fallback chain inspectable? |
| 20 | +- How do you pause for approval before destructive changes? |
| 21 | +- How do you leave behind run artifacts, validation results, and retryable state instead of ephemeral chat output? |
| 22 | + |
| 23 | +The answer in this codebase is a manager-led orchestration model with bounded repo tools, approval-aware execution, and a UI contract designed for traceability. |
| 24 | + |
| 25 | +## What Exists In The Repo Today |
| 26 | + |
| 27 | +- **Manager-led orchestration**: `entities/repo_team/workflow.py` wires a workflow for planner, researcher, implementer, reviewer, and validation-stage visibility. |
| 28 | +- **Scoped repository operations**: `maf_starter/tools.py` enforces repo-root path boundaries, blocks writes to sensitive targets like `.env`, and limits read/search surfaces. |
| 29 | +- **Routed provider execution**: `maf_starter/provider_fallback.py` and `maf_starter/routing_policy.py` select models by task depth and fall back across API and CLI providers when needed. |
| 30 | +- **Approval and guardrails**: `maf_starter/approval_policy.py` classifies file operations and validation commands so destructive or externally visible actions stop for operator approval. |
| 31 | +- **Durable run artifacts**: `autogen_dashboard/session_store.py` persists transcripts, runtime state, stage summaries, diffs, validation records, and attempt metadata. |
| 32 | +- **Operator-facing visibility**: the dashboard contract covers timeline, routing, agents, artifacts, and approval surfaces rather than a single opaque transcript. |
| 33 | + |
| 34 | +## Demo Scenarios |
| 35 | + |
| 36 | +The best way to understand the product is through operator outcomes: |
| 37 | + |
| 38 | +- **Architecture review on a real repo**: point the system at a checked-out repository and ask for a plan. The manager can retain workspace metadata, route to the right model tier, and preserve the resulting artifacts for follow-up attempts. |
| 39 | +- **Guardrailed implementation run**: ask for a change that touches code or config. Safe edits can proceed through bounded repo tools, while destructive actions pause with an explicit approval scope. |
| 40 | +- **Provider-resilience drill**: trigger a quota or rate-limit failure on the primary model path and inspect how the fallback chain records the route attempt history and capability changes. |
| 41 | + |
| 42 | +## Evidence And Evaluation Posture |
| 43 | + |
| 44 | +This repo already carries more engineering evidence than the old README surfaced: |
| 45 | + |
| 46 | +- `tests/test_workspace_contract.py` validates workspace discovery, repo-root safety, and session creation contracts against real temporary git repos. |
| 47 | +- `tests/test_run_persistence.py` verifies durable session layout, artifact manifests, attempts, diffs, validation outputs, and atomic persistence behavior. |
| 48 | +- `tests/test_phase4_approval.py` proves destructive writes and externally visible commands are classified and paused behind approval. |
| 49 | +- `tests/test_phase4_validation.py` checks that changed files produce a proportionate validation ladder including `git diff --check`, Python compile checks, unit discovery, and JavaScript syntax checks. |
| 50 | +- `tests/test_phase5_ui_contract.py` and `tests/test_phase5_operator_views.py` lock the operator UI to timeline, routing, artifact, and specialist-view contracts. |
| 51 | +- `.github/workflows/ci.yml` currently runs the static UI contract suite in CI; the broader local suite demonstrates the intended validation model even though the automation surface is still narrow. |
| 52 | + |
| 53 | +## Why This Is A Strong Hiring Signal |
| 54 | + |
| 55 | +This project demonstrates more than framework familiarity. It shows judgment about: |
| 56 | + |
| 57 | +- turning agent capabilities into bounded operational surfaces, |
| 58 | +- separating operator control from model improvisation, |
| 59 | +- preserving artifacts and retry semantics for long-running engineering work, |
| 60 | +- designing UI and API contracts around observability instead of novelty, |
| 61 | +- and shaping local-first tooling so it can evolve toward service boundaries later. |
| 62 | + |
| 63 | +## Cloud-Ready Direction |
| 64 | + |
| 65 | +`autogen` is intentionally local-first today, but its primitives already point toward a future control plane: |
| 66 | + |
| 67 | +- durable run IDs and persisted artifacts, |
| 68 | +- explicit pause, approve, retry, and resume semantics, |
| 69 | +- structured route-attempt metadata, |
| 70 | +- workspace and execution contracts that can sit behind HTTP later, |
| 71 | +- and an orchestration core that can be split from the local operator shell. |
| 72 | + |
| 73 | +That is the right foundation for a later Azure-hosted control plane or worker boundary without rebuilding the product concept from scratch. |
| 74 | + |
| 75 | +## Repository Pointers |
| 76 | + |
| 77 | +- `maf_starter/` - orchestration core, routing, fallback, repo tools, approvals, validation |
| 78 | +- `autogen_dashboard/` - API and operator-facing session surfaces |
| 79 | +- `entities/repo_team/` - manager-led workflow entrypoint |
| 80 | +- `tests/` - contract, runtime, approval, persistence, and operator-view evidence |
| 81 | +- `.planning/` - architecture notes, phased roadmap, and future control-plane direction |
59 | 82 |
|
60 | 83 | ## License |
61 | 84 |
|
|
0 commit comments