Представьте: вы тегаете бота в Slack-треде с багом и закрываете ноутбук. Через двадцать минут приходит готовый PR с фиксом — агент прочитал тред, поднял контейнер, воспроизвёл проблему, нашёл причину и отправил решение. Это не фантазия, а базовый сценарий Oz.

Oz — надстройка над терминалом Warp. Если Warp даёт одного интерактивного агента в терминале, то Oz превращает его в конвейер: агенты работают в облаке, в изолированных Docker-контейнерах, запускаются по триггерам из Slack, Linear, GitHub Actions или по cron-расписанию.

Платформа работает с тремя движками — Warp Agent, Claude Code и OpenAI Codex — и связывает их общим слоем данных: транскрипты, память, артефакты доступны всем агентам независимо от того, какой harness их запустил. Один агент может подхватить работу, которую начал другой.

Что это

Oz — слой оркестрации облачных AI-агентов, разработанный командой Warp. Warp — терминал на Rust со встроенным AI-агентом; Oz — инфраструктура, которая позволяет тем же агентам работать не только локально, но и в облаке: параллельно, по расписанию, по внешним триггерам.

Грубая аналогия: если Warp — это REPL для одного агентного диалога, то Oz — cron плюс CI-раннер плюс оркестратор для тех же агентов. Только вместо shell-скриптов здесь — промпты и Skills, а вместо Jenkins-пайплайнов — Slack-треды и Linear-тикеты.

Возможности, которые Oz добавляет к локальному Warp-агенту:

  • облачный запуск — агент работает в Docker-контейнере на серверах Warp, локальная машина свободна;
  • параллельная координация — десятки агентов одновременно, каждый в своём изолированном окружении;
  • триггеры из внешних систем — Slack, Linear, GitHub Actions, cron, CLI, REST API, веб-интерфейс;
  • наблюдаемость — каждый запуск оставляет лог, транскрипт сессии, артефакты и статус;
  • передача контекста — локальную сессию можно передать в облако командой handoff без потери истории.

Важно: Одиночный агент в терминале — это инструмент 2025 года. Параллельный конвейер с триггерами и расписанием — инфраструктура 2026-го. Oz проводит между ними границу.

Зачем нужно

Все задачи, которые Oz берёт на себя, делятся на три группы: агент отвечает на внешнее событие (реактивный режим), агент запускается автоматически по таймеру (проактивный режим), несколько агентов координируются для одной цели (оркестрационный режим).

Реактивные сценарии

Разработчик упоминает @Oz в Slack-треде, где описан баг. Дальше происходит цепочка: Oz собирает контекст треда и прикреплённые логи, разворачивает Docker-контейнер с репозиторием проекта, воспроизводит проблему, локализует причину, открывает pull request и пишет результат обратно в тред. Никаких отдельных команд — только тег в сообщении.

Совет: реактивный режим требует заранее настроенный Environment — профиль с Docker-образом и подключёнными репозиториями. Создаётся один раз через /create-environment в Warp и переиспользуется для всех последующих запусков.

Линейная аналогия работает через Linear: @Oz на issue запускает агента, который читает описание задачи, вытягивает контекст из прикреплённых документов и публикует готовый PR. Прогресс отображается в комментариях к тикету — разработчик видит статус без переключения контекста.

В CI-пайплайне триггер срабатывает при падении тестов или линтера. Агент получает логи, диагностирует причину, отправляет фикс-PR. Утром разработчик видит не красный билд, а готовое решение.

Режим handoff решает другую проблему: вы начали задачу в терминале, но она оказалась объёмной — скажем, 40 минут на рефакторинг. Команда handoff переносит сессию в облако: контекст, история диалога и артефакты переезжают автоматически. Ноутбук закрывается, агент дорабатывает в контейнере. Результат проверяется из терминала, браузера или телефона.

Проактивные сценарии (по расписанию)

Cron-расписание — способ автоматизировать рутину без участия человека:

oz schedule create \
  --name "Weekly Dead Code Cleanup" \
  --cron "0 10 * * 1" \
  --environment <ENV_ID> \
  --prompt "Scan for dead code, unused imports, and stale feature flags. Open a PR with removals."

