Agent Governance: контроль і управління AI-агентами в production

Практичний production-фреймворк контролю AI-агентів: доступи, ліміти, approval, audit logs, kill switch і rollback.
На цій сторінці
  1. Ідея за 30 секунд
  2. Проблема
  3. Рішення
  4. Governance ≠ Safety
  5. Приклад
  6. Рівні контролю (governance layers)
  7. Як це виглядає в архітектурі
  8. Мінімальний stack governance
  9. Приклад
  10. Типові помилки
  11. Самоперевірка
  12. FAQ
  13. Пов'язані сторінки

Ідея за 30 секунд

Agent governance — це шар контролю поверх runtime, який перевіряє кожен крок агента: доступ до інструментів, ліміти, бюджети і policy-рішення перед виконанням дій.

Коли це потрібно: коли агент має доступ до інструментів, API або виконує реальні дії в production.

Проблема

Без governance агент у production часто виглядає "майже нормальним", поки не стається збій. Він може багато разів викликати інструменти, витрачати бюджет без прогресу і виконувати дії, які ніхто явно не дозволяв.

Найгірше, що це видно не одразу: зовні run "йде", а всередині вже ростуть ризики, витрати і шум у логах. Без governance агент — це неконтрольований цикл з доступом до інструментів.

Аналогія: це як автопілот у машині без обмеження швидкості, гальм і журналу подій. Поки дорога пряма, все ніби добре. Коли щось іде не так, зупинити і розібратися набагато складніше.

Саме для цього потрібен governance: щоб система мала межі до інциденту, а не після нього.

Рішення

Рішення — додати в runtime окремий policy layer, який перед кожною дією приймає технічне рішення. Policy layer приймає одне з рішень: allow, deny або approval_required. Це окремий рівень системи, а не частина промпта чи логіки моделі. Як і RBAC, ці перевірки виконуються перед кожною дією агента.

Governance — це те, що стоїть між агентом і реальними діями. Іншими словами, це control plane для AI-агентів.

👉 Governance не змушує агента поводитись правильно — він обмежує, що агент взагалі може зробити.

Реалізується як middleware / policy layer (наприклад, у LangGraph або кастомному tool gateway). У цій статті policy layer (tool gateway) — це компонент, який перевіряє і контролює всі виклики інструментів.

Governance ≠ Safety

Це два різні рівні контролю:

  • Safety: чи правильне рішення пропонує агент.
  • Governance: чи дозволено агенту цю дію виконати в runtime.

Якщо safety помилилась, governance все одно обмежує збиток на рівні runtime.

Приклад

Агент підтримки без governance може через галюцинацію викликати refund API десятки разів.

З governance:

  • max_tool_calls = 3
  • max_usd = 100 → агент зупиниться після досягнення ліміту, а не після втрати грошей.

Governance зупиняє інцидент на рівні виконання, а не покладається на те, що модель поводитиметься правильно.

Рівні контролю (governance layers)

Ці рівні працюють разом на кожному кроці агента.

РівеньЩо контролюєКлючові механікиНавіщо
Access controlДоступ до дій та інструментівRBAC
allowlist / denylist
Перевіряється перед кожним tool call і блокує недозволені дії
Execution controlХід виконання runmax_steps
rate limiting
ліміти на tool calls
Зупиняє зациклення і спам інструментами
Cost controlВитратиmax_tokens
max_tool_calls
max_usd
Обмежує бюджет і runaway-витрати
Human controlВтручання людиниhuman approval
kill switch
Дозволяє підтвердити або аварійно зупинити дію
ObservabilityВидимість подійaudit logs
traces
метрики
alerts (Slack / PagerDuty)
Дозволяє швидко виявляти і розбирати інциденти
Lifecycle controlОновлення агентаversioning
rollback
Дозволяє безпечно релізити зміни і відкотити версію

Приклад alert:

Slack alert: 🛑 Agent Support-Bot hit max_usd limit ($100). Run stopped at step 12.

У production це зазвичай виглядає як dashboard з метриками: runs, tool calls, cost, errors.

Як це виглядає в архітектурі

Agent governance вбудовується між runtime агента і зовнішнім світом:

Жоден tool call не виконується без проходження через policy layer.

Policy layer (tool gateway) виступає як gateway / middleware між runtime і tools.

