Phase 14: Agent Engineering

برنامه ریزی با HTN و جستجوی تکاملی

برنامه ریزی نمادین در موارد است که برنامه به طور اثبات شده درست است. جستجوی کد تکاملی در موارد است که عملکرد تناسب اندام را می توان به صورت ماشین بررسی کرد. ChatHTN (2025) و AlphaEvolve (2025) نشان می دهد که هر یک از آنها در هنگام جفت با یک LLM چه چیزی را باز می کند.

Type: Build

Languages: Python (stdlib)

Prerequisites: Phase 14 · 02 (ReWOO and Plan-and-Execute)

Time: ~75 minutes

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

  • شبکه های وظیفه ای سلسله مراتبی را توضیح دهید: وظایف، روش ها، اپراتورها، پیش شرط ها، اثرات.
  • حلقه های ترکیبی ChatHTN را با تجزیه برگشت LLM توصیف کنید.
  • حلقه تکاملي آلفا ايولف رو شرح بده و چرا فقط با يه ارزیابی کننده برنامه اي کار ميکنه
  • برنامه ريزي بازي هاي HTN و جستجو تکامل بازي هاي بازي در stdlib رو اجرا کن

مشکل

ReWOO (درسی 02), برنامه ریزی و اجرای، و ReAct پوشش بیشتر برنامه ریزی عوامل. دو مورد آنها را به خوبی پوشش نمی دهند:

  1. Plans with provable correctness.برنامه ریزی، مسیر پرواز، جریان کار مطابق برنامه باید از طریق ساخت درست باشد. یک برنامه LLM روان که گاهی اوقات یک مرحله را توهم می دهد قابل قبول نیست.
  2. Optimizations with a machine-checkable fitness function.ضرب ماتریکس، برنامه ریزی هوریستیک، مرور ساز هدف "خطای صحیح" نیست بلکه "بهترین خط" است.

برنامه ریزی HTN و AlphaEvolve دو مشکل مختلف را حل می کنند. هر دو LLM را به عنوان تقویت کننده، نه جایگزین استفاده می کنند.

مفهوم

شبکه های وظیفه سلسله مراتبی

یک HTN عبارت است از:

  • Tasks ترکیب (که تجزیه می شود) و ابتدایی (که به طور مستقیم اجرا می شود).
  • Methods راه هایی برای تجزیه یک کار مرکب به زیرکار با شرایط پیش فرض.
  • Operators اقدامات ابتدایی با شرایط پیش فرض و اثرات.
  • State مجموعه ای از حقایق

برنامه ریزی: با توجه به یک وظیفه هدف و یک حالت اولیه، تجزیه به اپراتورهای ابتدایی که شرایط پیش فرض آنها به ترتیب برآورده می شود را پیدا کنید.

HTN از LLM ها قدیمی تر است و هنوز هم مرجع برای برنامه های ثابت شده درست است.

ChatHTN (گوپالاکریشانان و همکارانش، 2025)

ChatHTN (arXiv:2505.11814) HTN نمادین را با سوالات LLM متقابل می کند:

  1. سعی کنید وظیفه ی ترکیب فعلی را با روش های موجود تجزیه کنید.
  2. اگر هیچ روش ای مورد استفاده قرار نگیرد، از LLM بپرسید: "چگونه می خواهید تجزیه کنید taskدر ایالتs؟ "
  3. پاسخ LLM را به زیرکار های کاندید ترجمه کنید.
  4. با شیما عامل تأیید کنید؛ تجزیه های باطل را رد کنید.
  5. تکرار کن

ادعای اصلی مقاله: هر طرح تولید شده به طور اثبات شده معتبر است زیرا پیشنهادات LLM فقط به عنوان تجزیه نامزدی، هرگز به عنوان ویرایش مستقیم برنامه وارد می شوند. لایه نمادین درست است؛ LLM کتابخانه روش را گسترش می دهد.