По понедельникам в 10:00 агент сканирует кодовую базу, находит мёртвый код и открывает PR с предложением удалить. Разработчик ревьюит — не сканирует вручную.

  • Зависимости: агент проверяет package.json, requirements.txt, Cargo.toml на security-обновления, обновляет, прогоняет тесты и отправляет PR.
  • Триаж: каждое утро агент проходит открытые GitHub Issues, сортирует по приоритету и серьёзности, расставляет лейблы и назначает ответственных по правилам.
  • Документация: раз в неделю агент сверяет README и API-документацию с актуальным кодом. Нашёл расхождения — обновляет и открывает PR.

Оркестрационные сценарии (multi-agent)

Когда задача слишком крупная для одного агента, включается оркестрация. Warp Agent берёт роль супервизора: разбивает задачу на подзадачи и раздаёт их worker-агентам — Claude Code и Codex. Каждый worker работает параллельно в собственном контейнере.

Пример: монолит мигрируют на микросервисы. Супервизор делит работу по сервисам — каждый worker-агент переводит свой кусок independently.

Fan-out/fan-in: одна задача дробится на N частей, каждый агент берёт свой фрагмент — файл, модуль, сервис. Результаты сливаются в один PR.

Пример: обновление SDK в 50 микросервисах. Каждый агент берёт один сервис, обновляет зависимость, прогоняет тесты. Через 30 минут — 50 готовых PR.

Critic/Verifier — итеративный цикл: один агент пишет код, второй ревьюит. Если найдены проблемы — замечания уходят первому, цикл повторяется до прохождения.

Multi-repo — скоординированные изменения через несколько репозиториев: агент обновляет контракт в API-сервисе, параллельно адаптирует клиентскую библиотеку и синхронизирует документацию.

Специализированные сценарии

  • Автоматический PR-ревью: каждый PR прогоняется через Oz-агента — проверка type safety, обработки ошибок, код-стайла и потенциальных багов.
  • Генерация тестов: после мержа PR агент анализирует изменения и создаёт юнит-тесты для нового кода, открывает отдельный PR с тестами.
  • Миграция фреймворков: переход с React на Next.js или Express на Fastify — агент проходит файл за файлом, сохраняя логику и адаптируя синтаксис.
  • Инцидент-ответ: алерт из PagerDuty или Datadog триггерит агента — он анализирует логи, локализует причину, предлагает или применяет фикс, отчитывается в инцидент-канал.
  • Генерация проекта: Oz получает спецификацию и разворачивает полное приложение — структура, код, конфигурация, тесты, CI/CD — в изолированном контейнере.

Как устроено

Архитектура

Платформа построена из четырёх слоёв. Триггеры — Slack, Linear, GitHub Actions, cron, CLI, API, веб-приложение — отправляют запросы в Control Plane. Control Plane содержит оркестратор, планировщик, модуль авторизации и систему наблюдаемости. Execution Layer — набор Docker-окружений, в каждом из которых исполняется агент. Сами агенты — Warp Agent, Claude Code или Codex — подключаются к Execution Layer.

Каждый запуск агента — это задача (task) с четырьмя атрибутами:

  • Промпт и контекст — текст запроса плюс данные триггера: Slack-тред, Linear-issue, PR-метаданные.
  • Environment — Docker-образ, репозитории, setup-команды для подготовки окружения.
  • Жизненный цикл — статус проходит путь created → running → completed или failed.
  • Транскрипт и артефакты — полная запись действий агента: что он делал, какие команды выполнял, что получил.

Ключевые компоненты

КомпонентЧто делаетГде настраивать
EnvironmentsКонтекст выполнения: Docker-образ, репозитории, setup-команды. Каждый запуск — чистый контейнерCLI: oz environment create, Web: oz.warp.dev
SkillsПереиспользуемые инструкции: определяют, что агент делает. Environment определяет, гдеФайлы в .warp/skills/ репозитория
IntegrationsПодключение внешних триггеров: Slack, Linear, GitHub ActionsCLI: oz integration create, Web: oz.warp.dev
SchedulesCron-расписания для автоматического запускаCLI: oz schedule create, Web: oz.warp.dev
SecretsБезопасное хранение и инъекция токенов, API-ключей, паролей в runtimeWarp Secrets Manager
Agent MemoryПерсистентная память: агенты запоминают, что сработало (и что нет), между сессиями и harness’амиАвтоматически, с ручной настройкой
Session SharingКоманда подключается к работающему агенту в реальном времени — наблюдение и корректировкаИз терминала, веба или мобильного

