ما هي مهارات الوكلاء وكيف تعمل؟
مهارة الوكيل مجلد يضم ملف SKILL.md يُحمّل عند تطابق طلبك معه فقط. تعرّف إلى سبب تفوقها على موجّه واحد ضخم، واختلافها عن MCP.
ما هي مهارة الوكيل فعلياً
مهارة الوكيل هي مجلد على القرص يحتوي على ملف باسم SKILL.md. يحتوي هذا الملف على اسم ووصف مختصر وتعليمات مكتوبة بصيغة Markdown عادية. يحمّل الوكيل الوصف عند بدء التشغيل، ولا يقرأ التعليمات إلا عندما يتطابق طلبك مع ذلك الوصف. وتنبع معظم الجوانب الأخرى للمهارات من هاتين الجملتين.
قد يحتوي المجلد على أكثر من ملف واحد. تحدد مواصفة Agent Skills ثلاثة مجلدات اختيارية: scripts/ للتعليمات البرمجية التي يشغّلها الوكيل، وreferences/ للمستندات التي يقرأها عند الحاجة، وassets/ للقوالب والبيانات. لا يلزم وجود أيٍّ منها. ويُعدّ المجلد الذي لا يحتوي إلا على SKILL.md مهارة مكتملة.
restore-drill/
SKILL.md
references/retention-policy.md
scripts/verify_snapshot.shالوصف هو الجزء الذي يقلل الناس من أهميته. وهو النص الوحيد الذي يراه الوكيل قبل أن يقرر ما إذا كان سيفتح المهارة أصلاً، لذلك يجب أن يوضح وظيفة المهارة ومتى تُستخدم، باستخدام الكلمات التي قد يكتبها الشخص فعلاً في طلبه.
لماذا تكاد تكلفة المهارة تكون معدومة إلى أن تُستخدم
هذه هي الحجة التي تجعل فهم هذا التنسيق مهماً، وهي تتعلق بالسياق لا بالميزات. يحدث التحميل على مراحل، وتسمّي المواصفة ذلك بالإفصاح التدريجي.
عند بدء التشغيل، يحمّل الوكيل name وdescription لكل مهارة مثبّتة، ولا يحمّل أي شيء آخر. وتقدّر مواصفة Agent Skills ذلك بنحو 100 token لكل مهارة، وفق الإرشادات المنشورة حتى August 2026. إذا ثبّتَّ 12 مهارة، فلن تكون قد استهلكت إلا ما يعادل سياق فقرة طويلة واحدة تقريباً.
عندما يطابق الطلب وصفاً، يقرأ الوكيل نص SKILL.md لتلك المهارة فقط. وتوصي المواصفة بألا يتجاوز النص 5,000 token وألا يتجاوز الملف 500 سطر. ولا تستهلك الملفات الموجودة في references/ وscripts/ أي سياق في هذه المرحلة. ولا يُحمَّل ملف مرجعي إلا إذا وجّهت التعليمات الوكيل إليه. أما البرنامج النصي المضمَّن فيختلف مرة أخرى: يشغّله الوكيل عبر shell، ولذلك لا يدخل مصدر البرنامج النصي إلى نافذة السياق، بل تدخل مخرجاته فقط.
قارن ذلك بما يلجأ إليه الناس أولاً، وهو prompt واحد ضخم. تُحتسب تكلفة كل سطر في system prompt أو في ملف تعليمات دائم مع كل طلب وفي كل جلسة، سواء احتاجت المهمة إليه أم لا، كما أنه ينافس السؤال الفعلي على انتباه الوكيل. إن وجود 10,000 token من التعليمات الدائمة يعني أنك تدفع هذه التكلفة حتى عند السؤال عن الوقت. أما 12 مهارة فتستهلك نحو 1,200 token في حالة السكون، ولا يتوسع حجمها إلا عند تنفيذ المهمة التي تحتاج إليها. هذه هي الحجة كاملة لصالح المهارات، ولهذا تتفوق مكتبة صغيرة على prompt أطول.
هناك قيد يفاجئ بعض المستخدمين. بعد تحميل المهارة، يبقى نصها في السياق حتى نهاية الجلسة، ولذلك فإن SKILL.md طويل يمثل تكلفة متكررة وليس تكلفة تُدفع مرة واحدة. إن نقل التفاصيل إلى references/ ليس مجرد ترتيب أفضل. بل هو الآلية وهي تعمل وفق التصميم.
مهارة الوكيل ليست استدعاءً لأداة
الأداة، التي تُسمّى أيضاً استدعاء دالة، هي شيء يمكن للنموذج استدعاؤه. يرسل النظام إلى النموذج مخططاً يتضمن اسم الأداة ووصفها وبنية الوسائط. يُصدر النموذج استدعاءً، ثم يشغّله برنامجك، وتعود النتيجة في رسالة. الأدوات تنفّذ الإجراءات.
لا تنفّذ المهارة أي شيء بمفردها. يقرأها الوكيل، ثم يتصرف باستخدام الأدوات المتاحة له مسبقاً. لا يستطيع النموذج تمرير الوسائط إلى المهارة بالطريقة التي يمرر بها الوسائط إلى الأداة. ما تستطيع المهارة فعله هو إخبار النموذج بالأدوات التي ينبغي استخدامها، وترتيب استخدامها، وما ينبغي التحقق منه بعدها.
باختصار: تمنح الأداة الوكيل قدرة جديدة، بينما تمنحه المهارة حكماً بشأن قدرة متاحة له مسبقاً. إذا كان يجب أن تنتج خطوة ما نتيجة دقيقة ومتحققاً منها في كل مرة، فأنت تحتاج إلى أداة أو script. أما إذا كانت الخطوة تتطلب تطبيق التفكير نفسه بصورة متسقة، فأنت تحتاج إلى مهارة.
مهارة الوكيل ليست خادماً لـMCP
MCP (بروتوكول سياق النموذج) هو بروتوكول لربط وكيل بنظام خارجي. خادم MCP هو عملية تعمل بهذا البروتوكول وتعرض أدوات للوكيل. ويحتاج عادةً إلى إعدادات وبيانات اعتماد، وإما إلى أمر محلي أو نقطة نهاية شبكية. أما المهارة فهي مجلد يحتوي على ملف Markdown. ولا توجد فيها عملية أو منفذ أو بروتوكول.
تختلف تكلفة السياق بالطريقة نفسها. تحمل كل أداة يعرضها خادم MCP اسماً ووصفاً ومخططاً للوسائط، وتُدرج هذه البيانات افتراضياً في الطلب طوال الجلسة، سواء استُخدمت أم لا. بدأت بعض العملاء بجلب مخططات الأدوات عند الطلب، لكن تحميلها مسبقاً ما يزال هو الحالة المعتادة. أما المهارة غير المستخدمة فهي سطر واحد من النص.
العنصران متكاملان، وأقوى الإعدادات تستخدم كليهما. يوفّر خادم MCP الوصول. وتوفّر المهارة الإجراء: أي الأدوات التي يجب استدعاؤها ضمن سير العمل الفعلي لفريقك، وبأي ترتيب، وما النتيجة الجيدة المتوقعة. إذا كنت تستضيف خوادمك بنفسك، يشرح تشغيل خوادم MCP على VPS هذا الجانب.
مهارة الوكيل ليست موجه نظام ولا ملف AGENTS.md
كلاهما تعليمات مكتوبة بتنسيق Markdown، لذلك هذا الالتباس مفهوم. الفرق هو وقت تحميلهما. يظل AGENTS.md وCLAUDE.md وموجه النظام مفعّلين دائماً. أما المهارة فتُفعّل عند الطلب.
الاختبار يتكون من سؤال واحد: هل سيكون تجاهل هذه الفقرة خطأً في مهمة لا علاقة لها بها؟ تنطبق قواعد أسلوب الكتابة، وأمر البناء، وقاعدة تسمية الفروع على كل مهمة، لذلك يجب وضعها في الملف المفعّل دائماً، إذ إن تحميله في كل مرة هو الهدف. أما قائمة التحقق من الإصدار التي تشغّلها مرتين في الشهر، فلا تنطبق على كل مهمة، لذلك يجب وضعها في مهارة. عندما يتحول أحد أقسام ملفك المفعّل دائماً إلى إجراء مرقّم، فهذه إشارة إلى ضرورة نقله.
لهذه الملفات اصطلاحاتها الخاصة أيضاً، ومن المفيد تطبيقها بشكل صحيح. راجع ما الذي ينتمي إلى AGENTS.md وما الذي ينتمي إلى ملف الإنسان وملف design.md الذي يشرح بنية قاعدة الشيفرة لمعرفة الملفين اللذين نستخدمهما.
كيف تبدو المهارة الدنيا
في Claude Code، توجد المهارات الشخصية في ~/.claude/skills/<name>/SKILL.md وتنطبق على جميع مشاريعك. وتوجد مهارات المشروع في .claude/skills/<name>/SKILL.md، وتُضمَّن في مستودع git، لذلك تكون متاحة لكل شخص ولكل وكيل يعمل في ذلك المستودع. أما GitHub Copilot وVS Code فيقرآن مهارات مساحة العمل من .github/skills/ بدلاً من ذلك. والملف الموجود بداخلها هو الملف نفسه.
mkdir -p ~/.claude/skills/restore-drill---
name: restore-drill
description: Run a restic restore drill and report what was recovered. Use when the user asks to test backups, verify a restore, or check that a snapshot is readable.
---
# Restore drill
1. Run `restic snapshots` and pick the newest snapshot for the host in question.
2. Restore it into a scratch directory under `/tmp`, never over live data.
3. Compare the restored file count and total size against the snapshot summary.
4. Report the snapshot ID and anything that failed to restore.
If `restic snapshots` prints `Fatal: unable to open config file`, the repository path or the password is wrong. Stop and report that instead of guessing.هذه مهارة مكتملة. يصبح اسم الدليل هو الأمر الذي تكتبه، ولذلك يكون الأمر هنا /restore-drill. في Claude Code، تعرض قائمة /skills ما هو مثبت، وهي أسرع طريقة للتأكد من أن الملف قُرئ بنجاح. إذا لم يظهر فيها، فهناك خطأ في أحد الأسماء: يجب أن يكون اسم الملف SKILL.md، ويجب أن يتكون اسم الدليل من أحرف صغيرة وأرقام وواصلات مفردة. ويُعد الإجراء نفسه، عند كتابته كخطوات يمكن لوكيلك إعادة تنفيذها، مكملاً طبيعياً لـالنسخ الاحتياطية المجدولة باستخدام restic على VPS، لأن تشغيل النسخة الاحتياطية لا يعني استعادتها.
متى ينبغي أن تكون المهارة عبارة عن برنامج نصي بدلاً من ذلك
يجب أن تكون أي خطوة لها إجابة صحيحة واحدة في كل مرة برنامجاً نصياً، مع اختصار المهارة إلى بضعة أسطر توضّح متى تشغّله وكيف تفسّر مخرجاته. هناك سببان لذلك، وكلاهما عملي.
أولاً، لا يدخل مصدر البرنامج النصي إلى نافذة السياق. يستهلك محلّل مؤلف من 300 سطر مخرجاته فقط، بينما يستهلك المنطق نفسه إذا كُتب على هيئة تعليمات Markdown طوله الكامل في كل مرة تُحمّل فيها المهارة.
ثانياً، يعطي البرنامج النصي الإجابة نفسها مرتين. إذا طُلب من نموذج إعادة اشتقاق قاعدة تحليل السجلات نفسها في كل تشغيل، فقد يطبّقها بطريقة مختلفة قليلاً في يوم سيئ، ولن تلاحظ ذلك إلا بعد اختلاف رقمين.
لذلك، قسّم العمل بحسب نوعه. «حلّل CSV واطبع كل صف لا يتطابق فيه الإجمالي مع عناصر السطر» هو برنامج نصي. أما «افحص الصفوف التي طبعها البرنامج النصي واشرح أيّها يبدو كخطأ في إدخال البيانات» فهو تعليمات مهارة. إن إبقاء التقدير في Markdown والحتمية في التعليمات البرمجية هو الانضباط نفسه المتّبع في إنشاء حلقة يستطيع وكيل تشغيلها من دون أن تراقبه.
لماذا لا تُفعَّل مهارتي مطلقاً؟
لأنّ description فيها يصف ما تفعله المهارة، ولا يذكر متى ينبغي استخدامها. هذا السطر هو كل ما يطابق الوكيل طلبك به. عبارة «تساعد في أعمال قواعد البيانات» لا تطابق حالة محددة. أما العبارة «تنفّذ ترحيل مخطط قاعدة بيانات staging. استخدمها عندما يطلب المستخدم ترحيل جدول، أو إضافة عمود، أو تغيير مخطط» فتتضمن الكلمات التي يكتبها الأشخاص فعلياً، ولذلك تُفعَّل.
الفشل المعاكس هو المهارة التي تُفعَّل باستمرار. وصف مثل «استخدمها لأي تغييرات في التعليمات البرمجية في هذا المستودع» يطابق كل شيء، لذلك يُحمَّل محتوى المهارة مع كل مهمة، ثم يبقى في السياق طوال بقية الجلسة. اجعل الوصف مقتصراً على الحالة المقصودة. في Claude Code، يمكنك أيضاً تعيين disable-model-invocation: true في frontmatter، ما يمنع التحميل التلقائي ويبقي المهارة متاحة عندما تكتب اسمها.
الفشل الثالث هو المهارة التي تكرر أداة موجودة. تعليمات تطلب من الوكيل curl واجهة API يوفّرها خادم MCP لديه بالفعل، أو البحث في الملفات باستخدام grep بينما يوفّر harness أداة بحث، تمنحك مساراً أبطأ ومجموعتين من التعليمات قد تتعارضان. احذف التكرار واشرح الغرض بدلاً منه.
لا تخمّن أيّاً من هذه الحالات الثلاث ينطبق عليك. نفّذ الطلب نفسه مرتين في جلسة جديدة: مرة مع إتاحة المهارة، ومرة بعد تعطيلها، ثم قارن الإجابتين. تكتسب الجلسة الجديدة أهميتها لأن الجلسة التي كتبت فيها المهارة تتضمن بالفعل كل ما تقوله المهارة، ما يخفي الثغرات في النسخة المكتوبة. تعمل إضافة skill-creator من Anthropic على أتمتة هذه المقارنة داخل Claude Code، بما في ذلك إنشاء طلبات ينبغي أن تُفعّل المهارة وأخرى ينبغي ألا تُفعّلها، وقياس معدل تفعيلها في كل حالة.
هل هذا تنسيق خاص بمورّد واحد أم معيار؟
نشرت Anthropic التنسيق في أواخر 2025، ثم أطلقته كمعيار مفتوح مستضاف على agentskills.io. واعتباراً من August 2026، تحدد المواصفة الحقول المطلوبة name وdescription، والحقول الاختيارية license وcompatibility وmetadata وallowed-tools، والأدلة الاختيارية الثلاثة، وسلوك التحميل المرحلي. كما تتضمن أداة تحقق مرجعية، لذلك يتحقق skills-ref validate ./my-skill من مجلد مقابل المواصفة قبل مشاركته.
قائمة العملاء هي المؤشر الحقيقي. يقرأ Claude Code وCursor وOpenAI Codex وGemini CLI وGitHub Copilot وVS Code وGoose وOpenHands وopencode، من بين أدوات أخرى، المجلد نفسه. تنشر Microsoft مهاراتها الخاصة بهذا التنسيق على github.com/microsoft/skills، كما توفر أداة سطح مكتب باسم Skill Recorder تراقب تنفيذك لمهمة مرة واحدة، ثم تعيد بناءها على شكل نية وخطوات مرتبة، وتكتب النتيجة كمهارة. عندما يبني مورّد أداة تسجيل يكون تنسيق مخرجاتها تابعاً لمواصفة يملكها طرف آخر، فهذه علامة جيدة على أن التنسيق لم يعد ميزة خاصة بمنتج واحد.
ما الذي تكتبه أولاً
لا تخطط لإنشاء مكتبة. انتظر حتى تجد نفسك تلصق التعليمات نفسها في محادثة للمرة الثالثة، ثم انقل ذلك النص إلى SKILL.md واحذف النص الملصق. التكرار الذي اختبرته فعلياً هو المحفز الموثوق الوحيد لمهارة تستحق الاحتفاظ بها. يُعد إجراء البحث بداية جيدة، وتوضح مهارة بحث مدعومة بواجهة SearXNG الخاصة بك الشكل المقصود.
تحافظ عادتان على سلامة المكتبة. اقرأ كل مهارة لم تكتبها بنفسك قبل تثبيتها، بما في ذلك البرامج النصية، لأن المهارة تتضمن تعليمات سيتبعها وكيلك وشيفرة قد يشغّلها؛ تعامل معها كما تتعامل مع تثبيت برنامج من مصدر غير موثوق. وأبقِ بيانات الاعتماد خارج المجلد، لأن المهارة ملف نصي يُضاف إلى مستودع ويُشارك. يوضح موضوع إبعاد الأسرار عن وكلائك المكان الذي ينبغي أن تنتمي إليه هذه القيم بدلاً من ذلك، بينما ترتب خريطة طريق تعلّم الوكلاء هذا العام المهارات ضمن بقية خطوات الإعداد.
FAQ
ما الفرق بين مهارة الوكيل وخادم MCP؟
خادم MCP (بروتوكول سياق النموذج) هو عملية قيد التشغيل تعرض أدوات للوكيل عبر بروتوكول. لذلك يحتاج إلى إعدادات وبيانات اعتماد، وتشغل تعريفات أدواته عادةً جزءاً من السياق طوال الجلسة، سواء استُخدمت أم لا. أما مهارة الوكيل فهي مجلد يحتوي على ملف SKILL.md، ولا تتطلب عملية أو بروتوكولاً، وتستهلك نحو 100 رمز حتى يقرر الوكيل قراءتها. استخدم خادم MCP لمنح الوكيل إمكانية الوصول إلى نظام. واستخدم المهارة لإرشاد الوكيل إلى طريقة استخدام إمكانية الوصول هذه بشكل صحيح. تستخدم كثير من الإعدادات كليهما.
هل تعمل مهارات الوكلاء مع Claude Code فقط؟
لا. طوّرت Anthropic التنسيق ثم أطلقته كمعيار مفتوح على agentskills.io، ويقرأ المجلد نفسه كل من Cursor وOpenAI Codex وGemini CLI وGitHub Copilot وVS Code وGoose وOpenHands وعملاء آخرون. يختلف كل عميل في مكان البحث عن المجلد وحقول frontmatter الإضافية التي يفهمها. يقرأ Claude Code الملفين ~/.claude/skills/ و.claude/skills/، بينما يقرأ GitHub Copilot وVS Code الملف .github/skills/ في المستودع. وينتقل ملف SKILL.md نفسه بينها دون تغيير.
كم مهارة يمكنني تثبيتها قبل أن يتسبب ذلك في إبطاء العمل؟
القيد مرتبط بميزانية بدء التشغيل، وليس بعدد محدد. تضيف كل مهارة مثبتة اسمها ووصفها، بنحو 100 رمز وفق الإرشادات المنشورة في المواصفة، لذا تستهلك 30 مهارة نحو 3,000 رمز قبل استخدام أي منها. أول ما يتأثر هو المطابقة، لا السرعة. إذ تجعل كثرة المهارات ذات الأوصاف المتداخلة اختيار النموذج للمهارة المناسبة أصعب. اكتب أوصافاً غير متداخلة، واحذف المهارات التي توقفت عن استخدامها.
هل أضع هذه التعليمات في مهارة أم في AGENTS.md؟
اسأل ما إذا كانت تنطبق على كل مهمة في المستودع. تنطبق أوامر البناء وأسلوب المشروع وقواعد التسمية على جميع المهام، لذا يجب وضعها في الملف الذي يُحمَّل دائماً، فهذا هو الغرض من تحميله في كل مرة. أما الإجراء الذي تشغله أحياناً، مثل قائمة التحقق من الإصدار أو تمرين الاستعادة، فيجب أن يكون مهارة، حتى لا يستهلك شيئاً في المهام التي لا تحتاج إليه. وعادةً ما يكون القسم في AGENTS.md الذي تحول إلى خطوات مرقمة مهارةً تنتظر نقلها.