Що агенту дозволено робити (і що ні)

Не всі дії безпечні
На цій сторінці
  1. Що таке дозволені дії (Permissions)
  2. Рівні дозволів
  3. Чому агенту не можна давати доступ до всього
  4. Хто встановлює межі
  5. Принцип мінімальних дозволів
  6. У коді це виглядає так
  7. 1) Маємо інструменти з різними рівнями ризику
  8. 2) Тут ми задаємо дозволи для конкретного агента
  9. 3) Модель просить виконати дію
  10. 4) Система перевіряє права перед виконанням
  11. 5) Якщо рівень дозволений, дію виконаємо
  12. Аналогія з життя
  13. Коротко
  14. FAQ
  15. Що далі

AI-агент може не лише відповідати на запити.

Він може:

  • Змінювати дані
  • Надсилати запити до API
  • Створювати файли
  • Або запускати процеси

Тобто — виконувати дії у реальному світі.


І саме тут з'являється нова проблема.

Бо не всі дії безпечні.

Агент може:

  • Видалити дані
  • Витратити гроші
  • Або зробити запит до зовнішньої системи

Навіть якщо ти цього не планував.


Тому агенту не можна дозволяти робити все.

Йому потрібні межі.

Що таке дозволені дії (Permissions)

AI-агент: Коли агент має зупинитись (і хто це вирішує)

Агент не має прямого доступу до інструментів.

Він не може сам:

  • Відкрити файл
  • Змінити запис у базі
  • Або надіслати запит до API

Щоб виконати дію, він має використати інструмент.

І лише ті інструменти, які йому дозволено викликати.


Цей список дозволених дій і є його Permissions.

Вони визначають:

  • Що агент може зробити
  • А що — ні

Рівні дозволів

Не всі дії однаково безпечні.

Diagram

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


Read — читати
Агент може отримувати дані. Але не може їх змінювати.

Наприклад: прочитати запис у базі, відкрити файл, перевірити статус.


Write — записувати
Агент може створювати або змінювати дані.

Наприклад: створити новий запис, оновити файл, зберегти результат.


Execute — запускати
Агент може викликати процеси або зовнішні сервіси.

Наприклад: надіслати запит до API, запустити скрипт, викликати webhook.


Delete — видаляти
Агент може видаляти дані або записи.

Це найнебезпечніший рівень.
Бо дія — незворотна.


Чим вищий рівень дозволу — тим більше агент може змінити у світі.

Тому йому дають лише той доступ, який потрібен для виконання задачі.

Чому агенту не можна давати доступ до всього

Агент не розуміє наслідків своїх дій.

Він обирає інструмент, який виглядає найбільш підходящим у цьому контексті.

РівеньЩо дозволеноРизик
ReadОтримувати даніНизький
WriteСтворювати або змінюватиСередній
ExecuteЗапускати процеси або APIВисокий
DeleteВидаляти даніКритичний

Але "підходящий" не завжди означає "безпечний".

Агент може:

  • Записати неправильні дані
  • Викликати платний API
  • Або видалити важливий файл

Просто тому, що це допомагає виконати задачу.


Якщо дати йому доступ до всього — він може зробити більше, ніж ти очікував.

Хто встановлює межі

Агент не обирає свої дозволи сам.

Він не вирішує:

  • До яких інструментів має доступ
  • Які дії може виконувати

Ці межі встановлює людина.

Або система, яка визначає:

  • Які інструменти дозволені
  • Які дії можна виконувати
  • І на якому рівні доступу

Агент лише працює в межах цих правил.

Принцип мінімальних дозволів

Є просте правило:

Агенту дають лише той доступ, який необхідний для виконання конкретної задачі.

Не більше.


Це називається принцип мінімальних дозволів (Least Privilege).


Якщо агенту потрібен доступ лише для читання — він не має отримувати доступ на запис.

Якщо потрібно створити файл — він не має мати можливість його видалити.


Менше дозволів — менше ризиків.

У коді це виглядає так

Нижче той самий принцип у простому форматі:
ми явно задаємо, що агенту дозволено, а систему змушуємо це перевіряти перед кожною дією.