Environments: среда выполнения

Environment — базовая единица инфраструктуры Oz. Без него платформа не знает, где запускать агента. Environment собирается из трёх частей:

  • Docker-образ (обязателен) — toolchain и runtime. Подходят стандартные образы вроде node:22 или python:3.12, кастомные образы или готовые dev-образы от Warp.
  • Репозитории — один или несколько Git-репозиториев, которые клонируются в контейнер при запуске.
  • Setup-команды — npm ci, pip install -r requirements.txt, сборка, миграции — всё, что нужно для подготовки кода.

Внимание: Alpine-образы не работают — Oz требует glibc. Выбирайте Debian, Ubuntu или стандартные образы Docker Hub без префикса alpine.

Быстрый путь — команда /create-environment в Warp:

# Из директории проекта
/create-environment

# Или с указанием репозиториев
/create-environment ./frontend ./backend

# Или по URL
/create-environment https://github.com/your-org/api.git

Warp определяет языки и фреймворки автоматически, подбирает Docker-образ и предлагает setup-команды.

Тот же результат через CLI:

oz environment create \
  --name "My Project" \
  --docker-image node:22 \
  --repo your-org/frontend \
  --repo your-org/backend \
  --setup-command "cd frontend && npm ci" \
  --setup-command "cd backend && pip install -r requirements.txt"

Управление environments:

# Список environments
oz environment list

# Детали
oz environment get <ENV_ID>

# Обновить образ
oz environment update <ENV_ID> --docker-image node:22

# Добавить репозиторий
oz environment update <ENV_ID> --repo your-org/new-service

# Удалить
oz environment delete <ENV_ID>

Важно: один Environment — на кодовую базу или группу связанных репозиториев. Тот же Environment переиспользуется для Slack, Linear, CLI и расписаний. Не нужно создавать отдельный под каждый триггер.

Skills: переиспользуемые workflow

Skill — файл с инструкциями для агента, который лежит в репозитории рядом с кодом. Если Environment отвечает на вопрос «где», Skill — на вопрос «что делать». Skills можно версионировать и ревьюить через тот же Git-флоу, что и основной код.

Зачем нужны Skills:

  • Повторяемость — любой, кто запустит Skill, получает одинаковый результат.
  • Автоматизация — привязка Skill к cron-расписанию даёт регулярную автоматику без ручного запуска.
  • Командная работа — Skills живут в репозитории, проходят code review, имеют историю изменений.

Пример Skill-файла:

<!-- .warp/skills/dead-code-cleanup.md -->
# Dead Code Cleanup

Scan the codebase for:
- Unused imports
- Dead functions (not called anywhere)
- Stale feature flags
- Commented-out code blocks older than 30 days

For each finding, remove the dead code and open a single PR
with a clear description of what was removed and why.

Warp автоматически подхватывает Skills из директорий:

.warp/skills/, .agents/skills/, .claude/skills/, .codex/skills/, .cursor/skills/, .gemini/skills/, .copilot/skills/, .factory/skills/, .github/skills/, .opencode/skills/

Запуск Skill — локально или в облаке:

# Локально
oz agent run --skill "your-org/repo:dead-code-cleanup"

# В облаке
oz agent run-cloud \
  --environment <ENV_ID> \
  --skill "your-org/repo:dead-code-cleanup" \
  --prompt "Focus on the /src/legacy directory"

Skill + cron-расписание:

oz schedule create \
  --name "Weekly Dead Code" \
  --cron "0 10 * * 1" \
  --environment <ENV_ID> \
  --skill "your-org/repo:dead-code-cleanup"

Warp ведёт публичный репозиторий готовых Skills — warpdotdev/oz-skills на GitHub. Можно брать оттуда как отправную точку и адаптировать под свой проект.

Интеграции

Slack. Команда oz integration create slack —environment <ENV_ID> подключает бота. После этого тег @Oz в сообщении или треде (или в личных сообщениях боту) запускает агента — он читает контекст, поднимает Environment, выполняет задачу и постит результат обратно.

Linear. Настройка через oz integration create linear —environment <ENV_ID>. Тег @Oz на issue — агент читает описание, берёт задачу в работу и публикует PR.

GitHub Actions. Oz-агенты запускаются из CI-пайплайна. Билд упал — агент получает логи и пытается починить автоматически.

