تكامل الأدوات واستدعاء الوظائف

صيغة استدعاء الوظائف عبر المنصات

5 دقيقة للقراءة

كل منصة ذكاء اصطناعي رئيسية لديها صيغة استدعاء وظائف خاصة بها. فهم هذه الأنماط يتيح لك بناء تكاملات أدوات قابلة للنقل والتحسين لنقاط قوة كل منصة.

استدعاء وظائف Claude (Anthropic)

تنسيق تعريف الأداة

{
  "tools": [
    {
      "name": "get_weather",
      "description": "Get current weather for a location",
      "input_schema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "City name or coordinates"
          },
          "units": {
            "type": "string",
            "enum": ["celsius", "fahrenheit"]
          }
        },
        "required": ["location"]
      }
    }
  ]
}

استجابة استخدام الأداة (Claude Opus 4.5/Sonnet 4.5)

{
  "content": [
    {
      "type": "tool_use",
      "id": "toolu_01ABC123",
      "name": "get_weather",
      "input": {
        "location": "San Francisco",
        "units": "fahrenheit"
      }
    }
  ],
  "stop_reason": "tool_use"
}

تنسيق نتيجة الأداة

{
  "role": "user",
  "content": [
    {
      "type": "tool_result",
      "tool_use_id": "toolu_01ABC123",
      "content": "72°F, sunny, humidity 45%"
    }
  ]
}

استدعاء وظائف OpenAI (GPT-5.2)

تنسيق تعريف الأداة

{
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get current weather for a location",
        "parameters": {
          "type": "object",
          "properties": {
            "location": {
              "type": "string",
              "description": "City name"
            }
          },
          "required": ["location"]
        }
      }
    }
  ],
  "tool_choice": "auto"
}

استجابة استدعاء الأداة

{
  "choices": [
    {
      "message": {
        "tool_calls": [
          {
            "id": "call_abc123",
            "type": "function",
            "function": {
              "name": "get_weather",
              "arguments": "{\"location\": \"Tokyo\"}"
            }
          }
        ]
      },
      "finish_reason": "tool_calls"
    }
  ]
}

استدعاء وظائف Google (Gemini 3)

تنسيق تعريف الأداة

{
  "tools": [
    {
      "function_declarations": [
        {
          "name": "get_weather",
          "description": "Returns weather for location",
          "parameters": {
            "type": "object",
            "properties": {
              "location": {"type": "string"}
            },
            "required": ["location"]
          }
        }
      ]
    }
  ]
}

جدول المقارنة

الميزة Claude OpenAI Gemini
المخطط input_schema parameters parameters
معرف الاستدعاء tool_use_id tool_call_id ضمني
دور النتيجة user (tool_result) tool function_response
استدعاءات متوازية نعم نعم نعم
البث نعم نعم نعم

MCP (بروتوكول سياق النموذج)

Claude Code يستخدم MCP لتوسيع الأدوات:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem"],
      "env": {
        "ALLOWED_PATHS": "/home/user/projects"
      }
    }
  }
}

أفضل الممارسات للأدوات عبر المنصات

1. استخدم معيار JSON Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    }
  },
  "required": ["query"],
  "additionalProperties": false
}

2. توحيد معالجة الاستجابة

def handle_tool_response(platform, response):
    if platform == "claude":
        return response["content"][0]["input"]
    elif platform == "openai":
        return json.loads(response["tool_calls"][0]["function"]["arguments"])
    elif platform == "gemini":
        return response["candidates"][0]["content"]["parts"][0]["functionCall"]["args"]

أوضاع استدعاء الأدوات

استراتيجيات استدعاء مختلفة:

الوضع الوصف حالة الاستخدام
auto النموذج يقرر استخدام عام
required يجب استدعاء الأداة استرجاع البيانات
none بدون أدوات توليد نقي
specific إجبار أداة محددة تدفقات متحكم بها

رؤية رئيسية: بينما تختلف الصيغة عبر المنصات، المفاهيم الأساسية متطابقة: عرّف الأدوات بـ JSON Schema، استقبل استدعاءات منظمة، أعد نتائج منسقة. بناء طبقات التجريد يتيح لك كتابة الأدوات مرة واستخدامها في كل مكان.

بعد ذلك، سنستكشف تكامل MCP وأنماط تنسيق الأدوات. :::

اختبار

الوحدة 4: تكامل الأدوات واستدعاء الوظائف

خذ الاختبار