Кожен виклик інструмента проходить:

  • Policy layer → перевірка доступу і лімітів
  • Execution → виконання тільки якщо allow
  • Logs → запис у audit / trace

Мінімальний stack governance

  • allowlist (default deny) — обмежує доступ до інструментів
  • max_steps — зупиняє зациклення
  • бюджети — обмежують витрати
  • retry policy — запобігає retry-хаосу
  • audit logs — дозволяють розібрати інциденти
  • stop reasons — пояснюють, чому агент зупинився
  • kill switch — дозволяє аварійно зупинити агента під час інциденту

Це мінімум, без якого агент не є production-системою.

Приклад

Агент викликає tool:

  • перевіряється allowlist
  • перевіряється RBAC
  • перевіряється budget
  • перевіряється approval

→ тільки після цього виконується дія.

Мінімальний policy flow:

PYTHON
if not policy.allow(tool, args):
    return deny("tool_not_allowed")
if not limits.steps_ok():
    return stop("max_steps_exceeded")
if not budget.ok():
    return stop("budget_exceeded")
result = tool.execute(args)
audit.log(tool, args, result)
return result

Типові помилки

  • покладатися тільки на prompt замість runtime-контролю
  • відсутність централізованого policy layer
  • відсутність default-deny allowlist
  • відсутність бюджетів і лімітів
  • retry-логіка розмазана по різних шарах
  • відсутні audit logs
  • немає способу зупинити агента

У результаті система виглядає контрольованою, але насправді такою не є.

Самоперевірка

Швидка перевірка перед запуском у production:

Прогрес: 0/8

⚠ Бракує базового governance-контролю

Перед production потрібні мінімум: контроль доступу, ліміти, audit logs і аварійна зупинка.

FAQ

Q: Чому governance не можна замінити одним системним prompt?
A: Prompt описує бажану поведінку. Governance примусово обмежує реальні дії агента в runtime.

Q: Який мінімум governance потрібен перед production?
A: Мінімум: default-deny allowlist, ліміти (max_steps, бюджети), stop reason, audit logs і kill switch. Без цього агент лишається неконтрольованим під навантаженням.

Q: Що впроваджувати першим: approval чи budgets?
A: Спочатку став runtime-ліміти й бюджети, щоб одразу обмежити базовий ризик на кожному run. Потім додавай approval для ризикових і незворотних дій (write-операції, фінансові зміни, видалення даних).

Q: Чи достатньо kill switch для безпеки?
A: Ні. Kill switch потрібен як аварійне гальмо, але він не заміняє постійний контроль доступу, бюджети, rate limits і аудит дій.

Q: Як технічно реалізується kill switch?
A: Зазвичай це простий глобальний прапорець (наприклад, у Redis), який policy layer перевіряє перед кожним кроком і зупиняє виконання.

Пов'язані сторінки

Далі за темою:

⏱️ 6 хв читанняОновлено 24 березня 2026 р.Складність: ★★★
Реалізувати в OnceOnly
Budgets + permissions you can enforce at the boundary.
Використати в OnceOnly
# onceonly guardrails (concept)
version: 1
budgets:
  max_steps: 25
  max_tool_calls: 12
  max_seconds: 60
  max_usd: 1.00
policy:
  tool_allowlist:
    - search.read
    - http.get
writes:
  require_approval: true
  idempotency: true
controls:
  kill_switch: { enabled: true }
Інтегровано: продакшен-контрольOnceOnly
Додай guardrails до агентів з tool-calling
Зашип цей патерн з governance:
  • Бюджетами (кроки / ліміти витрат)
  • Дозволами на інструменти (allowlist / blocklist)
  • Kill switch та аварійна зупинка
  • Ідемпотентність і dedupe
  • Audit logs та трасування
Інтегрована згадка: OnceOnly — контрольний шар для продакшен агент-систем.

Автор

Микола — інженер, який будує інфраструктуру для продакшн AI-агентів.

Фокус: патерни агентів, режими відмов, контроль рантайму та надійність систем.

🔗 GitHub: https://github.com/mykolademyanov


Редакційна примітка

Ця документація підготовлена з допомогою AI, із людською редакторською відповідальністю за точність, ясність і продакшн-релевантність.

Контент базується на реальних відмовах, постмортемах та операційних інцидентах у розгорнутих AI-агентних системах.