Мультиагентный оркестратор на базе LangGraph для автоматической генерации и деплоя проектов.
Вход: Описание проекта в Телеграме
Выход: Работающий проект в продакшене (код, CI/CD, домен, SSL)
- Автономность: Человек заходит раз в несколько дней, смотрит отчёты, докидывает деньги
- Агенты как узлы графа: Product Owner — это агент LangGraph, управляющий процессом.
- Worker Manager: Запускает изолированные контейнеры для Engineering/DevOps задач (Claude Code, Factory.ai).
- Нелинейность: Агенты могут вызывать друг друга в любом порядке
- Spec-first: Используем service-template для генерации кода
graph TD
User((User)) <--> |Telegram| Bot[Telegram Bot Service]
Bot <--> |"Redis Stream"| PO[Product Owner Agent]
subgraph "LangGraph Service"
PO
EngGraph[Engineering Subgraph]
DepGraph[DevOps Subgraph]
end
PO --> |"tools"| API[API Service]
PO --> |"create story"| ArchQueue[architect:queue]
subgraph "Scheduler"
Dispatcher[Task Dispatcher]
ArchConsumer[Architect Consumer]
end
Dispatcher --> |"scaffold:queue"| Scaffolder[Scaffolder Service]
ArchQueue --> ArchConsumer
Dispatcher --> |"engineering:queue"| EngGraph
Dispatcher --> |"story complete"| DeployQueue[deploy:queue]
subgraph "Worker Manager"
Worker[Developer Worker Containers]
end
EngGraph --> |"Manage"| Worker
API --> |"data"| DB[(PostgreSQL)]
DeployQueue --> DepGraph
%% Feedback Loops
EngGraph --> |"Result / Progress"| PO
DepGraph --> |"Result / Progress"| PO
- API: FastAPI сервис, единственный источник правды (DAL) для PostgreSQL.
- Telegram Bot: Интерфейс для пользователя, управляет PO сессиями.
- Product Owner (PO): LangGraph ReactAgent, общающийся с пользователем и ставящий задачи.
- Scaffolder: Подготовка репозиториев (copier + make setup + git push). Запускается до architect.
- Worker Manager: Управляет Docker контейнерами Developer агентов. Монтирует pre-scaffolded workspaces. Воркеры изолированы в сети
codegen_worker. - LangGraph: Оркестратор бизнес-процессов (Engineering, DevOps). Engineering-worker и deploy-worker — отдельные контейнеры того же Docker-образа с собственными entrypoint'ами (Redis stream consumers).
- Infra Service: Ansible runner для настройки серверов.
- Scheduler: Architect consumer (story→tasks), task dispatcher (scaffold trigger, dispatch, supervisor), github_sync, server_sync, health_checker.
- Admin Frontend: React SPA (port 3001) — dashboard, projects, tasks, workers, queues, users, LLM tracing. Nginx proxy with basic auth.
- Observability: Loki + Promtail + Grafana (structured logs), Langfuse v3 (LLM tracing with ClickHouse + MinIO).
| Проект | Описание | Репо |
|---|---|---|
| service-template | Spec-first фреймворк для генерации микросервисов | GitHub |
- LangGraph сервер: Отдельный сервер для оркестратора и агентов
- Prod серверы: Управляются через infra-service (Ansible)
- Телеграм: Основной интерфейс
- Docker & Docker Compose
- Python 3.12+
- Git
-
Clone the repository
git clone https://github.com/vladmesh/codegen_orchestrator.git cd codegen_orchestrator -
Install git hooks
make setup-hooks
-
Set up environment
cp .env.example .env # Edit .env with your credentials -
Start services
make up make migrate make seed
-
Run tests
make test-unit # Fast unit tests make test-integration # Integration tests (require running services)
- Code quality:
ruff format(pre-commit), linters/tests (pre-push). - Testing:
services/{service}/tests/{unit,integration}/. - CI/CD: GitHub Actions.
See docs/TESTING.md for detailed testing guide.
- docs/DEV_PIPELINE.md — жизненный цикл фичи и процесс работы (MANDATORY READ)
- AGENTS.md — общая инструкция для агентов
- ARCHITECTURE.md — актуальная архитектура и потоки данных
- docs/LOGGING.md — руководство по структурированному логированию
Проект использует structlog (JSON для prod, console для dev).
from shared.log_config import setup_logging
import structlog
setup_logging(service_name="my_service")
logger = structlog.get_logger()
logger.info("event_name", user_id=123)Секреты хранятся в GitHub Actions (Settings → Secrets → Actions):
| Secret | Description |
|---|---|
GH_APP_ID |
GitHub App ID |
GH_APP_PRIVATE_KEY |
GitHub App private key |
E2E_TEST_ORG |
Test organization |
E2E_TEST_INSTALLATION_ID |
Test installation ID |
- docs/ROADMAP.md — вехи и фазы
- docs/STATUS.md — текущая задача
- docs/backlog.md — очередь задач (auto-generated read-only view)
- docs/CHANGELOG.md — что сделано