Skills: ربط الأدوات واستدعاؤها

آخر تحديث: 2026-08-31

الأدوات هي يد المهارة — الأدوات التي تربطها تحدد ما يمكن للمهارة فعله وما لا يمكنها فعله.


1. نظرة عامة على نظام الأدوات

(1) فئات الأدوات المدمجة

الفئة الأداة القدرة مستوى المخاطر
القراءة Read قراءة محتويات الملفات 🟢 منخفض
البحث Grep، Glob البحث عن أنماط الكود 🟢 منخفض
الكتابة Write إنشاء/استبدال الملفات 🟡 متوسط
التعديل Edit تعديل دقيق للملفات 🟡 متوسط
التنفيذ Bash تشغيل أوامر Shell 🔴 عالي
الويب WebFetch جلب محتوى الويب 🟡 متوسط

(2) أدوات MCP

أدوات بروتوكول سياق النموذج (MCP) توسع حدود قدرات الذكاء الاصطناعي:

JSON
// مثال على تكوين خادم MCP
{
  "mcpServers": {
    "database": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL": "postgresql://..."
      }
    },
    "browser": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-browser"]
    }
  }
}

2. استراتيجية اختيار الأدوات

(1) مبدأ الامتيازات الأقل

TEXT 📖 للعرض فقط
تحليل متطلبات المهمة → تحديد الأدوات الضرورية → ربط الأدوات الضرورية فقط

مثال:
┌─────────────────┬──────────────────────┐
│ المهمة          │ الأدوات المربوطة     │
├─────────────────┼──────────────────────┤
│ مراجعة للقراءة فقط│ Read, Grep, Glob     │
│ إصلاح كود        │ Read, Edit, Bash     │
│ إعادة هيكلة مشروع│ Read, Write, Edit, Bash, Grep │
│ نشر تلقائي كامل│ جميع الأدوات + MCP      │
└─────────────────┴──────────────────────┘

(2) Edit مقابل Write

البُعد Edit Write
الدقة على مستوى السطر الملف بالكامل
الأمان يُغيّر الأجزاء المحددة فقط قد يستبدل محتوى آخر
حالة الاستخدام إصلاح أخطاء، تعديلات صغيرة إنشاء ملفات جديدة، إعادة كتابة كاملة
التوصية ✅ مفضّل ⚠️ استخدم بحذر

(3) الاستخدام الآمن لـ Bash

MARKDOWN
## قواعد استخدام Bash

الأوامر المسموح بها:
- git status، git diff، git log
- npm test، pytest، go test
- ruff check، eslint، prettier
- docker ps، kubectl get

الأوامر المحظورة:
- rm -rf / (حذف خطير)
- curl | bash (تنفيذ نص برمجي عن بُعد)
- تصدير متغيرات بيئة تحتوي على أسرار
- أوامر تُعدّل تكوين النظام

3. تحسين استدعاء الأدوات

(1) القراءة الدفعية

MARKDOWN
# غير فعال: قراءة واحد تلو الآخر
1. Read src/main.py
2. Read src/utils.py
3. Read src/config.py

# فعال: استخدم Glob لتحديد النطاق أولاً، ثم قراءة مُوجّهة
1. Glob "src/**/*.py" → احصل على قائمة الملفات
2. Read الملفات الرئيسية (نقطة الدخول، التكوين، دوال الأدوات)

(2) البحث أولاً

MARKDOWN
# غير فعال: قراءة جميع الملفات بشكل أعمى
1. Read جميع ملفات .py (أكثر من 50 ملفًا)

# فعال: بحث للتحديد أولاً
1. Grep "class.*View" → اعثر على جميع أصناف العروض
2. Grep "TODO|FIXME|HACK" → اعثر على الديون التقنية
3. Read فقط الملفات التي تحتاج فحصًا أعمق من نتائج البحث

(3) سلسلة استدعاء الأدوات

100%
graph TD
    A[Glob: تحديد نطاق الملفات] --> B[Grep: البحث عن الأنماط الرئيسية]
    B --> C[Read: قراءة معمقة للملفات المستهدفة]
    C --> D{تحتاج تعديل؟}
    D -->|نعم| E[Edit: تعديل دقيق]
    D -->|لا| F[إخراج تقرير التحليل]
    E --> G[Bash: التحقق من نتيجة التعديل]

4. ممارسة ربط الأدوات

▶ مثال 1: مهارة تحليل للقراءة فقط

