feat: add chapter 09-testing-and-debugging specs

This commit is contained in:
2026-09-05 22:20:23 +08:00
parent d6c371f485
commit 5b26a487c1
6 changed files with 661 additions and 0 deletions

View File

@@ -0,0 +1,104 @@
# مشخصات درس‌نامه: چرا Agent اشتباه می‌کند؟ (Why AI Coding Agents Make Mistakes)
- **شناسه در سیلابس:** `L9.2`
- **فصل:** فصل ۹: تست و Debugging (Ch 9)
- **نوع محتوا:** 📘 درس‌نامه متنی
- **زمان تقریبی مطالعه:** ۱۲ دقیقه
- **پیش‌نیازهای مستقیم:** `L9.1` (اهداف فصل نهم)
---
## ۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)
دانشجو پس از مطالعهٔ این درس‌نامه باید بتواند:
- [ ] **درک کند (Understand):** چرا ایجنت‌های هوش مصنوعی مهندس واقعی نیستند، بلکه سیستم‌های پیش‌بینی احتمالاتی هستند و خطاهای آن‌ها ریشه‌های علمی و ساختاری مشخصی دارد.
- [ ] **تحلیل/ارزیابی کند (Evaluate):** پنج ریشه بنیادین خطاهای هوش مصنوعی شامل: **فرسودگی کانتکست (Context Bloat)، توهم توابع و پکیج‌ها (Hallucination)، نابینایی نسبت به اثرات جانبی (Cascade Effects)، ابهام در پرامپت کاربر، و چاپلوسی مدل (Sycophancy)** را شناسایی و تحلیل کند.
- [ ] **تحلیل/ارزیابی کند (Evaluate):** خطای اختلاط نسخه‌های قدیمی (مانند کدهای منسوخ Next.js 12) با نسخه‌های مدرن (Next.js App Router) توسط ایجنت را تشخیص دهد.
- [ ] **به‌کار ببندد (Apply):** راهکارهای دفاعی پیشگیرانه (بهداشت سشن، مشخص کردن دقیق شماره نسخه استک در پرامپت، و ارجاع صریح به فایل‌ها با `@filename`) را اجرا کند.
- [ ] **به‌کار ببندد (Apply):** اصل طلایی عدم اعتماد کلامی به ادعای ایجنت («من مشکل را حل کردم!») و راستی‌آزمایی مستقل در ترمینال و مرورگر را نهادینه سازد.
---
## ۲. محدوده و مرزهای محتوا (Scope & Boundaries)
### آنچه باید پوشش داده شود (In-Scope):
1. **رمزگشایی از ذهن ایجنت‌های کدنویسی:**
* هوش مصنوعی با شما دشمنی ندارد و خنگ نیست؛ مدل‌ها تابع فیزیک محاسباتی و توزیع احتمالات هستند. شناخت این نقاط ضعف، شما را به یک راهنمای مقتدر تبدیل می‌کند.
2. **کالبدشکافی ۵ ریشه اصلی خطاهای ایجنت:**
* **ریشه ۱: فرسودگی پنجره بافت و پدیده گم‌شدگی در میانه (Lost in the Middle):**
* در چت‌های طولانی، توجه مدل به پیام‌های میانی به شدت افت می‌کند و شروط اولیه (مثل «از تایپ‌اسکریپت استفاده کن») را از یاد می‌برد.
* **ریشه ۲: توهم و استفاده از کدهای منسوخ (Hallucinated & Outdated APIs):**
* مدل‌های زبانی روی داده‌های گذشته اینترنت آموزش دیده‌اند؛ بنابراین ممکن است ناخودآگاه کدهای قدیمی Next.js Pages Router (مانند `getServerSideProps`) را وارد پروژه App Router مدرن شما کنند یا متدهایی خیالی در Supabase بسازند.
* **ریشه ۳: نابینایی نسبت به اثرات جانبی (Scope Blindness & Cascade Bugs):**
* ایجنت یک باگ را در کامپوننت `ProjectCard.tsx` درست می‌کند، اما نمی‌بیند که این تغییر باعث شکسته شدن ورودی‌ها در `ProjectsGrid.tsx` شده است.
* **ریشه ۴: پرامپت‌های مبهم و کلی کاربر:**
* گفتن «دکمه لاگین کار نمی‌کند» به جای ارسال متن دقیق خطای قرمز کنسول.
* **ریشه ۵: پدیده چاپلوسی و اعتمادبه‌نفس کاذب (AI Sycophancy):**
* مدل‌ها به گونه‌ای آموزش دیده‌اند که شما را خوشحال کنند؛ به همین دلیل با لحنی کاملاً شاداب می‌گویند: *«مشکل با موفقیت حل شد!»* حتی اگر کد اصلاً کامپایل نشود!
3. **پادزهرهای عملی برای مهار لغزش ایجنت‌ها:**
* **قانون سه شکست:** اگر ایجنت در ۳ پرامپت متوالی نتوانست باگ را حل کند، ادامه دادن چت فایده‌ای ندارد؛ پنجره را ببندید و در یک سشن تازه مسئله را به صورت ایزوله شرح دهید.
* **تزریق صریح نسخه در پرامپت:** قید کردن عبارت «استفاده از Next.js 15 App Router و Supabase v2».
* **ارجاع متمرکز:** استفاده از نشانه `@` در ادیتور Cursor برای اضافه کردن فقط فایل‌های درگیر به بافت چت.
4. **کال‌اوت‌های Quera:**
* `<details class="violet">`: پدیده چاپلوسی هوش مصنوعی؛ چرا تأییدیه کلامی مدل ارزش فنی ندارد و تنها سند معتبر، خروجی بدون خطای کامپایلر است؟
* `<details class="red">`: تله اصرار در چت آلوده؛ هرگز وقت و توکن‌های خود را با جدال بی‌پایان در یک پنجره پر از خطا تلف نکنید.
### آنچه نباید وارد آن شویم (Out-of-Scope):
- آموزش انواع تست‌های خودکار (درس بعدی ۹.۳).
- ابزارهای گرافیکی مانیتورینگ کارایی سرور (فصل ۱۳).
---
## ۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)
| اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یک‌خطی ساده |
| :--- | :--- | :--- |
| Lost in the Middle | گم‌شدگی در میانه | پدیده کاهش تمرکز مدل‌های زبانی بر اطلاعات واقع در میانه مکالمات طولانی |
| AI Sycophancy | چاپلوسی / تاییدطلبی مدل | تمایل هوش مصنوعی به تایید مثبت فرضیات کاربر حتی در صورت نادرست بودن کدها |
| Cascade Failure | شکست زنجیره‌ای | خطایی که در اثر اصلاح یک بخش، به طور دومینووار سایر بخش‌های سالم برنامه را تخریب می‌کند |
| Deprecated Syntax | سینتکس منسوخ | دستورات و کدهای قدیمی فریم‌ورک‌ها که در نسخه‌های جدید پشتیبانی نمی‌شوند |
| Context Cleansing | پاکسازی و تصفیه بافت | بستن چت‌های شلوغ و باز کردن یک سشن تمیز با ارجاع به فایل‌های ضروری |
---
## ۴. جایگاه‌های تصاویر و نمودارها (Visual & Diagram Placeholders)
> **راهنمای ایجنت نویسنده:** تمام تصاویر باید در پوشهٔ `images/` قرار گرفته و در قالب جدول تک‌خانه‌ای وسط‌چین با کپشن تفصیلی درج شوند:
1. **تصویر کاور درس:** `images/cover.png`
* **موضوع:** کاور مدرن با تم تیره که مغز شیشه‌ای هوش مصنوعی را با مدارهای جرقه‌زننده و چراغ‌های هشدار زرد نئونی در حال تحلیل خطا نشان می‌دهد.
2. **پنج ریشه بنیادین خطاهای ایجنت:** `images/ai-failure-modes-diagram.png`
* **موضوع:** اینفوگرافیک ۵ پرچم قرمز: فرسودگی کانتکست، توهم کد، نابینایی اثرات جانبی، پرامپت گنگ، و تایید کاذب.
3. **نمودار پدیده Lost in the Middle:** `images/lost-in-the-middle-curve.png`
* **موضوع:** نمودار U شکل که نشان می‌دهد توجه مدل در ابتدا و انتهای چت ۱۰۰٪ است اما در وسط مکالمه به شدت افت می‌کند.
4. **مقایسه کدهای منسوخ با کدهای مدرن:** `images/deprecated-vs-modern-code.png`
* **موضوع:** تصویر مقایسه‌ای: کدهای قدیمی Pages Router در برابر کدهای استاندارد App Router با علامت ضربدر قرمز و تیک سبز.
5. **قانون سه‌گانه ریست سشن:** `images/three-strikes-reset-rule.png`
* **موضوع:** فلوچارت تصمیم‌گیری: تلاش ۱ $\rightarrow$ تلاش ۲ $\rightarrow$ تلاش ۳ $\rightarrow$ توقف فوری و باز کردن چت تمیز جدید.
---
## ۵. بخش‌بندی و ساختار محتوایی پیشنهادی درس‌نامه (`README.md`)
1. **تیتر اصلی:** `# چرا Agent اشتباه می‌کند؟ رمزگشایی از نقاط کور هوش مصنوعی`
2. **مقدمه:** چرا خونسردترین توسعه‌دهندگان، آن‌هایی هستند که طرز کار و اشتباهات هوش مصنوعی را پیش‌بینی می‌کنند؟
3. **جدول کاور درس**
4. **هوش مصنوعی مهندس نیست؛ ماشین احتمالات است:** درک واقعیت پردازش توکن‌ها.
5. **پنج دلیل اصلی که ایجنت‌ها را به بیراهه می‌برد:**
* فرسودگی بافت و پدیده فراموشی در میانه (Lost in the Middle).
* توهم و استفاده تصادفی از کدهای دوره‌افتاده و منسوخ.
* نابینایی نسبت به اثرات زنجیره‌ای در سایر فایل‌ها.
* ابهام در ورودی‌های ما (Garbage In, Garbage Out).
* چاپلوسی مدل: چرا AI همیشه می‌گوید همه چیز عالی است؟!
6. **باکس نکته Quera (`<details class="violet">`):** روان‌شناسی ایجنت‌ها؛ چرا نباید به جملات امیدوارکننده مدل بدون تست در مرورگر اعتماد کرد؟
7. **استراتژی‌های دفاعی برای وایب کدرهای برنده:**
* قانون طلایی سه شکست (Three Strikes Rule).
* تزریق قیدهای صریح نسخه فریم‌ورک در پرامپت.
* ارجاع لیزری به فایل‌ها با استفاده از کاراکتر `@`.
8. **باکس هشدار Quera (`<details class="red">`):** هرگز در چت‌های پر از خطا نجنگید؛ سشن تمیز معجزه می‌کند.
9. **جمع‌بندی درس‌نامه:** تسلط بر روان‌شناسی خطاهای ایجنت و آماده‌سازی برای آشنایی با انواع تست‌های نرم‌افزاری در درس بعد.
---
## ۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
- [ ] ریشه‌های ۵ گانه خطاهای ایجنت‌های هوش مصنوعی با استدلال‌های فنی و روان تحلیل شده باشند.
- [ ] پدیده‌های Lost in the Middle و کدهای منسوخ با مثال‌های واقعی Next.js توضیح داده شوند.
- [ ] راهکارهای عملی (قانون سه شکست و پاکسازی بافت) به عنوان مهارت‌های محوری ارائه گردند.
- [ ] اهمیت اعتبارسنجی مستقل انسان در برابر چاپلوسی مدل مورد تاکید صریح قرار گیرد.