Claude Managed Agents: запускаем AI-агентов через API

Anthropic запустила Managed Agents. Готовый агентный harness в облаке: контейнеры, инструменты, стриминг. Разбираемся, что это и зачем.

Claude Managed Agents: запускаем AI-агентов через API
TL;DR: Anthropic запустила Claude Managed Agents — API для автономных AI-агентов в управляемой облачной инфраструктуре. Вместо самостоятельной сборки agent loop, песочницы и оркестрации инструментов ты получаешь готовый контейнер с Python, Node.js и Go, набор встроенных инструментов и стриминг событий через SSE. Сейчас в бете, доступен всем с API-ключом.

Зачем Anthropic запустила Managed Agents

Anthropic берёт на себя инфраструктуру: контейнер с инструментами, стриминг событий, кеширование и компакцию контекста. Ты описываешь агента и запускаешь сессию. Дальше Claude работает сам.

По данным WIRED, годовой доход Anthropic перевалил за $30 млрд. Это втрое больше, чем в декабре 2025. Большая часть роста пришла именно с Claude Platform, где разработчики подключаются к моделям через API. Angela Jiang, руководитель продукта Claude Platform, говорит: между возможностями моделей и тем, как бизнес их использует, огромный разрыв. Managed Agents — попытка этот разрыв закрыть.

Если ты читал про agent harness, то Managed Agents — по сути, harness-as-a-service от Anthropic.

Messages API Managed Agents
Что это Прямой доступ к модели Готовая агентная инфраструктура в облаке
Для чего Кастомные agent loop, полный контроль Долгие задачи, асинхронная работа
Инструменты Пишешь сам Встроенные (bash, файлы, веб) + кастомные
Песочница Своя Управляемый контейнер Anthropic

Как устроен Managed Agents: 4 концепции

Весь API строится на четырёх сущностях.

Agent — конфигурация: модель, системный промпт, набор инструментов, MCP-серверы. Создаёшь один раз, используешь во всех сессиях. Агенты версионируются, можно зафиксировать конкретную версию для продакшена.

Environment — шаблон контейнера. Какие пакеты предустановить (Python, Node.js, Go, Rust, Ruby), какие правила сетевого доступа применить. Окружение переиспользуется между сессиями, но каждая получает свой изолированный экземпляр. Файлы не расшариваются.

Session связывает Agent и Environment. Это запущенный агент с историей диалога. Четыре статуса:

Статус Что происходит
idle Ждёт ввода. Сессия стартует в этом состоянии
running Агент работает
rescheduling Временная ошибка, автоматический retry
terminated Завершён из-за неустранимой ошибки

Events — потоковые сообщения между твоим приложением и агентом через SSE. Пользовательские сообщения, вызовы инструментов, результаты, обновления статуса. Вся история сохраняется на стороне Anthropic.

Quickstart: запускаем агента за 4 шага

Все запросы к Managed Agents API требуют бета-заголовок managed-agents-2026-04-01. Python SDK ставит его автоматически.

1. Создаём агента

from anthropic import Anthropic

client = Anthropic()

agent = client.agents.create(
    model="claude-sonnet-4-6",
    system="You are a helpful coding assistant.",
    tools=[{"type": "agent_toolset_20260401"}]
)
# agent.id — сохрани, будет нужен для каждой сессии

agent_toolset_20260401 включает все встроенные инструменты. Если нужно отключить отдельные, передаёшь configs с enabled: false для конкретных инструментов.

2. Создаём окружение

environment = client.environments.create(
    name="my-dev-env",
    packages={
        "pip": ["pandas==2.2.0", "requests"],
        "npm": ["express@4.18.0"],
        "apt": ["ffmpeg"]
    },
    networking={"mode": "unrestricted"}
)

Пакеты устанавливаются соответствующими менеджерами и кешируются между сессиями.

3. Запускаем сессию

session = client.sessions.create(
    agent=agent.id,
    environment=environment.id
)

