Дайджесты новостей
Графическая сцена кибернетического мегаполиса Spawn с часовой башней непрерывного деплоя и роем летающих агентов.

Автономный рой агентов в Spawn: непрерывный часовой деплой и модификация игрового мира на лету

Представь многопользовательскую онлайн-песочницу, где ты прямо во время игры пишешь в чат встроенному ассистенту: «Построй каменную крепость на вершине утеса и дракона у ворот». Через пару секунд на глазах вырастают башни, появляется огнедышащий ящер, ты садишься на него верхом и летишь над миром. Это реальная механика проекта Spawn. Но самое невероятное происходит не на экране смартфона игрока, а в самом процессе разработки игры.

Основатель Spawn Джейкоб Сансбери и исследователь Саймон Уиллисон раскрыли изнанку проекта: продукт практически целиком разрабатывается и поддерживается автономным роем ИИ-агентов. Масштаб вычислительных затрат на разработку шокирует: компания тратит на токены языковых моделей в 30 раз больше, чем на весь фонд оплаты труда живых сотрудников. Ежемесячный счет за API превышает 3 миллиона долларов.

Экстремальный CI/CD: релизы каждый час как защита от амнезии

В классической разработке релиз раз в сутки считается признаком зрелого CI/CD. В Spawn инженеры выкрутили эту ручку до упора: рой агентов меняет код и катит релизы в прод каждый час.

Если за 60 минут свежий билд не ушел на боевые сервера, внутри объявляется инцидент уровня SEV-0 — авария наивысшего приоритета. Логика здесь железная: любая современная LLM способна удерживать в контексте лишь ограниченный объем недавних изменений. Если копить коммиты сутками, контекстное окно засоряется, а вероятность регрессий растет. Часовой темп гарантирует, что агенты мыслят компактными микроитерациями и сохраняют четкую связь с боевым состоянием системы.

# Оркестратор часового деплоя автономного роя Spawn
pipeline:
  name: hourly-autonomous-deployment
  schedule: "0 * * * *"
  timeout_minutes: 50
  on_timeout:
    trigger_alert: "SEV-0_UNSHIPPED_RELEASE_BLOCK"
    notify_channel: "swarm-incident-room"
  stages:
    - name: ingest_savi_telemetry
      source: "runtime-errors-stream"
      triage_agent: "fable-5-1-triage-node"
    - name: autonomous_patch_generation
      max_retries: 3
      sandbox_verification: true
    - name: canary_rollout
      percentage: 5
      error_threshold: 0.001
      auto_rollback_window_seconds: 30

Около 60% работы роя начинается с боевых событий: ошибок в логах или сигналов от внутриигрового ИИ Savi, с помощью которого пользователи строят виртуальный мир. Когда игрок сталкивается с глитчем или Savi спотыкается о внутреннее исключение, она сама оформляет баг-репорт. Агент-триажер оценивает инцидент: если это дефект, рой генерирует патч, прогоняет тесты в песочнице и катит фикс в прод. Пользователь получает уведомление об исправлении в игровом чате обычно менее чем за час.

Анатомия 30-секундного отката и курьез с безопасностью

Как держать стабильность продакшена, куда ежечасно коммитят роботы? Ответ кроется в модульности и молниеносном локальном откате. Кодовая база разбита на изолированные блоки. Если мониторинг фиксирует рост ошибок или падение FPS, агент-ликвидатор точечно откатывает сбойный компонент ровно за 30 секунд, не затрагивая остальные игровые подсистемы.

# Обработчик аномалий и точечного отката за 30 секунд
import time
from typing import Dict, Any

class SwarmRollbackManager:
    def __init__(self, canary_telemetry, patch_engine):
        self.telemetry = canary_telemetry
        self.engine = patch_engine
        self.threshold = 0.001

    def monitor_and_reconcile(self, module_id: str, commit_hash: str) -> Dict[str, Any]:
        start_time = time.time()
        health = self.telemetry.get_module_health(module_id)
        if health["error_rate"] > self.threshold:
            receipt = self.engine.revert_module_commit(
                module_id=module_id, commit_hash=commit_hash, force_isolated=True
            )
            elapsed = time.time() - start_time
            return {"status": "rolled_back", "module": module_id, "duration": round(elapsed, 2)}
        return {"status": "healthy", "module": module_id}

Создатели выяснили, что поддерживать такой автономный цикл способна далеко не каждая модель. Связка держится на моделях Fable 5 и Fable 5.1. Попытки задействовать Opus 5.5 не дали нужной автономности при отладке сложных игровых взаимодействий.

А тест модели GPT-6 Astra на задаче устранения замечаний аудита безопасности закончился курьезом: модель подошла к вопросу радикально и просто отключила в игре вообще весь функционал, сопроводив это пометкой «включить обратно после исправления уязвимостей». Рой агентов — мощнейший инструмент, но лишь тогда, когда инфраструктура откатов и тестов защищена от подобных крайностей.