Agent Guide

Экосистема Oro

Облачная инфраструктура, философия эфемерных сред и принципы разработки

Экосистема Oro

Oro — платформа для облачной разработки, где человеческие и AI-разработчики работают как единая команда. Инфраструктура построена на принципе «cloud-first, ephemeral workspaces» — рабочие среды эфемерны, код живёт в Git, состояние синхронизируется через S3.

Архитектура платформы

┌─────────────────────────────────────────────────────────────┐
│                     Cloudflare DNS                          │
│          *.master.oro.ad    *.infra.oro.ad                  │
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│                    Kubernetes (Magnum)                       │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌────────────┐ │
│  │  Coder   │  │  NGINX   │  │  cert-   │  │ Prometheus │ │
│  │          │  │  Ingress  │  │  manager │  │ + Grafana  │ │
│  └────┬─────┘  └──────────┘  └──────────┘  └────────────┘ │
│       │                                                     │
│  ┌────▼─────────────────────────────────────────────────┐  │
│  │              Coder Workspaces (Pods)                   │  │
│  │  ┌───────────┐ ┌───────────┐ ┌───────────┐          │  │
│  │  │ skill-    │ │ workspace-│ │ dev-      │  ...      │  │
│  │  │ manager   │ │ manager   │ │ playbook  │          │  │
│  │  └───────────┘ └───────────┘ └───────────┘          │  │
│  └──────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│                    PS.KZ OpenStack                           │
│  S3 Object Storage  │  PostgreSQL (Trove)  │  VPN          │
└─────────────────────────────────────────────────────────────┘

Компоненты экосистемы

Репозитории

РепозиторийНазначениеАгент
oro-ad/oro-cliCLI для управления сессиями, OAuth, S3 sync— (инфраструктура)
oro-ad/oro-skillsПлагин-маркетплейс для Claude Codeskill-manager
oro-ad/coder-templatesTerraform-шаблоны Coder workspacesworkspace-manager
oro-ad/infraIaC — Terraform, K8s, OpenStack, Cloudflareinfra-manager
oro-ad/development-playbookДокументация и MCP-серверdev-playbook
oro-ad/business-consoleАдминистративная панель
oro-ad/nuxt-claude-devtools-proNuxt DevTools интеграция с Claude Code
oro-ad/ci-componentsПереиспользуемые GitLab CI/CD компоненты

Инфраструктура

  • Cloud Provider: PS.KZ (OpenStack), Казахстан
  • IaC: Terraform в два слоя — инфра (OpenStack ресурсы) + платформа (K8s ресурсы)
  • Оркестрация: Kubernetes через Magnum, автоскейлинг 2–15 нод
  • Workspaces: Coder — каждый workspace это pod в K8s с PVC
  • DNS: Cloudflare с wildcard-доменами *.master.oro.ad
  • TLS: cert-manager + Let's Encrypt (DNS-01 через Cloudflare)
  • Хранилище: S3-совместимое Object Storage на object.pscloud.io
  • CI/CD: GitLab CI с переиспользуемыми компонентами из ci-components

Философия разработки

Эфемерные среды

Workspace можно уничтожить и пересоздать в любой момент. Это означает:

  • Код живёт только в Git — коммитим и пушим регулярно
  • Состояние агента синхронизируется в S3 через oro-cli (CLAUDE.md, .claude/, memory)
  • Секреты приходят из переменных окружения Coder template, не хранятся на диске
  • Зависимости устанавливаются при создании workspace через postStart скрипт

Модули общаются свободно

Главный архитектурный принцип — любой модуль проекта должен иметь возможность:

  1. Видеть другие модули — через shared-зависимости в pnpm workspaces или GitLab Package Registry (через GitLab Package Registry или pnpm workspaces)
  2. Быть доступным снаружи в dev-режиме — каждый сервис получает внешний домен dev.<service>.oro.ad через Coder port-forwarding + NGINX Ingress
  3. Получать документацию — через MCP-серверы (playbook, nuxt-remote, prisma)
  4. Общаться с другими агентами — через AgentAPI (/oro-skills:talk)

Агент как участник команды

AI-агенты в Oro — не инструменты, а автономные участники команды:

СвойствоРеализация
Рабочее местоCoder workspace в K8s
РольORO_AGENT_ROLE — определяет ответственность
Навыкиoro-skills plugin — 14 навыков для работы в команде
КоммуникацияTelegram (с человеком), AgentAPI (с агентами)
Доставка кодаMerge Requests через GitLab
Память.claude/ + memory files, синхронизируемые в S3
НепрерывностьResume prompt при перезапуске

Автономный жизненный цикл

┌─ Запуск ──────────────────────────────────────────────────┐
│  oro prepare → oro restore → читает resume.md → начинает  │
└───────────────────────┬───────────────────────────────────┘
                        ▼
┌─ Работа ──────────────────────────────────────────────────┐
│  Получает задачу → декомпозирует → реализует → тестирует  │
│  → доставляет через MR → рефлексирует                     │
└───────────────────────┬───────────────────────────────────┘
                        ▼
┌─ Коммуникация ────────────────────────────────────────────┐
│  Telegram: отчёты, эскалации, дайджесты                   │
│  AgentAPI: вопросы к другим агентам, делегирование        │
└───────────────────────┬───────────────────────────────────┘
                        ▼
┌─ Idle ────────────────────────────────────────────────────┐
│  patrol: исследует лучшие практики, предлагает улучшения  │
└───────────────────────┬───────────────────────────────────┘
                        ▼
┌─ Перезапуск ──────────────────────────────────────────────┐
│  Пишет resume prompt → oro project upload → restart       │
│  → новая сессия читает resume.md → продолжает            │
└───────────────────────────────────────────────────────────┘

Шаблоны Coder workspaces

ШаблонТипНазначение
claude-agentautonomousСоздание/поддержка Coder templates
skill-architectautonomousРазработка Claude Code skills
infra-engineerautonomousInfrastructure as Code
claude-baseinteractiveОбщая разработка
nuxt-fullstackinteractiveFullstack Nuxt разработка

Автономные шаблоны включают: Claude Code, code-server (VS Code), JetBrains Gateway, AgentAPI на порту 3284. Startup-скрипт устанавливает oro-cli, выполняет oro prepare, запускает oro bridge + oro loop.

Портируемость

Инфраструктура спроектирована для любого OpenStack-провайдера:

# Форк → .env → make init = полная инфраструктура на другом провайдере
git clone oro-ad/infra
cp .env.example .env  # Заполнить credentials провайдера
make init             # Terraform поднимает всё

Никаких provider-specific значений в коде — всё через переменные окружения.

Связанные документы

  • oro CLI — детали команд и жизненного цикла
  • oro-skills — навыки и автоматизация
  • ADR-009: GitLab CE — инфраструктура CI/CD