Phase 14: Agent Engineering

بازنگری: یادگیری تقویت کلامی

RL مبتنی بر درجه نیاز به هزاران آزمایش و یک دسته GPU برای رفع حالت شکست دارد. بازتاب (شین و همکارانش، NeurIPS 2023) این کار را با زبان طبیعی انجام می دهد: پس از هر آزمایش شکست خورده، عامل بازتابی می نویسد، آن را در حافظه ایپیزودی ذخیره می کند و آزمایش بعدی را بر روی آن حافظه شرایط می دهد. این الگوی پشت محاسبه زمان خواب لتا، یادگیری کلاود کود در CLAUDE.md و قانون یادگیری پیشگام جریان کار است.

Type: Build

Languages: Python (stdlib)

Prerequisites: Phase 14 · 01 (Agent Loop), Phase 14 · 02 (ReWOO)

Time: ~60 minutes

اهداف یادگیری

  • سه عنصر بازتاب (کارگر، ارزیابی کننده، خود بازتاب کننده) و نقش حافظه حادیثی را نام ببرید.
  • یک حلقه بازتاب stdlib را با ارزیابی کننده دوگانه، بازتاب بازتاب و تلاش های جدید دوباره اجرا کنید.
  • برای یک کار مشخص بین منابع بازخورد مقیاس، هوریستیک و خود ارزیابی شده انتخاب کنید.
  • توضیح بده که چرا تقویت کلامی اشتباهاتی را می گیرد که به هزاران آزمایش برای اصلاح RL مبتنی بر گرادینت نیاز دارد.

مشکل

یک عامل یک کار را شکست می دهد. در RL استاندارد شما هزاران آزمایش دیگر را اجرا می کنید، gradients محاسبه، وزنه های تازه. گران قیمت، آهسته، و اکثر عوامل تولید برای هر شکست بودجه آموزشی ندارند.

بازنگری (شین و همکارانش، arXiv:2303.11366) یک سوال متفاوت را مطرح می کند: اگر عامل فقط در مورد اینکه چرا شکست خورد فکر کرد و دوباره با این فکر در پیام خود تلاش کرد؟ هیچ بروزرسانی وزن. هیچ گرادیانتی. فقط زبان طبیعی ذخیره شده بین آزمایشات.

نتیجه: در ALFWorld این سیستم از ReAct و سایر خط های پایه غیر دقیق تر را پیروز می کند. در HotpotQA این سیستم نسبت به ReAct بهبود می یابد. در تولید کد (HumanEval / MBPP) این سیستم حالت پیشرفته را در آن زمان تنظیم می کند. همه این ها بدون یک گام گرادینت تنها.

مفهوم

سه عنصر

Actor         : generates a trajectory (ReAct-style loop)
Evaluator     : scores the trajectory — binary, heuristic, or self-eval
Self-Reflector: writes a natural-language reflection on the failure

و یک ساختار داده:

Episodic memory: list of prior reflections, prepended to the next trial's prompt

یک آزمایش به بازیگر انجام می شود. ارزیابی کننده آن را نمره می دهد. اگر نمره پایین باشد، خودعکاس بازتاب تولید می کند ("من ابزار اشتباهی را انتخاب کردم زیرا سوال را به عنوان سؤال درباره X وقتی درباره Y می پرسید اشتباه خواندم"). بازتاب به حافظه قسمت می رود. آزمایش بعدی تازه شروع می شود اما بازتاب را می بیند.

سه نوع ارزیابی کننده

  1. Scalar سیگنال دوگانه خارجی. ALFWorld موفق یا شکست خورده است. آزمایش های HumanEval موفق یا شکست خورده است. ساده ترین، بالاترین سیگنال.
  2. Heuristic امضای شکست پیش تعریف شده. "اگر عامل دو بار در یک ردیف عمل مشابهی انجام دهد، نشان داده شود که گیر کرده است". "اگر مسیر بیش از ۵۰ مرحله باشد، نشان داده شود که ناکارآمد است".
  3. Self-evaluated LLM مسیر خود را نمره می دهد. در صورتی که حقیقت پایه ای در دسترس نباشد مورد نیاز است. سیگنال ضعیف تر؛ با تأیید مبتنی بر ابزار به خوبی همراه است (درسی 05 CRITIC).

پیش فرض 2026 ترکیبی است: مقیاس زمانی که در دسترس است، خود- برابر زمانی که در دسترس نیست، heuristics به عنوان ریل های ایمنی.

چرا این موضوع به طور کلی

بازتاب یک الگوریتم جدید نیست بلکه یک الگوی نامگذاری شده است. تقریباً هر عامل تولید "خود درمانی" نوعی نوع را اجرا می کند:

  • محاسبه زمان خواب لتا (درسی 08): یک عامل جداگانه در مورد مکالمات گذشته بازتاب می کند و به بلوک های حافظه می نویسد.
  • کلوید کویدCLAUDE.md/ "از حافظه ذخیره کنید": بازتاب هایی که به عنوان یادگیری گرفته شده و به جلسات آینده اضافه شده است.
  • جریان کار/learn-ruleدستور: اصلاحات به عنوان قوانین صریح ضبط شده است.
  • گرهای بازتاب لینگ گراف: گره ای که در صورت نیاز خروجی و مسیرها را برای اصلاح نمره می گیرد.

همه از همان بینش می آیند: زبان طبیعی یک رسانه غنی به اندازه کافی برای حمل "آنچه از شکست یاد گرفتم" بین دو راه است.

