Agent loop — bu tizimning yurak urishi. Agent har bir qadamda fikrlaydi, harakat qiladi va natijani kuzatadi.
To‘rt bosqichli sikl
┌─────────────────────────────┐
↓ │
Fikrlash → Harakat → Kuzatish ─────┘
(LLM) (tool) (natija)
- Fikrlash — LLM keyingi qadamni aniqlaydi: tool chaqirish kerakmi yoki javob berish kerakmi?
- Harakat — agent tool’ni chaqiradi (yoki javob beradi).
- Kuzatish — agent tool natijasini o‘qiydi.
- Takrorlash — maqsadga erishilguncha davom etadi.
Nima uchun loop kerak?
Bir qadamda hal bo‘ladigan vazifalar kam. Ko‘p vazifalar ketma-ket qadamlarni talab qiladi:
Vazifa: "Saytdan narxlarni yig‘ib, taqqoslash jadvalini tuz."
Qadam 1: Fikrlash → "saytni ochish kerak" → tool: fetch(site)
Qadam 2: Kuzatish → "sahifa yuklandi, 3 ta mahsulot bor"
Qadam 3: Fikrlash → "narxlarni ajratib olish kerak" → tool: parse(html)
Qadam 4: Kuzatish → "narxlar olindi"
Qadam 5: Fikrlash → "jadval tuzish kerak" → javob
Loop chegaralari
Muhim
Loop cheksiz bo‘lishi mumkin. Har doim maksimal qadam sonini belgilang — aks holda agent bir xil tool'ni qayta-qayta chaqirib, resurslarni yoqib yuborishi mumkin.
MAX_STEPS = 10
for step in range(MAX_STEPS):
action = agent.think(context)
if action.type == "final":
return action.answer
result = agent.execute(action)
context.append(result)
raise TimeoutError("Agent loop chegarasiga yetdi")
Qachon loopni to‘xtatish kerak?
- javob tayyor bo‘lsa;
- maksimal qadamlar soni tugasa;
- agent «bilmayman» desa;
- xavfli yoki takrorlanuvchi harakat aniqlansa.
Amaliy maslahat
Har bir loop qadamini logga yozing. Bu xatoliklarni tuzatishni ancha osonlashtiradi.
Xulosa
Agent loop — fikrlash, harakat va kuzatishning takrorlanuvchi sikli. U agentni avtonom qiladi, lekin har doim chegaralarni belgilang.