فاز 14 · درس 10

کتابخانه مهارت و یادگیری مادام‌العمر در ایجنت‌ها با معماری Voyager

نوع
ساختنی
زمان
حدود 75 دقیقه
زبان‌ها
Python (stdlib)
پیش‌نیاز
فاز 14 · درس 07 (MemGPT)، فاز 14 · درس 08 (Letta Blocks)
یک کتابخانه مدرن با قفسه‌های شفاف که درون هر جعبه، بلوک‌های مدولار درخشان با قابلیت اتصال به یکدیگر نگهداری می‌شوند
فهرست مطالب
  1. اهداف یادگیری
  2. صورت مسئله
  3. مفاهیم پایه
  4. سه مؤلفه‌ی اصلی
  5. فضای کنش = کد
  6. بازیابی مهارت
  7. صیقل تکرارشونده
  8. برنامه‌ی درسی و کاوش
  9. چالش‌ها و خطاهای رایج الگو
  10. پیاده‌سازی عملی
  11. کاربردهای واقعی
  12. نتیجه و خروجی
  13. تمرین‌ها
  14. اصطلاحات کلیدی
  15. برای مطالعه‌ی بیشتر

بسیاری از ایجنت‌های هوش مصنوعی در هر نشست، مسیر حل مسائل را از صفر آغاز می‌کنند. این رویکرد نه تنها باعث اتلاف شدید توکن‌ها و هزینه‌های پردازشی می‌شود، بلکه مانع از انتقال تجربیات قبلی به تسک‌های جدید می‌گردد و اجرای کارهای طولانی‌مدت و چندمرحله‌ای را ناممکن می‌سازد.

معماری Voyager با تبدیل قابلیت‌ها به قطعه‌کدهای اجرایی و ذخیره‌ی آن‌ها در یک «کتابخانه‌ی مهارت» (Skill Library)، امکان یادگیری مادام‌العمر را برای مدل فراهم می‌کند. این الگو هسته‌ی اصلی استانداردسازی ابزارها در Claude Agent SDK و اکوسیستم‌های نوین ایجنت به شمار می‌رود.

پیاده‌سازی ارائه‌شده در این درس با کتابخانه‌ی استاندارد پایتون (stdlib) انجام می‌شود و بدون نیاز به سخت‌افزارهای سنگین یا سرویس‌های ابری خاص، کاملاً روی سیستم شخصی و پردازنده‌ی معمولی قابل اجراست.

وویجر (Voyager، وانگ و همکاران، TMLR 2024) با کد اجرایی مانند یک مهارت (Skill) برخورد می‌کند. مهارت‌ها نام‌گذاری می‌شوند، قابل‌بازیابی و ترکیب‌پذیرند و با بازخورد محیط صیقل می‌خورند. این رویکرد، معماری مرجع برای اسکیل‌های ایجنت (Agent Skills) در Claude Agent SDK، کتابخانه‌ی skillkit و الگوی کتابخانه‌ی مهارت در سال 2026 است.

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

  • نام بردن از سه مؤلفه‌ی وویجر (برنامه‌ی درسی خودکار، کتابخانه‌ی مهارت و پرامپت‌نویسی تکرارشونده) و توضیح نقش هر یک.
  • توضیح این‌که چرا وویجر فضای کنش (Action space) را از جنس کد تعریف می‌کند، نه دستورات اولیه‌ی سطح پایین.
  • پیاده‌سازی یک کتابخانه‌ی مهارت با کتابخانه‌ی استاندارد پایتون (stdlib)، شامل ثبت، بازیابی، ترکیب و بازبینیِ مبتنی بر خطا.
  • نگاشت الگوی وویجر بر اسکیل‌های ایجنت در Claude Agent SDK سال 2026 و اکوسیستم skillkit.

صورت مسئله

