← 返回列表

مقابلة سلسلة AI 7: كيفية تعريف Skill بشكل موحد

1. المفهوم الأساسي لـ Skill

Skill هو وحدة قدرة قابلة للتنفيذ مغلفة في Agent (وكيل) أو نظام AI. عادةً ما يحتوي على:

  • شرط التشغيل: متى يتم استدعاؤه (مثل تعليمات المستخدم، أحداث النظام).
  • معلمات الإدخال: البيانات أو السياق الذي يجب استقباله.
  • منطق التنفيذ: خطوات المعالجة المحددة (مثل استدعاء API، تشغيل كود، الاستعلام من قاعدة المعرفة).
  • نتيجة الإخراج: الاستجابة أو الإجراء الذي يتم إرجاعه إلى المستدعي.

2. خطوات تعريف Skill بشكل موحد

1. تحديد اسم ووصف Skill

  • الاسم: قصير، فريد، ذو دلالة (مثل search_web، send_email).
  • الوصف: جملة واحدة توضح وظيفة Skill، لتسهيل المطابقة التلقائية من قبل Agent.

2. تعريف معلمات الإدخال (Input Schema)

استخدم JSON Schema أو تنسيق مشابه، مع تحديد نوع كل معلمة، إلزاميتها، القيمة الافتراضية والقيود.

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "كلمة البحث",
      "required": true
    },
    "max_results": {
      "type": "integer",
      "description": "الحد الأقصى لعدد النتائج",
      "default": 10
    }
  }
}

3. كتابة منطق التنفيذ (Execution Logic)

  • منطق حتمي: استدعاء دالة أو API أو قاعدة بيانات مباشرة.
  • منطق غير حتمي: استخدام LLM لتوليد استجابة (مع توفير قالب prompt).
  • معالجة الأخطاء: تعريف المهلة، إعادة المحاولة، استراتيجيات التخفيض.

4. تعريف تنسيق الإخراج (Output Schema)

استخدم JSON Schema لوصف بنية البيانات المرتجعة.

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": { "type": "string" },
          "url": { "type": "string", "format": "uri" }
        }
      }
    }
  }
}

5. البيانات الوصفية الإضافية (Metadata)

  • رقم الإصدار: لتسهيل إدارة التحديثات.
  • المؤلف/المسؤول: تحديد المسؤولية.
  • التبعيات: الخدمات أو المكتبات الخارجية المطلوبة.
  • قيود الاستخدام: مثل حدود التردد، متطلبات الصلاحية.

3. مثال: تعريف Skill كامل

name: "weather_query"
description: "الاستعلام عن الطقس الحالي بناءً على اسم المدينة"
version: "1.0.0"
author: "AI Team"

input:
  type: object
  properties:
    city:
      type: string
      description: "اسم المدينة، مثل 'بكين'"
      required: true
    unit:
      type: string
      enum: ["celsius", "fahrenheit"]
      default: "celsius"

execute:
  - step: "استدعاء API الطقس"
    api: "https://api.weather.com/v1/current"
    method: "GET"
    params:
      city: "{input.city}"
      unit: "{input.unit}"
  - step: "تنسيق النتيجة"
    format: "درجة الحرارة الحالية في {city} هي {temperature}°{unit}"

output:
  type: object
  properties:
    temperature:
      type: number
    condition:
      type: string
    humidity:
      type: number

4. أفضل الممارسات

  • مسؤولية واحدة: كل Skill يقوم بشيء واحد فقط، تجنب الاقتران الزائد.
  • مكتفي ذاتيًا: حاول عدم الاعتماد على حالة عامة خارجية، الإدخال يؤدي إلى الإخراج.
  • قابل للاختبار: توفير بيانات وهمية أو بيئة اختبار معزولة لإجراء اختبارات الوحدة.
  • موثق: كتابة تعليمات الاستخدام وأمثلة لكل Skill.

من خلال الطرق المذكورة أعلاه لتعريف Skill، يمكن جدولته ديناميكيًا بواسطة AI Agent، كما يمكن للمطورين دمجه مباشرة في النظام، لتحقيق تأثير إعادة الاستخدام "اكتب مرة واحدة، استخدم في كل مكان".

评论

暂无已展示的评论。

发表评论(匿名)