المدونة

Codex Skills: إنشاء skill للمهام المتكررة

Markdown

بنية SKILL.md، ومسارات التحميل، والاستدعاء الصريح والتلقائي، ومعايير النتائج، ونقل skill إلى Claude Code.

قراءة المقال كاملًا

إذا كنت تشرح الشيء نفسه لـ Codex خمس مرات في الأسبوع — كتنسيق تقرير، أو فرز البريد الإلكتروني، أو إعداد نصوص بأسلوبك — يمكنك تدوين هذه التعليمات مرة واحدة في skill. بعد ذلك، يستطيع الوكيل العثور عليها من خلال وصفها عندما يتطابق الوصف مع المهمة، أو يمكنك استدعاؤها صراحةً. الـ skill مجلد عادي يحتوي على ملف نصي اسمه SKILL.md؛ ولا حاجة إلى البرمجة للاستخدام الأساسي.

فيما يلي، نتناول بنية skill، ومكان بحث Codex عنها، وكيفية إنشاء واحدة خطوة بخطوة، وكيفية اختيار نموذج بناءً على التكلفة. تستند الأوامر والأسعار إلى وثائق OpenAI الرسمية بتاريخ 20 سبتمبر 2026. لن نكرر هنا تعليمات تثبيت Codex؛ فهي واردة في الدليل Codex من OpenAI: ماهيته وكيفية تثبيته وتشغيله.

تتوفر معلومات عملية حول استخدام Ailoot في الوثائق.

ما هي skill في Codex؟

أهم نقطة

تتكون skill في Codex من مجلد يحتوي على ملف SKILL.md يصف عملية ما: ما الذي ينبغي فعله، وما الذي ينبغي الاستناد إليه، وما شكل النتيجة الجيدة. يحتفظ Codex في البداية بأسماء skills وأوصافها فقط في السياق، ثم يحمّل التعليمات كاملةً عندما يقرر استخدام إحداها.

يُسمى هذا التنسيق Agent Skills. وهو معيار مفتوح طورته Anthropic في الأصل ونشرته على agentskills.io. وتدعمه عدة وكلاء، من بينها Codex وClaude Code وعملاء آخرون متوافقون. يمكن نقل skill بسيطة تتكون من تعليمات نصية فقط بينها عن طريق نسخ المجلد. أما إذا كانت تحتوي على نصوص برمجية أو تبعيات أو ملف agents/openai.yaml، فتحقق من skill بعد نقلها؛ إذ إن بعض الإعدادات خاصة بعميل معين.

تُسمى طريقة التحميل هذه الإفصاح التدريجي. يستخدم الوكيل اسم skill ووصفها لتحديد متى تكون ذات صلة. وعندما تتطابق مهمة مع الوصف، يقرأ الوكيل ملف SKILL.md كاملًا ويتبع تعليماته. وهذا يعني أنه يمكنك الاحتفاظ بعشرات skills في Codex دون تحميل كل التعليمات إلى السياق: إذ لا تتجاوز القائمة الأولية 2% من نافذة السياق (أو 8,000 حرف إذا كان حجم النافذة غير معروف). إذا كان عدد skills كبيرًا، يختصر Codex أوصافها أولًا؛ وإذا كان كبيرًا جدًا، فقد يحذف بعضها من القائمة ويُعلمك بذلك.

من السهل الخلط بين skill وAGENTS.md. يقرأ Codex هذا الملف في كل جلسة للمشروع. وهو يتضمن قواعد دائمة: مجموعة التقنيات والاصطلاحات وأسلوب البرمجة. أما skill فتُحمّل عند الطلب عندما تتطابق المهمة معها. لذا ضع القواعد الدائمة في AGENTS.md، وضع العملية المتكررة ذات الخطوات في skill.

تعمل skills في Hermes Agent بطريقة مشابهة، لكنها تُحفظ في مجلدات مختلفة وتُثبّت بطريقة مختلفة. وهي مشروحة في دليل منفصل: Hermes Agent Skills: التثبيت والإنشاء. يتناول هذا المقال Codex فقط.

ممّ تتكون skill؟

أهم نقطة

تتكون skill، في الحد الأدنى، من ملف SKILL.md واحد يتضمن حقلين مطلوبين: name وdescription. ويمكنك اختياريًا إضافة مجلدات scripts/ وreferences/ وassets/، بالإضافة إلى ملف agents/openai.yaml للإعدادات.

يتخذ مجلد skill البنية التالية:

