До цього моменту ми говорили про агентів як про систему, яка:
- має ціль
- пробує діяти
- перевіряє результат
- і пробує ще раз, якщо не вийшло
Але це звучить як теорія.
Тож давай напишемо найпростішого агента, який реально працює.
Без фреймворків. Без пам'яті. Без складної логіки.
Просто цикл.
Уяви агента як дитину

Дитина хоче відкрити двері.
Вона:
- пробує ручку → не відкривається
- пробує сильніше → не виходить
- пробує ще раз → відчинилось!
Агент працює так само. Він не "думає" в людському сенсі.
Він просто:
→ Пробує
→ Дивиться що сталося
→ Змінює дію
→ Пробує знову
Задача для агента
Дамо агенту просту задачу:
Напиши число більше ніж 10
Але зробимо хитро. Замість моделі — почнемо з random, щоб побачити механіку без зайвого шуму.
Іноді агент отримає 3, іноді 7, іноді 15. Він має це відрізнити — і або зупинитись, або спробувати знову.
Код: агент без LLM
import random
goal = 10
max_steps = 5
for step in range(max_steps):
print(f"\n🤖 Step {step + 1}: Agent is trying...")
# "Модель" генерує відповідь
number = random.randint(1, 20)
print(f"💬 Generated: {number}")
if number > goal:
print(f"✅ Goal reached! {number} > {goal}")
break
else:
print(f"❌ Not enough. {number} ≤ {goal}. Trying again...")
else:
print("\n⚠️ Max steps reached without success")
Запусти кілька разів. Дивись, як агент сам вирішує продовжувати чи зупинятись.
Що тут відбувається
- Агент отримує мету — знайти число > 10
- Пробує — "генерує" відповідь
- Перевіряє — чи досягнута мета?
- Якщо ні — пробує знову (максимум 5 разів)
- Якщо так — зупиняється
Ось і весь цикл:
Модель vs Агент
| Модель | Агент | |
|---|---|---|
| Генерує відповідь | ✅ | ❌ |
| Перевіряє результат | ❌ | ✅ |
| Вирішує що далі | ❌ | ✅ |
Модель відповідає за Act.
Агент відповідає за Check → Retry → Stop.
Чому це вже агент, а не просто функція?
Функція зробила б одну спробу — і все.
Агент:
- має ціль
- перевіряє результат
- може діяти знову без твоєї участі
Ти дав задачу — і він працює сам. Навіть якщо помиляється.
А якщо підключити справжню LLM?
Замінити random.randint() на виклик AI API — одна зміна.
Агентний цикл залишається рівно таким самим.
Саме в цьому і є суть: агент — це не про "розумну модель". Це про структуру: ціль → дія → перевірка → повтор.
Коротко
Ти щойно розібрав базовий цикл агента:
- Ціль — знайти число > 10
- Act — генерує відповідь
- Check — чи досягнута мета?
- Retry — якщо потрібно
- Stop — коли мета досягнута або вичерпано кроки
Це фундамент. Все решта — ускладнення цієї схеми.
FAQ
Q: Чому тут max_steps = 5, а не нескінченний цикл?
A: Агент, який не зупиняється сам, — небезпечний. Він може витрачати гроші на API, застрягти в циклі або зациклитись, якщо мета недосяжна. max_steps — це страховка.
Q: Чому ми почали з random, а не одразу з LLM?
A: Щоб побачити механіку агента без зайвого шуму. Модель — це лише одна деталь. Сам цикл важливіший.
Q: Чому агент не знає, що число "погане" до перевірки?
A: Модель просто генерує. Вона не знає про ціль. Ціль — відповідальність агента, не моделі.
Що далі
Ти помітив max_steps = 5?
Це не випадково. Агент, який не зупиняється сам, може:
- працювати нескінченно
- витрачати гроші на API-виклики
- застрягти в циклі, якщо мета недосяжна
Саме тому у кожного агента мають бути межі.
→ Читай далі: Коли агенту потрібні межі
Хочеш запустити це сам?
Якщо тобі цікаво побачити повну реалізацію з реальним LLM, розбиту по модулях і готову до запуску — вона тут: