Skip to content

vladmesh/codegen_orchestrator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,294 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Codegen Orchestrator

Мультиагентный оркестратор на базе 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
Loading

Основные компоненты

  • 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)
  • Телеграм: Основной интерфейс

Development Setup

Prerequisites

  • Docker & Docker Compose
  • Python 3.12+
  • Git

Quick Start

  1. Clone the repository

    git clone https://github.com/vladmesh/codegen_orchestrator.git
    cd codegen_orchestrator
  2. Install git hooks

    make setup-hooks
  3. Set up environment

    cp .env.example .env
    # Edit .env with your credentials
  4. Start services

    make up
    make migrate
    make seed
  5. Run tests

    make test-unit         # Fast unit tests
    make test-integration  # Integration tests (require running services)

Development Workflow

  • 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 — руководство по структурированному логированию

Logging

Проект использует 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 Secrets

Секреты хранятся в 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

Roadmap

About

Multi-agent LangGraph orchestrator: a Telegram brief becomes a deployed project (code, CI/CD, domain, SSL) built by isolated Claude Code / Factory.ai workers.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors