wmo (world-model-optimizer) превращает накопленные трейсы агентов в уменьшенные open-source модели через Tinker API, опционально используя замкнутый цикл симуляции для обучения. Команда wmo serve поднимает эндпоинт, который маршрутизирует запросы между frontier-моделью и более лёгкими моделями — на RouterBench качество сохраняется, а затраты падают на 27%. При поступлении новых трейсов можно повторно прогнать пайплайн и улучшить модель, которой вы владеете.
Установка сводится к pip install world-model-optimizer. Сначала регистрируют провайдеров: wmo providers set проверяет бэкенд и предлагает внести его модели в .wmo/pool.toml — оттуда потом идёт роутинг. В каталог попадают в том числе все 338 опубликованных моделей OpenRouter, при этом запрашиваются только те, что нужны конкретному провайдеру. Повторный запуск добавляет модели нового провайдера к уже зарегистрированным.
Роутер настраивается на OTel-трейсах: wmo build --file traces.jsonl --name my-model оценивает каждую модель на отложенных задачах из трейсов, затем wmo optimize route sweep считает метрики, а wmo optimize route fit matrix.json --kind knn детерминированно резервирует 30% данных под отчёт и подгоняет политику на оставшихся 70%, сохраняя её в .wmo/models/my-model/policy.json. После wmo serve --name my-model поднимает сервис. Отчёт, автоматически исключая сценарии, попавшие в обучение роутера, формируется командой wmo optimize route report с указанием базовой модели вроде gpt-5.5. Кроме того, доступны дистилляция собственной малой модели (wmo optimize distill), сервировка единственной модели без роутинга (wmo optimize route pin) и построение оптимизированной harness-обвязки для агента (wmo optimize harness).
Для работы с платформой создаётся аккаунт на platform.experientiallabs.ai, после чего CLI аутентифицируется. Заранее захостированные агенты выполняются в управляемых платформой E2B-песочницах. Локальную оптимизацию можно оценить в E2B, установив world-model-optimizer[e2b], экспортировав E2B_API_KEY и передав --backend e2b в wmo optimize harness. Мировые модели из состава wmo используются и как API: через Python-импорт из wmo создаётся сессия с задачей, и последующие вызовы step с экшенами возвращают наблюдения симуляции. Или через HTTP, где GET /world_models, POST на сессии и шаги.
После wmo login команда wmo run <world-model-or-agent-id> открывает хостируемую мировую модель или запускает текущий champion-вариант harness агента в E2B, а платформа берёт на себя управление моделью и кредами песочницы — локальные ключи не нужны. Опциональная загрузка рабочей области включается флагом -u: wmo в реальном времени синхронизирует изменения и сохраняет локальные правки. Долгоиграющих агентов можно отсоединить (--detach), позже отправить сообщение (wmo run --send) или заново присоединиться (wmo run --attach). Оптимизатор меняет промпты, инструменты, политики, скиллы и рантайм-код; каждый кандидат прогоняется через симуляции, и только прошедшие проверки изменения становятся новой версионированной champion-конфигурацией.
Проект управляется через uv; линтинг и форматирование делает ruff, проверку типов — ty, команды — just (с настройкой через just setup). wmo собирает анонимную телеметрию только метаданных — без промптов, трейсов, имён моделей и прочих чувствительных данных. Отключить её для проекта можно через uv run wmo config telemetry disable (записывается в .wmo/settings.toml), включить обратно — wmo config telemetry enable, а для отдельного процесса — DO_NOT_TRACK=1 или WMO_TELEMETRY=0.