وقتی کار می کنه و وقتی کار نمی کنه

بازتاب زمانی موثر است که:

  • یک سیگنال شکست واضح وجود دارد (شکست آزمون، خطا ابزار، پاسخ اشتباه).
  • کلاس کار قابل تکرار است (مثل نوع سوال را می توان دوباره پرسید).
  • بازتاب برای بهبود مسیر (بودج اقدام کافی) جای دارد.

بازتاب کمک نمی کند وقتی:

  • مامور در اولين تلاش موفق شده
  • شکست خارجی است (شبکه خراب شده، ابزار خراب شده) بازتاب در "شبکه خراب شده" به اجرای آینده کمک نمی کند.
  • بازتاب به خرافات تبدیل می شود که داستان یک بار فرار را ذخیره می کند.

2026 گدا: پوسیدگی حافظه. بازتاب ها جمع می شوند؛ برخی از آنها منسوخ یا اشتباه هستند؛ باز اجرا با افزایش بازخورد اپیزودی کند تر می شود. کاهش: فشرده سازی دوره ای (درس 06) ، TTL در بازتاب ها یا یک عامل تمیز کردن زمان خواب جداگانه (Letta).

آن را بسازید

code/main.pyبازتاب در یک پازل اسباب بازی را اجرا می کند: یک لیست سه عنصر را تولید کنید که به یک هدف منجر می شود. بازیگر لیست های کاندیداها را صادر می کند؛ ارزیابی کننده مقدار را بررسی می کند؛ خود بازتاب کننده یک خط در مورد آنچه اشتباه شده است می نویسد. بازتاب به حافظه قسمت برای آزمایش بعدی می رود.

اجزای:

  • Actor یک سیاست نوشته شده که وقتی بازتاب می بیند بهتر می شود.
  • Evaluator.binary() از مبلغ هدف عبور/فاش شدن
  • SelfReflector تشخیص یک خط از شکست را ایجاد می کند.
  • EpisodicMemory یک لیست محدود با سیمانیک TTL.

اجرا کن

python3 code/main.py

ردیابی سه آزمایش را نشان می دهد. آزمایش 1 شکست می خورد، بازتاب ذخیره می شود، آزمایش 2 بازتاب را می بیند و بهبود می یابد اما هنوز هم شکست می یابد، آزمایش 3 موفق می شود. با یک راه اندازی پایه (هیچ بازتاب) مقایسه کنید.

ازش استفاده کن

لنگ گراف بازتاب را به عنوان یک الگوی گره می فرستد./memoryفرماندهی و جریان کار/learn-ruleبازتاب بخش قسمت ها را به عنوان یک فایل نشان داده خارج کنید. محاسبات زمان خواب لتا خود رفلکتور را در زمان توقف اجرا می کند تا عامل اصلی محدود به تاخیر بماند. OpenAI Agents SDK مستقیماً Reflexion را ارسال نمی کند؛ شما آن را با Guardrail سفارشی ایجاد می کنید که مسیرهای را با امتیاز و حافظه رد می کند.Sessionکه در هر دو راه زنده می ماند.

-باده

outputs/skill-reflexion-buffer.mdایجاد و نگهداری یک بازخورد اپیزودی با عکاسی، TTL و تخفیف. با توجه به یک کلاس کار و شکست، آن را یک منعکس کننده است که در واقع کمک به آزمایش بعدی (نه یک عمومی "به دقت بیشتر").

تمرینات

  1. از دوگانه به ارزیابی کننده اسکالر که یک متریک فاصله را باز می گرداند (چه فاصله ای از هدف دارد) تغییر دهید. آیا آن سریعتر به هم می پیوندد؟
  2. اگر به این موضوع توجه کنید، آیا این موضوع باعث درد یا کمک می شود؟
  3. ارزیابی هوریستیک را پیاده سازی کنید: اگر عمل مشابه تکرار شود، آزمایش را به عنوان گیر کرده نشان دهید. این چگونه با خودعکاس تعامل دارد؟
  4. بازتاب را با یک بازیگر مخالف اجرا کنید که بازتاب را نادیده می گیرد. حداقل بازتاب سریع مهندسی چیست که بازیگر را مجبور می کند آنها را متوجه شود؟
  5. بخش 4 مقاله بازتاب در AlfWorld را بخوانید. بهبود 130٪ نرخ موفقیت را از نظر مفهومی تکرار کنید: کلید دلتا در مقابل وانیلی ReAct چیست؟

اصطلاحات کلیدی

TermWhat people sayWhat it actually means
Reflexion"Self-correction"Shinn et al. 2023 — Actor, Evaluator, Self-Reflector plus episodic memory
Verbal reinforcement"Learning without gradients"Natural-language reflection prepended to the next trial's prompt
Episodic memory"Per-task reflections"Bounded buffer of prior reflections for one task class
Scalar evaluator"Binary success signal"Pass/fail or numeric score from ground truth
Heuristic evaluator"Pattern-based detector"Predefined failure signatures (e.g. stuck-loop, too-many-steps)
Self-evaluator"LLM-as-judge on own trace"Lower-signal fallback when no ground truth — pair with tool-grounded verification
Memory rot"Stale reflections"Episodic buffer fills with obsolete entries; fix with compaction/TTL
Sleep-time reflection"Async self-reflection"Run Self-Reflector off the hot path so primary agent stays fast

خواندن بیشتر

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.