Claude Platform Docs
Управляемые агентыБезопасность

Защита развёртывания Managed Agents

Настройки, которые ограничивают, к чему ваши агенты могут получить доступ и что они могут делать, — в порядке важности.

В этом руководстве перечислены настройки, которые ограничивают, к чему агент в Claude Managed Agents может получить доступ и что он может делать, — начиная с самых важных. Каждый раздел содержит ссылку на страницу, где настройка описана полностью.

РазделНастройка или решениеРекомендуется
Выберите, где работает агентОблачная или самостоятельно размещаемая песочница («sandbox»)Облачная, если только инструменты не должны работать в инфраструктуре, которую вы контролируете
Ограничьте сетьnetworking.type средыlimited, только с теми хостами, которые нужны агенту
Храните учётные данные в хранилищахinjection_location и networking для каждой записи учётных данных в виде переменной окруженияТолько заголовки запросов и сеть limited только с теми хостами, для которых предназначен ключ
Ограничьте веб-поиск и веб-загрузкуallowed_domains для каждого веб-инструмента«Allowlist» (список разрешённых) для каждого инструмента. Для web_fetch укажите только сайты, которые нужны агенту. Для web_search укажите сайты, из которых вы хотите получать результаты
Одобряйте рискованные действияpermission_policy для каждого инструментаauto для bash, write, edit, web_fetch и инструментов MCP, которые только читают данные. Вместо этого always_ask для инструмента, если вы не можете отменить его изменения за пределами песочницы или если одного лишь пересланного текста конечного пользователя не должно быть достаточно для его запуска
Дайте агенту минимальный набор инструментовdefault_config.enabled в наборе инструментов агентаfalse, затем включите инструменты, которые нужны агенту
Держите недоверенные входные данные подальше от мощных инструментовКакие инструменты и учётные данные есть у агента, когда он читает недоверенные входные данныеНи у одного агента, читающего недоверенные входные данные, нет инструмента с always_allow, который записывает файлы, выполняет команды или изменяет записи
Установите лимиты и способ остановкиbudget для каждой сессии и развёртыванияЛимит, соответствующий ожидаемой стоимости запуска
При необходимости поручите офлайн-проверяющему читать каждую стенограммуЗапускаемое вами задание офлайн-проверки, которое читает события каждой сессииНеобязательно. Проверка по расписанию каждой сессии, которая перешла в режим ожидания или завершилась
Мониторинг сессий и проверка сроков хранения«Webhooks» (вебхуки) и удаление сессийОповещение, когда сессия переходит в режим ожидания, достигает бюджета или завершается, и проверка причины перехода в режим ожидания. Сохраняйте нужные события в собственных журналах и удаляйте сессии, которые вам больше не нужны

В разделе Риски безопасности и границы песочницы объясняется, почему эти настройки важны и от чего они не защищают. Чтобы проверять и отслеживать сессии, см. Проверка и мониторинг сессий агентов.

Выберите, где работает агент

От того, где работают инструменты агента, зависит, кто обеспечивает безопасность песочницы: Anthropic — в случае облачной среды, или вы — в случае самостоятельно размещаемой песочницы. Чтобы выбрать между ними и узнать, что передаётся в Anthropic в каждом случае, см. Выбор среды для агента.

Если вы используете самостоятельно размещаемую песочницу, учитывайте следующие четыре момента:

  • Сеть: раздел Ограничьте сеть относится к облачным средам. Для самостоятельно размещаемой песочницы установите эквивалентные ограничения на её трафик в собственном брандмауэре. Ваш брандмауэр не ограничивает серверы MCP, которые объявляет агент, поэтому проверяйте их, а также те, которые ваше приложение задаёт для сессии.
  • Веб-инструменты: веб-инструменты работают на серверах Anthropic, поэтому ваш брандмауэр их не ограничивает. Ограничивайте их с помощью списков доменов. См. Ограничьте веб-поиск и веб-загрузку.
  • Учётные данные: учётные данные в виде переменных окружения пока не поддерживаются в самостоятельно размещаемых песочницах.
  • Изоляция и усиление защиты: вы отвечаете и за то, и за другое. См. Модель безопасности.

