Безопасность агентов¶
Защита Агента Атом следит за двумя моментами каждого хода агента: что агент собирается отправить модели и что он собирается сделать с помощью инструмента. В зависимости от режима, который вы выбрали для аккаунта, она записывает увиденное, маскирует секреты и персональные данные и спрашивает вас, прежде чем агент выполнит действие с последствиями.
Что она делает¶
- Не пускает секреты в модели. API-ключи, токены, пароли и похожие учётные данные, найденные в сообщении, документе или результате инструмента, заменяются заглушкой до того, как текст попадёт в какую-либо модель. Исходный текст остаётся в вашем диалоге, а ваше собственное сообщение показывает, какие части модель не получила; маскируется только копия, отправленная модели.
- Держит персональные данные внутри платформы. Имена, контактные данные и идентификационные номера маскируются, прежде чем попасть в модель, работающую вне платформы, например у вашего собственного провайдера моделей. Модели платформы получают их без изменений, а находка записывается.
- Спрашивает перед побочными эффектами. Удаление или изменение файлов, отправка письма, запись в таблицу, запуск кода с доступом в сеть, трата кредитов на медиа — агент останавливается и показывает в чате карточку подтверждения тому, кто его об этом попросил. Человек нажимает Разрешить или Отклонить; если за пять минут никто не ответил, действие не выполняется. Чтение файлов, поиск и запуск кода в песочнице без доступа в сеть подтверждения не требуют.
- Записывает каждое решение. На странице Безопасность перечислено, что защита разрешила, замаскировала, заблокировала или о чём спросила, — с агентом, пользователем, инструментом или моделью, найденным, правилом и причиной. Для посетителя опубликованного агента запись не говорит, о каком диалоге или о какой записи, адресе или файле шла речь. Список можно отфильтровать по результату.
- Следует вашим правилам. Владелец или администратор аккаунта описывает собственные правила организации простыми словами — запретить инструмент, требовать подтверждения для действия, маскировать больше, чем платформа, — проверяет их на одном действии, и им следуют все агенты аккаунта.
- Учится распознавать ваши данные. Номера договоров, имена клиентов, кодовые названия проектов, всё, что есть только у вашей организации: опишите это примерами, списком слов или собственным сервисом и выберите, будет ли защита маскировать это перед моделями, блокировать в инструментах или только записывать. См. Данные вашей организации.
Режимы¶
Откройте Настройки → Безопасность. Режим применяется ко всем агентам аккаунта примерно за полминуты:
- Выкл — ничего не проверяется и не записывается.
- Наблюдение — всё проверяется и записывается, ничего не блокируется и не маскируется. Начните с него, чтобы увидеть, что сделала бы защита; в списке отмечены записи, которые режим «Принудительно» заблокировал бы.
- Принудительно — секреты маскируются, персональные данные маскируются перед внешними моделями, а действия с побочными эффектами ждут вашего подтверждения.
Новые аккаунты начинают с режима платформы по умолчанию, который показан на странице Безопасность: Выкл, если в вашей установке не задан другой. Менять режим может только владелец или администратор аккаунта. Всё, что описано на этой странице, действует для агентов аккаунта с момента, когда он находится в режиме «Наблюдение» или «Принудительно».
То же касается проверок, которые платформа сама проводит над диалогами ваших агентов: судьи, оценивающего, как пользователи агента реагируют на его ответы, а также проверок и сводок, на которых построена статистика билдера. То, что они отправляют модели, подчиняется вашему режиму и вашим правилам так же, как собственные запросы ваших агентов.
Агент Атом и встроенные агенты поставляются вместе с Атомом, а не принадлежат вашему аккаунту, поэтому ваш режим и ваши правила к ним не применяются: они работают в режиме платформы по умолчанию.
Ваши правила¶
Под режимом страница Безопасность предлагает описать, что вашим агентам можно и чего нельзя, — своими словами, по одной мысли на строку:
Nobody may delete files.
Sending email always asks the person first.
No customer data to models outside the platform.
Составить правила превращает описание в список правил и показывает каждое до того, как что-либо будет сохранено. Каждая карточка одним предложением говорит, что делает правило, — Блокирует инструменты delete_file. Подтвердить в обход нельзя никому. — и показывает причину, которую прочтёт пользователь, когда правило его остановит. Оставьте нужные правила галочкой, а остальные не берите.
Предложение называет каждое условие правила — какие действия оно охватывает, что должно быть найдено и насколько уверенной должна быть проверка, кто действует, какие модели, — поэтому правило никогда не делает больше или меньше, чем написано на его карточке. Правило, которое блокирует персональные данные, только когда агент отправляет их наружу через инструмент, выглядит так: Блокирует то, что найдено как персональные данные с уверенностью не ниже 0.5, в вызовах инструментов с эффектом egress. Подтвердить в обход нельзя никому.
Вместо этого карточка может сказать одно из двух:
- Это правило использовать нельзя. Правило назвало инструмент, которого нет в вашем аккаунте, перечислило больше 50 инструментов или больше 50 видов находок (один шаблон вроде
jira_*обозначает много инструментов), повторило имя правила платформы, не указало причину, которая нужна блокирующему правилу, или заблокировало бы персональные данные в сообщениях моделям (см. ниже). Проблемы перечислены, и оставить правило нельзя, пока описание не будет говорить о том, что защита действительно умеет делать. - Правилом не выразить. Ваше предложение цитируется с объяснением, почему оно не подходит, — защита видит роли и инструменты, а не должности или людей по именам, — и предлагаются ближайшие правила, которые она может выразить: их можно выбрать или пропустить. Ничто не подменяется молча вместо того, что вы просили.
Ваши правила объединяются с правилами платформы, и всегда побеждает более строгая настройка: ваше правило может запретить действие или потребовать для него подтверждения, но никогда не может ослабить правило платформы (секреты остаются замаскированными, побочные эффекты по-прежнему требуют подтверждения). Режим задаётся переключателем выше, а не правилом.
У каждой организации с самого начала есть одно собственное правило: люди вне её — посетители опубликованного агента, API-клиенты и другие агенты, вызывающие ваших, — не могут выполнять действия с побочными эффектами. Оно отображается среди ваших правил, как любое другое, и его можно удалить; тогда посетители сами подтверждают такие действия.
Чтобы составить правила, модель читает ваше описание, поэтому формулировки ответа могут различаться, а число черновиков в час для аккаунта ограничено. То, что показывает страница, — не пересказ модели: предложение на каждой карточке строится из самого правила, и платформа проверяет каждое правило, прежде чем вы сможете его оставить.
Персональные данные в сообщениях моделям¶
Персональные данные в том, что агент отправляет модели, можно маскировать, но не блокировать. В инструкциях агента сказано, с кем он разговаривает, — имя и email человека, — поэтому правило, блокирующее персональные данные в сообщениях моделям, останавливало бы каждый диалог до того, как агент успеет ответить. Попросите такое правило — и черновик предложит вместо него правило, которое маскирует персональные данные: они заменяются перед каждой моделью, включая модели платформы, и диалог продолжается. Блокирующее правило такого рода помечается как Это правило использовать нельзя.
Сообщениями может называться и то, что агент отправляет наружу через свои инструменты, — письмо, пост в мессенджере. Когда ваше предложение можно понять и так и так, предлагаются оба прочтения на выбор: маскировать персональные данные перед каждой моделью или блокировать вызовы инструментов, отправляющие персональные данные наружу.
Проверка правила до сохранения¶
Проверить до сохранения отвечает, что защита сделала бы с одним конкретным действием по только что собранным правилам, — прежде чем по ним заработает хоть один агент. Выберите инструмент и его аргументы или напишите сообщение, которое агент отправил бы модели, и нажмите Запустить. Ответ — Заблокировано, Спросит человека, Замаскировано или Разрешено — вместе с правилом, которое это решило, и причиной. Для замаскированного сообщения показывается ещё и текст, который получила бы модель. Ничего не отправляется модели и ничего не добавляется в список решений.
Детекторы, которые вы добавили или изменили в разделе Данные вашей организации и ещё не сохранили, тоже участвуют в ответе. Если защита что-то нашла в действии, ответ это перечисляет: какой детектор нашёл, где (аргумент инструмента или сообщение) и какой текст. Детектор, который не ответил, тоже называется, потому что то, что он нашёл бы, в этом случае неизвестно, а не отсутствует. Если правило использует ваш собственный сервис, введённый вами текст отправляется этому сервису — так же, как его отправило бы настоящее действие.
Пока аккаунт в режиме «Наблюдение» или «Выкл», пробный запуск отвечает так, как ответил бы режим «Принудительно», — он нужен, чтобы показать, что изменится при включении режима.
Ваши текущие правила¶
Карточка Правила организации перечисляет правила, по которым аккаунт работает сейчас, по карточке на правило, с кнопкой Удалить, чтобы убрать правило. Пока есть несохранённые изменения, карточка показывает правила, по которым аккаунт работал бы, и Сохранить как версию N сохраняет их; Отклонить отбрасывает изменения. Сохранение применяется ко всем агентам аккаунта примерно за полминуту и отменяет подтверждения, которые ещё ждут ответа, — их запросили по прежним правилам.
Для опытных: сам документ¶
Правила хранятся в виде короткого YAML-документа, и раздел Дополнительно внизу страницы открывает его: текстовый редактор, историю версий и полную таблицу действующих правил. Редактируйте документ напрямую, когда правилу нужен селектор, до которого не дотянуться описанием.
У каждого правила есть id (уникальный, строчными буквами, через дефисы), блок match, action и reason. deny с hard: true нельзя обойти подтверждением. Три примера:
schema_version: 1
layers:
- name: organization
rules:
# Agents never write to Jira; the glob matches every tool of the server.
- id: org-no-jira-writes
match: {action_kind: [tool_call], tool: ["jira_*"]}
action: deny
hard: true
reason: "Jira changes are made by people, not agents"
# Running code always asks, even without network access.
- id: org-python-needs-approval
match: {action_kind: [tool_call], tool: [python_exec, run_file]}
action: require_approval
reason: "Running code needs confirmation in this organization"
# Personal data is masked before every model, platform models included.
- id: org-mask-pii-everywhere
match:
action_kind: [llm_request]
finding_class: [pii]
min_score: 0.5
destination_trust: [platform, tenant, unknown]
action: mask
reason: "Personal data is masked before any model"
Селекторы, которые можно использовать в match, перечислены в комментариях самого документа (имя инструмента, эффект, кто действует, куда уходят данные, что нашли детекторы). Проверить валидирует текст и показывает правила, которые он добавляет; Сохранить сохраняет его как новую версию. Каждая проблема сообщается вместе с местом, где она находится, — строкой для синтаксической ошибки, путём правила (layers/0/rules/1/reason) или детектора (detectors/0/patterns/0) для всего остального, — и документ, не прошедший проверку, никогда не применяется.
История версий хранит каждый сохранённый документ; Откатить снова делает активной более раннюю версию. Таблица действующих правил показывает все правила, которые применяются к аккаунту, — правила платформы, которые нельзя изменить, и ваши, — каждое в виде предложения с исходными селекторами под ним. Когда одному действию соответствуют несколько правил, решает самое строгое.
В документе также хранятся ваши детекторы — в разделе detectors: рядом с layers. Карточка Данные вашей организации пишет его за вас; правьте его вручную для того, чего не показывает редактор, например слов, исключающих совпадение (exclude), или уверенности, которую получает находка (score). У каждого детектора есть kind — pattern, terms или remote для вашего собственного сервиса (см. Собственный сервис распознавания), — id и title. Свои находки он сообщает как class (corporate, pii или secret) и subtype — имя, по которому к ним обращаются правила; детектор remote задаёт такую пару для каждого типа сущности в entities. Правило выбирает находки детектора одновременно по finding_class и по finding_subtype: правило, которое называет только подтип, к тому же заставляет все встроенные детекторы работать везде, где это правило применяется.
schema_version: 1
detectors:
- kind: pattern
id: contract-number
title: Contract number
class: corporate
subtype: CONTRACT_NUMBER
patterns: ['\bCN-\d{6}\b']
examples:
match: ["Please review contract CN-123456 before Friday"]
no_match: ["Order CN-1234567 has shipped"]
layers:
- name: organization
rules:
- id: org-contract-number-mask
match:
action_kind: [llm_request]
finding_class: [corporate]
finding_subtype: [CONTRACT_NUMBER]
destination_trust: [platform, tenant, unknown]
action: mask
reason: "Contract numbers are masked before any model"
Шаблоны — это регулярные выражения в стиле RE2: без lookahead, lookbehind и обратных ссылок, а \b, \w, \d и \s знают только ASCII, поэтому рядом с кириллическими буквами пишите классы вроде \p{Cyrillic}, \p{L} или \p{N}. Примеры проверяются при каждом сохранении правил: каждый текст из match должен находиться, а ни один текст из no_match — нет, поэтому изменение, ломающее детектор, отклоняется, а не применяется. Документ вмещает до 20 детекторов, из них не больше 3 собственных сервисов, и до 2 000 000 символов в сумме — к этому пределу приближаются только длинные списки слов: страница об этом сообщит и не даст сохранить документ большего размера.
Данные вашей организации¶
Защита сама распознаёт секреты и персональные данные. Но она не может знать, что CN-2024-0042 — один из ваших номеров договоров или что Project Falcon не должен выходить за пределы компании. Данные вашей организации — карточка на странице Безопасность сразу под полем, где вы описываете правила, — это место, где вы её этому учите: вы добавляете детектор, то есть способ распознавать один вид данных, и выбираете, что защита делает со всем, что он находит. Добавлять, изменять и удалять детекторы может только владелец или администратор аккаунта. Они действуют на агентов вашего аккаунта так же, как ваши правила (см. Режимы).
Добавить детектор открывает редактор с тремя способами указать, что искать:
- По примерам. Введите несколько примеров данных в поле Примеры, по одному на строку (до десяти), и, если хотите, похожий текст, который не должен находиться, в поле Не должно находиться (необязательно). Предложить шаблон просит модель предложить шаблон — описание формы данных, — который находит ваши примеры и не трогает похожие на них тексты; модель читает и Название детектора, поэтому сначала задайте его. Платформа проверяет ответ на каждом примере, прежде чем его показать, и сообщает, какой пример шаблон пропускает. Поскольку то, что вы вводите, читает модель, используйте выдуманные примеры, если настоящие конфиденциальны. В разделе Для опытных можно отредактировать шаблон или написать свой, добавить слова контекста, которые делают находку более уверенной, когда стоят рядом (например, договор), и потребовать контрольную сумму для номеров, у которых она есть: номеров карт, ИНН, СНИЛС, ОГРН и IBAN.
- Списком. Введите или вставьте слова и названия, которые нужно находить, в поле Слова и названия, по одному на строку, до 5000: клиентов, партнёров, кодовые названия проектов. Регистр не важен, и слово находится только целиком; поставьте в конце
*, чтобы принимать любое окончание, — тогдаGlobex*найдёт иGlobexes. Загрузить из файла читает файл.txtс одним словом на строку или файл.csvсо словами в первом столбце и заменяет список. - Ваш сервис. Для данных, которые не распознать ни по виду, ни по списку, — номер клиента ничем не отличается от любого другого номера, пока кто-то не сверится с базой, — решает ваш собственный сервис. См. Проверка собственным сервисом.
У каждого детектора есть Название, под которым его упоминают карточки правил и список решений. У шаблона или списка есть ещё Вид данных:
- Данные компании — то, что есть только у вашей организации: номера договоров и счетов, списки клиентов, кодовые названия проектов. Больше ничто на платформе их не ищет, поэтому с ними работают только выбранные вами правила.
- Персональные данные — данные о людях, которые пропускают собственные детекторы платформы. К ним тоже применяются правила платформы о персональных данных.
- Секреты и ключи доступа — вид ключа или токена, который пропускают собственные детекторы платформы. К нему тоже применяются правила платформы о секретах.
Из названия страница делает id детектора и подтип, под которым его находки фигурируют в правилах: Contract number становится contract-number и CONTRACT_NUMBER. Они видны в разделе Для опытных, где подтип нового детектора ещё можно изменить; после добавления детектора ни то ни другое не меняется. У сервиса нет единого вида данных: вы задаёте его для каждого типа сущности, который сообщает сервис, как описано ниже.
Данные можно также описать словами. Напишите в поле, где вы описываете правила, что-нибудь вроде Наши номера договоров выглядят как CN-2024-0042 и никогда не должны попадать в модель, и Составить правила предложит детектор вместе с его правилами. Черновик может предложить шаблон или список, но никогда — собственный сервис. Детектор появляется в разделе Данные вашей организации, где его можно изменить, и он идёт вместе со своими правилами: если не взять ни одного правила из черновика, его детектор тоже не будет добавлен.
Что происходит с найденным¶
Что делать с найденным определяет, какие правила страница создаёт для детектора:
- Маскировать перед моделями (по умолчанию) — найденное заменяется заглушкой, прежде чем сообщение уйдёт в любую модель, включая собственные модели платформы. В режиме «Принудительно» ваше собственное сообщение показывает, какие части модель не получила (см. Что вы видите, когда что-то замаскировано).
- Блокировать в инструментах — вызов инструмента, содержащий найденное, блокируется. У заблокированного вызова отображается Заблокировано с причиной Вызовы инструментов не должны содержать ничего, что подпадает под «Contract number» (см. Что вы видите, когда что-то заблокировано).
- Маскировать перед моделями и блокировать в инструментах — и то и другое.
- Только записывать — ничего не меняется и не блокируется. Проверка идёт в фоне, а Решения показывают, где что-то нашлось (ниже).
Это обычные правила, и, как все правила, они подчиняются режиму: в режиме «Наблюдение» ничего не маскируется и не блокируется, а в списке отмечено, что сделал бы режим «Принудительно». Они появляются в карточке Правила организации с id вроде org-contract-number-mask, org-contract-number-tools и org-contract-number-audit, а их карточки называют детектор по названию и подтипу. Удалить их можно там же, а изменить — в документе.
Карточка детектора говорит, что сейчас происходит с его находками, исходя из действующих правил. Детектор, который не использует ни одно правило, допустим, но ничего не меняет, и его карточка предупреждает: Ни одно правило его пока не использует, поэтому с найденным ничего не происходит. Изменить меняет детектор; переименуйте его, измените то, что он сообщает, или выберите другой способ обращения с находками — и созданные для него правила будут заменены соответствующим образом. Способ поиска — примеры, список или сервис — изменить нельзя; вместо этого добавьте новый детектор. Удалить спрашивает, удалить ли заодно правила, созданные для детектора: Удалить вместе с правилами или Удалить, правила оставить.
Проверка детектора¶
Проверить на тексте внизу редактора запускает детектор в его текущем виде — сохранённый или нет — на вставленном вами тексте и показывает этот текст, где каждая находка выделена и подписана. Проверьте его на нескольких правдоподобных примерах перед сохранением; ничего не сохраняется. Если используется ваш собственный сервис, вставленный текст отправляется вашему сервису. Проверить до сохранения (выше) тоже учитывает ещё не сохранённые детекторы. Подсказки шаблонов, проверки на тексте, проверки подключения и пробные запуски ограничены по числу в час для каждого аккаунта, как и составление правил; то же относится к Проверить в разделе Дополнительно и к проверкам, которые страница проводит над несохранёнными изменениями детекторов.
Проверка собственным сервисом¶
Выберите Ваш сервис, когда у вашей организации есть собственный способ распознавать данные — поиск по базе клиентов, обученный ею классификатор. Ваши инженеры создают сервис по контракту, описанному на странице Собственный сервис распознавания; подключаете его вы здесь:
- Введите Адрес сервиса. В облачной платформе Атома это должен быть публичный адрес HTTPS; закрытая установка (on-prem) может разрешать и внутренние адреса.
- Если сервису нужен токен, вставьте его в поле Токен и нажмите Сохранить токен. Токен сохраняется для этого адреса — его схемы, хоста и порта, которые страница показывает рядом с кнопкой, — и защита отправляет его туда и никуда больше. Если позже вы измените адрес, сохраните токен снова.
- Нажмите Проверить подключение. Защита вызывает сервис с выдуманным образцом текста и сообщает, сколько времени занял ответ. Типы сущностей, которые сервис сообщил для этого текста, появляются в разделе Что находит сервис.
- Оставьте отмеченными типы сущностей, на которые защита должна реагировать, и снимите отметку с остальных. Проверьте Вид данных и Подтип каждого отмеченного типа: новый тип приходит как данные компании, с подтипом, составленным из его имени. Сервис сообщает тип, только когда что-то находит, поэтому если в образце текста ничего не нашлось, вставьте свой текст в Проверить на тексте; типы, которые сервис сообщит, добавятся в таблицу.
- Задайте Время ответа, мс — сколько защита ждёт ответа (от 100 до 30000, по умолчанию 2000), — и выберите, что происходит, когда сервис не отвечает.
У параметра Если сервис не отвечает — нет ответа за отведённое время, ошибка или ответ, который защита не может использовать, — два значения:
- Не пропускать запрос (по умолчанию). В режиме «Принудительно» запрос, которому нужен ответ сервиса, останавливается, а не пропускается без проверки.
- Пропустить и пометить «не проверено». Запрос продолжается, а Решения помечают запись как не проверено с названием сервиса.
Эта настройка важна, когда сервис используется правилом, которое маскирует, блокирует или требует подтверждения. Пока защита ждёт сервис, ждёт и запрос, поэтому выберите время ответа, которое сервис способен выдерживать. Сервис, находки которого только записываются, никогда ничего не останавливает, что бы вы ни выбрали: он работает в фоне и при сбое помечается как не проверено.
Защита отправляет сервису только текст, который нужно проверить, — никогда не сообщает, кто спрашивает, какой это агент или какая организация. Она обращается к нему только при действиях, где правило может использовать найденное сервисом, — ваше правило или, для персональных данных и секретов, собственное правило платформы. Для правил, которые создаёт страница, это запросы к моделям при Маскировать перед моделями, вызовы инструментов при Блокировать в инструментах и и то и другое при Только записывать. В режиме «Наблюдение» она тоже обращается к сервису, поскольку «Наблюдение» проверяет то, что проверял бы режим «Принудительно». Этот текст покидает платформу, поэтому используйте сервис, которому вы его доверяете, и защитите его токеном.
Сохранение и токены¶
Добавление, изменение или удаление детектора пока ничего не меняет. Изменение ждёт вместе с внесёнными вами изменениями правил, и Сохранить как версию N в карточке Правила организации сохраняет их все как одну новую версию документа (Ваши текущие правила); Отклонить отбрасывает их все. Прежде чем что-либо применить, платформа проверяет весь документ и перечисляет каждую проблему с указанием места — detectors/0/patterns/0 для шаблона, который она не может прочитать, detectors/1/endpoint для адреса, который ей нельзя вызывать, detectors/1/credential для токена, который не сохранён или сохранён для другого адреса. Шаблон, который больше не находит один из своих примеров или находит один из похожих текстов, тоже отклоняется. История версий и Откатить охватывают детекторы вместе с правилами.
Токен — единственное, что не ждёт сохранения: он сохраняется в момент нажатия Сохранить токен. Он шифруется и больше никогда не показывается — поле очищается, а страница сообщает только, что токен сохранён и для какого адреса. Токен, сохранённый повторно для того же адреса, заменяет старый, а токен, который вы заменили или удалили, перестаёт использоваться примерно через полминуты. Документ называет токен — по id детектора, например contract-numbers-token, — но никогда его не содержит. В аккаунте можно хранить до 20 токенов. Токен, который не использует ни один детектор, указан в разделе Данные вашей организации с кнопкой Удалить токен; пока токен используется сохранёнными правилами, удалить его нельзя, поэтому сначала сохраните правила без его детектора.
Токен привязан к адресу, для которого его сохранили: защита отправляет его сервису по этому адресу и никакому другому, поэтому его не возьмёт с собой ни детектор, направленный куда-то ещё, ни Проверить на тексте такого детектора. Поэтому при смене адреса сервиса токен нужно сохранить снова: пока вы этого не сделаете, редактор показывает, для какого адреса сохранён токен, а правила с этим детектором сохранить нельзя. Токен для нового адреса сохраняется под собственным именем — например, contract-numbers-token-2, — и с этого момента детектор ссылается на него. Старый токен остаётся как был, поэтому действующие правила продолжают вызывать с ним старый адрес, пока вы не сохраните правила с изменением; Отклонить оставляет их ровно такими, какими они были. Когда изменение сохранено, старый токен появляется среди токенов, которые не использует ни один детектор. Не удаляйте его, пока может понадобиться откат: токены не входят в версию, поэтому Откатить отказывается восстанавливать версию, сервис которой ссылается на токен, удалённый вами с тех пор или сохранённый теперь для другого адреса. Карточка детектора тоже предупреждает, когда токен, на который ссылается его сервис, отсутствует или сохранён для другого адреса, поскольку без него каждый вызов сервиса завершается ошибкой.
Что вы видите в списке решений¶
Столбец Найдено в Решениях показывает, что детекторы нашли в действии: по отметке на каждый вид находки с числом мест, где она нашлась, — Contract number × 2. Ваши детекторы отображаются под заданными вами названиями, собственные детекторы платформы — по тому, что они нашли, например EMAIL. Отметка не проверено: Contract number означает, что этот детектор не ответил для данного действия, поэтому то, что он нашёл бы, неизвестно; это не значит, что ничего не нашлось. Собственные детекторы платформы могут помечаться так же. Столбец Правило называет сработавшие правила.
Собственные проверки платформы над диалогами агента (см. Режимы) тоже есть в списке — под агентом и без пользователя.
Детектор, находки которого только записываются (Только записывать), работает в фоне, после того как запрос пошёл дальше. Он никогда не задерживает и не блокирует запрос, как бы медленно ни работал его сервис или даже если тот недоступен, а найденное добавляется в запись через мгновение после её появления. Единственное исключение из «никогда не задерживает» — действие, требующее вашего подтверждения: его карточка ждёт этих проверок, прежде чем появиться.
Запись — это не защита
Запрос не ждёт такой проверки, поэтому он может уйти дальше раньше, чем она закончится: для всего, что не должно утечь, выбирайте маскирование или блокировку. А если платформа перезапустится, пока проверка ещё идёт, — например, при обновлении, — то, что она нашла бы, будет потеряно.
Кто может подтверждать¶
Подтверждение подтверждает то, что вы попросили агента сделать, поэтому карточка приходит тому, над чьим сообщением работает агент, и ответить на неё может только этот человек:
- Вы и участники вашей организации подтверждаете собственные действия — в чате, где агент спросил, и в билдере, пока вы собираете агента. Если участник организации пользуется её агентом, карточку получает он, а не владелец агента.
- Владельцы и администраторы организации не подтверждают за других. Их власть над тем, что могут делать агенты, — это правила на странице Безопасность: правило может полностью запретить действие или потребовать подтверждения, и никто не может обойти подтверждением запрещающее правило.
- Посетители опубликованного агента — люди вне вашей организации — вообще не могут выполнять действия с побочными эффектами, пока действует правило, с которого начинает организация (см. Ваши правила). Удалите это правило — и посетитель будет подтверждать такие действия сам, так же как вы.
- API-клиентам и другим агентам, вызывающим ваших, некого спросить: в режиме «Принудительно» их действие, которому нужно подтверждение, блокируется.
- Запускам воркфлоу тоже некого спросить: в режиме «Принудительно» действие шага воркфлоу, которому нужно подтверждение, — например, запись через Google Workspace или MCP-сервер, — блокируется. Запуск останавливается со статусом Шаг отклонён и сообщением Этот шаг отклонён — политикой воркфлоу или сервисом, который он вызвал. и ждёт вас. Ошибка шага содержит причину от защиты и говорит, что запуск воркфлоу пока не умеет запрашивать подтверждение: чтобы шаг выполнился, разрешите действие в своих правилах на странице Безопасность или выполните его сами вне воркфлоу. Запуск не повторяет попытку и не пытается исправить себя сам.
Что вы видите, когда что-то замаскировано¶
Когда защита скрывает часть написанного вами сообщения, прежде чем его прочтёт модель, — секрет или персональные данные, которые не должны попасть в эту модель, — ваше сообщение показывает, какие части модель не получила. Каждая из них отображается частично скрытой: остаётся не больше двух символов с каждого конца — например, an••••••om для адреса электронной почты, — и точек всегда шесть, так что не выдаётся даже длина. Нажмите на значок глаза рядом со скрытой частью, чтобы увидеть, что вы там написали, и нажмите ещё раз, чтобы скрыть. Это меняет только то, что видите вы: модель эту часть в любом случае не получила.
Раскрыть написанное можете только вы. Все остальные, кто видит ваше сообщение, — например, другой редактор агента в общем чате билдера, — видят только скрытую форму, без значка глаза. Сообщение, которое вы отправляете, пока билдер работает, доходит до других редакторов чуть позже, чем до вас, — после того как защита его проверит. Короткое превью сообщения в списке чатов показывает скрытую форму всем, включая вас, как и примеры, на которых построена статистика билдера.
Это работает с агентами вашего аккаунта — в чате агента, в опубликованном агенте и в билдере, — пока аккаунт в режиме «Принудительно»: в режиме «Наблюдение» ничего не маскируется, поэтому ничего и не помечается. Ваш Агент Атом и встроенные агенты вместо этого следуют режиму платформы по умолчанию (см. Режимы). Помечается только текст, который вы вводите в чате, — голосовые сообщения, прикреплённые файлы и сообщения, отправленные агенту через его API, не помечаются, а мобильные приложения показывают ваше сообщение так, как вы его написали. Правило маскирования, добавленное позже, не помечает сообщения, отправленные до него.
Что вы видите, когда что-то заблокировано¶
- В чате уведомление объясняет, что защита заблокировала действие, что подтверждение было отклонено или что решение не пришло вовремя. На этом ход агента заканчивается.
- В некоторых случаях агенту сообщают, что действие заблокировано, и он продолжает, объясняя, что не смог сделать. У заблокированного вызова инструмента вместо обычного результата отображается Заблокировано с причиной.
- В режиме «Принудительно» проверка, нужная правилу маскирования, блокировки или подтверждения, никогда не пропускается: запрос, проверку которого для такого правила защита не смогла завершить, не пропускается дальше. Уведомление об этом говорит и просит попробовать снова: его остановило не ваше правило, и тот же запрос обычно проходит, когда проверка завершается. Защита ждёт своих проверок столько, сколько они длятся; она сдаётся, только когда проверяющий сервис совсем перестаёт отвечать.
- Проверки, используемые только для записи, — например, та, что записывает персональные данные, отправленные моделям платформы, — идут в фоне и никогда не задерживают и не блокируют запрос; только карточка подтверждения ждёт их, прежде чем появиться. Когда такая проверка не может завершиться, ничего не останавливается, а Решения помечают запись как не проверено.
- Ваш собственный сервис — ещё одна причина такого уведомления, когда для него выбрано Не пропускать запрос и он не отвечает за отведённое время, пока его ждёт правило, которое маскирует, блокирует или требует подтверждения. Сервис с настройкой Пропустить и пометить «не проверено» или используемый только для записи ничего не останавливает: запрос продолжается, а Решения помечают запись как не проверено (см. Проверка собственным сервисом).
- Когда в запуске воркфлоу защита блокирует то, что делает шаг, — действие шага-действия или запрос, который шаг отправляет модели, — запуск останавливается со статусом Шаг отклонён и ждёт вас, а ошибка шага содержит причину от защиты: ваше правило, которое это запрещает, или подтверждение, которое запуск не смог запросить. Когда защита не смогла завершить проверку, шаг вместо этого автоматически повторяется, как при любом временном сбое, а воркфлоу по расписанию сохраняет своё расписание; только если проверка так и не завершилась после автоматических повторов, запуск останавливается со статусом Повторы закончились. Инструменты, которые вызывает шаг агента, обрабатываются так же, как в чате: вызов инструмента, который защита отклоняет с завершением хода, останавливает запуск со статусом Шаг отклонён, а вызов, который она блокирует без завершения хода или не смогла проверить до конца, передаётся агенту, и тот продолжает работу.
Мобильные приложения
Карточка подтверждения доступна в веб-приложении и в билдере. Мобильные приложения пока показывают запрос как обычный вопрос.
Безопасность агентов выключена, пока ваш аккаунт её не включит: режим платформы по умолчанию — «Выкл», если в вашей установке не задан другой. Аккаунт в режиме «Наблюдение» или «Принудительно» получает всё, что описано на этой странице, включая запуски воркфлоу.
К чему агент имеет доступ в любом режиме¶
Независимо от защиты и от выбранного вами режима, каждый запуск агента начинается со списка того, к чему именно он может обращаться, — этот список вычисляется на платформе исходя из того, кто и где пользуется агентом: файлы, коллекции знаний, память, записи базы данных, подключения, модели и сопряжённые устройства. Всё, чего нет в списке, недоступно, и каждое обращение к ресурсу сверяется с ним — в том числе к файлу, документу или коллекции, имя которых агент узнал откуда-то ещё.
- Каждый остаётся в своём пространстве. Файлы, память, профиль, диалоги и записи базы данных человека принадлежат ему на каждом агенте; запуск для одного человека никогда не достаёт до чужих, а воркфлоу, вызов API или вызов от другого агента выполняется от имени человека, которому он принадлежит. См. Знания и файлы агента и База данных агента.
- Общее делается общим намеренно. Знания и файлы агента читают все, а пишут только люди, которые курируют агента. Подключение, которым вы делитесь, работает как ваше для всех, кто пользуется агентом, включая изменения (общий почтовый ящик и общий аккаунт Google устроены уже: люди, которые только пользуются агентом, могут читать через них, но не отправлять и не записывать). Чтобы ваш аккаунт не оказался в чужих руках, выберите для подключения Каждый пользователь — своё (см. Общие и персональные подключения). Коллекция знаний доступна посетителям, только когда она отмечена как Для всех. Подключение никогда не выбирается за посетителя без его выбора, а самовосстановление никогда не переносит исправление из запуска посетителя в ваш воркфлоу.
- Список принадлежит одному ходу. Ход чата, шаг воркфлоу, запрос к API или голосовая сессия получают каждый свой список, вычисляемый заново в начале. Доступ, который вы отзываете, — приглашение человека, его место в вашей организации, коллекцию, которой вы больше не делитесь, — исчезает со следующего хода, шага, запроса или сессии, включая сообщения, которые агент отправляет сам после завершения фоновой задачи; уже идущий ход теряет доступ к коду, данным и подключениям примерно через полминуты, а его ответ обрывается на следующей проверке.
- Код выполняется в песочнице. То, что агент запускает инструментом Python и своими MCP-серверами Standard I/O, не может обратиться к хранилищу платформы или к файлам другого человека; они работают с собственными файлами человека и ни с чем больше.
- Ссылки живут недолго. Ссылка на сохранённый файл перестаёт работать через время от пяти минут до часа, в зависимости от того, где она создана (см. Открытие файлов).
- Проверки вашего агента не читают файлы посетителей. Оценки и состязательные тесты никогда не видят того, что посетители прикрепили к своим диалогам.
- Интерфейс, который открывают посетители, работает отдельно от Атома. Когда люди открывают интерфейс, созданный вами для агента, — на странице агента или команды или в мобильных приложениях, — он работает на собственном веб-адресе. Там он не может использовать вход посетителя в Атом, обращается только к этому агенту и никогда не достаёт до аккаунта посетителя, оплаты, настроек, API-ключей или других агентов, а также ни на что не соглашается и ни к чему не присоединяется от имени посетителя. То, что человек вводит или загружает в этот интерфейс, доходит до вашего кода. Превью в билдере устроено иначе: его открываете только вы и люди, которые могут редактировать агента, поэтому оно работает на собственном адресе Атома с вашим входом. Вызов, который работает в превью, всё равно может быть отклонён для посетителей. Встроенные агенты, такие как Дизайнер и Аналитик, написаны командой Атома и тоже работают на собственном адресе Атома.
- Люди соглашаются, прежде чем начать. Каждому, кто пользуется агентом, созданным кем-то другим, сначала показывают, что может видеть его автор, и человек соглашается или уходит (см. С чем соглашаются посетители).
Самостоятельно размещённые установки
Интерфейсы опубликованных агентов получают собственные веб-адреса, только когда у установки есть для них wildcard-адрес и сертификат и платформа обслуживается по HTTPS. В противном случае они работают в изолированном режиме, где то, что интерфейс сохраняет на устройстве посетителя, хранится до перезагрузки страницы. Уточните у администратора, что относится к вашей установке.