ایجنت‌هایی که در هر نشست (Session) همه‌چیز را از صفر بازسازی می‌کنند، دچار سه خطای اساسی می‌شوند:

  1. هدر دادن توکن‌ها. هر تسک دوباره همان مسیر استدلال قبلی را بازتولید می‌کند.
  2. از دست رفتن دستاوردها. اصلاحی که در نشست A یاد گرفته شده، به نشست B منتقل نمی‌شود.
  3. شکست در ترکیب کارهای بلندمدت. کارهای پیچیده نیازمند سلسله‌مراتب مهارتی هستند؛ پرامپت‌های تک‌مرحله‌ای (One-shot) از بیان چنین ساختارهایی ناتوان‌اند.

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

مفاهیم پایه

سه مؤلفه‌ی اصلی

وویجر (arXiv:2305.16291) ایجنت را بر پایه‌ی سه بخش سازمان‌دهی می‌کند:

  1. برنامه‌ی درسی خودکار (Automatic curriculum). یک ماژول پیشنهاددهنده‌ی مبتنی بر کنجکاوی، تسک بعدی را بر اساس مجموعه‌مهارت‌های فعلی ایجنت و وضعیت محیط انتخاب می‌کند. این کاوش کاملاً پایین به بالا (Bottom-up) است.
  2. کتابخانه‌ی مهارت (Skill library). هر مهارت، یک کد اجرایی است. به‌محض موفقیت در یک تسک، مهارت جدیدی اضافه می‌شود. بازیابی مهارت‌ها نیز با سنجش شباهت متن درخواست (Query) به توضیحات مهارت انجام می‌گیرد.
  3. سازوکار پرامپت‌نویسی تکرارشونده (Iterative prompting mechanism). هنگام شکست، ایجنت خطاهای اجرا، بازخورد محیط و خروجیِ خوداعتبارسنجی را دریافت و سپس مهارت را بازنویسی می‌کند.

نتایج ارزیابی در بازی ماینکرفت (وانگ و همکاران، 2024): 3.3 برابر آیتم‌های منحصربه‌فرد بیشتر، 8.5 برابر دستیابیِ سریع‌تر به ابزارهای سنگی، 6.4 برابر سرعت بیشتر در ساخت ابزارهای آهنی و 2.3 برابر پیمایش طولانی‌تر نقشه نسبت به خطوط مبنا (Baselines). این آمارها ویژه‌ی ماینکرفت است، اما الگو کاملاً قابل‌انتقال به حوزه‌های دیگر است.

فضای کنش = کد

بیشتر ایجنت‌ها دستورات اولیه‌ی سطح پایین صادر می‌کنند؛ اما وویجر توابع JavaScript می‌سازد. یک مهارت به این صورت است:

async function craftIronPickaxe(bot) {
  await mineIron(bot, 3);
  await mineStick(bot, 2);
  await placeCraftingTable(bot);
  await craft(bot, 'iron_pickaxe');
}

مهارت از دل ریزمهارت‌ها ترکیب می‌شود؛ با شناسه و کلیدِ «توضیحات و امبدینگ» ذخیره می‌گردد؛ و به‌صورت یک برنامه بازیابی می‌شود، نه یک پرامپت.

این همان اسکیل Claude Agent SDK در سال 2026 است: قطعه کدی نام‌گذاری‌شده و قابل‌بازیابی، همراه با دستورالعمل‌هایی که ایجنت بنا به نیاز بارگذاری می‌کند.

بازیابی مهارت

برای تسک جدیدِ «یک کلنگ الماسی بساز»، ایجنت:

  1. توضیحات تسک را امبد می‌کند.
  2. کتابخانه‌ی مهارت را برای یافتن k مهارت شبیه‌تر جست‌وجو می‌کند.
  3. مواردی مانند craftIronPickaxe، mineDiamond و placeCraftingTable را بازیابی می‌کند.
  4. مهارت جدید را با ترکیب توابع پایه‌ی بازیابی‌شده و منطق جدید می‌سازد.

این دقیقاً همان الگویی است که منابع MCP (فاز 13) و اسکیل‌های Agent SDK پیاده می‌کنند: بازیابی روی بستری از دانش/کد، در دامنه‌ی محدود به تسک فعلی.

صیقل تکرارشونده