Сессия создана, но ещё ничего не делает. Работа начинается, когда отправишь событие.

4. Отправляем задачу и стримим ответ

stream = client.sessions.stream(session.id)

stream.send_event(
    type="user",
    content="Напиши Python-скрипт, который генерирует CSV с 100 рандомными записями"
)

for event in stream:
    if event.type == "text":
        print(event.text, end="")
    elif event.type == "tool_use":
        print(f"\n[Инструмент: {event.name}]")
    elif event.type == "session.status_idle":
        print("\nАгент завершил работу.")
        break

Claude сам решает, какие инструменты использовать: пишет скрипт через write, выполняет через bash, проверяет результат через read. Ты видишь весь процесс в реальном времени через SSE. Можно отправить дополнительное сообщение, чтобы скорректировать агента на ходу, или прервать выполнение.

Разбираю новые фичи Claude API по мере выхода — подписывайся в телеге.

Какие инструменты доступны агенту

Встроенный набор повторяет инструменты Claude Code:

Инструмент Описание
bash Выполнение shell-команд
read Чтение файлов
write Запись файлов
edit Точечные замены строк в файлах
glob Поиск файлов по паттерну
grep Поиск текста по регулярным выражениям
web_fetch Загрузка контента по URL
web_search Поиск в интернете

Кроме встроенных, поддерживаются кастомные инструменты. Ты определяешь схему (имя, описание, параметры), Claude решает, когда вызвать, а твой код выполняет операцию и возвращает результат. Всё как tool use в Messages API, только в рамках автономного агента.

Anthropic в документации настаивает: качество описаний инструментов влияет на результат больше всего остального. Минимум 3-4 предложения на каждый инструмент. И лучше объединять связанные операции в один инструмент с параметром action, чем делать отдельный на каждое действие.

Окружения: пакеты, сеть и изоляция

Контейнер поставляется с предустановленными рантаймами. Поверх можно доставить пакеты через шесть менеджеров:

Менеджер Пример
apt ffmpeg, imagemagick
pip pandas==2.2.0
npm express@4.18.0
cargo ripgrep@14.0.0
gem rails:7.1.0
go golang.org/x/tools/cmd/goimports@latest

Сетевой доступ настраивается через поле networking. Два режима. unrestricted (по умолчанию): полный исходящий доступ кроме чёрного списка. limited: только указанные домены в allowed_hosts. Для продакшена Anthropic рекомендует limited с принципом минимальных привилегий.

В ограниченном режиме есть два дополнительных флага: allow_mcp_servers (разрешить доступ к MCP-серверам) и allow_package_managers (разрешить доступ к реестрам пакетов). Оба по умолчанию false.

Кому это нужно и чего ожидать

WIRED цитирует Katelyn Lesse, руководителя инженерии Claude Platform: раньше компании держали целые команды инженеров для запуска и масштабирования агентных систем. Теперь эти люди могут заняться продуктом.

Notion уже показал демо: клиентский онбординг через Managed Agents. Агент получает список задач в Notion и выполняет их одну за другой. На Claude Platform видно, как агент работает и какие инструменты использует.

⚠️
API в бете, поведение может меняться между релизами. Rate limit: 60 создающих запросов и 600 читающих в минуту на организацию. Фичи outcomes, мультиагентность и память пока в research preview, нужен отдельный запрос на доступ.

Думаю, переход на Managed Agents имеет смысл, если задачи агента длятся больше нескольких минут и требуют выполнения кода в безопасной среде. Для коротких запросов Messages API проще. Для полного контроля над agent loop — тоже Messages API. А вот если хочется быстро получить рабочего агента без возни с инфраструктурой, Managed Agents выглядит как разумный выбор. Посмотрим, как API будет развиваться после беты.

Claude Managed Agents Documentation
Полная документация: quickstart, API Reference, примеры кода, настройка окружений и инструментов

Что ещё почитать