Intervjuer te pita: „Da li ReAct Agent-a upada u beskonačnu petlju?" Ako odgovoriš „neće, ReAct ima uslov za završetak", ostaje ti samo da kući čekaš obaveštenje.

Zašto?
Zato što ReAct zaista može da upadne u beskonačnu petlju — ja sam ga danas ujutru nabao dok sam u QoderWork-u pokušavao da pomoću infinite canvas dizajniram sajt za učenje Codex-a i Claude Code-a. QoderWork ne samo da nije izbacio rezultat, nego bi i nerazumno crko, proces bi prosto nestao. Čak ni restart ne pomaže.
Danas ponovo za 3 minuta razlažemo jedno često pitanje sa Agent-intervjua.

Po starom običaju — prvo da razumemo šta intervjuer zapravo proverava.
Pita „da li ReAct upada u beskonačnu petlju" — površinski pita o ReAct obrascu, a zapravo proverava tri stvari:
Prvo, da li razumeš mehanizam ReAct petlje;
Drugo, da li poznaješ Harness inženjerstvo;
Treće, kako rešiti Agent-a kad upadne u beskonačnu petlju?
Važi, sledi odgovor za pun broj poena — nauči ga napamet i gotovo.
Prvo mehanizam. Srž ReAct-a je jedna petlja: Thought razmišljanje, Action izvršenje, Observation posmatranje, pa nazad na Thought, i nastavlja da razmišlja šta dalje. A kad staje? LLM odlučuje sam.
Tu i jeste problem — da li staje ili ne, zavisi isključivo od procene LLM-a. Ako mu se učini da nije dovoljno, ne može da stane.
Beskonačna petlja ima tri tipična scenarija.
Prvi, ponovljeni pozivi. Agent istim parametrima iznova zove isti alat, svaki put dobije isti rezultat, a ne shvata da se ponavlja. Zato što ReAct nema urođen mehanizam za deduplikaciju — Agent ne vidi sopstveni obrazac ponašanja u istoriji.
Drugi, zbrka u kontekstu. ReAct svaki korak svoj Thought, Action i Observation dodaje u istoriju razgovora. Do desetog koraka kontekst je možda već narastao na desetine hiljada token-a. Pažnja LLM-a na dugom kontekstu raspoređena je u U-oblik — početak i kraj pamti jasno, a sredina se zaboravlja. Zato posle desetak koraka Agent možda zaboravi da je rešenje već probao u trećem koraku i krene iznova.
Treći, ponovni pokušaj pri grešci. Alat prijavi grešku, Agent na isti način pokuša ponovo, opet greška, pa ponovo. Još gore, loši veliki modeli haluciniraju imena alata koji uopšte ne postoje, pa svaki pokušaj troši još jedan krug, sve dok ne potroši sve Token-e.
Ako intervjuer dodatno pita: „Kako u produkciji sprečiti beskonačnu petlju u ReAct-u?"
Reci mu — tri linije odbrane.
Prvo, tvrdi gornji limit iteracija. LangChain-ov AgentExecutor podrazumevano trči najviše 15 krugova, preko toga prinudno staje i korisniku vraća dosadašnje međurezultate. To je osnovni safety net.
Drugo, detekcija petlje. Beleži se otisak svakog tool call-a — ime alata plus rezultat. Ako se isti otisak pojavi 3 puta zaredom, ocena je da je zaglavljen i odmah se interveniše.
Treće, kompresija konteksta. Kad petlja pređe deset koraka, rana istorija razgovora sažme se tako da se zadrže samo ključni zaključci, a detalji se odbace. Tako Agent uvek pamti najvažnije, a uklanja se buka.
I za kraj jedna mantra — da li će ReAct stati, LLM procenjuje sam; da ne bi upao u beskonačnu petlju, dobro moraš odraditi Harness.
Da li si savladao ovo pitanje? Za još detaljnih razlaganja pitanja sa Agent-intervjua na nivou izvornog koda —