YAML
---
name: tech-debt-scanner
description: "ماسح الديون التقنية، كشف TODO/FIXME/HACK وروائح الكود"
triggers:
  - keyword: "tech-debt"
tools:
  - Grep
  - Glob
  - Read
---

# مهارة ماسح الديون التقنية

## تدفق التنفيذ
1. استخدم Grep للبحث عن تعليقات TODO، FIXME، HACK
2. استخدم Grep للبحث عن أنماط روائح الكود (دوال طويلة جدًا، تعشيش عميق)
3. استخدم Read لفحص المشاكل عالية الأولوية بالتفصيل
4. أخرج قائمة الديون التقنية مرتبة حسب الأولوية

▶ مثال 2: مهارة إصلاح تلقائي

YAML
---
name: lint-fix
description: "إصلاح تلقائي لمشاكل أسلوب الكود"
triggers:
  - keyword: "lint-fix|fix style"
tools:
  - Read
  - Bash
  - Edit
---

# مهارة إصلاح أسلوب الكود

## تدفق التنفيذ
1. استخدم Bash لتشغيل أداة الفحص (اختيار تلقائي حسب نوع المشروع)
2. حلّل مخرجات أداة الفحص
3. للمشاكل القابلة للإصلاح التلقائي، شغّل أداة الفحص --fix
4. للمشاكل التي تتطلب إصلاحًا يدويًا، استخدم Edit للإصلاح واحدًا تلو الآخر
5. استخدم Bash لتشغيل أداة الفحص مرة أخرى للتحقق

5. إدارة صلاحيات الأدوات

(1) صلاحيات على مستوى المشروع

JSON
// .claude/settings.json
{
  "permissions": {
    "allow": [
      "Read(*)",
      "Grep(*)",
      "Glob(*)",
      "Edit(src/**)",
      "Bash(npm test,pytest,git *)"
    ],
    "deny": [
      "Write(.env*)",
      "Bash(rm *)",
      "Bash(curl *)"
    ]
  }
}

(2) صلاحيات على مستوى المهارة

YAML
# تحديد نطاق استخدام الأدوات في frontmatter المهارة
tools:
  - Read
  - Edit:
      paths: ["src/**", "tests/**"]
  - Bash:
      commands: ["pytest", "ruff check"]

بعد أن كوّنت Alice صلاحيات الأدوات للفريق، لم تعد تحدث مشاكل حذف ملفات بالخطأ من المهارات. قال Bob: "إدارة الصلاحيات ليست عن تقييد القدرة — بل عن تحديد حدود آمنة حتى تعمل المهارات بحرية داخل منطقة الأمان."


❓ الأسئلة الشائعة

س ماذا لو لم يستدعي الذكاء الاصطناعي أداة مربوطة؟
ج اطلب صراحةً استخدام الأداة في القالب وقدّم خطوات الاستدعاء. إذا لم يستدعيها الذكاء الاصطناعي بعد، فقد يكون القالب غير محدد بدرجة كافية أو وصف الأداة غير واضح.
س كيف تمنع المهارات من تنفيذ عمليات خطيرة؟
ج ثلاث طبقات حماية — الامتيازات الأقل (ربط الأدوات الضرورية فقط)، قيود المسار (Edit محدود بأدلة)، قائمة الأوامر المسموحة (Bash يسمح فقط بالأوامر الآمنة).
س ما الفرق بين أدوات MCP والأدوات المدمجة؟
ج الأدوات المدمجة تأتي مع منصة الذكاء الاصطناعي؛ أدوات MCP توفرها خدمات خارجية. أدوات MCP أكثر قدرة لكن أكثر تعقيدًا في التكوين، مناسبة للسيناريوهات التي تتطلب قدرات خارجية مثل قواعد البيانات/المتصفحات.

📖 ملخص


📝 تمارين

  1. أساسي (⭐): حلّل روابط الأدوات في مهارتك الحالية للتحقق من وجود تفويض مفرط أو صلاحيات غير كافية.
  2. متوسط (⭐⭐): أنشئ مهارة إصلاح تلقائي لأداة الفحص مع اختيار أدوات مناسب وإعدادات صلاحيات.
  3. متقدم (⭐⭐⭐): صمّم خطة تحسين سلسلة استدعاء الأدوات وقارن عدد الاستدعاءات والتوقيت قبل وبعد التحسين.
Web-Tutorial.com

فريق Web-Tutorial التقني

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

100%