Phase 14: Agent Engineering

برنامه ریزی و اجرای برنامه: برنامه ریزی غیرمرتبط

ReAct فکر و عمل را در یک جریان به هم می گذارد. ReWOO آنها را جدا می کند: یک طرح بزرگ در پیش، سپس اجرا می کند. 5 برابر کمتر توکن، دقت +4% در HotpotQA، و شما می توانید برنامه نویس را به یک مدل 7B تبدیل کنید. برنامه و اجرا آن را عمومی کرد؛ برنامه و عمل آن را به ناوبری وب مقیاس بندی کرد.

Type: Build

Languages: Python (stdlib)

Prerequisites: Phase 14 · 01 (Agent Loop)

Time: ~60 minutes

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

  • توضیح دهید که چرا تقسیم برنامه نویس / کارگر / حل کننده ReWOO توکن ها را ذخیره می کند و ثبات را در مقایسه با حلقه متقابل ReAct بهبود می بخشد.
  • اجرای یک DAG برنامه، یک اجرای وابسته به امر، و یک حل کننده که تولیدات کارگر را تشکیل می دهد تمام stdlib.
  • تصمیم بگیرید که چه زمانی یک کار باید به عنوان برنامه بعد از اجرای به عنوان ReAct متقابل اجرا شود، با استفاده از چارچوب "پنج الگوی جریان کار" 2026 (انتروپک).
  • تشخیص اینکه چه زمانی داده های مصنوعی برنامه برنامه برنامه ریزی برنامه و عمل برای کارهای وب یا موبایل بلندمدت مورد نیاز است.

مشکل

حلقه بین بین فکر و عمل و مشاهده ReAct ساده و انعطاف پذیر است، اما هر تماس ابزار باید زمینه قبلی کامل را شامل هر فکر قبلی داشته باشد. استفاده از توکن به طور مربع با عمق رشد می کند. بدتر: هنگامی که یک ابزار در وسط حلقه شکست می خورد، مدل باید دوباره کل طرح را از مشاهده خطا باز کند.

ReWOO (Xu et al., arXiv:2305.18323, مه 2023) متوجه این شد و شرط بندی کرد: همه چیز را پیش از پیش برنامه ریزی کنید، شواهد را در موازی بیاورید، پاسخ را در پایان تهیه کنید. یک LLM به برنامه ریزی می گوید، ابزار N به دلیل شواهد (می تواند موازی باشد) ، یک LLM به دلیل حل می کند. تجارت انعطاف پذیری کمتری دارد (خطای ثابت است) برای بهره وری بسیار بهتر توکن و حالت های شکست روشن تر.

مفهوم

سه نقش

Planner:  user_question -> [plan_dag]
Workers:  [plan_dag]     -> [evidence]        (tool calls, possibly parallel)
Solver:   user_question, plan_dag, evidence -> final_answer