Ни один из вариантов не меняет охват соответствия требованиям Managed Agents или срок хранения истории сессий. См. Мониторинг сессий и проверка сроков хранения.

Ограничьте сеть

Установите networking.type в значение limited и укажите в allowed_hosts только те хосты, которые нужны агенту. Запрос на создание среды без networking может получить unrestricted, поэтому задавайте networking в каждом запросе на создание. См. Риски неограниченного сетевого доступа.

Подключённые вами файлы, хранилища памяти и репозитории GitHub остаются доступными агенту независимо от allowed_hosts.

В примерах на этой странице используется агент поддержки. Он читает обращение клиента, находит заказ, читает ваш справочный центр и составляет черновик ответа. Поиск заказа выполняет ваше приложение, и ему не нужен хост, поэтому эта среда разрешает один хост — справочный центр — для web_fetch:

ant apply environment.yaml
environment.yaml
# yaml-language-server: $schema=https://platform.claude.com/schemas/ant/beta/environment.json
name: support-agent
config:
  type: cloud
  networking:
    type: limited
    allowed_hosts:
      - help.example.com

У среды limited есть три сетевые настройки:

НастройкаЧто она открывает для кода в песочницеРекомендуется
allowed_hostsУказанные вами хосты, для любых запросовТолько хосты, которые нужны агенту, включая хост каждого сервера MCP, которым вы управляете или которому доверяете
allow_package_managersХосты менеджеров пакетов. Они включают все репозитории и пути на github.com, gitlab.com и bitbucket.org, где кто угодно может публиковать контент и куда код в песочнице может загружать файлыfalse, если только настройка packages среды не содержит пакеты, что требует true. Если агент устанавливает пакеты во время работы, вместо этого укажите в allowed_hosts только нужные ему хосты реестров
allow_mcp_serversНикаких хостов. Managed Agents подключается к серверам MCP с серверов Anthropicfalse, при этом хост каждого сервера MCP, которым вы управляете или которому доверяете, указан в allowed_hosts

Настройки allow_package_managers и allow_mcp_servers не добавляют хостов для веб-поиска и веб-загрузки.

Оставьте allow_mcp_servers выключенной (это значение по умолчанию) и укажите в allowed_hosts хост каждого сервера MCP, которым вы управляете или которому доверяете. Каждый указанный хост также открыт для кода в песочнице. Когда allow_mcp_servers выключена, проверка при создании сессии отклоняет запрос, если хост сервера MCP не указан. См. Предоставление аутентификации при создании сессии. Та же проверка выполняется, когда обновление сессии изменяет mcp_servers.

Выбирая хосты для allowed_hosts, следуйте двум правилам:

  • Указывайте только хосты, которыми вы управляете или которым доверяете.
  • Избегайте подстановочных знаков *. и доменов общего хостинга, где кто угодно может публиковать контент.

Если у агента остаётся bash, настройте политику разрешений инструмента bash, как описано в разделе Одобряйте рискованные действия.

Все сетевые настройки описаны в разделе Настройка облачной среды.

Храните учётные данные в хранилищах

Храните каждый секрет в «vault» (хранилище). Для каждой записи учётных данных в виде переменной окружения задайте местом внедрения только заголовки запросов и укажите только те хосты, для которых предназначен секрет. Код в песочнице видит заполнитель вместо секрета. Managed Agents подставляет настоящий секрет только в исходящие HTTPS-запросы к хостам, разрешённым для этих учётных данных. Поэтому секрет остаётся вне прямой досягаемости модели, если только сервис не отправит его обратно, например конечная точка, которая возвращает заголовки запроса. Если networking учётных данных имеет значение unrestricted, Managed Agents подставляет настоящий секрет в запросы к любому хосту, к которому среда разрешает доступ песочнице. Чтобы использовать хранилище, передайте его ID в vault_ids при создании сессии или развёртывания.

НастройкаЗначениеПочемуЧего она не делает
injection_location{"header": true, "body": false}, после того как вы проверите, что сервис читает ключ из заголовкаТела запросов часто формируются из контента, который читает агент, поэтому ключ в теле более уязвим. Укажите оба поля: запрос на создание без этого объекта включает оба места, а обновление изменяет только отправленные вами поляКод по-прежнему может использовать ключ на каждом хосте, который разрешают учётные данные. Сервис, ожидающий ключ в теле, получит заполнитель и отклонит запрос
networking учётных данныхlimited, с точными хостами, для которых предназначен ключОтветы попадают в песочницу в открытом виде, поэтому избегайте подстановочных знаков, доменов общего хостинга и хостов, которые возвращают заголовки запросаОна не открывает хост. Среда также должна его разрешать
Разрешения ключа в сервисе, который его выдалТолько разрешения, которые нужны агентуАгент может делать всё, что разрешает ключНеприменимо
Токен GitHub смонтированного репозиторияДетализированный токен с минимальными разрешениямиКод в песочнице может с его помощью получать данные из смонтированного репозитория и отправлять в него изменения в течение всей сессии. Предоставляйте доступ на запись, только если агент должен отправлять измененияНеприменимо

Агенту поддержки не нужны учётные данные в хранилище, потому что ключ API для вашего API заказов хранит ваше приложение. Если у вашего агента есть учётные данные в хранилище, см. Добавление учётных данных, где приведён запрос на всех языках.

Не помещайте ключи в системные подсказки, определения агентов и сообщения. Не давайте агенту ключ API Claude. Даже если ключ API Claude находится в хранилище, код в песочнице может использовать его для прямых вызовов Claude API. Он может делать всё, что разрешает этот ключ, например запускать или удалять сессии либо использовать веб-поиск и веб-загрузку. Настройки инструментов агента, одобрения и бюджет к этим вызовам не применяются. В среде limited код может выполнять такие вызовы, только если allowed_hosts разрешает песочнице доступ к api.anthropic.com.

Получайте токены самостоятельно и сохраняйте их в хранилище, потому что токен, который код в песочнице получает с помощью сохранённого секрета, возвращается в открытом виде.

Храните хранилища для рабочих нагрузок с разными уровнями доверия в отдельных рабочих пространствах, потому что любой ключ API с доступом к рабочему пространству может ссылаться на его хранилища. Используйте ключи API, ограниченные одним рабочим пространством.

Учётные данные MCP и ротация описаны в разделе Аутентификация с помощью хранилищ.

Ограничьте веб-поиск и веб-загрузку

Задайте в allowed_domains для web_fetch сайты, которые нужны агенту. Любой URL, который загружает агент, может передать данные сайту, на который он указывает, поэтому этот список является средством защиты. Для web_search задайте в allowed_domains сайты, из которых вы хотите получать результаты, чтобы результаты поступали только с сайтов, в точности которых вы уверены. Список не мешает поисковому запросу попасть к поставщику поиска. Результаты поиска содержат текст со страниц, поэтому список также ограничивает, текст каких сайтов попадает к агенту. Задавайте allowed_domains для обоих инструментов в средах любого типа.

Список blocked_domains блокирует указанные хосты и их поддомены и никакие другие хосты. Тот же контент всё равно может попасть к агенту из веб-архивов, кэшей, зеркал или связанных доменов, которые вы не указали. Не полагайтесь на blocked_domains для обеспечения безопасности. Используйте allowed_domains и указывайте хосты, которым доверяете.

В среде limited список allowed_hosts из раздела Ограничьте сеть также ограничивает веб-инструменты. Среда unrestricted или самостоятельно размещаемая песочница веб-инструменты не ограничивают.

В среде limitedРезультат
Запись allowed_domains включённого веб-инструмента находится за пределами allowed_hostsСоздание сессии завершается ошибкой 400, как и обновление сессии, добавляющее такую запись. Сессия, которую запускает развёртывание — по расписанию или вручную, — всё равно создаётся. Затем инструмент ничего не возвращает с хостов за пределами allowed_hosts
У веб-инструмента нет собственного спискаИнструмент возвращает страницы и результаты только с хостов из allowed_hosts. Задайте также allowed_domains для инструмента
В allowed_hosts нет записейНи один веб-инструмент не возвращает ни страниц, ни результатов поиска
Вы добавляете хост в allowed_hosts для веб-инструментаХост также открывается для кода в песочнице

Два списка сопоставляют хосты по-разному:

СписокЗаписьСоответствуетНе соответствует
allowed_hosts (среда)example.comexample.comwww.example.com
allowed_hosts (среда)*.example.comЛюбой поддоменexample.com
allowed_domains (веб-инструмент)example.comexample.com и любой поддоменДругие домены

Если агенту нужен сайт и все его поддомены, укажите в allowed_hosts и example.com, и *.example.com, а в остальных случаях указывайте точные хосты. Если инструмент указывает example.com, а allowed_hosts — только *.example.com, сессия создаётся. Проверка при создании сессии считает example.com входящим в *.example.com, но инструмент ничего не возвращает с самого example.com. О том, как сопоставляются два списка, см. Задание списков доменов для агента.

Инструмент web_fetch также открывает только те URL, которые уже появлялись в сессии:

Где появляется URLМожет ли web_fetch его открыть
Текст пользовательского сообщения, включая пересылаемый вами текст конечного пользователяДа
Описание события user.define_outcomeДа
Адрес результата веб-поискаДа
Текст страницы, которую ранее вернул web_fetch (не PDF), где показан полный URLДа
Текст результата пользовательского инструмента, когда Claude вызвал инструмент напрямуюДа, если только результат не помечен is_error: true
Системная подсказкаНет
Конфигурация агента, включая записи allowed_domainsНет
Собственный вывод ClaudeНет
Вывод bash и других инструментов песочницыНет
Результат инструмента MCPНет
Файл, прикреплённый к пользовательскому сообщениюНет

В мультиагентной сессии web_fetch открывает URL от другого агента, только если он попал к этому агенту через источник, помеченный «Да». Результат пользовательского инструмента при прямом вызове считается источником, помеченным «Да». Это верно, даже если его текст написал Claude, например когда инструмент повторяет свои входные данные. URL может учитываться, даже если он записан без https://, например example.com/docs. Инструмент web_fetch не всегда может открыть ссылку, которая показывает слова вместо своего URL, например «Связаться с поддержкой». Если агент должен загрузить URL, который не появлялся в сессии, отправьте его в пользовательском сообщении.

Это правило снижает вероятность того, что внедрённый текст сформирует URL, передающий конфиденциальные данные. Текст конечного пользователя, результаты поиска, загруженные страницы и результаты пользовательских инструментов всё равно могут добавлять URL, поэтому не отключайте allowed_domains. Messages API применяет похожее правило с другим списком источников. См. Проверка URL-адресов.

Список доменов для web_fetch не ограничивает инструмент bash. Также ограничьте сеть. См. Правила списков доменов.

Одобряйте рискованные действия

Установите auto для bash, write, edit и web_fetch, а также для инструментов MCP, которые только читают данные. Вместо этого используйте always_ask для инструмента, если вы не можете отменить его изменения за пределами песочницы. Также используйте его для инструмента, который не должен запускаться только потому, что об этом просит пересылаемый вами текст конечного пользователя. Политика разрешений определяет, выполняется ли вызов инструмента, ожидает ли он вашего одобрения или оценивается сервером.

ИнструментРекомендуемая политикаПочему
read, glob, grepalways_allowОни читают файлы в песочнице и ничего не изменяют
bash, write, editauto. Используйте always_ask для инструмента, если вы не можете отменить его изменения за пределами песочницы. Используйте always_ask для bash, если вы пересылаете текст конечного пользователяЗначение по умолчанию для набора инструментов агента — always_allow, при котором каждый вызов выполняется без одобрения
web_fetchautoURL, который загружает агент, может передать данные сайту, на который он указывает
web_searchalways_ask, если агент обрабатывает данные, которые вы не хотели бы отправлять в поисковом запросе. В противном случае always_allowallowed_domains ограничивает, с каких сайтов поступают результаты, а не содержимое запроса
Инструменты MCP, которые только читают данныеauto, задаётся для каждого инструмента в configs набора инструментовЗначение по умолчанию для набора инструментов остаётся always_ask, поэтому инструмент, который сервер MCP добавит позже, по-прежнему будет ожидать одобрения
Инструменты MCP, которые изменяют данныеalways_askЭто значение по умолчанию для набора инструментов MCP. Сохраните его
Пользовательские инструментыВаш код решает, выполняется ли каждый вызовПолитики разрешений не применяются

Набор инструментов в разделе Дайте агенту минимальный набор инструментов применяет эти политики.

