Lesson 64 — Beginner

ReAct, Planning & Reflection

ReAct ka funda seedha hai: model baar baar sochta hai, act karta hai, aur observation dekhta hai — yahi cycle repeat hoti hai jab tak jawab na ban jaaye. Is lesson mein pehle framework ke bina loop khud likhoge, phir plan-first execution, reflection/self-correction aur loop protection dekhenge.

⏱ 20 min• Beginner• What is an AI Agent?

ReAct pattern kya hai

WHAT

ReAct (Reasoning + Acting) mein model har turn par decide karta hai — kya karna hai, act karta hai, result dekhta hai, aur usi observation se agla sochta hai. Soch (Thought) aur action ka alternation yahi pattern hai.

WHEN

Jab task multi-step ho aur har step ka result agla step decide kare — debugging, research, data gathering. Ek call mein kaam na ho uske baad.

WHERE

Har serious agent loop ka base pattern — framework ke andar ya bahar, chalta wahi hai. Plain tool-calling ka looping version.

User: "Delhi office ka wifi theek karwao."
Thought: pehle device ka status dekhna padega
Action:   get_device_status(device="router-2")
Observation: router down hai, last reboot 3 din pehle
Thought: status clear hai — ticket bana kar dikhata hoon
Action:   create_ticket(device="router-2", priority="high")
Observation: ticket id T-1183 ban gaya
Thought: ab jawab de sakta hoon
Answer:   Router down mila — ticket T-1183 bana diya hai.

Practical mein Thought field alag se print karne ki zarurat nahi — model ke messages (tool calls + observations) hi uski soch ka record hain. Loop ka kaam sirf yeh hai ki observation ko agle call tak pahunchao.

Loop khud likho — pehle framework nahi

Framework se pehle ek baar loop haath se likho — tabhi tumhe har guard ka pata chalega jo framework chhupa deta hai. Yehi loop framework ke andar bhi chalta hai.

MAX_STEPS = 8

def react(goal, tools, llm):
    messages = [{"role": "user", "content": goal}]
    seen = set()  # ek hi action dobara-dobara na chale
    for step in range(MAX_STEPS):          # hard ceiling
        reply = llm(messages, tools=tools)
        if not reply.tool_calls:
            return reply.content            # model ne finish kar diya
        for call in reply.tool_calls:
            key = (call.name, sorted(call.args.items()))
            if key in seen:
                obs = "yehi call pehle ho chuki — kuch alag try karo"
            else:
                obs = run_tool(call.name, call.args)
                seen.add(key)
            messages += [reply, tool_msg(call.id, obs)]
    return "max steps khatam — budget ke andar jawab nahi bana"
Pro Tip: Yeh 20-line loop hi tumhara debugging ground hai. Framework mein bug aaye toh wapas isi ko aao — agar yahan chal raha hai toh framework configuration mein masla hai, model mein nahi.

Step-by-step vs plan-first

Decision rule: Chhota task (<4 steps) — plan mat banao, seedha step-by-step. Lamba task — plan banao par har N steps par re-plan ka trigger rakho.

Reflection & self-correction

Reflection ka matlab: result aane ke baad usey check karna — kami mili toh dobara try karna. Action fail ho ya jawab kamzor lage, tabhi lagao — har turn par nahi, warna latency aur cost dono barhte hain.

def reflect_and_retry(messages, answer, rounds=1):
    for _ in range(rounds):
        critique = llm(messages + [{"role": "user", "content":
            "Is jawab mein kamiyaan dhoondho: kaunsa fact missing hai, kaunsa step chhoot gaya, kya galat hai?"}])
        if "koi kami nahi" in critique:
            return answer
        messages.append({"role": "user", "content":
            "Kamiyaan: " + critique + ". Sudhaar kar dobara try karo."})
        answer = llm(messages).content
    return answer  # rounds ki limit — reflection bhi budget mein
Common trap: Reflection ko infinite ghumao toh agent khud se kabhi satisfy nahi hoga. Rounds ki limit do, aur "kaafi hai" ka clear rule do instructions mein.

Stopping conditions, loop protection aur planning ka cost

Yaad rakho: Zyada planning = behtar quality kabhi-kabhi, par hamesha zyada kharcha. Production rule: reflection sirf failure ya low-confidence par trigger karo, default nahi.

Exercise

Question: ReAct ka R kis shabd se aata hai jo act karne se pehle hota hai? (English, ek shabd)

Question: Loop ko infinite chalne se bachane wali hard limit ka naam? (do shabd, English)

Question: Action fail ya result kamzor lage toh quality badhane wala step kya kehlata hai? (ek shabd, English)

Question: Pehle poora plan banakar phir execute karne wale style ko kya kehte hain? (do shabd)

Common mistakes

Desi example: GPS route vs driver ka dimag

GPS plan-first chalata hai — route pehle se. Driver step-by-step sochta hai: aage road band hai toh mod le liya. Monsoon wale din dono ka farak dikhta hai — plan sirf suhaana hai, reality alag:

text
plan-first:  origin -> destination (route fixed, signpost follow karo)
step-wise:   dekha -> decide -> act -> observe -> nayi info -> naya raasta
re-plan:     traffic jam -> pura plan update -> aage badho
Interview angle — yahan se sawaal aate hain
  • Q: ReAct ko plain tool-calling loop se compare karo — pattern ka core kya hai?
  • Q: Plan-first execution ke trade-offs batao — kab better, kab stale plan ka risk.
  • Q: Loop protection ke teen tarike batao — max steps, repetition guard, budget.
  • Q: Reflection kab lagana chahiye aur kab nahi — cost/latency angle ke saath.
Lesson complete?

Loop khud likh kar dekh liya. Agla lesson — Tools for Agents — mein dekhenge tools kaise design karein ki model sahi tool, sahi arguments ke saath chune.

Popular courses: Data Science Course in Lucknow · AI Course in Lucknow · Python Course in Lucknow · Power BI Course · Data Analytics Course