حلقه‌ی بازخورد وویجر:

  1. ایجنت کد یک مهارت را می‌نویسد.
  2. مهارت در محیط اجرا می‌شود.
  3. یکی از سه سیگنال زیر بازمی‌گردد: success، error (به همراه ردگیری محاسبات خطا و فراخوانی‌ها یا Stack trace) یا self-verification failure.
  4. ایجنت با استفاده از این سیگنال به‌عنوان کانتکست، کد مهارت را بازنویسی می‌کند.
  5. حلقه تا رسیدن به موفقیت یا سقف مجاز تکرارها ادامه می‌یابد.

این همان تکنیک Self-Refine (درس 05) است که روی تولید کد اعمال شده و با اعتبارسنجی در محیط واقعی گره خورده است. الگوی CRITIC (درس 05) هم دقیقاً همین است؛ با این تفاوت که ابزارهای خارجی نقش مدل اعتبارسنج (Verifier) را ایفا می‌کنند.

برنامه‌ی درسی و کاوش

ماژول برنامه‌ی درسی وویجر، تسک‌هایی مانند «ساخت پناهگاه کنار دریاچه» را بر اساس داشته‌های ایجنت و کارهایی که هنوز انجام نداده پیشنهاد می‌دهد. این ماژول با ترکیب وضعیت محیط و دارایی‌های مهارتی، تسکی را انتخاب می‌کند که کمی فراتر از توانایی فعلی ایجنت باشد؛ یعنی نقطه‌ی طلایی کاوش.

در ایجنت‌های محیط تولید، این سازوکار به عملگر «چه چیزی کم داریم؟» تبدیل می‌شود: با توجه به کتابخانه‌ی مهارت‌های موجود و دامنه‌ی کاری، چه مهارت‌هایی را هنوز پوشش نداده‌ایم؟ تیم‌ها معمولاً این کار را به‌صورت دستی و در قالب بازبینی برنامه‌ی درسی پیاده می‌کنند.

چالش‌ها و خطاهای رایج الگو

  • پوسیدگی کتابخانه‌ی مهارت (Skill library rot). ثبت ده‌باره‌ی یک مهارت یکسان با توضیحاتی اندک متفاوت. راهکار: حذف داده‌های تکراری (Deduplication) هنگام نوشتن؛ طوری که بازیابی فقط یک خروجی معتبر بدهد.
  • انحراف مهارت‌های ترکیبی (Composed-skill drift). وابستگی مهارت والد به فرزندی که به‌تازگی بازنویسی شده است. راهکار: مهارت‌ها را نسخه‌بندی کنید؛ والدی که به نسخه‌ی 1 متصل شده، نباید خودبه‌خود نسخه‌ی 3 را اجرا کند.
  • افت کیفیت بازیابی. با عبور تعداد مهارت‌های کتابخانه از چند صد مورد، کیفیت بازیابی برداری بر اساس توضیحات افت می‌کند. راهکار: جست‌وجو را با فیلترهای برچسب و شروط سخت‌گیرانه (مانند «تنها مهارت‌های دسته‌ی category=tooling») تقویت کنید.
کتابخانه مهارت VOYAGERاپیزودها را بکشید
VOYAGER SKILL LIBRARYA lifelong agent turns each solved task into a named, reusable skill and stores it. As episodes accumulate, the library grows, and later tasks are solved faster by composing skills already on the shelf instead of starting from scratch. The capability compounds: every success makes the next problem cheaper.2ep14ep25ep37ep4ep5ep6ep7ep8مهارت‌های موجود در کتابخانه پس از هر اپیزود
یک ایجنت مادام‌العمر هر تسک حل‌شده را به مهارتی نام‌دار و با قابلیت استفاده‌ی مجدد تبدیل کرده و ذخیره می‌کند. با انباشته شدن اپیزودها، کتابخانه گسترش می‌یابد و تسک‌های بعدی به‌جای شروع از صفر، با ترکیب مهارت‌های موجود سریع‌تر حل می‌شوند. توانمندی هم‌افزا می‌شود: هر موفقیت، حل مسئله بعدی را کم‌هزینه‌تر می‌کند.

