Читать 8 мин

Пилот доступа AI-агента: метрики, которые оправдывают расширение

Проведите пилот доступа AI-агента с метриками одобрений, отказов, ошибок, аудита и отзыва, которые покажут, оправдано ли расширение полномочий.

Пилот доступа AI-агента: метрики, которые оправдывают расширение

Пилот должен доказать, что люди могут видеть, оценивать и останавливать внешние действия AI-агента, прежде чем предоставлять ему более широкие полномочия. Он не должен сводиться к доказательству того, что агент умеет вызывать API, открывать SSH-соединение или быстрее закрывать задачу.

Команды часто собирают множество счетчиков событий, объявляют, что ничего не загорелось, и расширяют доступ. Это не доказательство. Полезные измерения отвечают на четыре более сложных вопроса: подтверждали ли люди понятные им запросы, останавливали ли средства контроля именно те запросы, которые нужно было остановить, не продолжал ли агент терпеть сбои, указывающие на недостаток в дизайне, и как быстро кто-то мог отключить активный запуск?

Пилоту доступа AI-агента нужен небольшой набор измерений, связанных с решениями. Отслеживайте процент одобрений, заблокированные запросы, повторяющиеся ошибки и время до отзыва, но не превращайте ни одну из этих метрик в самостоятельную оценку. Каждая может ввести в заблуждение, если убрать контекст запроса, цели, идентификатора и результата.

Пилот заслуживает расширения благодаря доказательствам контроля

Пилот доступа AI-агента готов к расширению только тогда, когда команда может объяснить выборку разрешенных, отклоненных и неудачных действий, а затем по требованию остановить активную сессию. Качество результата важно для оценки, но оно не заменяет доказательства контроля.

Определите предполагаемое расширение до начала пилота. Запишите текущие полномочия, следующие полномочия, которые рассматриваются, и внешние последствия изменения. «Разрешить агенту программирования использовать наш трекер задач» не является областью действия. «Разрешить этому подписанному локальному процессу агента создавать задачи в одном тестовом проекте во время запусков, инициированных разработчиком» уже задает область. Это дает проверяющим предмет для оценки.

Намеренно ограничьте первый пилот. Ограничьте процессы агентов, владельцев-людей, целевые системы, пути к учетным данным и типы действий. Узкая область не означает бюрократическую осторожность. Она помогает понять, связан ли неожиданный запрос с неясной задачей, сломанной интеграцией, непониманием агента или слишком широким доступом с самого начала.

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

  • Какой процесс агента отправил запрос и кто его запустил?
  • Какое действие он просил выполнить и против какой названной цели?
  • Какой путь доступа или класс учетных данных его разрешил?
  • Разрешил или отклонил его человек и почему?
  • Какой результат вернулся, включая внешнюю ошибку, если она произошла?

Не сводите запись к фразе «агент использовал инструмент». Запрос на чтение задачи и запрос на изменение настроек развертывания могут оба использовать HTTP, но создают разные риски и требуют разной проверки.

NIST SP 800-53 Rev. 5 относит проверку, анализ и отчетность аудита к контролю AU-6. Важное слово здесь «проверка». Хранение записей не выполняет практическую задачу, если никто не может восстановить, почему возник запрос, кто его подтвердил и был ли он успешным. Для пилота агента данные аудита должны помогать принять решение о расширении доступа. Если они не помогают, это просто хранилище, а не доказательство.

Установите периодичность проверок, которой владельцы действительно будут придерживаться. Короткая проверка после каждого активного дня часто эффективнее большой встречи в конце месяца: задача и неожиданные события еще свежи в памяти. Человек, подтвердивший странный запрос, еще может объяснить контекст. Инженер, отвечающий за интеграцию, еще может воспроизвести ошибку.

Не устанавливайте заранее целевое число для «достаточной безопасности», пока у вас нет базовой линии. Вместо этого задайте правила принятия решений. Например, расширение не происходит, пока проверяющие не могут связать запросы с инициировавшим их процессом, пока для действий с серьезными последствиями не существует проверенного пути отзыва или пока повторяющиеся ошибки остаются необъясненными. Такие правила направляют разговор к качеству контроля, а не к привлекательному дашборду.

Процент одобрений показывает качество проверки, а не доверие

Процент одобрений показывает, получают ли запросы ответ «да», но не говорит, были ли эти решения осознанными. Рассчитывайте его как число разрешенных запросов, деленное на число запросов, требовавших решения человека. Просроченные приглашения, брошенные запросы и автоматические отказы храните в отдельных полях, а не исключайте молча.

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