my-skill/
  SKILL.md        - مطلوب: بيانات وصفية وتعليمات
  scripts/        - اختياري: شيفرة قابلة للتنفيذ
  references/     - اختياري: مستندات تُحمّل عند الحاجة
  assets/         - اختياري: قوالب وموارد
  agents/
    openai.yaml   - اختياري: المظهر والتبعيات

يبدأ ملف SKILL.md نفسه بكتلة بيانات وصفية محصورة بين ثلاث شرطات، تليها نصوص التعليمات بتنسيق Markdown:

---
name: weekly-sales-report
description: أعدّ تقرير مبيعات أسبوعيًا من ملف CSV مُصدّر. استخدمه عند طلب تقرير مبيعات أسبوعي أو ملخص حسب المدير.
---

1. اقرأ ملف التصدير من المسار الذي يقدمه المستخدم.
2. جمّع الصفوف حسب المدير واحسب الإجمالي وعدد الصفقات.
3. قارن بالأسبوع السابق إذا كان ملف الأسبوع السابق قريبًا. إذا لم يكن موجودًا، فاذكر ذلك بوضوح في التقرير.
4. احفظ النتيجة في report.md: جدول حسب المدير، والإجمالي، وما يصل إلى ثلاثة تغييرات رئيسية مع أرقام، بحسب ما تدعمه البيانات.

ثلاث قواعد من توصيات OpenAI الرسمية:

  • skill واحدة لكل مهمة. بدلًا من «تولَّ كل أعمال التسويق الخاصة بي»، اختر مهمة محددة: «أعدّ تقرير مبيعات من هذا الملف المُصدّر». قسّم العملية الأكبر إلى skills منفصلة يمكن استدعاؤها بالتتابع.
  • اكتب الخطوات مباشرةً مع توضيح المدخلات والمخرجات: ما الذي ينبغي استخدامه، وما الذي ينبغي فعله، وأين توضع النتيجة.
  • ابدأ بالتعليمات النصية. استخدم النصوص البرمجية في scripts/ عندما يلزم تنفيذ خطوة بالطريقة نفسها تمامًا في كل مرة، مثل تحويل ملف أو استدعاء نظام خارجي.

يختار Codex skill لمهمة ما استنادًا إلى حقل description، لذا ابدأ الوصف بالمهمة والكلمات التي تستخدمها عادةً لوصفها.

أين يبحث Codex عن skills؟

أهم نقطة

يبحث Codex عن skills في أربعة مستويات: مجلد .agents/skills في المشروع (مع التحقق من المجلد الحالي وكل مجلد أب حتى جذر المستودع)، ومجلد $HOME/.agents/skills الشخصي، ومجلد النظام /etc/codex/skills، وskills المضمنة من OpenAI.

المستوىالمسارالغرض
المشروع.agents/skills في المجلد الحالي ومجلداته الأب حتى جذر المستودعSkills لمشروع محدد، يمكن تخزينها في git إلى جانب الشيفرة
المستخدم$HOME/.agents/skillsSkills شخصية متاحة في جميع المشاريع على الجهاز
النظام/etc/codex/skillsSkills مشتركة بين جميع مستخدمي الجهاز أو الحاوية
المضمنةمضمنة مع CodexSkills أساسية من OpenAI، مثل منشئ skills

من الملائم تخزين skills المشروع في git مع الشيفرة حتى يحصل الفريق بأكمله على المجموعة نفسها. أما skills الشخصية فتناسب عملياتك الخاصة، مثل أسلوبك في كتابة البريد الإلكتروني. إذا كان لاثنتين من skills على مستويين مختلفين الاسم نفسه، فلن يدمجهما Codex: بل ستظهران كلتاهما في القائمة، مما يصعّب الاختيار. اجعل أسماءها فريدة.

للمقارنة، تُحفظ skills في Claude Code ضمن .claude/skills، ولكل منها ملف SKILL.md خاص بها، وتستخدم المعيار المفتوح نفسه. يمكن نقل skill بسيطة إلى هناك بنسخ مجلدها، ثم ينبغي تشغيلها والتحقق من استدعائها. للمقارنة بين إضافات Claude Code، راجع Skills أو Subagents أو MCP أو Plugins.

كيف يقرر Codex أي skill يستدعي؟

أهم نقطة

يمكنك استدعاء skill صراحةً: في Codex CLI أو إضافة IDE، أدخل $skill-name في طلبك أو اخترها عبر /skills. أما في الاستدعاء الضمني، فيختار Codex skill تلقائيًا إذا تطابقت مهمتك مع وصفها. ويجب أن تكون skill متاحة وأن يكون الاستدعاء التلقائي مسموحًا.

