Back to course
Module 3 · Day 22

Failure Modes — How Agents Break, How to Catch It

Day 21-এ একটা tool wire করেছিলে। আজ (Day 22) দেখবে সেটা একা ছেড়ে দিলে কীভাবে ভাঙে — hallucinated tool call, infinite loop, off-task drift — আর প্রতিটার জন্য guardrail কী।

~120 min read6 learning objectives
What you'll learn
  • তিনটা ক্লাসিক 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।
Before this
  • 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 ধরার অভ্যাস)।
1

কেন 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¹⁰)। ৮৫% হলে ~২০%। এই অঙ্কটাই বাকি দিনের ভিত্তি।

Why it matters

তাই guardrail বিলাসিতা না, বাধ্যতামূলক। আর তাই দুটো কৌশল: step কমাও (scope ছোট), আর প্রতি step শক্ত করো (validation, retry)। রাফির agent যত বেশি কাজ একসাথে করতে যায়, ব্যর্থতার সম্ভাবনা তত গুণ হয়ে বাড়ে।

2

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।

Why it matters

প্রতিরক্ষা তিন স্তর: (১) শুধু আসল tool expose করো, (২) চালানোর আগে input validate করো, (৩) strict: true দিলে input হুবহু schema মানে। ফেল করলে is_error দাও — Claude ২–৩ বার সংশোধন করে retry করে (Day 21)। validation ছাড়া এটা চুপচাপ garbage হয়ে downstream-এ ছড়ায়, যা সবচেয়ে বিপজ্জনক।

3

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 এক রাতে একটা ভাঙা হিসাবে ৪০ বার আটকে থেকেছিল।

Why it matters

এটা "আরও ভালো prompt" দিয়ে গ্যারান্টি করা যায় না — একটা hard max iterations cap লাগে (যেমন ৩ পেরোলে থামো), সাথে loop detection (একই action ৩ বার = stuck) আর exponential backoff। Prompt নরম control; cap শক্ত control। এগুলো orchestration layer-এ বসে, model-এর ভেতরে না।

4

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 হারিয়ে যায়।

Why it matters

শুধু final output দেখলে এটা ধরা যায় না (trajectory দেখলে ২০–৪০% বেশি সমস্যা ধরা পড়ে)। ধরতে: প্রতি কয়েক step-এ goal restate করাও, পুরো পথ (trajectory) evaluate করো, একটা critic আসল spec-এর সাথে মেলাক, আর scope ছোট রাখো।

5

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।

Why it matters

এই কারণেই 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 রাখা।

Why it matters

প্রতিটা guardrail নির্দিষ্ট কোনো failure ঠেকায় — তাই কোনটা কোন সমস্যার জন্য জানা দরকার। এই toolkit-ই Day 21-এর একটা tool থেকে পরের কোনো module-এর পুরো agent আর production-ready system-এ যাওয়ার নিরাপত্তা-স্তর।

6

Check Your Understanding

ভুল হলে সমস্যা নেই — প্রতিটার ব্যাখ্যা আছে।

Misconception check

প্রতিটা step ঠিক থাকলে পুরো agent-ও ঠিকভাবে চলবে

Misconception check

Final output ঠিক দেখালে বোঝা যায় agent ঠিকভাবে কাজ করেছে

Misconception check

Infinite loop আরও ভালো prompt লিখে ঠিক করা যায়

Misconception check

Hallucinated tool call মানে model-টা দুর্বল

Misconception check

Tool fail করলে program crash করা ঠিক আছে

Misconception check

চুপচাপ একটা উত্তর দিয়ে দেওয়া error দেখানোর চেয়ে ভালো

Quick check

প্রতি step-এ ৯৫% নির্ভুল হলে ১০-step কাজ মোটামুটি কত বার সফল হয়?

ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।

Quick check

Hallucinated tool call-এর প্রথম প্রতিরক্ষা কী?

ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।

Quick check

Infinite loop থামানোর সবচেয়ে নির্ভরযোগ্য উপায়?

ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।

Quick check

Off-task drift শুধু output দেখে ধরা যায় না কেন?

ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।

Quick check

Tool fail করলে সবচেয়ে ভালো আচরণ কোনটা?

ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।

Quick check

একটা agent production-এ ছাড়ার আগে কোন guardrail-গুলোতে সবচেয়ে বেশি জোর দেওয়া উচিত?

ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।

7

Prove It To Yourself

চারটা takeaway মনে রাখো।

Note

চারটা জিনিস মনে রাখো — 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) এই ভিত্তির ওপরই আরও এগোবে।

Glossary

শব্দার্থ — পরে ফিরে দেখার জন্য

একনজরে সব 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 ধরতে।
References

Sources consulted to author this lesson. Citation style is informal — follow the links if you want to dig deeper.

Exit check

দুই বাক্যে নিজের ভাষায় লেখো

নিজের ভাষায় দুই বাক্যে লেখো — তিনটা classic failure mode কী কী (এক লাইনে প্রতিটা), আর compound error দিয়ে বুঝাও কেন guardrail বিলাসিতা না, বাধ্যতামূলক।

0 chars
Back to course