1) Маємо інструменти з різними рівнями ризику

PYTHON
def read_user(user_id: int):
    return {"id": user_id, "status": "active"}


def update_user(user_id: int, status: str):
    return {"id": user_id, "status": status}


def send_webhook(event: str):
    return {"sent": event}


def delete_user(user_id: int):
    return {"deleted": user_id}


TOOLS = {
    "read_user": {"level": "read", "handler": read_user},
    "update_user": {"level": "write", "handler": update_user},
    "send_webhook": {"level": "execute", "handler": send_webhook},
    "delete_user": {"level": "delete", "handler": delete_user},
}

2) Тут ми задаємо дозволи для конкретного агента

PYTHON
AGENT_PERMISSIONS = {"read", "write"}  # execute і delete заборонені

3) Модель просить виконати дію

PYTHON
model_output = {
    "action": "update_user",
    "parameters": {"user_id": 42, "status": "paused"},
}

4) Система перевіряє права перед виконанням

PYTHON
def run_action(call: dict):
    action = call["action"]
    params = call["parameters"]

    tool = TOOLS.get(action)
    if tool is None:
        return {"error": "Інструмент не знайдено"}

    if tool["level"] not in AGENT_PERMISSIONS:
        return {"error": "Дія не дозволена"}

    return tool["handler"](**params)

5) Якщо рівень дозволений, дію виконаємо

PYTHON
result = run_action(model_output)
# {"id": 42, "status": "paused"}

Якщо модель попросить delete_user, система поверне:

JSON
{
  "error": "Дія не дозволена"
}

Повний приклад реалізації з підключеною LLM

PYPython
TSTypeScript · скоро

Аналогія з життя

Уяви, що ти даєш комусь ключі від квартири.

Якщо потрібно лише полити квіти — ти даєш ключ від дверей.


Але не даєш:

  • Ключ від сейфу
  • Доступ до банківського додатку
  • Або PIN-код від картки

Бо чим більше доступу — тим більше можна змінити.

Навіть випадково.


Саме тому дають лише ті ключі, які потрібні для конкретної задачі.

Коротко

Коротко

Агент може виконувати дії через інструменти.

Але йому дозволено:

  • Лише певні інструменти
  • Лише певні типи дій
  • І лише на певному рівні доступу

Зазвичай використовується принцип мінімальних дозволів:

Агент отримує лише той доступ, який потрібен для виконання задачі.

FAQ

Q: Чи може агент виконувати будь-які дії через інструменти?
A: Ні. Він може використовувати лише ті інструменти і дії, які йому дозволено.

Q: Хто визначає, що агенту дозволено робити?
A: Людина або система, яка встановлює список доступних інструментів і рівень доступу до них.

Q: Що таке принцип мінімальних дозволів?
A: Це правило, за яким агент отримує лише той доступ, який потрібен для виконання конкретної задачі.

Що далі

Тепер ти знаєш, що агенту дозволено робити.

Але навіть з обмеженнями він може:

  • Застрягти в циклі
  • Повторювати ті самі дії
  • Або витрачати ресурси

Тому іноді агент має зупинитись сам.

Або бути зупиненим системою.

⏱️ 6 хв читанняОновлено Бер, 2026Складність: ★★☆
Практичне продовження

Приклади реалізації патерна

Перейди до реалізації на готових прикладах.

Інтегровано: продакшен-контрольOnceOnly
Додай guardrails до агентів з tool-calling
Зашип цей патерн з governance:
  • Бюджетами (кроки / ліміти витрат)
  • Дозволами на інструменти (allowlist / blocklist)
  • Kill switch та аварійна зупинка
  • Ідемпотентність і dedupe
  • Audit logs та трасування
Інтегрована згадка: OnceOnly — контрольний шар для продакшен агент-систем.
Автор

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

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

Патерни та рекомендації базуються на постмортемах, режимах відмов і операційних інцидентах у розгорнутих системах, зокрема під час розробки та експлуатації governance-інфраструктури для агентів у OnceOnly.