مایکروسافت در ۱۵ جولای یک فریم‌ورک پایدار Agent Skills برای پایتون منتشر کرد. این فریم‌ورک به توسعه‌دهندگان اجازه می‌دهد قابلیت‌ها را تنها زمانی که یک عامل (agent) مبتنی بر LLM واقعاً به آن‌ها نیاز دارد، فراخوانی کنند. با جایگزینی یک پرامپت سیستمِ واحد و همواره در حال رشد با بارگذاری مهارت‌ها بر حسب تقاضا، این رویکرد حجم پرامپت را کاهش داده، هزینه‌های توکن را کم می‌کند و استدلال عامل را شفاف‌تر نگه می‌دارد.

چرا پرامپت‌ها حجیم می‌شوند و چرا این موضوع اهمیت دارد

عامل‌های LLM به یک «system prompt» متکی هستند که شامل سیاست‌ها، دستورالعمل‌های اجرایی (runbooks) و مطالب مرجع است که مدل باید در هر مرحله آن‌ها را مشاهده کند. با افزودن تعدادی سند سیاستی، حجم پرامپت به چندین هزار توکن افزایش می‌یابد. پرامپت‌های بزرگ‌تر هزینه‌های استنتاج (inference) را بالا می‌برند — زیرا برای هر توکنی که مدل پردازش می‌کند، هزینه دریافت می‌شود — و سیگنال دستورالعمل را تضعیف می‌کنند که باعث می‌شود خروجی عامل مبهم شود. در موارد اولویت‌بندی حوادث (incident triage) یا بررسی انطباق (compliance checking)، یک پرامپت مبهم می‌تواند یک دستیار مفید را به منبعی برای انتشار اطلاعات نادرست تبدیل کند.

الگوی Agent Skills: افشای تدریجی (progressive disclosure)

فریم‌ورک جدید پرامپت یکپارچه (monolithic) را با یک گردش کار چهار مرحله‌ای جایگزین می‌کند:

  1. Advertise the skill (اعلام مهارت) – یک ورودی متادیتای سبک که نام مهارت را به لایه مسیریابی (routing layer) اطلاع می‌دهد.
  2. Load instructions (بارگذاری دستورالعمل‌ها) – یک توصیف مختصر که عامل آن را می‌خواند تا تصمیم بگیرد آیا مهارت با درخواست مطابقت دارد یا خیر.
  3. Read resources (خواندن منابع) – فایل‌های سیاستی یا مرجع اختیاری که تنها پس از انتخاب مهارت توسط عامل، فراخوانی می‌شوند.
  4. Run scripts (اجرای اسکریپت‌ها) – اجرای کدی که اقدام مورد نظر را انجام می‌دهد و مستلزم تأیید صریح است.

تنها فایل کوتاه SKILL.md در پرامپت اصلی قرار دارد. تمام اسناد و اسکریپت‌های بزرگ‌تر در یک بسته مهارت مبتنی بر فایل قرار می‌گیرند که زمان اجرا (runtime) آن‌ها را بر حسب تقاضا فراخوانی می‌کند. ساختار دایرکتوری ساده باقی می‌ماند:

  • SKILL.md – توصیف کوتاه و قابل خواندن برای انسان.
  • references/ – فایل‌های سیاستی یا راهنما.
  • scripts/ – کدهای قابل اجرا.

از آنجایی که عامل تا زمانی که تصمیم نگیرد مهارت مورد نظر مناسب است، هرگز محتوای کامل references/ یا scripts/ را نمی‌بیند، پرامپت اصلی بدون توجه به تعداد مهارت‌های ثبت‌شده، سبک و مختصر باقی می‌ماند.

محافظ‌های امنیتی تعبیه‌شده در فریم‌ورک

این فریم‌ورک فرض را بر این می‌گذارد که بارگذاری یک مهارت می‌تواند ریسک‌زا باشد و قوانینی را اعمال می‌کند که توسعه‌دهندگان باید از آن‌ها پیروی کنند:

  • Skill name advertisement – خودکار، که فقط برای مسیریابی استفاده می‌شود.
  • Instruction loading – خودکار برای لیست‌های منتخب؛ دستورالعمل‌های بررسی‌نشده می‌توانند به‌طور ناخواسته رفتار عامل را تغییر دهند.
  • Policy reading – خودکار زمانی که داده‌ها حساس نباشند؛ مطالب حساس را پشت کنترل‌های دسترسی اضافی نگه دارید.
  • Script execution – همیشه مستلزم تأیید صریح است. یک اسکریپت، عامل را از مرحله «پیشنهاد» به مرحله «اقدام» می‌برد، بنابراین یک انسان یا بررسی سیاستی باید مداخله کند.
  • External system calls – باید از طریق ابزارهای مجزا با مجوزهای محدود انجام شوند؛ خودِ یک مهارت، مکانیزم احراز هویت نیست.