Веб-приложение. oz.warp.dev — полный веб-интерфейс с мобильной поддержкой: запуск агентов, управление расписаниями, просмотр Skills, подключение к активным сессиям, настройка Environments и интеграций.

Multi-agent паттерны

Oz поддерживает пять архитектурных паттернов для координации нескольких агентов:

ПаттернКак работаетКогда использовать
Supervisor / WorkerWarp Agent декомпозирует задачу и распределяет подзадачи между Claude Code и CodexКрупные фичи, миграции, рефакторинги
Fan-out / Fan-inЗадача раздаётся N агентам параллельно, результаты собираютсяМассовые обновления, миграции зависимостей
Critic / VerifierОдин агент генерирует код, второй проверяет — итеративный цикл до прохожденияКритичный код, security-sensitive изменения
SwarmМножество агентов работают над общей задачей через Shared Data PlaneИсследовательские задачи, комплексные кодовые базы
DAGГраф зависимостей: агент B запускается после завершения агента AПайплайны: сборка → тесты → деплой

Harness: три движка агентов

Oz работает с тремя движками (harness’ами), каждый со своими сильными сторонами:

HarnessСильные стороны
Warp AgentСложные long-running задачи, оркестрация sub-агентов, Full Terminal Use (psql, gdb, REPL), Computer Use
Claude CodeРасследование багов, frontend/UI задачи, работа с дизайн-системами
CodexМиграции кодовых баз, координация релизов, масштабные рефакторинги

CLI: основные команды

Запуск агентов — три варианта:

# Локальный запуск
oz agent run --prompt "Fix the failing test in src/auth"

# Облачный запуск
oz agent run-cloud \
  --environment <ENV_ID> \
  --prompt "Refactor the payment module"

# С указанием Skill
oz agent run-cloud \
  --environment <ENV_ID> \
  --skill "your-org/repo:skill-name" \
  --prompt "Additional context"

Управление расписаниями:

# Создать
oz schedule create \
  --name "Daily Dep Update" \
  --cron "0 8 * * *" \
  --environment <ENV_ID> \
  --prompt "Check for dependency security updates"

# Список
oz schedule list

# Удалить
oz schedule delete <SCHEDULE_ID>

Управление интеграциями:

# Создать Slack-интеграцию
oz integration create slack --environment <ENV_ID>

# Создать Linear-интеграцию
oz integration create linear --environment <ENV_ID>

API и SDK

Oz предоставляет REST API для программного управления. Пример запроса на запуск задачи:

{
  "prompt": "Migrate auth module to OAuth 2.1",
  "config": {
    "environment_id": "<ENV_ID>",
    "skill_spec": "your-org/repo:oauth-migration"
  }
}

Через API доступны три операции:

  • создание и запуск задач;
  • получение статусов и результатов;
  • построение внутренних дашбордов мониторинга.

Shared Data Plane: общий контекст

Ключевое преимущество Oz — все агенты, независимо от harness, работают с единым слоем данных. Пять типов данных доступны всем:

  • Транскрипты сессий — полная история взаимодействия с агентом.
  • Артефакты — файлы, PR, результаты работы.
  • Skills — переиспользуемые инструкции, общие для всех агентов.
  • Rules — командные конвенции и правила.
  • Agent Memory — персистентная память, накапливаемая между сессиями.

Claude Code может продолжить работу, которую начал Warp Agent — контекст не теряется. Ошибки, обнаруженные одним агентом, автоматически доступны остальным через общую память.

Когда использовать

Oz подходит, если совпадают хотя бы два условия:

  • Задача занимает больше 10 минут — ноутбук хочется освободить.
  • Нужен параллельный запуск нескольких агентов одновременно.
  • Агент должен реагировать на внешние события — Slack, CI, Linear.
  • Требуется регулярная автоматика по cron-расписанию.
  • Команде нужна видимость: что агент делает, возможность вмешаться.
  • Результат должен быть воспроизводимым — один Environment для каждого запуска.
  • Нужен аудит: кто запустил, что сделал, какой код изменил.

Пример

Быстрый старт — от установки до первого облачного агента за 10 минут.

Шаг 1. Установите Warp — warp.dev

Шаг 2. Создайте Environment:

/create-environment

Шаг 3. Подключите GitHub — Warp предложит установить GitHub App при создании Environment.

Шаг 4. Запустите агента в облаке:

