Коли агент працює добре — це виглядає як магія.
Ти ставиш задачу, нічого не пояснюєш, не контролюєш кожен крок — а система сама знаходить дані, обирає інструменти і повертається з результатом.
І в якийсь момент починає здаватися, що вона розуміє, що робить.
А потім раптом:
- Використовує не той інструмент
- Забуває половину задачі
- Робить зайвий запит до API
- Або впевнено повертає повну нісенітницю
І найгірше — робить це дуже переконливо.
Без помилок у тексті.
Без вагань.
Наче все правильно.
У цей момент виникає логічне питання:
Як система, яка щойно діяла розумно, могла так помилитися?
Бо всередині — не розум

Щоб зрозуміти, чому агент іноді помиляється, треба подивитись, як він приймає рішення насправді.
Бо всередині нього — не "розум".
AI-агент не думає. Не перевіряє факти. Не розуміє, що правильно, а що ні.
Він працює через мовну модель.
А мовна модель не знає відповідей.
Вона не шукає істину. Не відкриває базу знань. Не перевіряє реальність.
Вона обирає наступну дію або відповідь, яка виглядає найбільш ймовірною у цьому контексті.
Кожен раз, коли агент:
- Вирішує наступний крок
- Обирає інструмент
- Пише запит
- Або оцінює результат
— це лише спроба вгадати, що виглядає найбільш правильним у цьому контексті.
І іноді ця здогадка — помилкова.
| Людина | LLM | |
|---|---|---|
| Перевіряє факти | ✅ | ❌ |
| Знає відповідь | Іноді | ❌ |
| Передбачає відповідь | ❌ | ✅ |
Як агент приймає рішення насправді
Агент не знає, яка дія правильна.
Але він навчений на величезній кількості прикладів того, як виглядає правильна дія у схожій ситуації.
Під час навчання модель бачила:
- Як виглядають запити до API
- Як аналізують дані
- Як формують звіти
- Як використовують інструменти
І тепер, коли агент працює, вона дивиться на:
- Мету
- Попередні кроки
- Отримані результати
І ставить собі питання:
"Яка дія найбільше схожа на ту, що допомагала в подібній ситуації раніше?"
Наприклад — коли все йде добре:
Агент отримав задачу: "Збери дані про клієнта."
У контексті є інструмент: get_user_data(user_id)
Модель "знає", що в подібних задачах:
- Спочатку отримують дані
- Потім їх аналізують
І тому обирає: викликати get_user_data
Не тому, що впевнена.
А тому, що це виглядає як наступний логічний крок.
Але ось — коли все йде не так:
Агент отримав задачу: "Напиши короткий огляд компанії для нового клієнта."
У контексті є старі нотатки зустрічі з іншим клієнтом — схожі за форматом.
Модель бачить схожий патерн і думає:
"У подібній ситуації зазвичай використовують вже наявні дані."
І тому генерує огляд — але про іншу компанію.
Впевнено. Без застережень. З правильно оформленим текстом.
Просто — не про того клієнта.
Після кожного кроку вона знову робить прогноз:
"Що зазвичай роблять після цього?"
І так — крок за кроком.
Саме тому агент часто робить правильні дії.
Але іноді — ні.
Бо він не перевіряє, чи це правда.
Він лише обирає те, що виглядає найбільш доречним у цьому контексті.
У коді це виглядає так
Нижче той самий принцип у простому форматі:
модель не "знає істину", а обирає крок, який виглядає найімовірнішим у поточному контексті.
Спочатку маємо дії (інструменти), які можна викликати:
def fetch_company_profile(company_id: str):
return {"company_id": company_id, "summary": "Official profile"}
def summarize_notes(notes: str):
return {"summary": f"Summary from notes: {notes}"}
TOOLS = {
"fetch_company_profile": fetch_company_profile,
"summarize_notes": summarize_notes,
}
Тепер маємо контекст задачі:
state = {
"task_company_id": "acme",
"old_notes": "Meeting notes about beta-corp", # старі нотатки про іншу компанію
}
Модель робить здогадку про наступний крок:
def choose_action(state: dict):
# Якщо в контексті вже є нотатки, модель може вирішити,
# що цього "достатньо" для швидкого огляду.
if state.get("old_notes"):
return {
"tool": "summarize_notes",
"parameters": {"notes": state["old_notes"]},
}
return {
"tool": "fetch_company_profile",
"parameters": {"company_id": state["task_company_id"]},
}
Система виконує те, що модель запропонувала:
model_output = choose_action(state)
tool_name = model_output["tool"]
params = model_output["parameters"]
result = TOOLS[tool_name](**params)
У цьому кейсі результат буде "переконливим", але не про ту компанію:
# {'summary': 'Summary from notes: Meeting notes about beta-corp'}
Щоб зменшити ризик, додаємо просту перевірку джерела перед фінальною відповіддю:
def validate_summary_source(state: dict, result: dict):
if "beta-corp" in result.get("summary", "") and state["task_company_id"] == "acme":
return {"error": "Невідповідність контексту: дані не про ту компанію"}
return {"ok": True}
Це не прибирає обмеження LLM повністю, але зменшує кількість таких помилок у продакшені.
Повний приклад реалізації з підключеною LLM
Аналогія з життя
Уяви кухаря-початківця, який подивився тисячі відео з рецептами.
Він бачив:
- Як смажать м'ясо
- Як варять суп
- Як готують соуси
- Як подають страви
Але він не пам'ятає жодного рецепта дослівно.
І не знає напевно, як правильно готувати кожну страву.
Тепер ти просиш його: «Приготуй щось схоже на карбонару».
Він не відкриває книгу. Не перевіряє інструкцію.
Він думає:
"Що зазвичай роблять у подібній страві?"
І:
- Додає вершки
- Обсмажує бекон
- Змішує з пастою
Іноді виходить дуже добре.
Іноді — дивно.
Бо він не знає, як правильно.
Він просто робить те, що найбільше схоже на правильний рецепт, який бачив раніше.
Агент працює так само.
Він не знає, яка дія правильна. І не пам'ятає готових рішень.
Він обирає ту, що найбільше схожа на правильну у схожій ситуації.
Коротко
Мовна модель — це не розум:
- Не знає правильних відповідей
- Не перевіряє факти
- А лише генерує найбільш ймовірне продовження
Саме тому агент може виглядати дуже розумним — і водночас помилятися впевнено і без жодних застережень.
Це не баг конкретної системи. Це фундаментальна природа того, як працюють мовні моделі.
Що з цим робити? Розуміти це обмеження — вже перший крок. Далі є конкретні способи зробити агента надійнішим: давати йому чіткий контекст, обмежувати інструменти, додавати перевірку результатів. І один з найважливіших — дати йому пам'ять.
FAQ
Q: Чи знає агент, що його відповідь правильна?
A: Ні. Він обирає варіант, який виглядає найбільш ймовірним у цьому контексті.
Q: Чи може модель перевірити себе?
A: Вона може спробувати оцінити відповідь — але це теж буде здогадка.
Q: Чому агент звучить впевнено навіть коли помиляється?
A: Бо модель навчається генерувати правдоподібний текст, а не сумніватись.
Що далі
Тепер ти знаєш, чому агент може помилятися — і що за цим стоїть не недбалість, а природа самої технології.
Є кілька способів зробити агента надійнішим: чіткі інструкції, обмежений набір інструментів, валідація результатів. Але один із найефективніших — і найцікавіших — це пам'ять.
Якщо агент може запам'ятати:
- Що вже було зроблено
- Які інструменти спрацювали
- Які дані він отримав раніше
Він починає менше покладатися на здогадки — і більше на конкретний досвід у цьому завданні.
Саме про це — у наступній статті.