يكون الاستدعاء الصريح أكثر موثوقية في البداية: في Codex CLI، أدخل $weekly-sales-report لاختيار تلك العملية تحديدًا. أما الاستدعاء الضمني فهو أكثر ملاءمة للعمل اليومي. بعد كتابة skill، اختبرها بصياغة عادية: اطلب من Codex تنفيذ المهمة بكلماتك، من دون $، وتحقق مما إذا كان يختار skill. إذا لم يفعل، فتحقق أولًا مما إذا كان Codex يرى skill ضمن /skills، وما إذا كانت في أحد مجلدات التحميل، وما إذا كانت skill أو خاصية الاستدعاء التلقائي معطلة. إذا كانت متاحة والإعدادات صحيحة، فنقّح description: اذكر المهمة والطرق المعتادة لصياغة الطلب.

إذا أردت إتاحة skill عبر أمر صريح فقط، فيمكنك ضبط ذلك أيضًا: في agents/openai.yaml، تعطل المعلمة allow_implicit_invocation: false الاستدعاء التلقائي، بينما يظل $name يعمل. ويمكنك تعطيل skill بالكامل دون حذفها عبر ~/.codex/config.toml:

[[skills.config]]
path = "/full/path/to/the/skill/SKILL.md"
enabled = false

أعد تشغيل Codex بعد تعديل config.toml. يلتقط Codex التغييرات التي تطرأ على مجلدات skills تلقائيًا، لكن إذا لم تظهر skill جديدة، فأعد تشغيل Codex.

كيفية إنشاء skill خاصة بك: خطوة بخطوة

أهم نقطة

اختر مهمة متكررة واحدة، وأنشئ skill باستخدام المساعد المضمن $skill-creator أو يدويًا، واكتب تعليمات تحدد النتيجة بوضوح، واختبر الاستدعاء بصياغة عادية، ثم نقّح skill بعد كل تشغيل.

  1. اختر مهمة واحدة

    اختر عملية تكررها بانتظام ولها نتيجة واضحة: تقرير أو جدول أو رسالة أو تحليل. إذا لم يسبق لك الحصول على نتيجة من هذا النوع، فأكمل المهمة يدويًا أولًا مع وكيل. استخدم النتيجة التي تحصل عليها معيارًا للتعليمات.

  2. أنشئ skill

    لإنشاء skill باستخدام المساعد المضمن، أدخل $skill-creator في جلسة Codex. سيسألك عن وظيفة skill، ومتى ينبغي استدعاؤها، وما إذا كانت هناك حاجة إلى نصوص برمجية، ثم سيُعدّ الهيكل لك. لإنشاء skill يدويًا، أنشئ مجلد .agents/skills في المشروع، وضع فيه مجلدًا فرعيًا للـ skill، مثل .agents/skills/weekly-sales-report، وأضف ملف SKILL.md داخله باستخدام المثال أعلاه.

  3. اكتب التعليمات

    اكتب الخطوات في قائمة مرقمة مع توضيح المدخلات والمخرجات. إذا كانت العملية تتطلب الدقة (نقل البيانات أو إعادة التسمية أو الحساب)، فاشرح كل خطوة بالتفصيل. أما في المهام الإبداعية (كتابة النصوص واختيار الحجج)، فحدد الحدود ومعايير النتيجة الجيدة مع ترك مساحة للنموذج للعمل.

  4. اختبر الاستدعاء

    اطلب من Codex تنفيذ المهمة بكلماتك، دون ذكر اسم skill. إذا اختار skill الصحيحة، فهذا يعني أن الوصف نجح مع تلك الصياغة. ثم اختبر الاستدعاء الصريح باستخدام $name. إذا لم تُستدعَ skill، فتحقق من المجلد، وما إذا كانت تظهر في /skills، وإعدادات التعطيل الموضحة أعلاه. إذا لم تظهر skill جديدة في القائمة، فأعد تشغيل Codex. إذا نجح الاستدعاء الصريح وكان الاستدعاء التلقائي مسموحًا، لكن Codex لم يستجب لطلب بصياغتك، فنقّح بداية description: اذكر المهمة أولًا، تليها الطرق المعتادة لصياغة الطلب. ثم اختبر مجددًا.

  5. نقّح بعد التشغيل

    بعد كل تشغيل، راجع النتيجة وأخبر الوكيل بما ينبغي تغييره في skill: «في المرة القادمة، أضف عمودًا يوضح النسبة في جدول الملخص». نقّح skill للمهام الإبداعية بناءً على الملاحظات إذا لم تُنتج النسخة الأولى النتيجة المطلوبة.

