Lokales, GitHub-Actions-freies Multi-Agent-System für Codex CLI.
Dieses Repository stellt eine startbereite Orchestrator-Schicht bereit, die Codex CLI mehrfach mit klar getrennten Rollen startet:
- Planner: macht aus einem GitHub-Issue einen engen Umsetzungsplan.
- Builder: setzt den nächsten Schritt im lokalen Git-Workspace um.
- Reviewer: prüft Diff, Scope, Tests und Risiken.
- Tester, Holmes und Architect sind vorbereitet, aber im Standardfluss noch nicht aktiv.
Das System ist bewusst lokal gebaut:
- keine GitHub Actions
- keine GitHub-Artefakte
- keine GitHub-Runner-Minuten
- keine GitHub-Compute-Kosten
- GitHub dient nur als Issue-, Branch-, PR- und Review-Oberfläche
- Codex CLI läuft lokal mit deinem ChatGPT-/Codex-Login
- GitHub wird über
ghgesteuert
Der Orchestrator selbst ist kein KI-Agent. Er ist eine deterministische Ablaufmaschine.
Der Ablauf ist:
- GitHub-Issue lesen.
- Arbeitsbranch
agent/issue-<nummer>erstellen. - Codex als Planner starten.
- Codex als Builder starten.
- Lokale Testbefehle ausführen.
- Codex als Reviewer starten.
- Bei Bedarf Builder-Fixzyklen starten.
- Änderungen committen und pushen.
- Pull Request nach
mainerstellen. - Issue/PR mit Labels und Kommentaren aktualisieren.
Der Mensch entscheidet weiterhin über den finalen Merge nach main.
Installiert und angemeldet:
- Python 3.11 oder neuer
- Git
- GitHub CLI
gh - Codex CLI
- Codex-Login über ChatGPT, zum Beispiel Plus/Pro/Business/Enterprise
Du brauchst für dieses Setup keinen OpenAI-API-Key, solange Codex CLI bereits über deinen ChatGPT-Account angemeldet ist.
Prüfe deine Umgebung nach dem Clone mit:
python -m agent_orchestrator doctor
- Repository clonen.
- In das Repository wechseln.
- Codex einmal anmelden, falls noch nicht geschehen:
codex login. - GitHub CLI anmelden, falls noch nicht geschehen:
gh auth login. - Prüfen:
python -m agent_orchestrator doctor. - Labels im GitHub-Repo anlegen:
python -m agent_orchestrator labels. - Ein GitHub-Issue mit Label
agent-runerstellen. - Agentenlauf starten:
python -m agent_orchestrator run --issue 123.
Auf Windows kannst du alternativ die PowerShell-Hülle nutzen:
./scripts/run-agent.ps1 -Issue 123
Für den ersten End-to-End-Test eignet sich ein kleines, automatisch testbares Python-Projekt, zum Beispiel:
„Implementiere mit Python 3.11 einen minimalen Mandelbrot-Fraktal-Renderer ohne GUI. Verwende NumPy und Pillow. Erzeuge per Kommando ein PNG-Bild. Lege Tests für Array-Form, Wertebereich, deterministische Ausgabegröße und erfolgreiche Bilddateierzeugung an. Keine GUI, kein Numba, kein Multithreading im ersten Durchgang.“
Dazu gibt es eine vorbereitete Vorlage unter docs/examples/fractal-mvp-issue.md.
- Agents dürfen nicht direkt nach
mainpushen. - Agents dürfen nicht selbst mergen.
- Der Orchestrator erstellt nur Branches und PRs.
- Der finale Merge nach
mainbleibt menschliche Entscheidung. - Der Orchestrator nutzt standardmäßig
workspace-writeundask-for-approval neverfür nicht-interaktive Codex-Läufe. Wenn Codex zusätzliche Berechtigungen bräuchte, soll der Lauf fehlschlagen statt unbegrenzt Rechte zu eskalieren. danger-full-accessund--yolosind bewusst nicht Teil dieses Repos.
Die aktiven Rollen in Version 0.1 sind:
- Planner
- Builder
- Reviewer
Vorbereitete Rollen für spätere Erweiterung:
- Tester
- Holmes
- Architect
Die Codex-Projektagenten liegen unter .codex/agents/. Der lokale Orchestrator ruft Codex aktuell über Rollenprompts unter prompts/roles/ auf. Die TOML-Agentendateien sind zusätzlich für interaktive Codex-Nutzung und spätere Subagent-Flows vorbereitet.
Die Orchestrator-Konfiguration liegt in:
config/orchestrator.json
Wichtige Werte:
model: Standard istgpt-5.4-mini.base_branch: Standard istmain.work_branch_prefix: Standard istagent/issue-.max_cycles: Standard ist1.test_commands: Standard ist Python-Unittest für dieses Repo.limits.max_changed_files: Schutzgrenze für Agenten-Diffs.forbidden_paths: Pfade, die Agents nicht ändern sollen.
Die Codex-Projektkonfiguration liegt in:
.codex/config.toml
Für Connector-basierte Evaluation und Review sind die Leitfäden in docs/GITHUB_CONNECTOR_WORKFLOW.md, docs/REPO_MAP.md, docs/LABELS.md und docs/REVIEW_PROTOCOL.md relevant.
Umgebung prüfen:
python -m agent_orchestrator doctor
Labels anlegen oder aktualisieren:
python -m agent_orchestrator labels
Agentenlauf starten:
python -m agent_orchestrator run --issue 123
Trockenlauf ohne Codex-Aufrufe:
python -m agent_orchestrator run --issue 123 --dry-run
Lokale Tests des Orchestrators:
python -m unittest discover -s tests -p "test_*.py"
Version 0.1 ist bewusst klein. Sie ist startbereit, aber nicht überladen.
Noch nicht enthalten:
- Webhook-Server
- parallele Agentenläufe
- Merge in interne Epic-Branches
- persistente Datenbank
- Dashboard
- OpenRouter-Providerprofile
- automatische Tester-/Holmes-/Architect-Eskalation als Standardfluss
Diese Dinge sind dokumentiert und können schrittweise ergänzt werden.