این قوانین توسعه‌دهندگان را ترغیب می‌کند که پیش از تلاش برای اقدامات نوشتنی (write-oriented) مانند به‌روزرسانی پایگاه داده یا استقرار کد، با گردش کارهای فقط‌خواندنی (read-only) شروع کنند — مانند اولویت‌بندی حوادث، جستجوی سیاست‌ها یا پرس‌وجوهای وضعیت.

بهداشت عملیاتی: ثبت وقایع (logging) و نسخه‌بندی

هنگامی که یک مهارت اجرا می‌شود، فریم‌ورک توسعه‌دهندگان را تشویق می‌کند (و در بسیاری از استقرارها الزامی می‌کند) که موارد زیر را ثبت کنند:

  • درخواست اصلی و شناسه (ID) مهارت انتخاب‌شده.
  • نسخه بسته مهارت استفاده‌شده.
  • اینکه آیا عامل فقط توصیف را بارگذاری کرده یا فایل منبع را نیز فراخوانی کرده است.
  • تصمیم مربوط به تأیید اجرای اسکریپت.
  • تمام آرگومان‌های ابزار ارائه شده و نتایج بازگشتی.

اگر عامل مهارت اشتباهی را انتخاب کرد، آن انتخاب نادرست را به یک مورد آزمایشی (test case) تبدیل کنید. این کار یک بررسی رگرسیون (regression check) قبل از رسیدن مهارت به مرحله تولید ایجاد می‌کند.

با هر مهارت مانند یک وابستگی نسخه‌بندی‌شده (versioned dependency) با مرز مشخص برخورد کنید، نه به عنوان یک پوشه نامنظم از پرامپت‌ها. نسخه‌بندی به شما اجازه می‌دهد بدون مختل کردن بقیه پایگاه دانش عامل، یک اسکریپت معیوب را به حالت قبل بازگردانید (roll back).

شروع کار: یک چک‌لیست کاربردی

  1. یک گردش کار فقط‌خواندنی انتخاب کنید – مثلاً «جستجوی آخرین دستورالعمل‌های حادثه امنیتی».
  2. دستورالعمل‌ها و اسکریپت‌ها را به‌صورت جداگانه بسته‌بندی کنید – فایل SKILL.md را کوتاه نگه دارید؛ فایل‌های سیاستی سنگین را در references/ قرار دهید.
  3. یک کاتالوگ مدیریت‌شده ایجاد کنید – فهرستی از مهارت‌های تأییدشده را نگهداری کنید و تأیید اجباری را برای هر اسکریپت اعمال کنید.
  4. محدودیت‌های Sandbox تعیین کنید – محدودیت‌های CPU، حافظه و شبکه را برای اجرای اسکریپت تعریف کنید؛ هر اجرا را ثبت (log) کنید.
  5. در برابر پرامپت عظیم قدیمی بنچمارک بگیرید – میزان استفاده از توکن، تأخیر (latency) و نرخ موفقیت را برای تأیید صرفه‌جویی در هزینه‌ها مقایسه کنید.

آنچه در آینده باید منتظر آن باشید

نسخه منتشر شده مایکروسافت در حال حاضر یک پیاده‌سازی پایدار پایتون است.

خلاصه کلام

مهارت‌های عامل (Agent Skills) به دستیارهای مبتنی بر LLM این امکان را می‌دهند که ضمن دسترسی به کتابخانه‌ای رو به رشد از سیاست‌ها و اسکریپت‌ها، همچنان سبک باقی بمانند. با بارگذاری تنها توضیحات در مرحله‌ی اولیه و فراخوانی منابع سنگین تنها در صورت نیاز، پرامپت‌ها کوتاه می‌مانند، هزینه‌های استنتاج کاهش می‌یابد و تمرکزِ استدلالِ عامل حفظ می‌شود.