تُثبّت skills الجاهزة من OpenAI والمجتمع باستخدام $skill-installer واسم skill. ولمشاركة skills الخاصة بك مع الآخرين، وزّعها على هيئة plugins؛ فهذه طريقة تغليف منفصلة لا تحتاج إليها للاستخدام الشخصي.

كيفية التحقق من نتيجة الوكيل

أهم نقطة

أدرج معايير القبول مباشرةً في skill: ما الذي ينبغي أن تتضمنه النتيجة، وكيف على الوكيل فحص عمله قبل تسليمه. لا يضمن ذلك صحة النتيجة؛ فما زلت بحاجة إلى فحصها بنفسك.

قد تكون عمليات التحقق موضوعية أو ذاتية. فالتحققات الموضوعية قابلة للقياس: «يتضمن التقرير جميع المديرين الـ 12 الواردين في الملف المُصدّر» أو «يتطابق مجموع الجدول مع إجمالي CSV». سجّلها بوصفها متطلبات ملزمة. أما التحققات الذاتية فتتعلق بالجودة: «يبدو النص وكأنني كتبته» أو «الاستنتاجات موجزة». ويمكنك جعلها رسمية أيضًا: أدرج في skill مثالًا على فقرة جيدة واطلب من الوكيل مقارنة نتيجته بالمثال.

من الأساليب المفيدة دورة المراجعة: بعد إعداد النتيجة، يراجع الوكيل قائمة من المعايير، ويصلح ما يعثر عليه، ثم يعرضها عليك. لدى Anthropic أسلوب مشابه يُسمى evaluator-optimizer: ينجز وكيل العمل، ويراجعه مقيّم منفصل ويقدّم ملاحظات، وتتكرر العملية حتى القبول. داخل skill واحدة، يكون هذا عادةً نسخة مبسطة — فحصًا ذاتيًا أخيرًا بالاستناد إلى قائمة. ضع حدود هذا الأسلوب في الحسبان: فهو أضعف من مقيّم مستقل لأن الوكيل الذي أنجز العمل قد لا يلاحظ أخطاءه.

مثال على كتلة تحقق لتقريرنا:

## قبل التسليم، تحقق مما يلي
- وجود كل مدير من الملف المُصدّر في الجدول؛ فلا أحد مستبعد.
- تطابق الإجمالي مع مجموع CSV حتى آخر سنت.
- استناد كل تغيير رئيسي إلى رقم؛ وإذا لم تتوفر بيانات للمقارنة، يذكر التقرير ذلك بوضوح.
- حفظ الملف في report.md ومشاركة مساره مع المستخدم.

أي نموذج تختار لـ skill؟

أهم نقطة

ابدأ بالنموذج الذي نجحت عليه skill، ثم جرّب نماذج أقل تكلفة: إذا حافظت على الجودة، فاختر النموذج الأرخص. فيما يلي أسعار API ونقاط البداية للتشغيل الأول — وفقًا للأسعار في 20 سبتمبر 2026.

النموذجالإدخال، $ لكل مليون tokenالإخراج، $ لكل مليون tokenما الذي ينبغي تجربته عليه أولًا
GPT-6 Astra1050Skills التي تتضمن استدلالًا موسعًا وصورًا واستخدام المتصفح
GPT-5.6 Sol420Skills نصية متوسطة التعقيد
GPT-5.6 Terra2.5015عمليات بسيطة ذات نتيجة واضحة
GPT-5.6 Luna0.201.20مهام آلية: إعادة التنسيق والحساب وتجميع قائمة

يقترح العمود الأيمن مهامًا للفحوص الأولية. وهو ليس ترتيبًا أو نتيجة مقارنة: لا يمكنك تحديد النموذج المناسب لـ skill إلا بعد تشغيلها ومقارنة نتيجتها بالنتيجة المرجعية.

الأسعار في الجدول هي أسعار API الواردة في صفحات النماذج بتاريخ 20 سبتمبر 2026، وليست أسعار اشتراكات ChatGPT. عند استخدام اشتراك، يُحتسب الاستخدام ضمن حدوده. اعتبارًا من ذلك التاريخ، لدى Sol سعر ترويجي قدره $4/$20 حتى 21 نوفمبر 2026 على الأقل؛ والسعر القياسي هو $5/$30. قبل تشغيل متكرر واسع النطاق، راجع صفحة الأسعار؛ فعروض OpenAI الترويجية تتغير.