Политика auto позволяет серверу выполнить вызов, отклонить его или приостановить для одобрения. Человек не может одобрить каждый вызов в длительном запуске, поэтому вместо этого каждый вызов проверяет сервер. Сочетайте auto с ограниченной сетью, ключом с узкими разрешениями, бюджетом и оповещением о сессиях в режиме ожидания. auto не является контрольной точкой с участием человека, поэтому если человек должен проверять вызовы инструмента до их выполнения, настройте для этого инструмента always_ask.

auto рассматривает текст в событиях user.message и описание в событии user.define_outcome как ваши инструкции, включая пересылаемый вами текст конечного пользователя.

Приостановленная сессия ожидает бесконечно, поэтому сессии без присмотра нужен клиент, который отвечает на приостановленные вызовы или прерывает сессию.

Проверяйте каждый приостановленный вызов, прежде чем разрешить его. Клиент, который разрешает каждый вызов, не показывая его человеку, равнозначен always_allow. См. Ответ на запросы подтверждения и Просмотр результатов оценки каждого вызова.

Дайте агенту минимальный набор инструментов

Установите default_config.enabled в значение false и включите только те инструменты, которые нужны агенту. Набор инструментов агента по умолчанию включает все восемь встроенных инструментов.

ИнструментЧто он делает
bashВыполняет любые команды, включая запросы к разрешённым хостам
write, editИзменяют файлы в песочнице
read, glob, grepЧитают файлы в песочнице
web_fetch, web_searchВозвращают страницы и результаты поиска из интернета через серверы Anthropic

Агенту поддержки нужны три встроенных инструмента: read и write для черновика и web_fetch для справочного центра. Он ищет заказы через пользовательский инструмент lookup_order, который выполняет ваше приложение. Ключ API для вашего API заказов хранит ваше приложение, поэтому агенту не нужны ни bash, ни учётные данные.

Следующий пример ограничивает web_fetch хостом help.example.com с помощью allowed_domains. Он устанавливает auto для write и web_fetch, как рекомендует раздел Одобряйте рискованные действия. Если обращение клиента побудит агента использовать эти инструменты, агент сможет только изменять файлы в песочнице или открывать страницы справочного центра. Поэтому ни одному из инструментов не нужен always_ask. Пример также устанавливает always_ask в default_config, поэтому инструмент, который вы включите позже без собственной политики, будет использовать always_ask:

ant apply agent.md
agent.md
---
name: Support Agent
model: claude-opus-5-5
tools:
  - type: agent_toolset_20260401
    default_config:
      enabled: false
      permission_policy:
        type: always_ask
    configs:
      - name: read
        enabled: true
        permission_policy:
          type: always_allow
      - name: write
        enabled: true
        permission_policy:
          type: auto
      - name: web_fetch
        enabled: true
        allowed_domains: [help.example.com]
        permission_policy:
          type: auto
  - type: custom
    name: lookup_order
    description: Look up one order by its ID. Returns the status, the items, and the delivery date.
    input_schema:
      type: object
      properties:
        order_id:
          type: string
          description: The order ID from the ticket
      required:
        - order_id
---

Обновление агента заменяет весь массив tools, поэтому отправляйте все записи, которые хотите сохранить.

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

  • Развёртывание закрепляет версию агента, поэтому направьте каждое развёртывание на новую версию.
  • Агент, который указывает этого агента в subagents.predefined_agents или workflows.predefined_agents, сохраняет закреплённую им версию, поэтому обновите и этого агента.
  • Чтобы ужесточить уже существующую сессию, обновите инструменты этой сессии. Сессия должна находиться в состоянии idle, а обновление заменяет весь массив tools. В мультиагентной сессии новые списки allowed_domains и blocked_domains для веб-инструментов агента, которого запускает сессия, применяются и ко всем остальным агентам. Они вступают в силу со следующего хода каждого агента. Включённые инструменты и политики разрешений этих агентов не меняются. Чтобы изменить их, обновите каждого агента, а затем запустите новую сессию.

