Loading...
    • Разработка
    • Администрирование
    • Модели и цены
    • Клиентские SDK
    • Справочник API
    Search...
    ⌘K
    Первые шаги
    Введение в ClaudeБыстрый старт
    Разработка с Claude
    Обзор возможностейИспользование Messages APIОбработка причин остановки
    Возможности модели
    Расширенное мышлениеАдаптивное мышлениеУсилиеБыстрый режим (бета: предварительный просмотр)Структурированные выходные данныеЦитированияПотоковые сообщенияПакетная обработкаРезультаты поискаПотоковые отказыМногоязычная поддержкаЭмбеддинги
    Инструменты
    ОбзорКак работает использование инструментовИнструмент веб-поискаИнструмент веб-загрузкиИнструмент выполнения кодаИнструмент памятиИнструмент BashИнструмент управления компьютеромИнструмент текстового редактора
    Инфраструктура инструментов
    Поиск инструментовПрограммный вызов инструментовДетальная потоковая передача инструментов
    Управление контекстом
    Контекстные окнаСжатиеРедактирование контекстаКэширование промптовПодсчёт токенов
    Работа с файлами
    Files APIПоддержка PDFИзображения и зрение
    Навыки
    ОбзорБыстрый стартЛучшие практикиНавыки для предприятийНавыки в API
    MCP
    Удалённые MCP-серверыMCP-коннектор
    Инжиниринг промптов
    ОбзорЛучшие практики промптингаИнструменты промптинга в Console
    Тестирование и оценка
    Определение успеха и создание оценокИспользование инструмента оценки в ConsoleСнижение задержки
    Укрепление ограничений
    Снижение галлюцинацийПовышение согласованности выводаЗащита от джейлбрейковСнижение утечки промптов
    Ресурсы
    Глоссарий
    Примечания к выпуску
    Claude Platform
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Расширенная оркестрация

    Мультиагентные сессии

    Координация нескольких агентов в рамках одной сессии.

    Мультиагентность — это функция в режиме Research Preview. Запросите доступ, чтобы попробовать её.

    Мультиагентная оркестрация позволяет одному агенту координировать работу с другими для выполнения сложных задач. Агенты могут работать параллельно в собственном изолированном контексте, что помогает улучшить качество результатов и сократить время выполнения.

    Все запросы к Managed Agents API требуют бета-заголовка managed-agents-2026-04-01. Для функций в режиме research preview необходим дополнительный бета-заголовок. SDK устанавливает эти бета-заголовки автоматически.

    Как это работает

    Все агенты используют один контейнер и файловую систему, но каждый агент работает в собственном потоке сессии — изолированном по контексту потоке событий с собственной историей разговора. Координатор отображает активность в основном потоке (который совпадает с потоком событий на уровне сессии); дополнительные потоки создаются во время выполнения, когда координатор принимает решение о делегировании.

    Потоки являются постоянными: координатор может отправить последующее сообщение агенту, которому он обращался ранее, и этот агент сохраняет всё из своих предыдущих ходов.

    Каждый агент использует собственную конфигурацию (модель, системный промпт, инструменты, MCP-серверы и навыки), определённую при создании этого агента. Инструменты и контекст не являются общими.

    Что делегировать

    Мультиагентные сессии работают лучше всего, когда в рамках общей цели есть несколько чётко определённых специализированных задач:

    • Проверка кода: Агент-ревьюер с целенаправленным системным промптом и инструментами только для чтения.
    • Агент для тестирования, который пишет и запускает тесты, не затрагивая производственный код.

    Was this page helpful?

    • Как это работает
    • Что делегировать
    • Объявление вызываемых агентов
    • Потоки сессии
    • Типы мультиагентных событий
    • Разрешения инструментов и пользовательские инструменты в потоках
    Генерация тестов:
  1. Исследование: Агент поиска с веб-инструментами, который передаёт результаты обратно координатору.
  2. Объявление вызываемых агентов

    При определении вашего агента укажите дополнительные идентификаторы агентов, которых ему разрешено вызывать:

    orchestrator=$(curl -fsS https://api.anthropic.com/v1/agents \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -H "anthropic-beta: managed-agents-2026-04-01" \
      -H "content-type: application/json" \
      -d @- <<EOF
    {
      "name": "Engineering Lead",
      "model": "claude-sonnet-4-6",
      "system": "You coordinate engineering work. Delegate code review to the reviewer agent and test writing to the test agent.",
      "tools": [
        {
          "type": "agent_toolset_20260401"
        }
      ],
      "callable_agents": [
        {"type": "agent", "id": "$REVIEWER_AGENT_ID", "version": $REVIEWER_AGENT_VERSION},
        {"type": "agent", "id": "$TEST_WRITER_AGENT_ID", "version": $TEST_WRITER_AGENT_VERSION}
      ]
    }
    EOF
    )

    Каждая запись в callable_agents должна быть идентификатором существующего агента. Поддерживается только один уровень делегирования: координатор может вызывать других агентов, но эти агенты не могут вызывать собственных агентов.

    Затем создайте сессию, ссылаясь на оркестратор:

    session=$(curl -fsS https://api.anthropic.com/v1/sessions \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -H "anthropic-beta: managed-agents-2026-04-01" \
      -H "content-type: application/json" \
      -d '{"agent": "'$ORCHESTRATOR_ID'", "environment_id": "'$ENVIRONMENT_ID'"}')

    Вызываемые агенты определяются из конфигурации оркестратора. Вам не нужно ссылаться на них при создании сессии.

    Потоки сессии

    Поток событий на уровне сессии (/v1/sessions/:id/stream) считается основным потоком и содержит сжатое представление всей активности по всем потокам. Вы не увидите отдельные трассировки вызванных агентов, но увидите начало и конец их работы. Потоки сессии — это место, где вы можете детально изучить рассуждения и вызовы инструментов конкретного агента.

    Статус сессии также является агрегацией всей активности агентов; если хотя бы один поток находится в состоянии running, то общий статус сессии также будет running.

    Перечислите все потоки в сессии следующим образом:

    curl -fsS "https://api.anthropic.com/v1/sessions/$SESSION_ID/threads" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -H "anthropic-beta: managed-agents-2026-04-01" \
      | jq -r '.data[] | "[\(.agent_name)] \(.status)"'

    Потоковая передача событий из конкретного потока:

    curl -fsSN "https://api.anthropic.com/v1/sessions/$SESSION_ID/threads/$THREAD_ID/stream" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -H "anthropic-beta: managed-agents-2026-04-01" |
      while IFS= read -r line; do
        [[ $line == data:* ]] || continue
        json=${line#data: }
        case $(jq -r '.type' <<<"$json") in
          agent.message)
            printf '%s' "$(jq -j '.content[] | select(.type == "text") | .text' <<<"$json")"
            ;;
          session.thread_idle)
            break
            ;;
        esac
      done

    Список прошлых событий для потока:

    curl -fsS "https://api.anthropic.com/v1/sessions/$SESSION_ID/threads/$THREAD_ID/events" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -H "anthropic-beta: managed-agents-2026-04-01" \
      | jq -r '.data[] | "[\(.type)] \(.processed_at)"'

    Типы мультиагентных событий

    Эти события отображают мультиагентную активность в потоке событий сессии верхнего уровня.

    ТипОписание
    session.thread_createdКоординатор создал новый поток. Включает session_thread_id и model.
    session.thread_idleПоток агента завершил текущую работу.
    agent.thread_message_sentАгент отправил сообщение в другой поток. Включает to_thread_id и content.
    agent.thread_message_receivedАгент получил сообщение из другого потока. Включает from_thread_id и content.

    Разрешения инструментов и пользовательские инструменты в потоках

    Когда поток callable_agent требует чего-либо от вашего клиента (разрешения на запуск инструмента always_ask или результата пользовательского инструмента), запрос появляется в потоке сессии с полем session_thread_id. Включите тот же session_thread_id при отправке ответа, чтобы платформа направила его обратно в ожидающий поток.

    • session_thread_id присутствует: событие возникло в потоке субагента. Повторите его в своём ответе.
    • session_thread_id отсутствует: событие пришло из основного потока. Ответьте без этого поля.
    • Используйте tool_use_id для сопоставления запросов с ответами.

    Пример ниже расширяет обработчик подтверждения инструмента для маршрутизации ответов. Тот же шаблон применяется к user.custom_tool_result.

    while IFS= read -r event_id; do
      pending=$(jq -r --arg id "$event_id" '.[$id]' <<<"$events_by_id")
      thread_id=$(jq -r '.session_thread_id // empty' <<<"$pending")
      jq -n --arg id "$event_id" --arg thread "$thread_id" '
        {events: [
          {type: "user.tool_confirmation", tool_use_id: $id, result: "allow"}
          + (if $thread != "" then {session_thread_id: $thread} else {} end)
        ]}' |
        curl -fsS "https://api.anthropic.com/v1/sessions/$SESSION_ID/events?beta=true" \
          -H "x-api-key: $ANTHROPIC_API_KEY" \
          -H "anthropic-version: 2023-06-01" \
          -H "anthropic-beta: managed-agents-2026-04-01" \
          -H "content-type: application/json" \
          -d @-
    done < <(jq -r '.stop_reason.event_ids[]' <<<"$data")