شغّل skill نفسها على النموذج الأقل تكلفة التالي، وقارن النتيجة بالنتيجة المرجعية. إذا حافظت الجودة على مستواها، فجرّب النموذج الأقل تكلفة الذي يليه. وإذا انخفضت الجودة، فارجع إلى النموذج السابق. للنماذج أيضًا مستويات effort: تتدرج Astra من low إلى max، وتتدرج عائلة 5.6 من none إلى max. اختبر تلك المستويات أيضًا بالاستناد إلى المعيار نفسه: اختر النموذج أولًا، ثم مستوى effort.

يؤدي تشغيل skill بانتظام إلى تكاليف متكررة. سعر الإدخال لـ Astra يعادل 50 ضعف سعر Luna، لذا قد يؤدي استخدام نماذج مختلفة للـ skill المتكررة نفسها إلى تكاليف متفاوتة بوضوح. وفي skill تحلل لقطات الشاشة والمستندات، قد يكلف النموذج الأضعف أكثر بسبب الحاجة إلى إعادة العمل.

أخطاء شائعة عند إنشاء skill واستخدامها

  • skill «لكل شيء». عملية واحدة، وskill واحدة — وهذه أيضًا توصية OpenAI. من الصعب وصف skill عامة من عشر صفحات بدقة، كما أن Codex يختار skill للمهمة بالاستناد إلى وصفها.
  • وصف مبهم. عبارة «يساعد في إعداد التقارير» لا توضح نوع التقارير التي تناسبها skill. اذكر المهمة وطرق صياغتها المعتادة في بداية description.
  • تعليمات بلا نتيجة محددة. إذا لم تحدد ما الذي ينبغي إنتاجه وأين يوضع، فقد تختلف النتائج من تشغيل إلى آخر.
  • غياب التحققات تمامًا. من دون خطوة أخيرة تتضمن معايير، قد تكون النتيجة مسودة غير مكتملة ستضطر إلى مراجعتها بالكامل بنفسك.
  • استخدام أقوى نموذج افتراضيًا. تحقق أولًا مما إذا كان نموذج أقل تكلفة قادرًا على إنجاز المهمة: شغّل skill نفسها وقارن النتيجة بالنتيجة المرجعية. لا تنتقل إلى نموذج آخر إلا إذا حافظت الجودة على مستواها.
  • تكرار الأسماء في مجلدات مختلفة. لا يدمج Codex skills ذات الاسم نفسه، مما يصعّب اختيار الصحيحة.

كيف تبدأ وتنقل skill إلى Claude Code

أهم نقطة

اختر عملية متكررة واحدة، وأنشئ skill باستخدام $skill-creator، واختبر استدعاءها بصياغتك، وأضف خطوة أخيرة تتضمن معايير القبول. بعد عدة مرات من التشغيل، نقّح الوصف والتعليمات بناءً على الأخطاء التي تجدها.

إذا كنت تعمل مع عدة وكلاء، يمكنك نقل مجلد يحتوي على تعليمات نصية فقط وملف SKILL.md إلى Claude Code. هناك تُحفظ skills في .claude/skills وتُستدعى باستخدام /name. تحقق من skill بعد نقلها إذا كانت تحتوي على نصوص برمجية أو تبعيات أو agents/openai.yaml. للاطلاع على دليل مكتبة skills في Claude Code، راجع Claude Code Skills: كيفية بناء مجموعتك الخاصة؛ ولمقارنة Codex وClaude Code، راجع Codex vs Claude Code.

افتح Ailoot.

المزيد من التفاصيل

أسئلة شائعة

لماذا ينجح استدعاء المهارة صراحة ويفشل اختيارها التلقائي؟

تحقق من ظهور المهارة في /skills وتفعيل الاستدعاء الضمني. إذا صح الأمران، فحسّن الوصف ليبدأ بالمهمة ويضم الكلمات التي تستخدمها عادة، ثم أعد اختبار الطلب العادي نفسه.

ماذا أتحقق منه في ناتج مهارة تقرير المبيعات؟

تأكد من تمثيل كل مدير في ملف التصدير، وتطابق الإجمالي مع المصدر، واستناد كل تغير مزعوم إلى أرقام، وحفظ ملف التقرير المطلوب. وإذا غابت الفترة السابقة، فينبغي أن يصرح التقرير بذلك.

جميع المقالات