Lever 05: loop ko pata hona chahiye ki khatam kaise hona hai. Agent engineering ka sabse sasta reliability win yahi hai — usse forever chalne se mana karna.
Har turn ka chhatha move tha “check the stop condition.” Yahi wo move hai jise log under-engineer karte hain — aur yahi wo jagah hai jahan toy loops incidents ban jaate hain. Bina firm stop condition waala loop sirf hang nahi karta; wo real paisa kharch karta hai, real APIs hit karta hai, aur kisi ko pata chalne se pehle ek mistake ko pachaas mein compound kar deta hai.
TradingAgents-style system ke liye) real side effects fire karega. Weak ya missing stop condition runaway agents ka ek top cause hai.3
Robust loops do tarah ke termination rakhte hain, aur aapko dono chahiye:
| Layer | Kab fire hota hai | Owned by |
|---|---|---|
| Goal-stop | Task sach mein ho gaya — success criteria poore, ya model ek terminal “finish” signal emit karta hai. | The happy path |
| Guard-stop | Max turns hit · token/cost budget exhausted · wahi error repeat · time elapsed. | Aapka code, unconditionally |
Goal-stop wo hai jo aap chahte ho; guard-stop wo hai jo aapko bachata hai jab goal-stop kabhi aata hi nahi. Crucially, guard-stop aapke own kiye gaye code mein hona chahiye — model par kabhi trust mat karo ki wo decide kare ki wo bahut zyada chal gaya. Yeh phir se Lever 01 hai: own your control flow, exit समेत.1
turns, spent, last_err, repeats = 0, 0, None, 0
while True:
if turns >= MAX_TURNS or spent >= TOKEN_BUDGET: # guard-stop: budget
return handoff(state, reason="budget")
reply = model(build_context(state))
spent += reply.tokens; turns += 1
if reply.is_final: # goal-stop: task done
return reply.answer
result = run(reply.tool_call)
if result.error:
repeats = repeats + 1 if result.error == last_err else 0
last_err = result.error
if repeats >= 2: # same error 3x → ruk jao, spin mat karo
return handoff(state, reason="stuck")
state = append(state, result)
Guard-stop kitna bada hona chahiye? 12-Factor Agents ek concrete heuristic deta hai jo design philosophy ka bhi kaam karta hai:
Small, focused agents… handle 3–20 discrete steps, maintaining focus rather than attempting comprehensive problem-solving. — HumanLayer, 12-Factor Agents, Factor 10
Point exact number nahi hai — point posture hai. Low tens mein ek step budget har agent ko itna chhota rakhta hai ki wo reliable rahe. Jab aap cap hit karo, toh aap silently fail nahi hote — aap teen deliberate cheezon mein se ek karte ho:1
Partial state ko judgement ya approval ke liye surface karo — ideally usi tool-call channel se jise agent already use karta hai (HITL).1
Jo ho gaya usse ek clean brief mein compact karo aur bache hue kaam par ek naya chhota agent start karo — bajaaye ek hi agent ko phailne dene ke.
Ek saaf “could not complete within budget” return karo, jahan ho sake side effects roll back karo, aur ek eval case ke liye usse log karo.
“Long-running agent” aksar galat goal hota hai. Reliable pattern ek short agent hai jo jaanta hai ki kab rukna hai aur baton kab pass karna hai — kisi human ko, kisi doosre agent ko, ya ek clean failure ko.
Ab aap ek loop ka termination do layers ke roop mein specify kar sakte ho — happy path par ek goal-stop aur aapke code mein ek unconditional guard-stop — low tens mein ek step/token budget set kar sakte ho, aur naam le sakte ho un teen cheezon ka jo wo trip hone par karni hain. Yahi ek demo aur kisi aisi cheez ke beech ka fark hai jise aap chalta chhod sako.
Memory se retrieve karo. (Ek question Lesson 2 ko interleave karta hai.)
HumanLayer — 12-Factor Agents. Factor 10 (small, focused agents) aur Factor 8 (own your control flow) ko saath padho — yeh is lever ki backbone hain. Conference talk (≈30 min) ek hi baithak mein best version hai.
TradingAgents loop jab stall ho jaata hai toh kya karta hai — uske paas guard-stop hai, ya sirf goal-stop? Main aapko ek step budget chunne mein aur real trades fire karne waale system ke liye sahi handoff chunne mein help karunga. Chat mein poochho.