چیت‌شیت

ReAct، ReWOO، Reflexion و درخت افکار

ReAct, ReWOO, Reflexion and Tree of Thoughts

انتخاب، ساخت و متوقف‌سازی حلقه‌ی استدلال ایجنت. ReAct، ReWOO، Reflexion، ToT، LATS، Self-Refine، CRITIC و CoT.

  • ۱۳ بخش
  • ۶ درس مرتبط
  • کد و دستورها عیناً از دوره‌ی اصلی
فهرست مطالب
  1. مقایسه‌ی چهار الگو در کنار هم
  2. چه زمانی از هر الگو استفاده کنیم
  3. ReAct loop: AgentLoop.run
  4. ReWOO: برنامه‌ریزی، واکشی، حل
  5. آزمون Reflexion
  6. LATS: یک تکرار MCTS
  7. وظایف در قالب کد
  8. پایپ‌لاین تشدید CoT
  9. نردبان استدلال پرامپت (GPT-5، GSM8K)
  10. پیش‌فرض‌ها در کد درس
  11. عیب‌یابی
  12. پرسش‌ها
  13. نکات کاربردی

مقایسه‌ی چهار الگو در کنار هم

مقایسه
عاملReActReWOOReflexionToT / LATS
نقش‌هافکر، اقدام، مشاهدهبرنامه‌ریز، کارگران، حل‌کنندهکنش‌گر، ارزیاب، خودبازاندیشخط‌مشی، تابع ارزش، جست‌وجو
فراخوانی‌های LLMیکی برای هر گامیک طرح، یک حلیک اجرا برای هر تلاشیکی برای هر گره
مشاهده‌هادر هر گامنه در برنامه‌ریزبه شکل تأمل در تلاش بعدیترکیب‌شده در تابع ارزش
هزینه‌ی توکنرشد با افزایش عمقحدود 5 برابر کمتر روی HotpotQAرشد با افزایش بافر100 تا 1000 برابر CoT
نتیجه‌ی مقالهALFWorld +34 امتیازHotpotQA +4 دقتبرتر از ReAct در ALFWorldGame of 24: از 4٪ به 74٪
نقص اصلیانفجار طول حلقهطرح ایستاپوسیدگی حافظهارزیاب نویزی

چه زمانی از هر الگو استفاده کنیم

مفهوم‌ها
ReAct
وظایف کوتاه، محیط ناشناخته، مدیریت استثنای واکنشی.
ReWOO
وظایف ساختاریافته با ابزارهای شناخته‌شده و شواهد موازی.
Plan-and-Execute
شبیه ReWOO، همراه با بازبرنامه‌ریزی پس از اجرای بخشی از کار.
Plan-and-Act
افق‌های طولانی (بیش از 30 گام)، کار با وب، موبایل یا کامپیوتر.
Reflexion
سیگنال شکست واضح و کلاسی از وظایف که تکرار می‌شوند.
ToT / LATS
تابع ارزش ارزان و قابل‌اعتماد. درستی بر زمان واقعی ارجحیت دارد.
Self-Refine
بدون مدل اعتبارسنج خارجی. یک مدل واحد تولید و نقد می‌کند.
CRITIC
مدل اعتبارسنج خارجی وجود دارد: جست‌وجو، کد، ماشین‌حساب، تست‌ها.

ReAct loop: AgentLoop.run

گام‌به‌گام
  1. کاربرپیام به عنوان یک نوبت user وارد تاریخچه می‌شود.
  2. LLMمتد respond(history) یک فکر و یک اقدام، یا finish برمی‌گرداند.
  3. ToolRegistryمتد dispatch(call) ابزار را با نام اجرا می‌کند.
  4. Formattera bad tool or bad args returns an error: string, not a crash.
  5. حلقهنوبت اقدام و مشاهده‌ی آن وارد تاریخچه می‌شوند. رفتن به گام 2.
  6. توقفfinish، نبود فراخوانی ابزار، سقف نوبت‌ها، سقف توکن‌ها یا فعال‌شدن گاردریل.
  7. سهمیهپس از max_turns حلقه پیغام «budget exhausted» برمی‌گرداند.

