استخدام الأدوات في وكلاء الذكاء الاصطناعي: استدعاء الوظائف والمخططات والتنفيذ الآمن
استخدام الأدوات في وكلاء الذكاء الاصطناعي هو الآلية التي يطلب من خلالها النموذج اللغوي الكبير تنفيذ وظائف خارجية — البحث على الويب، واستعلامات قواعد البيانات، واستدعاءات API، وعمليات الملفات — عن طريق إصدار JSON منظم لاستدعاء الأداة تعترضه وقت التشغيل وتتحقق منه مقابل مخطط JSON وتنفذه قبل إرجاع نتيجة الأداة. لا ينفذ النموذج اللغوي أي شيء قط؛ فهو يطلب فقط. يطبق وقت التشغيل التحقق من المخطط وفحوصات ACL وميزانيات الخطوات قبل أي تنفيذ. يُظهر tau-bench (2025) أن أخطاء بناء الحجج هي أكثر أوضاع الفشل شيوعًا في استخدام الأدوات.
استخدام الأدوات في وكلاء الذكاء الاصطناعي هو الآلية التي يطلب من خلالها نموذج لغوي كبير تنفيذ وظائف خارجية — البحث على الويب، واستعلامات قواعد البيانات، واستدعاءات API، وعمليات الملفات أو منطق الأعمال المخصص — عن طريق إصدار استدعاء أداة منظم في مخرجاته تعترضه وقت التشغيل، وتتحقق منه مقابل تعريف مخطط JSON، وتنفذه وتعيده كنتيجة أداة في دورة السياق التالية.
كيف تعمل استدعاءات الأدوات: حلقة الطلب-التنفيذ-الإرجاع
دورة حياة استدعاء الأداة
تتبع كل استدعاء أداة نفس الحلقة المكونة من خمس خطوات بغض النظر عن الإطار أو المزود:
- إعداد السياق — يتلقى الوكيل المهمة وقائمة بالأدوات المتاحة، يُوصف كل منها باسم ووصف بلغة طبيعية وتعريف مخطط JSON لمعاملاته.
- قرار النموذج اللغوي — يصدر النموذج كتلة استدعاء أداة في مخرجاته: اسم وظيفة وكائن JSON من الحجج المطابقة للمخطط المعلن.
- اعتراض وقت التشغيل — يعترض الإطار استدعاء الأداة قبل حدوث أي تنفيذ. يتم التحقق من الحجج مقابل المخطط. يتم فحص قائمة ACL للوكيل: هل يُسمح لهذا الوكيل باستدعاء هذه الأداة؟
- التنفيذ — إذا اجتازت عمليات التحقق وفحوصات الأذونات، ينفذ وقت التشغيل الوظيفة ويجمع مخرجاتها.
- حقن السياق — تُحقن نتيجة الأداة مرة أخرى في سياق المحادثة كدورة نتيجة الأداة. يواصل النموذج اللغوي التفكير من هذا السياق الغني.
الحقيقة المعمارية الحاسمة: لا ينفذ النموذج اللغوي أي شيء قط. يطلب فقط. كل إجراء غير آمن — كتابة ملف، استدعاء API، إرسال بريد إلكتروني — تتحكم فيه وقت التشغيل.
اختلافات تنسيق المزودين: OpenAI مقابل Anthropic مقابل Google
يدعم المزودون الثلاثة الرئيسيون للنماذج اللغوية الكبيرة استخدام الأدوات بشكل أصلي، لكن تنسيق JSON يختلف:
OpenAI (openai/openai-python، 30,941 نجمة، Apache-2.0): تدخل تعريفات الأدوات في معامل tools كمصفوفة من كائنات JSON Schema. يعيد النموذج استدعاءات الأدوات في حقل tool_calls. يُرسل العميل نتائج الأدوات كرسائل بـ role: "tool". أضاف Responses API (مارس 2025) أدوات مدمجة (web_search، file_search، computer_use) تُنفذ على جانب الخادم.
Anthropic (anthropic-sdk-python، 3,595 نجمة، MIT): تدخل تعريفات الأدوات في معامل tools على المستوى الأعلى. يعيد النموذج كتل محتوى tool_use داخل دورة المساعد. يجب على العميل تحليل هذه الكتل وإعادة كتل tool_result في دورة الإنسان التالية.
Google Gemini: تستخدم تعريفات الأدوات functionDeclarations داخل معامل tools. يعيد النموذج أجزاء functionCall؛ يرسل العميل أجزاء functionResponse. يدعم Gemini tool_config بوضع ANY ووضع AUTO.
التنسيقات متكافئة دلاليًا لكنها مختلفة نحويًا بما يكفي لأن ترميز اتفاقية مزود واحد يفشل عند تبديل النموذج.
من ينفذ الأداة فعليًا (ولماذا يهم ذلك للأمان)
لا يمكن للنموذج اللغوي تنفيذ الأدوات. يمكنه فقط طلبها. عندما يطبق وقت التشغيل بوابة ACL قبل كل تنفيذ أداة، لا يمكن لأي مخرجات النموذج، مهما صُممت، تجاوز فحص الأذونات.
تعريف مخططات الأدوات التي تستخدمها النماذج اللغوية بشكل صحيح
قاس tau-bench (ServiceNow Research، 2025) GPT-4o بنسبة 44% pass@1 على مهام استخدام الأدوات في البيع بالتجزئة. أكبر فئة من الفشل لم تكن اختيار الأداة — اختار النموذج الأداة الصحيحة — بل بناء الحجج. جودة المخطط هي الرافعة الأساسية للموثوقية.
تشريح مخطط JSON لتعريفات الأدوات
يتطلب مخطط أداة صالح كحد أدنى أربعة حقول:
{
"name": "search_web",
"description": "البحث في الويب العام عن معلومات حالية. استخدم عندما تتطلب المهمة حقائق بعد تاريخ قطع التدريب، أو بيانات في الوقت الفعلي، أو مصادر غير موجودة في بيانات التدريب.",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "استعلام البحث. استخدم مصطلحات محددة ومستهدفة، ليس جملة كاملة."
},
"max_results": {
"type": "integer",
"description": "الحد الأقصى لعدد النتائج المطلوب إرجاعها. الافتراضي 5، الحد الأقصى 20.",
"default": 5
}
},
"required": ["query"]
}
}
مصفوفة required مهمة: المعاملات غير الموجودة في required اختيارية.
كتابة أوصاف تقلل من أخطاء الحجج
ثلاث قواعد لأوصاف الأدوات التي تحسن دقة بناء الحجج:
- التسمية بزوج فعل-اسم:
search_web،create_ticket،read_file. يتجنب الغموض بين الأدوات المماثلة. - إزالة الغموض في الوصف: إذا بدت أداتان متشابهتين، حدد صراحةً متى تستخدم كل منهما.
- وصف المعاملات بأمثلة:
"استعلام البحث. مثال: 'LangGraph v0.2 استدعاءات الأدوات المتوازية'"يتفوق على"سلسلة الاستعلام"في دقة الحجج.
أخطاء المخطط الشائعة وكيفية إصلاحها
| الخطأ | التأثير | الإصلاح |
|---|---|---|
"type": "string" غير مقيد للقيم الفئوية | النموذج يخترع قيمًا غير صالحة | استخدم "enum": ["option_a", "option_b"] |
| وصف مفقود للمعاملات | النموذج يخمن دلالات الحجج | اكتب أوصافًا صريحة مع أمثلة |
جميع المعاملات في required | النموذج يرفض الاستدعاء عند جهل الحقول الاختيارية | أدرج المعاملات الضرورية فقط |
اسم أداة غامض (process، handle) | النموذج لا يستطيع التمييز بين الأدوات المماثلة | استخدم فعل-اسم: submit_form، parse_date |
لا توجد مصفوفة required | JSON Schema غير صالح | دائمًا أدرج required، حتى لو كانت فارغة ([]) |
الاستدعاءات المتوازية والمتسلسلة
متى تستخدم الاستدعاءات المتوازية
جعل Responses API من OpenAI (مارس 2025) الاستدعاءات المتوازية افتراضية. في دورة LLM واحدة، يمكن للنموذج طلب تنفيذات أدوات متعددة في وقت واحد. بالنسبة للأدوات المستقلة، يقلل الإرسال المتوازي الرحلات ذهابًا وإيابًا من N دورات متسلسلة إلى دفعة واحدة متزامنة.
مثال: يحتاج وكيل بحث إلى سعر السهم الحالي، وأحدث الأخبار، وتقديم SEC لشركة ما. الثلاثة مستقلة. متسلسل: 3 دورات LLM × 10 ثوانٍ = 30 ثانية. متوازٍ: دورة LLM واحدة + max(زمن استجابة الأدوات) نحو 10 ثوانٍ.
الشرط المسبق: يجب أن تكون الأدوات مستقلة حقًا. إذا كانت الأداة B تحتاج مخرجات الأداة A كحجة، فيجب أن تكون متسلسلة.
الاستدعاءات المتسلسلة للعمليات التابعة
تسلسل الأدوات — استخدام مخرجات أداة واحدة كمدخلات للتالية — يتطلب تنفيذًا متسلسلًا. النمط: search_web(استعلام) → fetch_page(URL من نتيجة البحث) → extract_data(محتوى الصفحة) → summarize(البيانات المستخرجة).
مخاطر التزامن مع الموارد ذات الحالة
الاستدعاءات المتوازية للأدوات ضد الموارد ذات الحالة تحتاج ضمانات الترتيب. القاعدة: الإرسال المتوازي آمن عندما تكون الأدوات للقراءة فقط أو تكتب في موارد مستقلة.
تحليل مخرجات الأدوات واسترداد الأخطاء
تفشل استدعاءات الأدوات. تعيد API الخارجية 503. ينتهي استعلام قاعدة البيانات. يعالج التنفيذ المصمم جيدًا الأخطاء دون تدخل بشري للأخطاء القابلة للاسترداد.
التحقق من مخرجات الأدوات
إرجاع أداة HTTP 200 ليس مثل إرجاع نتيجة صحيحة ومفيدة. تحقق من المخرجات مقابل المخطط المتوقع قبل حقنها في سياق الوكيل.
استراتيجيات إعادة المحاولة
ثلاثة أنماط لإعادة المحاولة لأوضاع الفشل المختلفة:
- إعادة محاولة الفشل العابر (انتهاء مهلة الشبكة، تجاوز حد المعدل): أعد استدعاء نفس الأداة بنفس الحجج بعد تراجع قصير.
- إعادة المحاولة مع توضيح الحجة: أعد خطأ منظمًا إلى النموذج موضحًا سبب رفض الحجة.
- أداة الاحتياطية: إذا فشلت الأداة A بعد N من إعادة المحاولة، قم بالتوجيه إلى الأداة B بقدرة مكافئة.
نطاق أذونات الأدوات والأمان
تعيين الأدوات بأقل الصلاحيات
يجب أن يمتلك كل وكيل الأدوات التي تتطلبها مهمته المحددة فقط. نصف قطر الانفجار للوكيل الذي تعرض لحقن الموجه بنجاح محدود بمجموعة الأدوات المسموح بها. تُدرج OWASP LLM Top 10 v1.1 (2025) حقن الموجه (LLM01) كأكبر خطر لتطبيقات النماذج اللغوية.
التحقق من المدخلات قبل التنفيذ
تحقق من حجج استدعاء الأداة على طبقتين: التحقق من المخطط والتحقق الدلالي. يجب أن ترفض أداة fetch_page الحجج التي تحتوي على عناوين URL بـ file:// أو localhost لمنع SSRF.
راجع نموذج تهديد أمان وكيل الذكاء الاصطناعي للتصنيف الكامل لمتجهات الهجوم على مستوى الأداة.
الإجراءات غير القابلة للعكس: بوابات الإنسان في الحلقة
استدعاءات الأدوات ذات الآثار الجانبية غير القابلة للعكس — إرسال رسائل البريد الإلكتروني، وحذف السجلات، وتحويل الأموال، ونشر المحتوى — تتطلب بوابات تأكيد بشرية صريحة أو فحوصات الأذونات الانفرادية قبل التنفيذ.
رأي OpenLegion: سجل الأدوات وبوابة ACL
كل مزود رئيسي من مزودي النماذج اللغوية الكبيرة لديه API مختلف لاستدعاء الأدوات. التجريد الصحيح: تعريف أداة مرة واحدة والسماح للإطار بترجمتها إلى الاتفاقية الصحيحة للمزود وقت الاستدعاء.
ينفذ سجل أدوات OpenLegion هذا التجريد. عرّف search_web مرة واحدة. يترجم الشبكة التعريف إلى OpenAI tools أو Anthropic tools أو Gemini functionDeclarations حسب النموذج المُكوَّن. بوابة ACL غير اختيارية.
| البُعد | OpenLegion | LangChain / LangGraph | OpenAI Agents SDK | CrewAI | Anthropic مباشر |
|---|---|---|---|---|---|
| تنسيق تعريف الأداة | مخطط واحد مترجم للمزود | مطلوب أغلفة خاصة بالمزود | تنسيق OpenAI فقط | مزخرف أدوات CrewAI | تنسيق Anthropic tool_use فقط |
| تجريد المزود | نعم — GPT-4o وClaude وGemini موحدة | جزئي — عبر تكاملات LangChain | لا — نماذج OpenAI فقط | جزئي | لا — Anthropic فقط |
| تطبيق ACL | مصفوفة أذونات لكل وكيل، بنيوية | غير مدمج | غير مدمج | غير مدمج | غير مدمج |
| استدعاءات الأدوات المتوازية | مدعوم | مدعوم (تابع للمزود) | نعم — افتراضي في Responses API | مدعوم | نعم — Claude يدعم |
| الأدوات المدمجة | المتصفح والملف وHTTP والشل وتوليد الصور | عبر أدوات مجتمع LangChain | web_search وfile_search وcomputer_use | غير مدمج | غير مدمج |
| تكامل MCP | أصلي — نفس خط أنابيب ACL/الميزانية | عبر محولات LangChain MCP | تجريبي | غير أصلي | غير أصلي |
الأسئلة الشائعة
ما هو استخدام الأدوات في وكلاء الذكاء الاصطناعي؟
استخدام الأدوات في وكلاء الذكاء الاصطناعي هو الآلية التي يطلب من خلالها النموذج اللغوي الكبير تنفيذ وظائف خارجية — البحث على الويب، واستدعاءات API، واستعلامات قواعد البيانات، وعمليات الملفات — عن طريق إصدار JSON منظم لاستدعاء الأداة تعترضه وقت التشغيل وتتحقق منه وتنفذه. لا ينفذ النموذج اللغوي أي شيء مباشرة؛ يصف فقط ما يريد استدعاءه وبأي حجج.
كيف يعمل استدعاء الوظائف في وكلاء الذكاء الاصطناعي؟
يعمل استدعاء الوظائف في حلقة طلب-تنفيذ-إرجاع: يتلقى الوكيل مهمة وقائمة بالأدوات المتاحة؛ يصدر النموذج اللغوي استدعاء أداة يسمي الوظيفة ويوفر الحجج؛ يتحقق وقت التشغيل من تلك الحجج وينفذ الوظيفة ويحقن النتيجة كنتيجة أداة في السياق.
ما الذي يجعل مخطط الأداة جيدًا لوكلاء الذكاء الاصطناعي؟
يستخدم المخطط الجيد اسم فعل-اسم (search_web، create_ticket)، ووصفًا يحدد بوضوح متى يستخدمها، ومعاملات مكتوبة بشكل صارم مع تعدادات، ومصفوفة required. يُظهر tau-bench (2025) أن بناء الحجج غير الصحيح هو أكثر أوضاع الفشل شيوعًا.
ما هي الاستدعاءات المتوازية للأدوات ومتى ينبغي استخدامها؟
تتيح الاستدعاءات المتوازية للأدوات للوكيل طلب تنفيذات أدوات متعددة في دورة LLM واحدة، يرسلها وقت التشغيل بالتزامن. استخدم الاستدعاءات المتوازية عندما تكون الأدوات مستقلة — لا تعتمد مخرجاتها على بعضها ولا تكتب في موارد مشتركة ذات حالة.
كيف أمنع حلقات استدعاء الأدوات في وكلاء الذكاء الاصطناعي؟
تحدث حلقات استدعاء الأدوات عندما يستمر الوكيل في استدعاء الأدوات دون التقارب نحو إجابة نهائية. الوقاية الوحيدة الموثوقة هي ميزانية خطوات مطبقة على مستوى البنية التحتية: حد أقصى صارم لاستدعاءات الأداة لكل تشغيل وكيل، يطبقه المنسق.
ما هو الخطر الأمني لاستخدام الأدوات في وكلاء الذكاء الاصطناعي؟
الخطر الرئيسي هو حقن نتيجة الأداة: عندما يستدعي وكيل أداة تعيد محتوى يتحكم فيه المهاجم ويمكنه إعادة توجيه سلوك الوكيل. تُدرج OWASP LLM Top 10 v1.1 (2025) حقن الموجه كأكبر خطر. تشمل التخفيفات تعقيم المخرجات، وتعيين الأدوات بأقل الصلاحيات، وبوابات الإنسان في الحلقة للإجراءات غير القابلة للعكس.
ما الفرق بين الأدوات المدمجة وأدوات MCP والأدوات المخصصة؟
الأدوات المدمجة مقدمة من وقت التشغيل مع تطبيق ACL. أدوات MCP مُقدَّمة من خوادم Model Context Protocol التي تعرض إمكانات خارجية عبر JSON-RPC؛ تتطلب وضع الحماية في صندوق رملي وتحديد نطاق الأذونات لكل خادم. الأدوات المخصصة وظائف تكتبها وتسجلها، مما يتيح مرونة كاملة مع المسؤولية عن التحقق والأمان.
كيف ينفذ مزودو النماذج اللغوية المختلفون استخدام الأدوات؟
ينفذ OpenAI استخدام الأدوات عبر معامل tools، وtool_calls في استجابة المساعد، ورسائل النتائج role: "tool". تستخدم Anthropic كتل محتوى tool_use مع كتل tool_result في دورة الإنسان التالية. تستخدم Google Gemini functionDeclarations مع أجزاء functionCall في الاستجابات وأجزاء functionResponse في الدورات اللاحقة. التنسيقات الثلاثة متكافئة دلاليًا لكنها مختلفة نحويًا.
عرّف أدواتك مرة واحدة، ونفذها بأمان في كل مكان
يضع tau-bench (2025) GPT-4o عند 44% pass@1 على مهام استخدام الأدوات، مع بناء الحجج كفئة الفشل المهيمنة. المخططات الدقيقة بأسماء فعل-اسم، والتعدادات المكتوبة، وأمثلة المعاملات تُغلق معظم هذه الفجوة.
بالنسبة لـ أنماط سير عمل الوكيل التي تغطي ميزانيات الخطوات ومنع الحلقات، ولـ معايير تقييم وكيل الذكاء الاصطناعي التي تقيس موثوقية استخدام الأدوات، توسع تلك الأدلة الأسس التي تغطيها هذه الصفحة.
ابنِ وكلاء يستخدمون الأدوات مع تطبيق ACL لكل وكيل على OpenLegion ←