Читайте процент одобрений по отдельным срезам. Как минимум разделяйте тип действия, класс цели, сессию и проверяющего. Если объединить операции чтения с изменениями учетных записей или тестовую среду с рабочей, среднее значение скроет участок, требующий внимания. Процент одобрений 95% для операций чтения почти ничего не говорит о том, правильно ли люди проверяют оставшиеся 5% запросов, способных изменить состояние системы.

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

  1. Что агент собирался сделать?
  2. Какой процесс отправил запрос?
  3. Какая внешняя система должна была его получить?
  4. Почему в тот момент запрос было уместно разрешить?

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

Разделяйте авторизацию сессии и подтверждение чувствительного действия. Авторизация сессии отвечает на вопрос, может ли новый процесс действовать в согласованных границах. Решение для каждого действия отвечает на вопрос, заслуживает ли внимания конкретная операция. Команды часто смешивают эти два решения, а затем заявляют, что у них есть «человек в контуре». Возможно, они всего лишь один раз одобрили процесс, не получив удобного способа заметить, что характер его работы изменился в середине запуска.

Обратная ошибка встречается не реже: команда запрашивает подтверждение для каждого действия с небольшими последствиями. Такой дизайн дает здорово выглядящее число решений людей и бесполезную привычку к проверке. Сокращайте повторяющиеся запросы, сужая или перестраивая путь доступа, а не приучая людей быстрее нажимать «разрешить».

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

Для отклоненного запроса нужны причина и проверенный результат

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

Используйте классификацию причин, которая подсказывает оператору следующий шаг. Для большинства случаев пилота достаточно четырех категорий:

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

Отказ после закрытия локального хранилища означает, что кто-то сохранил жесткую границу. Отказ, потому что пользователь отклонил запрос, может означать, что агент вышел за пределы задачи, либо что описание запроса было слишком расплывчатым. Отказ из-за цели вне области может показывать хорошую границу, но также может выявить неполный дизайн. Не объединяйте эти причины в один столбец «заблокировано».

Затем проверьте внешний результат. Решение контроля имеет значение только в том случае, если внешнее действие не произошло через этот путь. Для API-вызова сохраните использованный метод, категорию конечной точки и вернувшуюся ошибку. Для SSH-команды сохраните запрошенный хост и контекст команды в объеме, соответствующем дизайну аудита. Не предполагайте, что локальный отказ означает, будто удаленная сторона ничего не увидела, если архитектура способна отправить работу до точки принятия решения.

Здесь команды обнаруживают разницу между предотвращенным и неудачным действием. Предотвращенный запрос не дошел до сервиса, потому что граница доступа его отклонила. Неудачный запрос дошел до сервиса и получил ошибку. Оба случая требуют проверки, но рассказывают разные истории. Если называть каждый 403 успешной блокировкой, можно не заметить, что агент снова и снова пытается изменить ресурс, который дизайн доступа случайно сделал доступным по сети.

При отказе пройдите реальную последовательность проверки:

  1. Найдите запуск агента и определите процесс, отправивший запрос.
  2. Прочитайте запрошенную операцию и цель, затем сравните их с исходной задачей.
  3. Убедитесь, что контроль остановил запрос до внешнего действия.
  4. Назначьте причину: неоднозначность задачи, поведение подсказки, отсутствующая возможность, неправильная область доступа или попытка нарушить границу.
  5. Решите, нужно ли изменить задачу, настройки агента, предоставленный доступ или ничего не менять.

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

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

Повторяющиеся ошибки показывают опасное давление на расширение доступа

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

Полезный отпечаток объединяет категорию операции, цель, класс ошибки, версию или конфигурацию агента и короткий временной интервал. Так можно отличить один кратковременный сбой сервиса от агента, который двадцать раз повторяет одну и ту же несанкционированную команду. Он также показывает, вызвали ли новая подсказка или обновление инструмента изменение поведения.

Не считайте повторы доказательством того, что агенту «действительно нужен» новый доступ. Агент повторяет попытку, потому что его цикл планирования находит один и тот же очевидный следующий шаг. Цикл не начинает понимать ваше решение о риске только потому, что пять раз столкнулся с ним. Если вы выдаете учетные данные, чтобы прекратить повторы, команда учится расширять доступ всякий раз, когда агент оказывает давление.

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

Для каждой группы повторяющихся ошибок отслеживайте четыре поля: число попыток, прошедшее время, класс результата и реакцию человека. Поле реакции человека часто пропускают, из-за чего создается ложное впечатление, будто ошибка исчезла сама. Кто-то мог изменить подсказку, предоставить доступ, перезапустить агента или отозвать сессию. Эти вмешательства объясняют результат.