یادگیری روش های آنلاین (OpenReview gwYEDY9j2xدر سال 2025 (در سال های بعدی) یک دانش آموز را اضافه می کند که تجزیه تولید شده توسط LLM را با بازگشت به طور کلی کاهش می دهد فرکانس سوالات LLM را تا 75 درصد کاهش می دهد.

AlphaEvolve (Novikov و همکارانش، 2025)

آلفا ایولو (arXiv:2506.13131, DeepMind، ژوئن 2025) یک حیوان متفاوت است: جستجوی کد تکاملی که توسط یک گروه دوقلو 2.0 Flash / Pro اجرا می شود.

لوله:

  1. با یک برنامه تخم مرغ + یک ارزیابی کننده برنامه (بازرس نمره تناسب اندام) شروع کنید.
  2. مجموعه ی LLM ها جهش ها را پیشنهاد می کنند.
  3. جهش ها رو از طریق ارزیابی کننده انجام بده
  4. بهترین ها رو نگه دار، دوباره جهش کن

برندهای منتشر شده:

  • اولین پیشرفت نسبت به استراسن برای ضرب ماتریک پیچیده 4x4 در 56 سال (48 ضرب اسکالر)
  • 0.7 درصد از آنها از طریق برنامه ریزی بورگ حساب گوگل را بازیابی کردند.
  • 32 درصد سرعت افزايش توجه فلاش در بار کاري مرز

محدودیت سخت: عملکرد تناسب اندام باید قابل چک ماشین باشد. جستجوی تکامل در پاسخ های درنتیجه به هم نمی رسد.

چه زمانی باید از کدام استفاده شود؟

Problem classUseWhy
Scheduling with hard constraintsHTN + ChatHTNProvable soundness
Compiler optimizationAlphaEvolveMachine-checkable fitness
Multi-step task executionReAct / ReWOOLLM in the loop, no formal guarantees
Code improvement with testsAlphaEvolveTests are the evaluator
Policy-bound automationHTNPreconditions encode policy

جایی که این الگوی اشتباه می شود

  • HTN without operators.بدون طرح های پیش شرط / اثر ادعای صلحی سقوط می کند. "LLM نشان می دهد تجزیه" ChatHTN نیاز به طرح برای رد حرکات باطل.
  • AlphaEvolve without a real evaluator." از استاد ارشد بپرس که آیا کد بهتر است " یک تابع تناسب اندام نیست. ارزیابی کننده باید تعیین کننده و سریع باشد.
  • Over-engineering.بیشتر وظایف مامورها هم نیازی به این نیست، اول به ReAct یا ReWOO برسن

آن را بسازید

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

  • یک برنامه ریز HTN stdlib با اپراتورها، روش ها، شرایط پیش فرض، اثرات و یک LLMFallbackاین روش در زمانی که هیچ روش ای با یک کار ترکیبی مطابقت ندارد، کار می کند. LLM یک تجزیه کننده اسکریپت شده است، بنابراین برنامه نویس غیر فعال می شود.
  • یک جستجوی تکاملی در مورد برنامه های ریاضی: عبارت های رشد که تولید آن به حداقل می رسد|f(x) - target|در مورد یک مجموعه تست. ارزیابی کننده تعیین کننده است.

اجرا کن

python3 code/main.py

ردیابی نشان می دهد که برنامه ریز HTN یک کار ترکیبی را تجزیه می کند (با سقوط LLM در میان برنامه) و حلقه تکاملی در یک عبارت هدف همگام می شود.

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

  • HTN planners pyhop،SHOP3، یا ساخت خود را برای اجرای سیاست های خاص حوزه.
  • ChatHTN کد تحقیق؛ الگوی (نمایی + LLM fallback) به طور تمیز به هر برنامه نویس HTN می رسد.
  • AlphaEvolve کاغذ DeepMind؛ الگوی (جامعه + ارزیابی کننده) قابل بازیافت است. OpenEvolve و فورک های منبع باز مشابه در حال ظهور هستند.
  • Agent frameworks هنوز هیچ کشتی ای از کلاس اول HTN یا AlphaEvolve وجود ندارد.

-باده

outputs/skill-hybrid-planner.mdیک استفادۀ برنامه ریزی های ترکیبی (HTN یا تکاملی) را با نقش LLM به طور صریح مشخص می کند.

تمرینات

  1. برنامه ریزی کننده HTN را با عقب نشینی گسترش دهید: هنگامی که حالت پس از کار در زمان اجرا شکست می خورد، عقب نشینی کنید و روش بعدی را امتحان کنید.
  2. یک حافظه ی حافظه ی روش LLM را به ChatHTN اضافه کنید: وقتی LLM وظیفه را تجزیه کند Tدر حالت حالتP، نتیجه رو ذخیره کن، ابتدا در تماس بعدی کتابخانه روش رو دوباره چک کن
  3. ارزیابی کننده جستجوی تکاملی را به یک مجموعه آزمایش واقعی تغییر دهید. یک تابع مرتب سازی را توسعه دهید که 20 مورد آزمایش را عبور می کند؛ نسل ها را به تقارب گزارش دهید.
  4. یادداشت های طراحی ارزیابی کننده AlphaEvolve را بخوانید. یک ارزیابی کننده را برای یک دامنه که به آن اهمیت می دهید (توسال بهینه سازی سوال SQL، کم کردن مجموعه آزمایش، پیاده سازی YAML) طراحی کنید.
  5. ترکیب: با استفاده از HTN یک کار ترکیب را به زیر وظایف تجزیه کنید، سپس با استفاده از جستجوی تکاملی در هر عامل اولیه زیر وظایف استفاده کنید. کجا درخشش می دهد، کجا بیش از حد مهندسی می کند؟

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

TermWhat people sayWhat it actually means
HTN"Hierarchical planner"Task decomposition with operators, preconditions, effects
Method"Decomposition rule"Way to break a compound task into subtasks
Operator"Primitive action"Concrete step with precondition and effect
ChatHTN"LLM + HTN"Symbolic planner asks LLM when no method matches
AlphaEvolve"Evolutionary code search"Ensemble LLMs mutate code; deterministic evaluator selects
Fitness function"Evaluator"Deterministic, machine-checkable score over outputs
Online method learning"Cached LLM decomposition"Store + generalize LLM plans to cut query cost

خواندن بیشتر

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.