پیاده‌سازی عملی

فایل code/main.py یک کتابخانه‌ی مهارت را با استفاده از کتابخانه‌ی استاندارد پیاده می‌کند:

  • Skill — نام، توضیحات، کد (به‌صورت رشته)، نسخه، برچسب‌ها و وابستگی‌ها.
  • SkillLibrary — ثبت، جست‌وجو (هم‌پوشانی توکن‌ها)، ترکیب (مرتب‌سازی توپولوژیک وابستگی‌ها) و صیقل دادن (ارتقای نسخه پس از به‌روزرسانی).
  • یک ایجنت فیلم‌نامه‌نویسی‌شده (Scripted) که سه مهارت اولیه را ثبت می‌کند، مهارت چهارم را می‌سازد، با خطا روبه‌رو می‌شود و سپس کد را اصلاح می‌کند.

اجرای برنامه:

python3 code/main.py

ردگیری محاسبات (Trace) مراحل نوشتن در کتابخانه، بازیابی، ترکیب، یک اجرای ناموفق و بازبینی نسخه‌ی 2 را نمایش می‌دهد؛ یعنی تمام حلقه‌ی وویجر از ابتدا تا انتها.

کاربردهای واقعی

  • اسکیل‌های Claude Agent SDK (شرکت Anthropic) — مرجع سال 2026: هر مهارت دارای توضیحات، کد و دستورالعمل است و در طول نشست ایجنت، بر حسب تقاضا بارگذاری می‌شود.
  • skillkit (از مخزن npm: skillkit) — مدیریت بینابینی مهارت‌ها برای بیش از 32 ایجنت کدنویسی هوش مصنوعی.
  • کتابخانه‌های مهارت اختصاصی — ویژه‌ی دامنه‌های خاص (مهارت‌های SQL برای ایجنت‌های داده، مهارت‌های Terraform برای ایجنت‌های زیرساخت). الگوی وویجر در مقیاس‌های کوچک‌تر هم به‌خوبی پیاده می‌شود.
  • بخش tools در OpenAI Agents SDK — در سطح سبک‌تر؛ هر ابزار نقش یک مهارت کوچک و ساده را دارد.

نتیجه و خروجی

فایل outputs/skill-skill-library.md یک کتابخانه‌ی مهارت منطبق با معماری وویجر تولید می‌کند که ثبت، بازیابی، نسخه‌بندی و بازبینی در آن پیاده‌سازی شده و آماده‌ی اتصال به هر محیط اجرایی (Runtime) است.

تمرین‌ها

  1. شناسایی چرخه‌ی وابستگی را به متد compose() اضافه کنید. اگر مهارت A به B و مهارت B به A وابسته باشد چه رخ می‌دهد؟ خروجی باید خطا باشد یا هشدار؟
  2. قفل کردن نسخه‌ی مهارت (Version pinning) را پیاده کنید. وقتی یک مهارت والد از فرزند crafting@1 استفاده می‌کند، ارتقای فرزند به crafting@2 نباید والد را بدون اطلاع به‌روزرسانی کند.
  3. بازیابی بر اساس هم‌پوشانی توکن را با امبدینگ‌های sentence-transformers (یا یک پیاده‌سازی از BM25 با stdlib) جایگزین کنید. شاخص retrieval@5 را روی یک کتابخانه‌ی آزمایشی با 50 مهارت بسنجید.
  4. یک ایجنت «برنامه‌ی درسی» بسازید: با دریافت کتابخانه‌ی فعلی و توضیحات دامنه، 5 مهارت مفقود را پیشنهاد دهد. این بررسی را به‌صورت هفتگی فراخوانی کنید.
  5. مستندات اسکیل ایجنت در Claude Agent SDK را مطالعه کنید. کتابخانه‌ی آزمایشی را به اسکیمای مهارتی این SDK انتقال دهید. این تغییر چه اثری بر قابلیت کشف مهارت‌ها (Discoverability) می‌گذارد؟

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

