ما هي مهارة الوكيل وكيف تختلف عن MCP؟
افهم مهارة الوكيل: مجلد يضم 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 رمز مميز لكل مهارة (وفق الإرشادات المنشورة، حتى August 2026). إذا ثبّتَّ اثنتي عشرة مهارة، فستكون قد استهلكت تقريباً حجم سياق فقرة طويلة واحدة.
عندما يطابق طلب ما وصفاً، يقرأ الوكيل نص SKILL.md لتلك المهارة وحدها. توصي المواصفة بألا يتجاوز النص 5,000 رمز مميز، وألا يتجاوز الملف 500 سطر. لا تستهلك الملفات الموجودة في references/ وscripts/ أي شيء في هذه المرحلة. لا يُحمّل ملف مرجعي إلا إذا وجّهت التعليمات الوكيل إليه. ويختلف الأمر مع البرنامج النصي المضمّن: إذ يشغّله الوكيل عبر shell، ولذلك لا يدخل مصدر البرنامج النصي إلى نافذة السياق، بل يدخل ناتجه فقط.
قارن ذلك بما يلجأ إليه الناس أولاً، أي prompt واحد ضخم. تُحتسب تكلفة كل سطر في system prompt أو في ملف تعليمات مفعّل دائماً مع كل طلب وفي كل جلسة، سواء احتاجت المهمة إليه أم لا. كما أنه ينافس السؤال الفعلي على انتباه الوكيل. إن وجود 10,000 رمز مميز من التعليمات الدائمة يعني أنك تدفع التكلفة حتى عندما تسأل عن الوقت. أما اثنتا عشرة مهارة فتكلّف نحو 1,200 رمز مميز في حالة السكون، ولا يتوسع حجمها إلا للمهمة التي تحتاج إليها. هذه هي الحجة كاملة لصالح المهارات، ولهذا تتفوق مكتبة صغيرة على prompt أطول.
هناك ملاحظة يغفل عنها بعض المستخدمين. بعد تحميل المهارة، يبقى نصها في السياق حتى نهاية الجلسة، ولذلك فإن SKILL.md طويل يمثل تكلفة متكررة، وليس تكلفة تُدفع مرة واحدة. إن نقل التفاصيل إلى references/ ليس مجرد ترتيب أفضل. بل هو آلية تعمل وفق التصميم المقصود.
مهارة الوكيل ليست استدعاء أداة
الأداة، التي تُسمّى أيضاً استدعاء دالة، هي شيء يمكن للنموذج استدعاؤه. يرسل الإطار للنموذج مخططاً يتضمن اسماً ووصفاً وبنية للوسائط. يُصدر النموذج استدعاءً، ثم يشغّل برنامجك الأداة، وتعود النتيجة في رسالة. الأدوات تنفّذ الإجراءات.
لا تنفّذ المهارة أي شيء بمفردها. يقرأها الوكيل، ثم يتصرف باستخدام الأدوات المتاحة له مسبقاً. لا يستطيع النموذج تمرير الوسائط إلى المهارة بالطريقة التي يمرر بها الوسائط إلى الأداة. ما تستطيع المهارة فعله هو إخبار النموذج بالأدوات التي يجب استخدامها، والترتيب الذي يجب استخدامها به، وما يجب التحقق منه بعد ذلك.
باختصار: تمنح الأداة الوكيل قدرة جديدة، بينما تمنحه المهارة حكماً بشأن قدرة متاحة له مسبقاً. إذا كان يجب أن تنتج خطوة نتيجة دقيقة ومتحققاً منها في كل مرة، فأنت تحتاج إلى أداة أو script. أما إذا كانت الخطوة تتطلب تطبيق التفكير نفسه باستمرار، فأنت تحتاج إلى مهارة. قد لا تكون المهارة أكثر من حكم، ومع ذلك قد تكون الأداة التي تلجأ إليها أكثر من غيرها، كما يوضح Ponytail، الذي يدفع وكيل البرمجة إلى إجراء أصغر تغيير ينجح: فهي لا تضيف أي قدرة جديدة، ولا تغيّر إلا طريقة استخدام الوكيل للقدرات المتاحة له مسبقاً.
مهارة الوكيل ليست خادم 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، لأن تشغيل النسخة الاحتياطية لا يعني استعادتها.
متى ينبغي أن تكون المهارة عبارة عن script بدلاً من ذلك
يجب أن تكون أي خطوة لها إجابة صحيحة واحدة في كل مرة عبارة عن script، مع اختصار المهارة إلى بضعة أسطر توضّح متى تشغّله وكيف تفسّر ناتجه. هناك سببان لذلك، وكلاهما عملي.
أولاً، لا يدخل مصدر script في نافذة السياق. يستهلك parser مكوّن من 300 سطر ناتجه فقط، بينما تستهلك المنطقية نفسها عند كتابتها كتعليمات markdown طولها الكامل في كل مرة تُحمَّل فيها المهارة.
ثانياً، يعطي script الإجابة نفسها مرتين. إذا طُلب من نموذج إعادة اشتقاق قاعدة تحليل السجل نفسها في كل تشغيل، فقد يطبقها بطريقة مختلفة قليلاً في يوم سيئ، ولن تلاحظ ذلك إلا عندما يختلف رقمان.
لذلك، قسّم العمل حسب نوعه. «حلّل CSV واطبع كل صف لا يطابق فيه الإجمالي عناصر السطر» هو script. أما «راجع الصفوف التي طبعها script واشرح أيّها يبدو كأنه خطأ في إدخال البيانات» فهو تعليمة للمهارة. إبقاء الحكم في markdown والحتمية في code هو الانضباط نفسه المتّبع في إنشاء حلقة يستطيع agent تشغيلها دون أن تراقبه.
لماذا لا تُفعَّل المهارة لديّ مطلقاً؟
لأنّ description فيها يوضح ما تفعله المهارة، ولا يوضح متى تُستخدم. هذا السطر هو كل ما يستطيع الوكيل مطابقته مع طلبك. العبارة "تساعد في أعمال قواعد البيانات" لا تطابق حالة محددة. أما العبارة "تنفّذ ترحيل مخطط قاعدة بيانات staging. استخدمها عندما يطلب المستخدم ترحيل جدول، أو إضافة عمود، أو تغيير مخطط" فتتضمن الكلمات التي يكتبها الأشخاص فعلياً، ولذلك تُفعَّل.
الفشل المعاكس هو المهارة التي تُفعَّل باستمرار. فالوصف مثل "استخدمها لأي تغييرات في التعليمات البرمجية داخل هذا المستودع" يطابق كل شيء، لذلك يُحمَّل المحتوى عند كل مهمة ويبقى في السياق طوال بقية الجلسة. اجعل الوصف مقتصراً على الحالة المقصودة. في Claude Code، يمكنك أيضاً ضبط disable-model-invocation: true في frontmatter، ما يمنع التحميل التلقائي ويُبقي المهارة متاحة عند كتابة اسمها.
الفشل الثالث هو المهارة التي تكرر وظيفة أداة. فالتعليمات التي تطلب من الوكيل curl واجهة API يوفّرها خادم MCP لديه بالفعل، أو البحث في الملفات باستخدام grep بينما يوفّر harness أداة بحث، تمنحك مساراً أبطأ ومجموعتين من التعليمات قد تتعارضان. احذف التكرار، واشرح الغرض بدلاً من ذلك.
لا تخمّن أيّاً من حالات الفشل الثلاث ينطبق عليك. نفّذ الطلب نفسه مرتين في جلسة جديدة، مرة مع إتاحة المهارة ومرة بعد تعطيلها، ثم قارن الإجابتين. تهم الجلسة الجديدة لأن الجلسة التي كتبت فيها المهارة تتضمن بالفعل كل ما تقوله المهارة، وهذا يخفي الثغرات في النسخة المكتوبة. تعمل إضافة skill-creator من Anthropic على أتمتة هذه المقارنة داخل Claude Code، بما في ذلك إنشاء طلبات ينبغي أن تُفعّل المهارة وأخرى ينبغي ألا تُفعّلها، وقياس معدل تفعيل كل منها.
هل هذا تنسيق خاص بمورّد واحد أم معيار؟
نشرت Anthropic التنسيق في أواخر 2025، ثم أصدرته كمعيار مفتوح مستضاف على agentskills.io. وحتى أغسطس 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 token حتى يقرر الوكيل قراءته. استخدم خادم 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 token وفق الإرشادات المنشورة في المواصفة. لذلك تستهلك 30 مهارة نحو 3,000 token قبل استخدام أي منها. أول ما يتأثر هو المطابقة، لا السرعة. فوجود مهارات كثيرة ذات أوصاف متداخلة يجعل اختيار المهارة المناسبة أصعب على النموذج. اكتب أوصافاً غير متداخلة، واحذف المهارات التي توقفت عن استخدامها.
هل أضع هذه التعليمات في مهارة أم في AGENTS.md؟
اسأل ما إذا كانت التعليمات تنطبق على كل مهمة في المستودع. أوامر البناء، وأسلوب المشروع، وقواعد التسمية تنطبق على جميع المهام، لذلك يجب وضعها في الملف الذي يُحمّل دائماً، لأن الغرض منه هو التحميل في كل مرة. أما الإجراء الذي تنفذه أحياناً، مثل قائمة التحقق من الإصدار أو تمرين الاستعادة، فيجب أن يكون مهارة، حتى لا يستهلك شيئاً في المهام التي لا تحتاج إليه. وعندما ينمو قسم من AGENTS.md ويتحول إلى خطوات مرقمة، يكون عادةً مهارة ينبغي نقلها.