Также ограничьте серверы MCP и пользовательские инструменты тем, что нужно агенту:

  • Серверы MCP: набор инструментов MCP по умолчанию включает все инструменты, которые предоставляет сервер. Установите default_config.enabled в значение false и включите инструменты по имени, чтобы инструменты, которые сервер добавит позже, оставались выключенными. Удалите серверы, которые агент не использует. См. Коннектор MCP.
  • Пользовательские инструменты: их выполняет ваше приложение, и политики разрешений к ним не применяются. Проверяйте входные данные каждого вызова в своём приложении и ограничивайте то, к чему может обращаться инструмент.

Держите недоверенные входные данные подальше от мощных инструментов

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

  • Недоверенные входные данные: веб-страницы, результаты поиска, обращения в поддержку, электронные письма, файлы репозиториев, загрузки, результаты серверов MCP и пересылаемые вами сообщения конечных пользователей.
  • Мощные инструменты: bash, write, edit, web_fetch, web_search, инструменты MCP и пользовательские инструменты, которые записывают или отправляют данные, а также любой инструмент, использующий учётные данные.

Текст в недоверенных входных данных может указать агенту использовать имеющийся у него мощный инструмент. Агент поддержки читает обращения, поэтому он обращается к вашему API заказов только через пользовательский инструмент lookup_order. Ваше приложение проверяет, что заказ принадлежит отправителю обращения.

Входные данные, которые читает агентКакие ещё возможности у него естьЧто делать
Обращения, электронные письма или загрузкиbash с учётными даннымиЗамените bash пользовательским инструментом, который делает что-то одно. Если агент должен сохранить bash, одобряйте каждый вызов с помощью always_ask
Веб-страницы или результаты поискаЗапись файлов или изменение записейОтключите веб-инструменты или ограничьте их сайтами, которыми вы управляете или которым доверяете
Результаты MCP или файлы репозиториевИнструменты MCP, которые записывают данныеОставьте для набора инструментов MCP always_ask и включите только те инструменты, которые нужны агенту
Смонтированный репозиторий GitHubЛюбой инструментМонтируйте только репозитории, которым доверяете. Агент с read загружает навыки из каталога .claude/skills репозитория как инструкции агента без этапа проверки. См. Загрузка навыков из репозитория GitHub
Любые недоверенные входные данныеЗапись в хранилище памятиПодключайте хранилище как read_only, если только агент не должен в него записывать. Значение по умолчанию — read_write, и последующие сессии читают сохранённый текст как доверенную память

В облачной среде чтение файла с помощью read также может загрузить файлы CLAUDE.md и AGENTS.md как инструкции. Они загружаются из каталога файла и его родительских каталогов вплоть до рабочего каталога песочницы. Файлы, на которые они ссылаются с помощью @ и пути, например @docs/setup.md, также загружаются — до пяти уровней ссылок в глубину. Ссылка может указывать на любое место в песочнице, например @/etc/hosts. Никакая настройка не отключает это, кроме отключения read, поэтому рассматривайте репозиторий, пакет или архив, в который может записывать кто-то за пределами вашей команды, как недоверенные входные данные.

Когда агент должен читать недоверенные входные данные и при этом действовать, это руководство рекомендует один из трёх вариантов архитектуры:

  • Разделите чтение и действия. В одной мультиагентной сессии ведущий агент даёт задачи сборщику, который читает веб, и исполнителю, который изменяет файлы или записи.
  • Дайте агенту один узкий пользовательский инструмент. Ваше приложение выполняет инструмент, проверяет его входные данные и хранит учётные данные. Агент поддержки использует этот вариант, а не разделение. См. Ответ на вызовы инструментов, приостанавливающие сеанс.
  • Оставьте человека в контуре. Используйте always_ask для мощного инструмента, чтобы человек одобрял каждый вызов.

Разделение использует трёх агентов:

АгентЧитаетИмеетПередаёт дальше
Ведущий (агент, которого запускает сессия)Ваше сообщение и то, что возвращают другие агентыНикаких встроенных инструментов. Его список subagents.predefined_agents указывает сборщика и исполнителяЗадачу каждому агенту
СборщикВеб-страницы и результаты поискаТолько web_fetch и web_search, каждый с allowed_domainsКраткие результаты в формате, который вы запрашиваете в его системной подсказке
ИсполнительЗадачу от ведущегоИнструменты, которые записывают файлы, выполняют команды или изменяют записи, с auto или always_ask. Никаких веб-инструментовСвой результат