اصطلاح برداشتی که رایج است معنای دقیق فنی
مهارت (Skill) «توانمندی با قابلیت استفاده‌ی مجدد» قطعه کد نام‌گذاری‌شده همراه با توضیحات، با قابلیت بازیابی بر اساس شباهت معنایی
کتابخانه‌ی مهارت (Skill library) «حافظه‌ی روش انجام کار در ایجنت» محل ذخیره‌سازی پایدار مهارت‌ها با قابلیت جست‌وجو و ترکیب
برنامه‌ی درسی (Curriculum) «پیشنهاددهنده‌ی تسک» مولد پایین به بالای اهداف که بر اساس شکاف توانمندی فعلی هدایت می‌شود
ترکیب (Composition) «گراف جهت‌دار بدون چرخه‌ی مهارت‌ها (Skill DAG)» مهارت‌هایی که یکدیگر را فراخوانی می‌کنند؛ مرتب‌شده به‌صورت توپولوژیک در زمان اجرا
صیقل تکرارشونده (Iterative refinement) «حلقه‌ی خوداصلاح‌گر» بازخورد محیط + خطاها + خوداعتبارسنجی که به ساخت نسخه‌ی بعدی کمک می‌کنند
فضای کنش به شکل کد (Action-space-as-code) «کنش‌های برنامه‌نویسی‌شده» صدور توابع به‌جای دستورات پایه‌ای برای رفتارهایی با امتداد زمانی طولانی‌تر
حذف تکرار هنگام نوشتن (Dedup on write) «ادغام مهارت‌ها» تجمیع مهارت‌هایی با توضیحات بسیار شبیه به هم در قالب یک مهارت واحد و مرجع

برای مطالعه‌ی بیشتر

خودآزمایی

به سؤال‌ها جواب بدهید تا ببینید چقدر از درس در ذهنتان مانده است.

  1. پیش از درسVoyager چه چیزی را به عنوان فضای عمل (Action Space) در نظر می‌گیرد؟
  2. پیش از درسچه سه مؤلفه‌ای یک ایجنت Voyager را تعریف می‌کنند؟
  3. حین درساز اجرای یک مهارت چه سه سیگنالی ممکن است برگردد؟
  4. حین درسبرنامه درسی خودکار چگونه تسک بعدی را انتخاب می‌کند؟
  5. حین درسکدام محصول سال 2026 نزدیک‌ترین معادل مهارت Voyager در این درس است؟
  6. پس از درسچرا این درس حذف تکرار هنگام نوشتن (dedup on write) را برای کتابخانه مهارت توصیه می‌کند؟
  7. پس از درسمشکل «انحراف مهارت ترکیبی» چه چیزی را توصیف می‌کند؟

سؤالات متداول

چرا معماری Voyager فضای کنش را به‌جای دستورات متنی ساده، کد تعریف می‌کند؟

کد اجرایی قابلیت ترکیب‌پذیری (Composition) دارد، می‌تواند کارهای پیچیده و چندمرحله‌ای را در قالب توابع کپسوله کند و خروجی‌های واقعی مثل خطاها یا پشته‌ی فراخوانی را برای اصلاح به ایجنت بازگرداند.

سه مؤلفه‌ی اصلی معماری Voyager چیست؟

برنامه‌ی درسی خودکار (Automatic Curriculum) برای پیشنهاد تسک، کتابخانه‌ی مهارت (Skill Library) برای ذخیره و بازیابی کدها، و سازوکار پرامپت‌نویسی تکرارشونده (Iterative Prompting) برای صیقل دادن مهارت بر اساس خطاها.

چگونه می‌توان مانع از فرسایش و افت کیفیت کتابخانه مهارت شد؟

با استفاده از حذف تکرار هنگام نوشتن (Dedup on write)، نسخه‌بندی مهارت‌ها برای جلوگیری از شکست وابستگی‌های قدیمی و ترکیب فیلترهای دسته‌بندی با جست‌وجوی شباهت معنایی.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.