برنامه ریزی و اجرای برنامه: برنامه ریزی غیرمرتبط
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 همبستگی را از دست می دهد.
چه وقت انتخاب کن
| Pattern | When |
|---|---|
| ReAct | Short tasks, unknown environment, need reactive exception handling |
| ReWOO | Structured tasks with known tools, token-sensitive, parallelizable evidence |
| Plan-and-Execute | Like ReWOO but with replanning after partial execution |
| Plan-and-Act | Long-horizon (>30 steps), web/mobile/computer-use |
| Tree of Thoughts | Search 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 را از یک درخواست کاربر، با یک کاتالوگ ابزار تولید می کند. قبل از تحویل به یک اجرا کننده، برنامه را تأیید می کند (اکسیکل، هر مرجع حل شده، هر ابزار وجود دارد).
تمرینات
- اجرا کردن کارکن ها به واسطه گره های مستقل برنامه چه چیزی برای شما در یک DAG 6 گره با 2 گروه موازی می خرید؟
- یک گره برنامه ریزی مجدد اضافه کنید که اگر هر کارگر یک خطا را بازگرداند، اجرا می شود. کوچکترین تغییر در ReWOO چیست که باعث می شود برنامه ریزی و اجرا شود؟
- جایگزینش کن
Plannerبا مدل کوچک (کلاس 7B) و نگهدارندهSolverدر یک مدل مرز. مقایسه کیفیت پایان به پایان تقسیم شکست کجاست؟ - بخش 4 مقاله ReWOO را در مورد تخلیه برنامه نویس بخوانید. نتیجه 175B -> 7B را به صورت مفهومی بازتولید: چه داده های آموزشی مورد نیاز هستید و چگونه کیفیت برنامه را ارزیابی می کنید؟
- بازیک را به شکل مسیر برنامه و عمل منتقل کنید: برنامه یک دنباله است، نه یک DAG. چه تعادلاتی تغییر می کند؟
اصطلاحات کلیدی
| Term | What people say | What 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 |
خواندن بیشتر
- Xu et al., ReWOO: Decoupling Reasoning from Observations (arXiv:2305.18323) کاغذی کاینونیکی
- Erdogan et al., Plan-and-Act (arXiv:2503.09572) برنامه نویس-کارساز مقیاس دار با برنامه های مصنوعی
- LangGraph Plan-and-Execute tutorial دستور کار چارچوب
- Anthropic, Building Effective Agents ساده ترین الگوی را انتخاب کنید که کار کند
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.