Ви підключили свого AI-агента до Slack, GitHub і Jira. Платформа ввічливо показала діалог: «Дозволити доступ до Slack?» Ви натиснули «так». Відчули себе відповідальними. Відчули контроль.

Дарма. Агент щойно відправив вашому CEO чернетку баг-репорту, яка призначалась для #engineering. Діалог дозволів навіть не питав про отримувачів, канали чи що взагалі означає «доступ до Slack», коли ключі тримає машина.

Три платформи, один патерн, нуль глибини

Два тижні тому всі обговорювали, що агентні платформи взагалі не мають нормальної авторизації — агенти з root-доступом, і ніхто не будує sudo. Ця розмова вже застаріла. Усі три великі платформи відповіли: workflow підтвердження дій, ті самі «Ви впевнені?»-промпти, що вискакують перед тим, як AI-агент (програма, що діє від вашого імені, а не просто чатиться) робить щось серйозне. Прогалину в авторизації не закрили. Її заклеїли шпалерами.

Google ADK додав підтвердження дій на Cloud Next (22–24 квітня). Anthropic Managed Agents, запущені 8 квітня, мали per-tool permission policies з першого дня. OpenAI Agents SDK випустив needs_approval callbacks в оновленні 15 квітня. Три компанії зійшлися на одній ідеї — як троє архітекторів, що незалежно спроєктували однаковий дах, який тече.

Патерн ідентичний в усіх трьох: ви дозволяєте або забороняєте доступ на рівні інструменту. «Дозволити Slack» або «Заборонити Slack». Бінарно. Увімк/вимк. Охоронець перевіряє документи на вході в будинок, а двері кожної квартири всередині — нарозхліст.

Де живе справжня небезпека

Радіус ураження поганого виклику інструменту — реальна шкода, яку він може завдати — живе в параметрах: в який Slack-канал летить повідомлення, в яку Git-гілку хтось робить force-push, який SQL-запит виконується на продакшн-базі, який Jira-проєкт агент закидає автоматично згенерованими тікетами.

Справедливості заради: Google ADK і OpenAI передають параметри виклику в developer-written callbacks. Ви можете написати код типу return amount > 1000, щоб блокувати дорогі операції. Але ось критична різниця: платформа дає вам хук, а не страхувальну сітку. Правила ви пишете самі, на голому Python, для кожного інструменту, для кожного параметра, для кожного edge case. Жодного декларативного policy engine. Жодних вбудованих allowlist-ів. Жодного тогла «постити тільки в #engineering і #random» в дашборді.

Імплементація Anthropic ще простіша — їхні permission policies працюють виключно за назвами інструментів. Подія user.tool_confirmation приймає рівно дві відповіді: "allow" або "deny". Жодного поля для обмежень аргументів. Жодної умовної логіки. Агент або може використовувати Slack, або ні.

Як написав дослідник безпеки Саймон Віллісон у вересні 2024: «Щойно LLM-агент поглинув ненадійний вхід, його треба обмежити так, щоб цей вхід не міг спровокувати жодних серйозних дій.» Гейти на рівні інструментів цього не досягають. Вони обмежують, які дії існують, а не що ці дії роблять.

Ми вже бачили цей фільм

Патерн — калька з мобільних дозволів зразка 2008 року. Android 1.0 давав загальний «доступ до камери» — без різниці між селфі-додатком і сканером документів, що мовчки фотографує ваш робочий стіл. Google знадобилося сім років і Android 6.0 Marshmallow (2015), щоб випустити контекстні дозволи — контроль над тим, як додаток використовує камеру, а не лише чи може він це робити.

Агентні платформи зараз на стадії Android 1.0. Діалог дозволів існує. Він виглядає як безпека. Він нею не є.

Microsoft сказав вголос те, про що мовчать

22 квітня блог Microsoft для розробників опублікував відверте визнання: «Одне лише слідування інструкціям не повинно вважатися межею безпеки.» Їхнє власне red-team тестування — проведене в рамках Agent Governance Toolkit, який вони відкрили на початку місяця — виявило 26,67% порушень політик при використанні prompt-only guardrails. Кожен четвертий небезпечний виклик проходить, якщо покладатися на LLM як на самоконтролера.

AGT — це найближче до реального рішення: middleware-шар між вашим агентом та його інструментами, що застосовує декларативні правила політик, написані на YAML, OPA або Cedar. Він дійсно інспектує параметри. Він дійсно блокує на основі значень аргументів. Але це middleware, яке ви прикручуєте самі — не вбудоване в жодну агентну платформу. Якісна ізолента, але ізолента.

Ціна правильного підходу

Гейтинг на рівні параметрів — це реально складно. Він потребує семантичного розуміння — знати, що #general — публічний канал, а #exec-compensation — ні. Він додає затримку до кожного виклику інструменту в системах, які і так борються з лімітами контекстного вікна (скільки тексту AI може «бачити» одночасно). І найгірше — він створює втому від підтверджень: чим більше гранулярних гейтів, тим швидше користувачі привчаються тикати «підтвердити все» не читаючи — саме та поведінка, що перетворює дозволи на театр.

Що вам реально робити

Поки платформи не випустять parameter-aware gates як нативну функцію, у вас є два чесних варіанти. Перший: побудувати middleware, яке перевіряє аргументи викликів інструментів за allowlist-ами — безпечні канали, безпечні гілки, безпечні патерни запитів. Другий: прийняти, що натискання «Дозволити Slack» означає «дозволити агенту робити все, що підтримує Slack API», і планувати відповідно.

Діалог дозволів на вашій агентній платформі — це плацебо. Він контролює, які двері агент може відкрити, але не те, що агент робить усередині кімнати. Три платформи випустили однаковий замок у квітні 2026-го, і жодна не додала засув.