بسیاری از ایجنتهای هوش مصنوعی در هر نشست، مسیر حل مسائل را از صفر آغاز میکنند. این رویکرد نه تنها باعث اتلاف شدید توکنها و هزینههای پردازشی میشود، بلکه مانع از انتقال تجربیات قبلی به تسکهای جدید میگردد و اجرای کارهای طولانیمدت و چندمرحلهای را ناممکن میسازد.
معماری 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) همهچیز را از صفر بازسازی میکنند، دچار سه خطای اساسی میشوند:
- هدر دادن توکنها. هر تسک دوباره همان مسیر استدلال قبلی را بازتولید میکند.
- از دست رفتن دستاوردها. اصلاحی که در نشست A یاد گرفته شده، به نشست B منتقل نمیشود.
- شکست در ترکیب کارهای بلندمدت. کارهای پیچیده نیازمند سلسلهمراتب مهارتی هستند؛ پرامپتهای تکمرحلهای (One-shot) از بیان چنین ساختارهایی ناتواناند.
پاسخ وویجر: برخورد با هر توانمندی بازگشتپذیر بهصورت یک قطعه کد نامگذاریشده در کتابخانه؛ کدی که با شباهت معنایی بازیابی میشود، با سایر مهارتها ترکیبپذیر است و با بازخورد حاصل از اجرا صیقل میخورد.
مفاهیم پایه
سه مؤلفهی اصلی
وویجر (arXiv:2305.16291) ایجنت را بر پایهی سه بخش سازماندهی میکند:
- برنامهی درسی خودکار (Automatic curriculum). یک ماژول پیشنهاددهندهی مبتنی بر کنجکاوی، تسک بعدی را بر اساس مجموعهمهارتهای فعلی ایجنت و وضعیت محیط انتخاب میکند. این کاوش کاملاً پایین به بالا (Bottom-up) است.
- کتابخانهی مهارت (Skill library). هر مهارت، یک کد اجرایی است. بهمحض موفقیت در یک تسک، مهارت جدیدی اضافه میشود. بازیابی مهارتها نیز با سنجش شباهت متن درخواست (Query) به توضیحات مهارت انجام میگیرد.
- سازوکار پرامپتنویسی تکرارشونده (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 است: قطعه کدی نامگذاریشده و قابلبازیابی، همراه با دستورالعملهایی که ایجنت بنا به نیاز بارگذاری میکند.
بازیابی مهارت
برای تسک جدیدِ «یک کلنگ الماسی بساز»، ایجنت:
- توضیحات تسک را امبد میکند.
- کتابخانهی مهارت را برای یافتن k مهارت شبیهتر جستوجو میکند.
- مواردی مانند
craftIronPickaxe،mineDiamondوplaceCraftingTableرا بازیابی میکند. - مهارت جدید را با ترکیب توابع پایهی بازیابیشده و منطق جدید میسازد.
این دقیقاً همان الگویی است که منابع MCP (فاز 13) و اسکیلهای Agent SDK پیاده میکنند: بازیابی روی بستری از دانش/کد، در دامنهی محدود به تسک فعلی.
صیقل تکرارشونده
حلقهی بازخورد وویجر:
- ایجنت کد یک مهارت را مینویسد.
- مهارت در محیط اجرا میشود.
- یکی از سه سیگنال زیر بازمیگردد:
success،error(به همراه ردگیری محاسبات خطا و فراخوانیها یا Stack trace) یاself-verification failure. - ایجنت با استفاده از این سیگنال بهعنوان کانتکست، کد مهارت را بازنویسی میکند.
- حلقه تا رسیدن به موفقیت یا سقف مجاز تکرارها ادامه مییابد.
این همان تکنیک Self-Refine (درس 05) است که روی تولید کد اعمال شده و با اعتبارسنجی در محیط واقعی گره خورده است. الگوی CRITIC (درس 05) هم دقیقاً همین است؛ با این تفاوت که ابزارهای خارجی نقش مدل اعتبارسنج (Verifier) را ایفا میکنند.
برنامهی درسی و کاوش
ماژول برنامهی درسی وویجر، تسکهایی مانند «ساخت پناهگاه کنار دریاچه» را بر اساس داشتههای ایجنت و کارهایی که هنوز انجام نداده پیشنهاد میدهد. این ماژول با ترکیب وضعیت محیط و داراییهای مهارتی، تسکی را انتخاب میکند که کمی فراتر از توانایی فعلی ایجنت باشد؛ یعنی نقطهی طلایی کاوش.
در ایجنتهای محیط تولید، این سازوکار به عملگر «چه چیزی کم داریم؟» تبدیل میشود: با توجه به کتابخانهی مهارتهای موجود و دامنهی کاری، چه مهارتهایی را هنوز پوشش ندادهایم؟ تیمها معمولاً این کار را بهصورت دستی و در قالب بازبینی برنامهی درسی پیاده میکنند.
چالشها و خطاهای رایج الگو
- پوسیدگی کتابخانهی مهارت (Skill library rot). ثبت دهبارهی یک مهارت یکسان با توضیحاتی اندک متفاوت. راهکار: حذف دادههای تکراری (Deduplication) هنگام نوشتن؛ طوری که بازیابی فقط یک خروجی معتبر بدهد.
- انحراف مهارتهای ترکیبی (Composed-skill drift). وابستگی مهارت والد به فرزندی که بهتازگی بازنویسی شده است. راهکار: مهارتها را نسخهبندی کنید؛ والدی که به نسخهی 1 متصل شده، نباید خودبهخود نسخهی 3 را اجرا کند.
- افت کیفیت بازیابی. با عبور تعداد مهارتهای کتابخانه از چند صد مورد، کیفیت بازیابی برداری بر اساس توضیحات افت میکند. راهکار: جستوجو را با فیلترهای برچسب و شروط سختگیرانه (مانند «تنها مهارتهای دستهی
category=tooling») تقویت کنید.
پیادهسازی عملی
فایل 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) است.
تمرینها
- شناسایی چرخهی وابستگی را به متد
compose()اضافه کنید. اگر مهارت A به B و مهارت B به A وابسته باشد چه رخ میدهد؟ خروجی باید خطا باشد یا هشدار؟ - قفل کردن نسخهی مهارت (Version pinning) را پیاده کنید. وقتی یک مهارت والد از فرزند
crafting@1استفاده میکند، ارتقای فرزند بهcrafting@2نباید والد را بدون اطلاع بهروزرسانی کند. - بازیابی بر اساس همپوشانی توکن را با امبدینگهای sentence-transformers (یا یک پیادهسازی از BM25 با stdlib) جایگزین کنید. شاخص retrieval@5 را روی یک کتابخانهی آزمایشی با 50 مهارت بسنجید.
- یک ایجنت «برنامهی درسی» بسازید: با دریافت کتابخانهی فعلی و توضیحات دامنه، 5 مهارت مفقود را پیشنهاد دهد. این بررسی را بهصورت هفتگی فراخوانی کنید.
- مستندات اسکیل ایجنت در Claude Agent SDK را مطالعه کنید. کتابخانهی آزمایشی را به اسکیمای مهارتی این SDK انتقال دهید. این تغییر چه اثری بر قابلیت کشف مهارتها (Discoverability) میگذارد؟
اصطلاحات کلیدی
| اصطلاح | برداشتی که رایج است | معنای دقیق فنی |
|---|---|---|
| مهارت (Skill) | «توانمندی با قابلیت استفادهی مجدد» | قطعه کد نامگذاریشده همراه با توضیحات، با قابلیت بازیابی بر اساس شباهت معنایی |
| کتابخانهی مهارت (Skill library) | «حافظهی روش انجام کار در ایجنت» | محل ذخیرهسازی پایدار مهارتها با قابلیت جستوجو و ترکیب |
| برنامهی درسی (Curriculum) | «پیشنهاددهندهی تسک» | مولد پایین به بالای اهداف که بر اساس شکاف توانمندی فعلی هدایت میشود |
| ترکیب (Composition) | «گراف جهتدار بدون چرخهی مهارتها (Skill DAG)» | مهارتهایی که یکدیگر را فراخوانی میکنند؛ مرتبشده بهصورت توپولوژیک در زمان اجرا |
| صیقل تکرارشونده (Iterative refinement) | «حلقهی خوداصلاحگر» | بازخورد محیط + خطاها + خوداعتبارسنجی که به ساخت نسخهی بعدی کمک میکنند |
| فضای کنش به شکل کد (Action-space-as-code) | «کنشهای برنامهنویسیشده» | صدور توابع بهجای دستورات پایهای برای رفتارهایی با امتداد زمانی طولانیتر |
| حذف تکرار هنگام نوشتن (Dedup on write) | «ادغام مهارتها» | تجمیع مهارتهایی با توضیحات بسیار شبیه به هم در قالب یک مهارت واحد و مرجع |
برای مطالعهی بیشتر
- وانگ و همکاران، مقالهی وویجر (arXiv:2305.16291) — مقالهی اصلی ایدهی کتابخانهی مهارت
- نمای کلی Claude Agent SDK — اسکیلها بهعنوان محصول نهایی سال 2026
- مقالهی وبلاگی Anthropic دربارهی ساخت ایجنت با Claude Agent SDK — کاربرد عملی اسکیلها و زیرایجنتها
- مادان و همکاران، مقالهی Self-Refine (arXiv:2303.17651) — حلقهی بازبینیِ زیربنایی در وویجر