Результаты сборщика формируются из недоверенных страниц, и ведущий может передать их текст исполнителю. Сохраняйте auto или always_ask для инструментов исполнителя. Сборщик всё равно может отправить часть прочитанного на сайты из своего списка web_fetch и поставщику поиска в своих запросах.

Агенты в одной мультиагентной сессии совместно используют песочницу, её файлы и учётные данные хранилища, поэтому такое разделение разграничивает только их инструменты и диалоги. Для более строгого разделения используйте две сессии с отдельными средами и хранилищами. Пусть ваше приложение передаёт между двумя сессиями только фиксированные поля, например ID заказа.

Установите лимиты и способ остановки

Задавайте бюджет при создании каждой сессии и заранее решите, как вы будете останавливать агента.

Средство управленияЧто оно делает
Бюджет сессииЛимит расходов по публичным прейскурантным ценам. При достижении лимита сессия и каждый поток приостанавливаются. Выполняющиеся запросы могут завершиться, а их вызовы инструментов всё равно выполняются, поэтому расходы могут превысить лимит. См. Когда сессия достигает бюджета
Бюджет развёртыванияТот же лимит, применяемый к каждой сессии, которую запускает развёртывание
Событие user.interruptНемедленно останавливает ответ модели. Выполняющийся вызов инструмента может сначала завершиться. Сессия переходит в состояние idle, если только запуск рабочего процесса не удерживает её в состоянии running, и возобновляется при вашем следующем сообщении. Прерывание не завершает ни один запуск рабочего процесса
Архивирование или удаление сессииАрхивирование сохраняет историю и блокирует новые события. Удаление удаляет запись, события и песочницу
Приостановка или архивирование развёртыванияПриостановка останавливает новые запуски по расписанию, но по-прежнему разрешает ручные запуски. Архивирование окончательно завершает расписание. Уже работающие сессии продолжают работать
Архивирование или удаление хранилища или учётных данныхУдаляет секрет из работающих сессий без перезапуска. Учитывайте задержку. Сессии продолжают работать, поэтому также прервите их. Токен, который агент уже получил с помощью секрета, остаётся в песочнице

Чтобы остановить работающего агента, выполните следующие шаги:

  1. Отправьте user.interrupt отдельно.
  2. Для агента, работающего по расписанию, также приостановите развёртывание, чтобы не начинались новые запуски по расписанию. Чтобы окончательно завершить расписание, заархивируйте развёртывание.
  3. Если ключ мог быть раскрыт, выполните его ротацию в сервисе, который его выдал.
  4. Если у агента есть открытые запуски рабочих процессов, также отправьте user.message с просьбой остановить их, потому что прерывание не завершает ни один запуск. О том, какие вызовы инструментов нужно сначала отменить, см. Прерывание сессии с открытыми запусками.
  5. Дождитесь перехода сессии в состояние idle. Работающую сессию нельзя заархивировать или удалить.
  6. Заархивируйте сессию, чтобы сохранить её историю. Удалите её, когда история вам больше не понадобится.

Прерывание не отменяет того, что агент уже сделал или отправил. Архивирование агента не останавливает его работающие сессии.

Значение max_list_cost.amount бюджета — это целое число центов США, записанное в виде строки, поэтому "125" означает $1,25. См. Задание бюджета при создании сессии.

Нельзя добавить бюджет к сессии, созданной без него. Чтобы изменить или удалить лимит, см. Возобновление сессии, достигшей бюджета. После удаления лимита сессии установить новый нельзя.

Бюджет ограничивает расходы, но не ограничивает то, что агент делает до достижения лимита. Чтобы разделить рабочие нагрузки с разными уровнями доверия, используйте отдельные рабочие пространства. Дайте каждой рабочей нагрузке ключ API, ограниченный одним рабочим пространством, потому что ключ с доступом к нескольким рабочим пространствам может действовать в любом из них.

См. Бюджеты сессий, Операции с сессиями и Развёртывания по расписанию.

Следующие шаги

Сетевые режимы, разрешённые хосты и менеджеры пакетов.

Политики одобрения и запросы подтверждения.

Типы учётных данных, места внедрения и ротация.

Лимиты, возобновление при достижении бюджета и бюджеты развёртываний.

Was this page helpful?