Anthropic Engineering→ оригинал

Anthropic запустила Managed Agents: TTFT упал на 60% после отделения «мозга» от «рук»

Anthropic опубликовала инженерный разбор Managed Agents — хостируемого сервиса в Claude Platform для долгих агентных задач. Компания отказалась от схемы, где сессия, harness и песочница жили в одном контейнере, и разделила их на независимые интерфейсы: session, harness и sandbox. Результат: медианное время до первого токена (p50 TTFT) сократилось примерно на 60%, а p95 — более чем на 90%. Токены доступа больше недоступны из песочницы, где исполняется код, сгенерированный Claude. • Контейнер стал «скотом», а не «питомцем»: его падение превращается в ошибку вызова инструмента. • Журнал сессии хранится вне harness и контекстного окна Claude. • Мозги и руки масштабируются независимо.

AI-обработка оригинала Anthropic Engineering; редакция Hamidun News
Anthropic запустила Managed Agents: TTFT упал на 60% после отделения «мозга» от «рук»
Источник: Anthropic Engineering. Коллаж: Hamidun News.
◐ Слушать статью

Anthropic выпустила Managed Agents — хостируемый сервис в Claude Platform, который выполняет долгие агентные задачи за пользователя. Главная инженерная цифра: после отделения «мозга» (Claude и его harness) от «рук» (песочниц и инструментов) медианное время до первого токена упало примерно на 60%, а 95-й перцентиль — более чем на 90%. Архитектуру команда описала в блоге Anthropic Engineering.

Почему старая схема не работала

Первая версия была простой: сессия, harness и песочница жили в одном контейнере. Правки файлов превращались в прямые системные вызовы, а границы сервисов проектировать не требовалось. Но инженеры получили классический «питомец» из аналогии pets vs cattle: сервер с именем, который нельзя потерять и приходится выхаживать. Упал контейнер — потеряна сессия.

Отладка превращалась в проблему. Единственным окном внутрь был поток событий WebSocket, и по нему нельзя было отличить баг в harness, потерю пакета или отключившийся контейнер. Чтобы разобраться, инженеру пришлось бы открыть shell внутри контейнера, где часто лежат пользовательские данные. Фактически возможности отлаживать не было.

Вторая беда — harness считал, что всё, с чем работает Claude, находится рядом. Клиентам, желавшим подключить Claude к своему VPC, приходилось либо пирить сети с Anthropic, либо запускать harness у себя.

Как устроено разделение

Anthropic виртуализировала компоненты агента по образцу операционных систем, где абстракции вроде процесса и файла пережили смену железа. Выделены три интерфейса: session (журнал событий только на добавление), harness (цикл вызова Claude и маршрутизации его обращений к инструментам) и sandbox (среда исполнения кода).

Harness теперь вызывает контейнер как любой другой инструмент: execute(name, input) → string. Если контейнер упал, harness получает ошибку вызова и передаёт её Claude, который может запросить новый через provision({resources}). Сам harness тоже стал взаимозаменяемым: журнал лежит снаружи, поэтому после сбоя новый экземпляр поднимается через wake(sessionId), читает историю через getSession(id) и продолжает с последнего события. Запись идёт через emitEvent(id, event).

Отдельно переработана безопасность. Раньше код, сгенерированный Claude, исполнялся рядом с учётными данными, и prompt injection достаточно было убедить модель прочитать собственное окружение. Теперь токены недоступны из песочницы. Для Git токен репозитория используется при инициализации для клонирования и привязки к локальному remote, так что push и pull работают без доступа агента к токену. Для кастомных инструментов через MCP OAuth-токены лежат в защищённом хранилище, а вызовы идут через прокси, получающий токен сессии. Harness учётных данных не видит.

Сессия — не контекстное окно

Для задач, превышающих контекст модели, обычно применяют компакцию, memory tool и обрезку старых результатов инструментов. Все они необратимы: заранее неизвестно, что понадобится позже. В Managed Agents журнал сессии выступает контекстным объектом вне окна Claude. Через getEvents() мозг читает срезы потока: продолжает с места остановки, перематывает назад перед ключевым моментом, перечитывает контекст перед действием. Преобразования (в том числе ради высокого попадания в prompt cache) остаются за harness.

Ключевые метрики и свойства

  • p50 TTFT: снижение примерно на 60%.
  • p95 TTFT: снижение более чем на 90%.
  • Контейнер создаётся только по запросу инструмента, поэтому сессии без песочницы не ждут клонирования репозитория и загрузки процесса.
  • Интерфейс execute(name, input) → string покрывает кастомные инструменты, MCP-серверы и собственные инструменты Anthropic.
  • Harness не знает, что за «рукой»: контейнер, телефон или эмулятор Pokémon.

Практический вывод

Причина всей конструкции — устаревание допущений. Anthropic приводит пример «контекстной тревоги» Sonnet 4.5, которая заставляла модель завершать задачи раньше времени. Сбросы контекста в harness это лечили, но на Opus 4.5 поведение исчезло, и сбросы стали балластом. Для команд, строящих агентов, вывод такой: держите состояние вне исполнителя, не кладите секреты рядом с кодом модели и относитесь к каждому костылю в harness как к временному. Сервис предлагается как мета-harness: в нём можно запускать Claude Code или узкоспециализированные обвязки. Документация по запуску доступна на платформе Anthropic.

ЖХ
Hamidun News
AI‑новости без шума. Ежедневный редакторский отбор из 50+ источников. Продукт Жемала Хамидуна, Head of AI в Alpina Digital.
✦ Автономные AI-агенты

Делегируйте ресёрч, код и рутину автономному AI-агенту

Интеллектуальная агентная среда NomadNet Agent (agent.nomadnet.ai) выполняет многошаговые задачи: глубокий веб-ресёрч, анализ данных, написание кода и автоматизацию браузера.

Запустить NomadNet Agent →Платформа NomadNet AI
Что вы думаете?
Загружаем комментарии…