ReWOO: برنامه‌ریزی، واکشی، حل

معماری
ترتیب توپولوژیکی#E1#E2شواهدپرسشuser_questionبرنامه‌ریزطرح DAG، بدون مشاهدهکارگر E1search capitalکارگر E2population of #E1کارگر E3round_million #E2حل‌کنندهپرسش، طرح، شواهد

آزمون Reflexion

گام‌به‌گام
  1. کنش‌گرمتد actor.act(memory) یک مسیر کامل اجرای کاندید برمی‌گرداند.
  2. ارزیابمتد binary_evaluator(attempt, TARGET) موفقیت و اختلاف (delta) را برمی‌گرداند.
  3. خودبازاندیشیک خط می‌نویسد، برای مثال «مقادیر بزرگ‌تری انتخاب کن».
  4. حافظه‌ی رویدادی (EpisodicMemory)متد memory.add آن را ذخیره می‌کند. پس از max_len قدیمی‌ترین‌ها حذف می‌شوند.
  5. تلاش بعدیاز نو آغاز می‌شود اما تأمل‌ها را می‌بیند. یک موفقیت اجرا را پایان می‌دهد.

LATS: یک تکرار MCTS

گام‌به‌گام
  1. انتخابحرکت از ریشه به برگ با Q(s, a) + c * sqrt(ln N(s) / N(s, a)).
  2. گسترشتولید K فرزند با خط‌مشی.
  3. شبیه‌سازیپیش‌روی از یک فرزند. امتیازدهی به برگ با تابع ارزش.
  4. پس‌انتشارافزودن 1 به visits و پاداش به value_sum در طول مسیر.

وظایف در قالب کد

کار و کد
وظیفهکد
ثبت یک ابزارtools.register("calculator", calculator)
مرتب‌سازی یک DAG برنامهtopological(plan)
پر کردن ارجاعات #Eresolve_references(value, evidence)
Reflexion همراه با حافظهrun_reflexion(max_trials=4, use_memory=True)
ToT سطح‌اول (BFS)tot_bfs(root_tot)
جست‌وجوی LATSmcts(root_lats, iterations=80, rng=rng)
حلقه ناقد (CRITIC)run_loop("world facts", use_critic=True)

پایپ‌لاین تشدید CoT

کد
python
single_answer, _ = few_shot_cot_solve(question, examples, client, model)  # دمای 0.0
sc_answer, confidence, reasonings, votes = self_consistency_solve(
    question, examples, client, model, n_samples=5
)                                                                         # دمای 0.7، رای اکثریت
if confidence >= 0.8 and single_answer == sc_answer:
    return sc_answer                                                      # توافق 4 نمونه از 5 نمونه
tot_answer, tot_reasoning = tree_of_thought_solve(
    question, client, model, breadth=3, depth=2
)                                                                         # تشدید مسائل دشوار

نردبان استدلال پرامپت (GPT-5، GSM8K)

مقایسه
عاملZero-Shot CoTFew-Shot CoTخودسازگاری (N=5)درخت افکار
فراخوانی‌های API11510-40+
سربار توکن50-200 توکن300-600 توکن5 برابر هزینه‌ی توکن10-40 برابر هزینه‌ی توکن
دقت97٪98٪98.5٪74٪ روی Game of 24
بهترین گزینه برایارتقای سریع استدلالحداکثر دقت در تک‌فراخوانیاستدلال در موقعیت‌های حساسمسائل جست‌وجو/برنامه‌ریزی

پیش‌فرض‌ها در کد درس