Ошибка внешнего сервиса не обязательно связана с доступом. Ошибка аутентификации может указывать на неверный маршрут учетных данных. Ошибка проверки часто означает некорректные входные данные агента. Ограничение частоты может говорить о неконтролируемых повторах. Сетевая ошибка может быть связана с состоянием сервиса. Относитесь к каждой категории по-разному. Команда, расширяющая разрешения для исправления ошибок проверки, создаст дополнительный риск и все равно будет отправлять сломанные запросы.

Установите практический порог эскалации на основе закономерности, а не универсального числа. Например, немедленно проводите проверку, если одна сессия агента повторяет отказ в доступе к чувствительной цели после отклонения запроса человеком. Проверяйте ситуацию, если новая конфигурация вызывает поток ошибок внешнего сервиса. Проверяйте ее и тогда, когда повторы продолжаются после явного требования сервиса остановиться. Это правила поведения, а не декоративные метрики.

Храните рядом с исходными данными короткий журнал решений. Записывайте: «исправили формирование конечной точки», «оставили доступ запрещенным» или «завершили запуск и переписали границы задачи». Такой журнал делает пилот накопительным. Без него каждая еженедельная проверка заново обнаруживает один и тот же шаблон ошибки и называет его новым выводом.

Время отзыва должно включать обнаружение и доказательство

Потренируйтесь отзывать активный запуск
Откройте журнал Sessions, найдите активный запуск и мгновенно отзовите его.

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

Кнопка с надписью «отозвать» может сработать быстро. Это полезно, но это только один отрезок интервала. В настоящем инциденте инженер замечает странный запрос, определяет его сессию, находит полномочие для остановки, выполняет действие и проверяет, что агент не может продолжить. Если идентификатор сессии неясен, время на его поиск должно учитываться в метрике.

Во время учения запишите следующие временные метки:

  • Подозрительное действие появилось в записи проверки.
  • Названный человек решил отозвать запуск.
  • Этот человек выполнил отзыв.
  • Система записала отзыв.
  • Контролируемый повторный запрос из той же сессии был отклонен.

Последняя проверка дает доказательство. Не тестируйте отзыв, просто остановив процесс агента и предположив, что доступ завершился. Завершение процесса может скрыть устаревшие авторизации, второй процесс, поставленную в очередь работу или оператора, отозвавшего не ту сессию. Используйте безвредную операцию в пределах тестовой области и убедитесь, что после отзыва граница ее отклоняет.

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

Разделяйте отзыв сессии и ротацию учетных данных. Отзыв сессии останавливает один активный запуск агента. Ротация меняет сам секрет или полномочия и может затронуть законную работу, использующую их совместно. Во время серьезного события могут понадобиться оба действия, но решают они разные задачи. Если измерять их как одно действие, адресная реакция будет выглядеть медленной, а широкая - эффективной.

Sallyport ведет журнал Sessions для запусков агентов с мгновенным отзывом, а журнал Activity - для отдельных вызовов. В пилоте такое разделение позволяет потренироваться находить запуск, отзывать его и проверять последующую запись вызова, не смешивая контроль сессии с заменой учетных данных.

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

Записи аудита должны выдерживать разногласия

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

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

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

Главное различие - между журналом активности и защищенной от незаметного изменения записью аудита. Журнал активности показывает то, что приложение отображает сейчас. Защищенная запись позволяет обнаружить измененную, удаленную или переставленную историю. Вторая нужна, когда доказательства пилота определяют, предоставлять ли более широкий доступ.

Sallyport формирует журналы Sessions и Activity из зашифрованного журнала аудита с цепочкой хешей, а команда sp audit verify проверяет эту цепочку офлайн без ключа хранилища. Проводите проверку как часть обычного процесса, а не только после спора. Проверка, которую никто не выполняет, не повышает надежность.

sp audit verify

Храните результат проверки вместе с записью проверки пилота и отмечайте охваченный временной диапазон. Если проверка сообщает о проблеме, не используйте этот журнал как доказательство нормальной работы, пока команда не разберется. Не экспортируйте молча читаемые записи и не продолжайте работу в таблице. Это сохраняет видимость порядка, но уничтожает нужное вам свойство доказательства.

Записи аудита также могут выявить усталость от проверок. Сравнивайте время между запросом и одобрением, контекст запроса и последующий результат. Очень быстрое одобрение не всегда означает небрежность, особенно для привычной работы с небольшими последствиями. Но серия мгновенных одобрений для незнакомых целей и чувствительных действий заслуживает разговора с проверяющим и переработки запросов.

Не предоставляйте каждому человеку неограниченный доступ к исходным данным аудита только потому, что записи помогают контролю. Активность агента может содержать имена репозиториев, имена хостов, метаданные запросов и детали задач. Определите, кто проверяет записи, кто может экспортировать их и кто разрешает споры. Контроль видимости аудита - часть дизайна доступа.

