Failure Modes — How Agents Break, How to Catch It
Day 21-এ একটা tool wire করেছিলে। আজ (Day 22) দেখবে সেটা একা ছেড়ে দিলে কীভাবে ভাঙে — hallucinated tool call, infinite loop, off-task drift — আর প্রতিটার জন্য guardrail কী।
- •তিনটা ক্লাসিক failure mode চেনা — hallucinated tool call, infinite loop, off-task drift।
- •Compound error বোঝা — কেন ৯৫%/step-ও ১০ step-এ ~৬০%-এ নেমে আসে।
- •প্রতিটা failure-এর জন্য সঠিক guardrail বেছে নেওয়া।
- •is_error দিয়ে loud-কিন্তু-controlled fail করানো (Day 21-এর হাতিয়ার)।
- •max iterations / loop detection / trajectory eval — কখন কোনটা।
- •Established agent guardrail: stopping condition + sandbox + human checkpoint + simplicity।
- •Day 21 — single-tool prompt, is_error, the loop (এটার উপরেই আজ দাঁড়ানো)।
- •Day 15 — tool use: tool_use → execute → tool_result loop।
- •Day 12 — version prompts + re-run eval (regression ধরার অভ্যাস)।
কেন Guardrail লাগে
ভুল জমে গুণ হয়ে — compound error-ই আজকের lesson-এর ভিত্তি।
Day 21-এ তুমি একটা tool wire করেছ। একা ছেড়ে দিলে agent তিনভাবে ভাঙে — hallucinated tool call, infinite loop, আর off-task drift। এর পেছনে একটাই কারণ: multi-step মানেই ভুল জমে (compound)। আজকের lesson সেই তিনটা failure mode চেনাবে, আর প্রতিটার জন্য guardrail শেখাবে।
Compound errorper-step accuracy ≠ workflow success
একটা agent loop-এ অনেক step চালায়। প্রতি step-এ একটু ভুলের সুযোগ থাকে, আর সেগুলো গুণ হয়ে জমে। ৯৫%/step শুনতে দারুণ — কিন্তু ১০ step-এ পুরো কাজ সফল হয় মাত্র ~৬০% বার (0.95¹⁰)। ৮৫% হলে ~২০%। এই অঙ্কটাই বাকি দিনের ভিত্তি।
তাই guardrail বিলাসিতা না, বাধ্যতামূলক। আর তাই দুটো কৌশল: step কমাও (scope ছোট), আর প্রতি step শক্ত করো (validation, retry)। রাফির agent যত বেশি কাজ একসাথে করতে যায়, ব্যর্থতার সম্ভাবনা তত গুণ হয়ে বাড়ে।
Hallucinated Tool Call
Model নেই-এমন tool ডাকলে, বা garbage input পাঠালে কী করবে।
Model মাঝে মাঝে এমন একটা tool ডাকে যেটা নেই, বা input-এ আবোল-তাবোল পাঠায়। validation ছাড়া এটা চুপচাপ garbage হয়ে downstream-এ ছড়ায়।
Hallucinated callinvents a tool / malformed input
Model মাঝে মাঝে এমন tool ডাকে যেটা তুমি কখনো দাওনি (যেমন send_email), বা calculator-কে সংখ্যার বদলে "the total" পাঠায়। যেকোনো model-ই এটা করতে পারে — এটা দুর্বলতা না, normal failure।
প্রতিরক্ষা তিন স্তর: (১) শুধু আসল tool expose করো, (২) চালানোর আগে input validate করো, (৩) strict: true দিলে input হুবহু schema মানে। ফেল করলে is_error দাও — Claude ২–৩ বার সংশোধন করে retry করে (Day 21)। validation ছাড়া এটা চুপচাপ garbage হয়ে downstream-এ ছড়ায়, যা সবচেয়ে বিপজ্জনক।
Infinite Loop
একই ভাঙা call বারবার — prompt না, hard cap-ই থামায়।
একটা tool call ফেল করল। Claude আবার একই জিনিস চেষ্টা করে — আবার ফেল — আবার। guardrail ছাড়া এটা চলতেই থাকে, প্রতি call-এ token bill বাড়ে।
Infinite loopsame failed action, forever
একটা tool call ফেল করল; Claude আবার একই জিনিস চেষ্টা করে, আবার ফেল, আবার — circular reasoning। guardrail ছাড়া এটা চলতেই থাকে, প্রতি call-এ token bill বাড়ে। রাফির agent এক রাতে একটা ভাঙা হিসাবে ৪০ বার আটকে থেকেছিল।
এটা "আরও ভালো prompt" দিয়ে গ্যারান্টি করা যায় না — একটা hard max iterations cap লাগে (যেমন ৩ পেরোলে থামো), সাথে loop detection (একই action ৩ বার = stuck) আর exponential backoff। Prompt নরম control; cap শক্ত control। এগুলো orchestration layer-এ বসে, model-এর ভেতরে না।
Off-Task Drift
কোনো step fail করে না, তবু agent পথ হারায়।
কোনো single step "fail" করে না — তবু agent ধীরে ধীরে আসল কাজ থেকে সরে যায়। output শুধু দেখলে এটা ধরা যায় না, পুরো পথ (trajectory) দেখতে হয়।
Off-task driftgoal drift — no single step fails
অনেক step পরে agent আসল কাজ থেকে সরে যায় — অথচ কোনো একটা step আলাদাভাবে "fail" করে না। "total বের করো" থেকে শুরু করে শেষে কোম্পানির ইতিহাস নিয়ে report লিখতে বসে। প্রতিটা পদক্ষেপ যুক্তিসঙ্গত মনে হয়, কিন্তু যোগফলে goal হারিয়ে যায়।
শুধু final output দেখলে এটা ধরা যায় না (trajectory দেখলে ২০–৪০% বেশি সমস্যা ধরা পড়ে)। ধরতে: প্রতি কয়েক step-এ goal restate করাও, পুরো পথ (trajectory) evaluate করো, একটা critic আসল spec-এর সাথে মেলাক, আর scope ছোট রাখো।
Guardrail Toolkit
Loud কিন্তু controlled fail — আর প্রতিটা failure-এর জন্য সঠিক guardrail।
সবচেয়ে বিপজ্জনক ভুল চুপচাপ garbage পাস করে দেওয়া। ভালো design loud কিন্তু controlled fail করে — is_error, একটা পরিষ্কার বার্তা, একটা stop condition, আর সব log। এই সবগুলো guardrail একসাথে হলো আজকের toolkit।
Loud, not silentsilent garbage is the worst case
সবচেয়ে বিপজ্জনক failure চুপচাপ একটা ভুল উত্তর দিয়ে দেওয়া — কেউ টের পায় না, আর সেটা downstream-এ ছড়ায়। ভালো design loud কিন্তু controlled fail করে: is_error, একটা পরিষ্কার বার্তা, একটা stop condition, আর সব log।
এই কারণেই Day 21-এর is_error শুধু politeness না — resilience-এর ভিত্তি। আর observability (প্রতি step log) ছাড়া তুমি জানতেই পারবে না agent কোথায় ভাঙছে। loud fail + log = তুমি problem-টা দেখতে পাও, তাই ঠিক করতে পারো।
Guardrail toolkitstopping conditions + sandbox + human checkpoint
একসাথে: শুধু আসল tool + input validation + is_error retry + max iterations + loop detection + goal restate/trajectory eval + logging + human checkpoint। একটা established guideline আলাদা করে জোর দেয় — stopping condition (max iterations), sandbox-এ আগে test, ঝুঁকিতে human checkpoint, আর design simple রাখা।
প্রতিটা guardrail নির্দিষ্ট কোনো failure ঠেকায় — তাই কোনটা কোন সমস্যার জন্য জানা দরকার। এই toolkit-ই Day 21-এর একটা tool থেকে পরের কোনো module-এর পুরো agent আর production-ready system-এ যাওয়ার নিরাপত্তা-স্তর।
Check Your Understanding
ভুল হলে সমস্যা নেই — প্রতিটার ব্যাখ্যা আছে।
প্রতিটা step ঠিক থাকলে পুরো agent-ও ঠিকভাবে চলবে
Final output ঠিক দেখালে বোঝা যায় agent ঠিকভাবে কাজ করেছে
Infinite loop আরও ভালো prompt লিখে ঠিক করা যায়
Hallucinated tool call মানে model-টা দুর্বল
Tool fail করলে program crash করা ঠিক আছে
চুপচাপ একটা উত্তর দিয়ে দেওয়া error দেখানোর চেয়ে ভালো
প্রতি step-এ ৯৫% নির্ভুল হলে ১০-step কাজ মোটামুটি কত বার সফল হয়?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Hallucinated tool call-এর প্রথম প্রতিরক্ষা কী?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Infinite loop থামানোর সবচেয়ে নির্ভরযোগ্য উপায়?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Off-task drift শুধু output দেখে ধরা যায় না কেন?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Tool fail করলে সবচেয়ে ভালো আচরণ কোনটা?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
একটা agent production-এ ছাড়ার আগে কোন guardrail-গুলোতে সবচেয়ে বেশি জোর দেওয়া উচিত?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Prove It To Yourself
চারটা takeaway মনে রাখো।
চারটা জিনিস মনে রাখো — Errors compound across steps: ৯৫%/step → ১০ step-এ ~৬০%। তাই guardrail বাধ্যতামূলক, step কমাও। Three classic failures, three fixes: hallucinated → validate; infinite loop → max iterations; drift → restate goal + trajectory eval। Fail loud, not silent: is_error + পরিষ্কার বার্তা + log; silent garbage সবচেয়ে বিপজ্জনক। Guardrails, not cleverer prompts: max iterations / human checkpoint / sandbox — শক্ত control, prompt নরম control।
আজকের শব্দগুলো — failure mode, compound error, hallucinated tool call, infinite loop, off-task drift, max iterations, loop detection, is_error, trajectory evaluation, guardrail, sandbox, human-in-the-loop, observability — এখন থেকে English-ই থাকবে; নিজের project-এ এভাবেই ব্যবহার করবে। পুরো তালিকা নিচের glossary-তে। পরের lesson-এ (Day 23 — cost ও latency math) এই ভিত্তির ওপরই আরও এগোবে।
শব্দার্থ — পরে ফিরে দেখার জন্য
একনজরে সব key term। কোনো শব্দ ভুলে গেলে এখানে এসে খুঁজে নিও।
- Compound error
- প্রতি step-এর ভুল গুণ হয়ে জমা; ৯৫%/step → ১০ step-এ ~৬০%।
- Exponential backoff
- Retry-র মাঝে বাড়তে থাকা বিরতি (+jitter)।
- Failure mode
- Agent যেভাবে ভাঙে তার একটা নির্দিষ্ট ধরন।
- Hallucinated tool call
- Model নেই-এমন tool বা malformed input দেয়।
- Human-in-the-loop
- ঝুঁকিপূর্ণ পদক্ষেপে মানুষের অনুমোদন।
- Infinite loop
- একই failed action বারবার; guardrail ছাড়া থামে না।
- is_error
- tool_result-এ true — loud, controlled fail; Claude retry/recover করে।
- Loop detection
- একই action ৩× = stuck ধরে থামানো।
- Max iterations
- Loop-এর hard সীমা — পেরোলে জোর করে থামা।
- Observability
- প্রতি step log/trace — failure আগে এখানেই ধরা পড়ে।
- Off-task / goal drift
- কোনো step fail না করেও goal থেকে সরে যাওয়া।
- Sandbox
- Production-এর আগে নিরাপদ পরিবেশে test।
- Stopping condition
- কখন loop থামবে তার শর্ত — guardrail design-এর একটা মূল ভিত্তি।
- strict tool use
- strict: true — input হুবহু schema মানে, malformed বন্ধ।
- Trajectory evaluation
- শুধু output না, পুরো পথ যাচাই — drift ধরতে।
Sources consulted to author this lesson. Citation style is informal — follow the links if you want to dig deeper.
- Building Effective Agents — Anthropic (2024)
- Handle tool calls — Anthropic (2025)
- AI Agent Failure Modes: What Goes Wrong — Trantor (2025)
- LLM Tool-Calling in Production: the Infinite-Loop Failure Mode — Medium (Yamishift) (2025)
- LLM Agentic Failure Modes — ceaksan.com (2025)
দুই বাক্যে নিজের ভাষায় লেখো
নিজের ভাষায় দুই বাক্যে লেখো — তিনটা classic failure mode কী কী (এক লাইনে প্রতিটা), আর compound error দিয়ে বুঝাও কেন guardrail বিলাসিতা না, বাধ্যতামূলক।