برنامه نویس یک DAG تولید می کند. هر گره نام یک ابزار، استدلال های آن و کدام گره های قبلی آن را بستگی دارد (رجایاتی مانند #E1،#E2.کارگران گره ها رو به ترتیب توپولوژیک اجرا می کنن

چرا 5 برابر کمتر از توکن ها

ReAct طول سریع به صورت خطی با تعداد مراحل رشد می کند. در مرحله 10، پرامپت شامل فکر 1 به علاوه عمل 1 به علاوه مشاهده 1 به علاوه فکر 2 به علاوه عمل 2 به علاوه مشاهده 2 و غیره است. هر مرحله متوسط نیز شامل پرامپت اصلی است.

ReWOO یک برنامه نویس را (بزرگ) ، N کارکن کوچک را (هر یک فقط صدا ابزار، بدون زنجیره) و یک حل کننده را پرداخت می کند. در HotpotQA کاغذ اندازه گیری 5 برابر کمتر توکن ها با امتیاز +4 دقت مطلق است.

چرا قوی تر است

اگر کارگر 3 در ReAct شکست خورد، حلقه باید از خطا در وسط جریان استدلال کند. در ReWOO، کارگر 3 یک رشته خطا را باز می آورد؛ حل کننده آن را در زمینه با برنامه اصلی می بیند و می تواند به صورت زیبا کاهش دهد. محل وقوع شکست در هر گره است، نه در هر مرحله.

تخمیر و تولید

نتیجه دوم مقاله: از آنجا که برنامه نویس مشاهدات را نمی بیند، می توانید یک مدل 7B را بر روی نتایج برنامه نویس از یک معلم 175B تنظیم کنید. مدل کوچک برنامه ریزی را اداره می کند؛ مدل بزرگ در نتیجه گیری مورد نیاز نیست. این اکنون استاندارد است. بسیاری از عوامل تولید 2026 از یک برنامه نویس کوچک و یک اجرای بزرگ استفاده می کنند یا برعکس.

برنامه ریزی و اجرای (2023)

در پست آگوست 2023 تیم لانگ چین ReWOO را به یک نام الگویی: برنامه ریزی و اجرا عمومی کرد. برنامه نویس پیش رو یک لیست گام ها را منتشر می کند، اجرا کننده هر گام را اجرا می کند، یک برنامه نویس اختیاری می تواند پس از مشاهده نتایج نظرسنجی کند. این به ReAct نزدیک تر از ReWOO است (تجزیه کننده مشاهدات را به برنامه ریزی می آورد) اما صرفه جویی توکن را حفظ می کند.

برنامه و قانون (اردگان و همکارانش، arXiv:2503.09572، ICML 2025)

برنامه و عمل الگوی را به عوامل وب و تلفن همراه افق دراز می اندازد. سهم کلیدی داده های نقشه مصنوعی است: یک ژنراتور مسیر برچسب گذاری شده داده های آموزشی را در جایی که برنامه صریح است تولید می کند. برای تنظیم مدل های برنامه نویس که در کارهای مشابه WebArena از 3050 مرحله گذشته کار می کنند، استفاده می شود که در آن یک مسیر ReAct همبستگی را از دست می دهد.

چه وقت انتخاب کن

PatternWhen
ReActShort tasks, unknown environment, need reactive exception handling
ReWOOStructured tasks with known tools, token-sensitive, parallelizable evidence
Plan-and-ExecuteLike ReWOO but with replanning after partial execution
Plan-and-ActLong-horizon (>30 steps), web/mobile/computer-use
Tree of ThoughtsSearch is worth paying for (Lesson 04)

راهنمای دیسمبر 2024 Anthropic: با ساده ترین شروع کنید. اگر وظیفه یک تماس ابزار و خلاصه ای باشد، ReWOO را بسازید. اگر وظیفه یک وظیفه تحقیقاتی 40 مرحله ای باشد، تنها ReAct را انجام ندهید.

آن را بسازید

code/main.pyیک بازی ReWOO را اجرا می کند:

  • Planner یک سیاست نوشته شده که یک برنامه DAG را از یک پیام ارسال می کند.
  • Worker تماس ابزار هر گره را از طریق ثبت ارسال می کند.
  • Solver ترکیب نوشته شده ای که شواهد را می خواند و پاسخ نهایی را ارائه می دهد.
  • قطعنامه وابستگی مرجع هایی مانند #E1با تولیدات قبلی کارگران جایگزین می شوند.

نمایش پاسخ به " جمعیت پایتخت فرانسه چه مقدار است؟ به صورت گرد و گرد به میلیون ها نفر؟ " با استفاده از یک برنامه دو مرحله ای: (1) جستجوی پایتخت، (2) جستجوی جمعیت، سپس حل.

اجرا کن

python3 code/main.py

ردیابی ابتدا طرح کامل را نشان می دهد، سپس نتایج کارکن، سپس ترکیب حل کننده. تعداد نماد (ما یک تعداد کرکتر تقریبا چاپ می کنیم) را با یک اجرا متقابل به سبک ReAct مقایسه کنید.

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

کشتی های LangGraph برنامه ریزی و اجرا به عنوان یک دستور (create_react_agentبرای ReAct، نمودار سفارشی برای اجرای برنامه است. جریان های CrewAI الگوی را مستقیماً رمزگذاری می کنند: شما وظایف را از پیش تعریف می کنید و Flow DAG آنها را اجرا می کند. رویکرد داده های مصنوعی Plan-and-Act هنوز بیشتر تحقیقات است؛ الگوی زمان اجرا (DAG برنامه صریح) از طریق LangGraph و CrewAI Flow در تولید قرار می گیرد.

-باده

outputs/skill-rewoo-planner.mdیک برنامه DAG ReWOO را از یک درخواست کاربر، با یک کاتالوگ ابزار تولید می کند. قبل از تحویل به یک اجرا کننده، برنامه را تأیید می کند (اکسیکل، هر مرجع حل شده، هر ابزار وجود دارد).

تمرینات

  1. اجرا کردن کارکن ها به واسطه گره های مستقل برنامه چه چیزی برای شما در یک DAG 6 گره با 2 گروه موازی می خرید؟
  2. یک گره برنامه ریزی مجدد اضافه کنید که اگر هر کارگر یک خطا را بازگرداند، اجرا می شود. کوچکترین تغییر در ReWOO چیست که باعث می شود برنامه ریزی و اجرا شود؟
  3. جایگزینش کنPlannerبا مدل کوچک (کلاس 7B) و نگهدارندهSolverدر یک مدل مرز. مقایسه کیفیت پایان به پایان تقسیم شکست کجاست؟
  4. بخش 4 مقاله ReWOO را در مورد تخلیه برنامه نویس بخوانید. نتیجه 175B -> 7B را به صورت مفهومی بازتولید: چه داده های آموزشی مورد نیاز هستید و چگونه کیفیت برنامه را ارزیابی می کنید؟
  5. بازیک را به شکل مسیر برنامه و عمل منتقل کنید: برنامه یک دنباله است، نه یک DAG. چه تعادلاتی تغییر می کند؟

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

TermWhat people sayWhat it actually means
ReWOO"Reasoning without observations"Plan, then fetch evidence in parallel, then solve — no observations in the planning prompt
Plan-and-Execute"LangChain's plan-execute pattern"ReWOO with an optional replanner node after execution
Plan-and-Act"Scaled plan-execute"Explicit planner/executor split with synthetic plan training data for long-horizon tasks
Evidence reference"#E1, #E2, ..."Plan-node placeholder substituted with prior worker output at dispatch time
Planner distillation"Small planner, big executor"Fine-tune a small model on planner traces from a large teacher
Token efficiency"Fewer round trips"5x fewer tokens on HotpotQA vs ReAct in the paper
DAG executor"Topological dispatcher"Runs plan nodes in dependency order; parallel at each level

خواندن بیشتر

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.