Як агент використовує інструменти (Основи)

Він працює лише з текстом.
На цій сторінці
  1. Як тоді агент взаємодіє зі світом?
  2. Що таке інструмент насправді
  3. Як модель знає, які інструменти існують
  4. Як агент обирає інструмент
  5. Що стається після виклику інструменту
  6. У коді це виглядає так
  7. Аналогія з життя
  8. Коротко
  9. FAQ
  10. Що далі

Коли ми кажемо, що агент може "використати інструмент", це звучить так, ніби він натискає кнопку або запускає програму.

Але всередині все виглядає інакше. Агент не може відкрити файл, надіслати лист або викликати API.

Він працює лише з текстом.

Як тоді агент взаємодіє зі світом?

Як текстова модель може:

  • Отримати дані з бази
  • Надіслати запит до сервера
  • Записати результат у файл

Відповідь — через виклик інструменту (tool calling).

Модель не виконує дії сама. Вона просить систему їх виконати.

Вона вирішує, коли потрібен інструмент.
А система навколо — виконує.

Що таке інструмент насправді

AI-агент: просить виконати дію

Інструмент — це дія, яку агент може попросити виконати.

Це може бути:

  • Отримати дані з API
  • Знайти інформацію в базі
  • Прочитати файл
  • Надіслати повідомлення
  • Записати результат

Для моделі це виглядає як ще один варіант відповіді.

Замість того, щоб написати текст, вона може сказати:

"Щоб рухатися далі, мені потрібно виконати цю дію."

І вказати:

  • Який інструмент використати
  • З якими параметрами

Наприклад:

JSON
{
  "tool": "get_user_data",
  "parameters": {
    "user_id": 123
  }
}

У цей момент модель не виконує дію сама. Вона лише пропонує її виконати.

Diagram

Якщо система дозволяє дію — вона виконує інструмент і повертає результат (Дані, Статус або Помилку) назад моделі.

Після цього агент вирішує, що робити далі.

Як модель знає, які інструменти існують

Модель не шукає інструменти сама.

Їй заздалегідь повідомляють, які дії доступні.

Перед початком роботи система передає моделі список інструментів, які вона може використовувати.

Кожен інструмент має:

  • Назву — як він називається
  • Опис — що він робить
  • Параметри — які дані йому потрібні

Наприклад:

JSON
{
  "name": "get_user_data",
  "description": "Отримує інформацію про користувача за ID",
  "parameters": {
    "user_id": "number"
  }
}

Для моделі це виглядає як набір можливих дій, які вона може обрати в потрібний момент.

Вона не вигадує нові інструменти.
Вона обирає з тих, що їй дозволені.

Саме тому агент не може викликати будь-який API.
Лише той, який йому надали.

Як агент обирає інструмент

У будь-який момент у агента може бути кілька варіантів дії.

Він може:

  • Написати відповідь
  • Використати інструмент
  • Або завершити задачу

Щоб обрати, він дивиться на:

  • Поточну мету
  • Наявні дані
  • Результат попередніх кроків

І ставить собі просте питання:

"Що допоможе мені просунутися до результату прямо зараз?"


Якщо відповіді недостатньо — можливо, варто викликати інструмент і отримати нові дані.

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

Якщо задача виконана — завершити роботу.


Це не жорсткий сценарій.
А вибір, який агент робить у кожному циклі.

І саме тому він може використовувати різні інструменти залежно від ситуації, а не заздалегідь визначеним порядком.

Що стається після виклику інструменту

Коли агент обирає інструмент і просить його виконати, роботу підхоплює система навколо.

Вона:

  • Перевіряє, чи дозволений цей інструмент
  • Виконує дію
  • Отримує результат

Це можуть бути:

  • Дані з API
  • Вміст файлу
  • Статус виконання
  • Або помилка

Після цього результат повертається назад моделі — у вигляді тексту.

Для агента це виглядає як нова інформація, яку він може використати.

Він аналізує результат:

  • Чи отримав потрібні дані?
  • Чи став ближче до мети?
  • Чи потрібно зробити ще один крок?

І на основі цього вирішує:

  • Використати інший інструмент
  • Продовжити без нього
  • Або завершити задачу

Саме так кожен виклик інструменту стає частиною циклу дій.

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

Уяви, що агент хоче отримати дані користувача. Він не може викликати функцію сам. Він може лише попросити систему це зробити — у вигляді текстового запиту:

PYTHON
# Модель вирішує:
# "Щоб рухатися далі — мені потрібні дані користувача"

model_output = {
    "tool": "get_user_data",
    "parameters": {
        "user_id": 123
    }
}

Модель не виконує нічого. Вона лише каже: "Будь ласка, виконай цей інструмент."

Тепер цей запит отримує система навколо агента:

PYTHON
def get_user_data(user_id: int):
    return {"id": user_id, "name": "Anna"}


TOOLS = {
    "get_user_data": get_user_data
}

Система перевіряє:

  • чи існує такий інструмент
  • чи дозволено його використовувати

І лише після цього — виконує:

PYTHON
tool_name = model_output["tool"]
params = model_output["parameters"]

result = TOOLS[tool_name](**params)

Після цього результат повертається назад моделі — як текст:

PYTHON
tool_result = f"User data: {result}"

І тепер агент може вирішити:

  • використати ці дані
  • викликати інший інструмент
  • або завершити задачу

У цьому прикладі ми вручну створили model_output. У реальному агенті його генерує сама мовна модель — вона аналізує задачу, вирішує що потрібен інструмент, і формує такий самий запит автоматично.

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

PYPython
TSTypeScript · скоро

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

Уяви, що ти готуєш вечерю.

У тебе є:

  • холодильник
  • плита
  • ніж
  • мікрохвильовка

Це всі інструменти, які ти можеш використати.

Ти не можеш:

  • скористатися духовкою, якщо її немає
  • або взяти блендер, якщо він не на кухні

Тепер ти хочеш приготувати суп.

Ти думаєш:

Що допоможе мені прямо зараз?

Можеш:

  • відкрити холодильник
  • увімкнути плиту
  • або взяти ніж

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

Потім обираєш наступний.

І так — поки страва не готова.


Те саме відбувається з агентом.

Йому дають список доступних інструментів.
Він не може вигадати нові — лише обирати з тих, що є.

У кожному кроці він вирішує:

який інструмент допоможе просунутися до результату

Використовує його — і рухається далі.

Коротко

Tool calling — це спосіб, яким агент взаємодіє зі світом.

Модель не виконує дії сама. Вона просить систему виконати їх від її імені.

Система передає їй список доступних інструментів. Модель обирає потрібний у правильний момент. Система перевіряє дозвіл, виконує дію і повертає результат.

І на основі цього агент вирішує, що робити далі.

FAQ

Q: Чи виконує агент дії самостійно?
A: Ні. Модель не виконує дії сама — вона лише просить систему виконати інструмент від її імені.

Q: Що таке tool calling?
A: Це спосіб, яким модель може попросити виконати дію, наприклад отримати дані або записати результат, щоб просунутися до мети.

Q: Як агент знає, які інструменти може використовувати?
A: Перед початком роботи система передає моделі список доступних інструментів, з яких вона може обирати у кожному кроці.

Що далі

Тепер ти розумієш основи tool calling.

Але в реальній роботі виникають складніші питання:

Як контролювати, які інструменти агент може використовувати?
Що робити, якщо один інструмент дорогий, а інший — ризикований?
Як дати агенту доступ до даних, але заборонити їх видаляти?

Це вже не основи.
Це production-реальність.

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

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

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

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

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

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

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