oz agent run-cloud \
  --environment <ENV_ID> \
  --prompt "List all TODO comments in the codebase and create GitHub issues for each"

Шаг 5. Подключите Slack (опционально):

oz integration create slack --environment <ENV_ID>

Безопасность и соответствие

АспектРеализация
СертификацияSOC 2 Type II
ДанныеZero Data Retention — данные не сохраняются и не используются для обучения моделей
СекретыWarp Secrets Manager — безопасная инъекция токенов и ключей в runtime
ИзоляцияКаждый запуск — отдельный Docker-контейнер, уничтожается после завершения
Self-hostingАгенты работают в вашей инфраструктуре: VPC, дата-центр, собственные серверы
АудитПолный лог каждого запуска: кто инициировал, что сделано, какие файлы изменены
SSO и SCIMНа Enterprise-плане

Hosting: где выполняются агенты

ВариантДля кого
Warp-hosted (по умолчанию)Большинство пользователей — Warp предоставляет инфраструктуру, вы запускаете агентов
Self-hostedКомпании с compliance-требованиями — агенты в вашем облаке, VPC или дата-центре, Oz управляет оркестрацией

Self-hosting работает в двух режимах:

  • Managed worker — daemon на вашей машине, Oz оркестрирует агентов в Docker-контейнерах.
  • Unmanaged — вы запускаете oz agent run напрямую в вашем CI, Kubernetes или dev-окружении.

Тарифы и требования

Способ запускаТребования
CLI / API (индивидуально)Минимум 20 кредитов на балансе. Команда Warp не требуется
Интеграции (Slack, Linear)Команда Warp на плане Build, Max или Business. Минимум 20 кредитов у команды
Self-hostedКомандная подписка

Внимание: BYOK (Bring Your Own Key) не поддерживается для облачных запусков. Собственные API-ключи работают только локально — все облачные запуски расходуют кредиты Warp.

Один агент в терминале — это инструмент. Два десятка в облаке с расписанием, триггерами и общим контекстом — это инфраструктура. Oz проводит границу между ними.

Ограничения

Ограничения

Что учитывать

Перед внедрением Oz нужно понимать границы платформы.

Alpine-образы — Oz требует glibc.

Образы на базе musl (Alpine) не запустятся — используйте Debian, Ubuntu или стандартные образы Docker Hub.

BYOK для облака — Bring Your Own Key работает только локально.

Облачные запуски расходуют кредиты Warp — подключить собственные API-ключи нельзя.

Минимум 20 кредитов — Для CLI/API нужно 20 кредитов на балансе.

Интеграции (Slack, Linear) требуют командную подписку Build, Max или Business плюс 20 кредитов у команды.

Один Environment на кодовую базу — Environment создаётся один раз и переиспользуется для всех триггеров.

Отдельные окружения под Slack, Linear и cron — лишний расход и рассинхронизация.

Антипаттерны

Антипаттерны

Чего не делать

Типичные ошибки при работе с Oz.

Не использовать Alpine — Oz требует glibc.

Alpine-образы на базе musl не запустятся — выбирайте Debian, Ubuntu или стандартные образы Docker Hub.

Не плодить Environment под каждый триггер — Один Environment на кодовую базу.

Переиспользуйте его для Slack, Linear, CLI и расписаний. Отдельный Environment под каждый канал — рассинхронизация конфигурации.

Не запускать критичный код без Critic/Verifier — Для security-sensitive изменений используйте паттерн Critic/Verifier — один агент генерирует, второй проверяет.

Одиночный запуск без проверки на критичных участках — риск.

Чеклист

Чеклист

Проверка перед запуском

Проверьте эти пункты перед первым облачным запуском агента.

Environment создан

— Docker-образ на базе Debian/Ubuntu, репозитории подключены, setup-команды выполняются без ошибок.

GitHub App установлен

— Warp предложит установку при создании Environment — без этого PR не откроются.

Slack/Linear интеграция настроена

— oz integration create выполнен, бот @Oz доступен в канале или проекте.

Кредитов достаточно — Минимум 20 на балансе для CLI/API.

Для интеграций — командная подписка Build, Max или Business.

Skill определён для регулярных задач

— Если запускаете по расписанию — Skill-файл лежит в .warp/skills/ и содержит чёткие инструкции.

Harness выбран правильно

— Warp Agent для long-running и оркестрации, Claude Code для UI и багов, Codex для миграций и рефакторингов.