Files
Orchestrator/shared/AI-Orchestrator/README.md
T
ankn a5f8fb49ab Migrate all repos into monorepo context folders
Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
      Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
      Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)

Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
2026-06-30 20:39:52 +02:00

111 lines
3.1 KiB
Markdown

# AI-Orchestrator
A Python implementation of the [Symphony specification](https://github.com/openai/symphony/blob/main/SPEC.md) — a service that orchestrates coding agents to get project work done.
Symphony turns project work into isolated, autonomous implementation runs, allowing teams to manage work instead of supervising coding agents.
## Architecture
```
┌─────────────────────────────────────────────────────────┐
│ AI-Orchestrator │
├─────────────────────────────────────────────────────────┤
│ Policy Layer │ WORKFLOW.md (repo-defined) │
│ Configuration Layer │ Typed config from front matter │
│ Coordination Layer │ Orchestrator (poll/dispatch) │
│ Execution Layer │ Workspace + Agent subprocess │
│ Integration Layer │ Linear adapter │
│ Observability Layer │ Logs + HTTP status surface │
└─────────────────────────────────────────────────────────┘
```
## Components
- **Workflow Loader** — Reads and parses `WORKFLOW.md` (YAML front matter + prompt template)
- **Config Layer** — Typed getters, defaults, env var resolution, validation
- **Issue Tracker Client** — Linear GraphQL adapter with pagination and normalization
- **Orchestrator** — Poll loop, dispatch, concurrency, retries, reconciliation
- **Workspace Manager** — Per-issue workspace lifecycle and hooks
- **Agent Runner** — Codex app-server subprocess integration
- **HTTP Server** — Optional REST API and dashboard for observability
## Quick Start
### Requirements
- Python 3.11+
- A Linear API key (set `LINEAR_API_KEY` env var)
- Codex CLI installed (`codex app-server`)
### Installation
```bash
cd AI-Orchestrator
pip install -e .
```
### Configuration
Create a `WORKFLOW.md` in your project root:
```markdown
---
tracker:
kind: linear
api_key: $LINEAR_API_KEY
project_slug: your-project-slug
polling:
interval_ms: 30000
workspace:
root: ~/symphony_workspaces
agent:
max_concurrent_agents: 5
max_turns: 20
codex:
command: codex app-server
approval_policy: auto-edit
turn_timeout_ms: 3600000
---
You are working on issue {{ issue.identifier }}: {{ issue.title }}
{{ issue.description }}
{% if attempt %}
This is retry attempt {{ attempt }}. Review previous work and continue.
{% endif %}
```
### Running
```bash
# Run with default WORKFLOW.md in current directory
ai-orchestrator
# Run with explicit workflow path
ai-orchestrator /path/to/WORKFLOW.md
# Run with HTTP server
ai-orchestrator --port 8080
```
## Development
```bash
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run linter
ruff check .
# Type checking
mypy src/
```
## License
Apache License 2.0