پیش‌فرض‌ها
تنظیمپیش‌فرضنکته
max_turns12سهمیه‌ی نوبت‌های AgentLoop. دمو روی 10 تنظیم شده است
max_len6اندازه‌ی EpisodicMemory
max_iters4سقف حلقه‌ی اصلاح در run_loop
`c` in `uct`1.4وزن کاوش
max_expansions_per_level8عرض جبهه در ToT BFS
max_depth3عمق ToT BFS
n_samples5آرای خودسازگاری
temperature0.7مسیرهای نمونه‌برداری‌شده. در دمای 0.0 همه‌ی نمونه‌ها منطبق هستند

عیب‌یابی

عیب‌یابی
  • ایجنت روی خطاهای 400 توهم موفقیت دارد

    علت
    خطا بازخورد داده نشده است
    راه‌حل
    تبدیل هر خطا به یک رشته‌ی مشاهده
  • یک صفحه‌ی وب به ایجنت دستور می‌دهد

    علت
    فروپاشی مرز اعتماد
    راه‌حل
    تنها دستورات مستقیم کاربر به عنوان مجوز پذیرفته شوند
  • «cyclic plan or unresolved reference»

    علت
    یک گام به گره‌ای ناموجود ارجاع دارد
    راه‌حل
    اصلاح ارجاعات #E در طرح
  • اجراهای مجدد کُندتر می‌شوند، توصیه‌های منسوخ

    علت
    پوسیدگی حافظه
    راه‌حل
    فشرده‌سازی یا TTL برای تأمل‌ها
  • تأمل کمکی نمی‌کند

    علت
    شکست بیرونی، قطعی شبکه
    راه‌حل
    اجراهای ناپایدار و موردی ذخیره نشوند
  • ناقد همیشه می‌گوید خوب به نظر می‌رسد

    علت
    حلقه‌ی تایید صوری
    راه‌حل
    استفاده از پرامپت‌های ساختاریافته‌ی متفاوت
  • جست‌وجو پاسخ اشتباهی با امتیاز بالا پیدا می‌کند

    علت
    ارزیاب نویزی
    راه‌حل
    استفاده از جست‌وجو تنها در صورت وجود یک تابع ارزش قابل‌اعتماد

پرسش‌ها

پرسش و پاسخ
چرا ReWOO توکن کمتری مصرف می‌کند؟
پرامپت‌های ReAct شامل تک‌تک گام‌های پیشین هستند. کارگران ReWOO تنها فراخوانی ابزار را دریافت می‌کنند.
چرا یک مدل 7B می‌تواند برنامه‌ریزی کند؟
برنامه‌ریز مشاهده‌ها را نمی‌بیند. این مدل از طرح‌های آموزگار 175 میلیاردی یاد می‌گیرد.
LATS چه چیزی به ToT اضافه می‌کند؟
الگوریتم MCTS. مدل LLM نقش خط‌مشی، تابع ارزش و خودبازاندیش را دارد.
چرا Self-Refine تاریخچه را حفظ می‌کند؟
مرحله‌ی بازبینی خروجی‌ها و نقدهای قبلی را می‌بیند. بدون تاریخچه، کیفیت به شدت افت می‌کند.
چرا CRITIC بهتر از Self-Refine است؟
یک توهم غالباً برای مدلی که آن را تولید کرده متقاعدکننده به نظر می‌رسد.
افزودن CoT به یک مدل استدلالی؟
خیر. مدل‌های سری o و DeepSeek-R1 به صورت درونی CoT را اجرا می‌کنند.

نکات کاربردی

نکته‌ها
  • با ساده‌ترین الگو شروع کنید. یک فراخوانی ابزار به همراه خلاصه‌سازی نیازی به ReWOO ندارد.
  • حلقه‌ی اصلاح را در صورت تایید مدل اعتبارسنج متوقف کنید. همچنین آن را با max_iterations محدود نمایید.
  • ضریب انشعاب K را بین 3 تا 5 نگه دارید. K=10 هزینه را به شدت منفجر می‌کند.