Agent Guide

oro CLI

Управление сессиями агентов — восстановление, синхронизация, агентный цикл

oro CLI

oro — CLI-инструмент для управления жизненным циклом агентов на эфемерных Coder workspaces. Обеспечивает сохранение и восстановление состояния, агентный цикл с автовосстановлением после сбоев, и Telegram bridge для коммуникации.

Архитектура

┌─────────────────────────────────────────────┐
│              Coder Workspace                 │
│                                              │
│  ┌──────────┐  ┌───────────┐  ┌──────────┐ │
│  │ oro loop │  │ oro bridge│  │ agentapi │ │
│  │ (claude) │◄─┤ (telegram)├──►(HTTP)    │ │
│  └────┬─────┘  └───────────┘  └──────────┘ │
│       │                                      │
│  ┌────▼─────┐                               │
│  │ ~/.claude │ ◄── oro restore / upload     │
│  │ CLAUDE.md │                               │
│  └──────────┘                               │
└───────┬─────────────────────────────────────┘
        │
   ┌────▼─────────────────────────────────┐
   │  Oro CLI Server (cli.master.oro.ad)  │
   │  ├── OAuth flow                      │
   │  ├── S3 storage (PS.KZ)             │
   │  └── Session management              │
   └──────────────────────────────────────┘

Команды

oro prepare

Полная инициализация workspace. Выполняется один раз при создании.

oro prepare

Что делает:

  1. Настраивает окружение (переменные, git config)
  2. Устанавливает glab (GitLab CLI) и agentapi
  3. Восстанавливает сессию из S3 (oro restore)
  4. Настраивает git-доступ к репозиториям
  5. Устанавливает project trust для Claude Code

Все параметры берутся из переменных окружения Coder template.

oro restore

Восстанавливает ~/.claude из S3 с умным мержем.

oro restore

Стратегия мержа:

  • Auth — перезаписывается полностью (всегда свежий токен)
  • Settings — мержатся (локальные настройки приоритетнее)
  • Plugins — union merge (объединяет списки)
  • History — дедупликация по содержимому
  • Memory — мержится без потери данных

oro upload

Загружает ~/.claude в S3. Благодаря механизму smart merge все агенты могут безопасно вызывать oro upload — установленные на уровне проекта skills и другие данные корректно мержатся без потерь.

oro upload

oro project restore / oro project upload

Синхронизация файлов конкретного проекта: CLAUDE.md, .claude/, .claude-devtools/.

oro project restore   # При запуске
oro project upload    # После изменений в CLAUDE.md или .claude/

oro loop

Агентный цикл с автовосстановлением. Оборачивает agentapi + claude с перезапуском при сбоях.

oro loop
  • Максимум 3 перезапуска в час
  • При перезапуске автоматически читает resume.md
  • Логирует причины перезапусков

oro bridge

Telegram-to-AgentAPI bridge. Транслирует сообщения из Telegram в Claude через AgentAPI.

oro bridge
  • Long-polling getUpdates из Telegram
  • Буферизует сообщения, пока агент занят
  • Пересылает в Claude через AgentAPI HTTP

oro status

Показывает сохранённые сессии.

oro status

oro id

Управление идентичностью агента.

oro id

Переменные окружения

ПеременнаяНазначение
CODER_WORKSPACE_NAMEИмя workspace (устанавливается Coder)
ORO_AGENT_ROLEРоль агента (skill-manager, dev-playbook, etc.)
TELEGRAM_BOT_TOKENТокен Telegram бота для bridge/report
TELEGRAM_CHAT_IDID чата для отправки сообщений
GITLAB_TOKENGitLab API токен
S3_ACCESS_KEY / S3_SECRET_KEYCredentials для S3 storage
CODER_URLURL Coder инстанса
CODER_SESSION_TOKENТокен для Coder API

Серверная часть

Oro CLI Server работает на cli.master.oro.ad как Nuxt 4 приложение:

  • OAuth flow — аутентификация Claude через Docker-in-Docker sidecar
  • S3 API — хранение и восстановление сессий
  • Метрики — Prometheus на /api/metrics
  • Health check/api/health

Дисциплина синхронизации

oro upload          — любой агент (глобальный ~/.claude, smart merge)
oro project upload  — любой агент (проектные файлы)

Smart merge гарантирует, что установленные на уровне проекта skills, plugins и настройки не теряются при синхронизации между агентами.

Маркеры синхронизации хранятся в /tmp/.oro_last_sync для отслеживания времени последней синхронизации.

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