Еженедельная проверка должна приводить к решениям, а не к графикам

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

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

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

Пишите решения простым языком. «Разрешить создание задач в пилотном проекте для подтвержденных сессий» можно проверить. «Улучшить защитные меры» нельзя. Каждое изменение связывайте с измерением, которое покажет, сработало ли оно. Если вы сокращаете запросы для чтения с небольшими последствиями, проверяйте оставшиеся одобрения выборочно, чтобы убедиться: теперь люди получают достаточно контекста для значимых действий. Если вы меняете обработку повторов, проверьте, действительно ли повторяющихся ошибок стало меньше без нового роста заблокированных запросов.

Не расширяйте все измерения одновременно. Расширение целей, добавление действий записи, подключение новых процессов агентов и отмена одобрений в одну неделю уничтожают возможность установить причину. Если что-то пойдет не так, никто не поймет, какое изменение это вызвало. Расширьте одно измерение полномочий, наблюдайте за ним в течение цикла проверки и сохраните возможность отката.

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

Более широкие полномочия должны следовать за конкретно пройденным тестом

Начните с одного локального шлюза
Запустите подписанное приложение macOS в строке меню со встроенным ядром хранилища, а не отдельным демоном.

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

Если вы собираетесь разрешить API-действие с более серьезными последствиями, проверяйте людей на запросах с тем же контекстом цели и той же нагрузкой на подтверждение. Если вы планируете разрешить агенту SSH-доступ к большему числу хостов, сначала проверьте атрибуцию, обработку отказов и отзыв на представительном тестовом хосте. Пилот только для чтения не доказывает, что люди правильно обработают изменения внешнего состояния.

Сформулируйте решение о расширении как утверждение, которое может опровергнуть доказательство: «Команда может разрешить этот класс действий с достаточным контекстом, обнаружить запрос за пределами задачи и отозвать исходную сессию в согласованный срок реакции». Затем сопоставьте с этим утверждением одобрения, отказы, ошибки, учение по отзыву и запись аудита.

Не продвигайте пилот, потому что процент одобрений вырос. Он мог вырасти потому, что проверяющие привыкли к запросам, агент перестал просить о сложной работе или команда молча убрала отказы из знаменателя. Для продвижения нужны представительные доказательства и список исключений.

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

Вопросы и ответы

Какие метрики нужно отслеживать в пилоте доступа AI-агента?

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

Каким должен быть хороший процент одобрений доступа агента?

Универсальной целевой величины нет. Сопоставляйте подтверждения с целями и результатами: запрос к известному репозиторию во время ожидаемой сессии отличается от запроса к незнакомому рабочему хосту. Если проверяющие не могут объяснить выборку подтверждений, процент уже слишком высок для качественной проверки.

Как команде интерпретировать заблокированные запросы агента?

Отклоненный запрос полезен, если блокировка остановила действие, которое не должно происходить в рамках пилота. Он также полезен, если показывает отсутствие разрешения, которое команда может явно решить предоставить. Считайте блокировки по причинам: закрытое хранилище, неизвестная сессия и отклоненное важное действие требуют разных исправлений.

Почему повторяющиеся неудачные вызовы инструментов важны в пилоте агента?

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

Как измерять время отзыва доступа AI-агента?

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

Можно ли использовать таблицу для аудита действий AI-агента?

Для небольшого пилота подойдет таблица, если она сохраняет временные метки, контекст запроса, причины решения и ответственного за проверку. Она перестает работать, когда историю можно изменить, вызовы нельзя связать с конкретным запуском или люди прекращают проверять записи из-за слишком трудоемкого сбора. Это ограничение процесса, а не повод отказаться от измерений.

То же ли самое подтверждение действия агента, что и предоставление ему полномочий?

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

Нужно ли использовать одни и те же метрики для API- и SSH-доступа?

Отдельно отслеживайте каждую учетную запись или путь доступа, если последствия различаются. Доступ только для чтения к задачам, доступ к развертыванию и SSH-доступ к рабочему хосту не должны объединяться в один процент одобрений. Агрегирование скрывает место, где пилот действительно небезопасен.

Когда пилот доступа AI-агента готов к расширению?

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

Что делать после отклонения запроса агента?

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

Sallyport

Sallyport выполняет API-вызовы и SSH-команды за вашего ИИ-агента. Ключи остаются в локальном хранилище на вашем Mac; вы подтверждаете каждый запуск, и каждое действие попадает в запечатанный журнал.

© 2026 Sallyport · Открытый код по лицензии Apache-2.0 · Oleg Sotnikov