
أفضل ممارسات استدعاء الأدوات للوكلاء: لماذا يختار وكيلك الأداة الخطأ
أفضل ممارسات استدعاء الأدوات للوكلاء هي ما يفصل بين نموذج تجريبي يعمل ووكيل يستدعي الأداة الخطأ في بيئة الإنتاج دون أن يلاحظ أحد. قاس فريق الهندسة في Anthropic أثر وصف واحد أُعيدت كتابته فاختصر نتيجة أداة من 206 توكنات إلى 72، وفرض Claude Code سقفاً صارماً قدره 25,000 توكن لكل استجابة أداة لأن النزف حقيقي. يفشل وكيلك بأربع طرق: أداة خاطئة، وسيطات خاطئة، حلقات جامحة، ونزف توكنات، ولكل منها إصلاح يمكنك إطلاقه هذا الأسبوع.
أهم الخلاصات:
- يفشل استدعاء الأدوات للوكلاء بأربع طرق لا غير: أداة خاطئة، وسيطات خاطئة، حلقات جامحة، ونزف توكنات.
- أوصاف الأدوات هي التعليمة الوحيدة التي يراها النموذج لحظة الاختيار، لذا فهي تعالج معظم نداءات الأداة الخاطئة.
- المخططات المسطحة المصممة بحجم المهمة مع وسيطات مُتحقق منها تقضي على معظم إخفاقات الوسيطات الخاطئة.
- استجابات الأدوات الموجزة وحلقة التقييم عند كل تغيير يبقيان تكلفة التوكنات والتراجعات قابلة للقياس.
لماذا يفشل استدعاء الأدوات للوكلاء في بيئة الإنتاج؟
يفشل استدعاء الأدوات بأربع طرق: يختار النموذج الأداة الخطأ، أو يكتب وسيطات خاطئة، أو يدور في حلقة جامحة، أو ينزف التوكنات عبر استجابات مترهلة. يصيب كل فشل خطوة مختلفة من حلقة النداء، لذا فإن ترتيب الإصلاح مهم. ابدأ بالاختيار، لأن اختيار أداة خاطئة يسمّم كل خطوة تليه.
| نمط الفشل | أين يحدث في الحلقة | الممارسة التي تعالجه | الجهد |
|---|---|---|---|
| أداة خاطئة | النموذج يختار من قائمة الأدوات | 1 (الأوصاف) + 4 (الفصل بالأسماء، التصفية) | منخفض |
| وسيطات خاطئة | النموذج يكتب JSON الخاص بـ tool_call | 2 (المخططات المسطحة) + 6 (التحقق) | منخفض-متوسط |
| حلقة جامحة | tool_result يعود دورياً إلى النموذج | 3 (الأدوات الذرية) + 7 (بوابات بشرية) | متوسط |
| نزف التوكنات | tool_result يعود إلى نافذة السياق | 5 (نتائج موجزة) + 8 (حلقة التقييم) | منخفض-متوسط |
الوصفة الكاملة في لمحة:
| الممارسة | الفشل الذي تعالجه | الجهد |
|---|---|---|
| 1. اكتب أوصافاً يستطيع النموذج التحرك بناءً عليها | أداة خاطئة | منخفض |
| 2. أبقِ المخططات مسطحة ومصممة بحجم المهمة | وسيطات خاطئة | منخفض |
| 3. لفّ التسلسلات متعددة الخطوات في أدوات ذرية | حلقات جامحة | متوسط |
| 4. افصل الأسماء، قلّم، وصفِّ الأدوات ديناميكياً | أداة خاطئة | متوسط |
| 5. أعد نتائج موجزة عالية الإشارة | نزف التوكنات | منخفض |
| 6. تحقق من كل نداء واجعل الأخطاء تعلّم النموذج | وسيطات خاطئة | متوسط |
| 7. ضع الإجراءات التدميرية خلف بوابة بشرية | حلقات جامحة، أمان | متوسط |
| 8. شغّل حلقة تقييم عند كل تغيير في الأدوات | الأربعة معاً، كتراجعات | متوسط |
طبّقها بهذا الترتيب. الممارستان 1 و2 تستغرقان ظهيرة واحدة وتزيلان معظم إخفاقات الأداة الخاطئة والوسيطات الخاطئة التي تراها اليوم. وصف الأداة ليس توثيقاً، بل هو التعليمة الوحيدة التي يحصل عليها النموذج لحظة الاختيار.
المرحلة 1: صمّم أدوات يستطيع النموذج استخدامها فعلاً
أرخص مكاسب الموثوقية في استدعاء الأدوات للوكلاء تكمن في تعريفات أدواتك، لا في الموجهات أو اختيار النموذج. النموذج لا يقرأ توثيق API الخاص بك ولا ملف README، بل يرى اسماً ووصفاً ومخطط JSON، ويقرر بناءً عليها وحدها. أتقن هذه الثلاثة فتتحرك دقة الاختيار قبل أن تلمس أي شيء آخر.
الممارسة 1: اكتب أوصافاً يستطيع النموذج التحرك بناءً عليها
اكتب أوصاف الأدوات كتعليمات موجهة للنموذج، لا كتوثيق API. الوصف الذي يُرضي مطوراً بشرياً ("غلاف REST لنقطة نهاية المستخدمين") لا يعطي النموذج شيئاً يقرر بناءً عليه. دليل Anthropic الهندسي لكتابة الأدوات وأفضل ممارساتهم لتعريف الأدوات يدفعان النمط نفسه: قل متى تستخدم الأداة، وماذا تعيد، ومتى لا تستخدمها.
{
"name": "get_user",
"description": "Fetches a user profile. Use ONLY when you already have a user_id. Do NOT use to search or list users; call search_users instead. Returns name, email, plan. Errors if user_id is not a valid UUID."
}مقابل النسخة التي يطلقها معظم الفرق:
{
"name": "get_user",
"description": "Gets a user."
}قاعدتان تنجزان معظم العمل هنا. أولاً: سمِّ الوسائط بحيث لا يحتمل معناها لبساً: user_id وليس user أو id أبداً، لأن user يغري النموذج بتمرير اسم أو بريد إلكتروني حيث ينبغي أن يكون UUID. ثانياً: صرّح بالاستثناءات. عبارة "لا تستخدم للبحث عن المستخدمين" تمنع نداءات أداة خاطئة أكثر من أي قدر من الوصف الإيجابي، لأن النماذج تخلط بين الأدوات المتداخلة أكثر بكثير مما تسيء فهم أداة واحدة محددة الحدود بوضوح. لآليات وصول هذه التعريفات إلى واجهات OpenAI وAnthropic وGoogle على مستوى المزود، راجع دليلنا لاستدعاء الدوال متعدد المزودين.
الممارسة 2: أبقِ المخططات مسطحة ومصممة بحجم المهمة
أبقِ مخططات الإدخال مسطحة، بكل حقل تحتاجه المهمة فعلاً ولا شيء مما لا تحتاجه. الكائنات المتداخلة ذات الفروع الاختيارية هي مرتع إخفاقات الوسيطات الخاطئة: على النموذج استنتاج بنية لم يرَ لها مثالاً قط. دليل OpenAI لاستدعاء الدوال يقبل أي JSON Schema، لكن المتسامح ليس مرادفاً للموثوق.
{
"name": "create_ticket",
"parameters": {
"type": "object",
"properties": {
"ticket": {
"type": "object",
"properties": {
"details": {
"type": "object",
"properties": {
"title": { "type": "string" },
"meta": { "type": "object" }
}
}
}
}
}
}
}سطّحه ليناسب المهمة:
{
"name": "create_ticket",
"parameters": {
"type": "object",
"properties": {
"title": { "type": "string" },
"priority": { "type": "string", "enum": ["low", "medium", "high"] },
"assignee_id": { "type": "string" }
},
"required": ["title", "priority"]
}
}التعدادات (enums) تتفوق على النص الحر في أي حقل ذي قيم محدودة. ومصفوفات الحقول المطلوبة تتفوق على جعل كل شيء اختيارياً. إذا كان النموذج يحتاج حقلاً في كل الحالات تقريباً، فاجعله مطلوباً في مخطط الأداة حتى لو كانت واجهة API لديك تعدّه اختيارياً. أنت لا تعكس واجهتك، بل تصمم سطحاً يستطيع نموذج محدد واحد ملأه بشكل صحيح.
المرحلة 2: أدر مجموعة الأدوات، لا الأدوات وحدها
جودة الأداة المفردة تتوقف عن كونها كافية حين يحمل الوكيل أكثر من حفنة أدوات، لأن أخطاء الاختيار تنمو مع حجم القائمة التي يقرؤها النموذج.
الممارسة 3: لفّ تسلسلات API متعددة الخطوات في أدوات ذرية
اطوِ أي تسلسل ثابت من نداءات API في أداة ذرية واحدة. تدوينة Anthropic الهندسية تتخذ من schedule_event وget_customer_context نموذجاً: نداء واحد ينجز العمل كاملاً يتفوق على ثلاثة نداءات يجب على الوكيل سلسلتها بشكل صحيح في كل مرة. كل حلقة في السلسلة هي دورة إضافية يمكن أن يتعثر فيها النموذج أو يعيد المحاولة خطأً أو يدخل في حلقة مفرغة.
# What the agent does WITHOUT an atomic tool: 3 calls, 3 chances to fail
calendar = call_tool("list_calendars", {})
free = call_tool("find_free_slot", {"calendar_id": calendar["items"][0]["id"], "duration": 30})
call_tool("create_event", {"calendar_id": calendar["items"][0]["id"], "start": free["start"]})
# One atomic tool: the sequence lives in your code, not the model's head
call_tool("schedule_event", {"duration": 30, "attendees": ["[email protected]"]})القاعدة التقريبية: إذا كان النموذج مضطراً دائماً لاستدعاء B بعد A، فإن A وB أداة واحدة ترتدي زيّين.
الممارسة 4: افصل الأسماء، قلّم، وصفِّ الأدوات ديناميكياً
افصل أسماء الأدوات بمساحات أسماء وأظهر لكل وكيل المجموعة الفرعية التي تحتاجها مهمته الحالية فقط. الأسماء العامة تتصادم لحظة ربط تكاملَين. تخيّل وكيلاً موصولاً بخادمَي MCP يعرّض كل منهما أداة اسمها search: فعلان متطابقان ولا سبيل للتفريق بينهما. توثّق Anthropic مكاسب قابلة للقياس في التقييم من الفصل بالبادئات:
| قبل | بعد (بادئة) | بعد (لاحقة) |
|---|---|---|
search | asana_projects_search | search_asana_projects |
create | asana_tasks_create | create_asana_tasks |
search (الخادم الثاني) | github_repos_search | search_github_repos |
التقليم لا يقل أهمية عن التسمية. وكيل الدعم لا يحتاج إلى أدوات الفوترة محمّلة وهو يجيب عن سؤال حول كلمة المرور. نمط المخطط-المنفذ (planner-worker)، حيث يوجّه المخططُ المهمةَ إلى منفذ لا يحمّل إلا الأدوات ذات الصلة، هو الإصلاح القياسي؛ ودليل LangGraph للتحميل الديناميكي للأدوات يشرح التنفيذ. كم أداة تعد كثيرة؟ تعامل مع 5-10 أدوات لكل وكيل كنطاق عمل لا كقانون: الدقة تتدهور مع نمو القائمة، والعلاج هو التصفية لا نموذج أكبر. إذا كنت تختار طبقة التوجيه والتصفية نفسها، قارن خياراتك في جولتنا حول أفضل مكتبات استدعاء الدوال.
المرحلة 3: تحكم فيما يعود وفيما يخرج
الحلقة تعمل في الاتجاهين، ومعظم الفرق لا تصمم إلا النصف الصادر. ما تعيده أدواتك تحدد كم من نافذة السياق ينجو حتى الدورة التالية، وما يرفضه تحققك يحدد ما إذا كان النموذج يتعلم من أخطائه أم يكررها.
الممارسة 5: أعد نتائج موجزة عالية الإشارة
أعد أصغر نتيجة يستطيع النموذج التحرك بناءً عليها، مع معرّفات قابلة للقراءة البشرية بدلاً من المعرّفات الخام. توثّق تدوينة Anthropic الهندسية أداة كانت نتيجتها الافتراضية 206 توكنات؛ إعداد response_format موجز اختصر النتيجة نفسها إلى 72 توكنة، أي نحو ثلث الحجم. اضرب ذلك في عشرات النداءات لكل مهمة، وستجد أنه يحدد ما إذا كان وكيلك ينهي المهمة أصلاً.
// Before: 206 tokens (shape per Anthropic's documented example)
{
"status": "success",
"data": {
"id": "8f14e45f-ceea-3f9c-a2f3-90c1b5e0a7d2",
"object": "task", "created_at": "2026-07-02T09:14:00Z",
"updated_at": "2026-07-11T16:40:12Z", "completed_at": null,
"assignee": {"id": "c9a1...f2", "object": "user"},
"projects": [{"id": "b7d3...91", "object": "project"}],
"permalink": "https://app.asana.com/0/.../f"
}
}
// After: 72 tokens
{ "task": "Fix login redirect", "assignee": "Dana Kim", "project": "Web App", "due": "2026-07-20" }تفصيلان إضافيان من المصدر نفسه: تدعم Anthropic تعداد response_format (مفصّل مقابل موجز) في تعريفات الأدوات، بحيث تعلن الشكل الذي تريده بدلاً من تحليل سيل البيانات. ويفرض Claude Code سقفاً قدره 25,000 توكن لاستجابات الأدوات، وهو حد صارم يقتطع النتائج المترهلة في كل الأحوال. كما تفيد Anthropic، كنتيجة خاصة بها، بأن تحويل معرّفات UUID إلى أسماء دلالية قلّل هلوسات الاسترجاع تقليلاً قابلاً للقياس، ولهذا تقول حمولة "بعد" أعلاه "Dana Kim" وليس c9a1...f2. الاستجابات المترهلة مشكلة تكلفة أيضاً؛ راجع دليلنا حول خفض تكاليف LLM API للصورة الكاملة.
الممارسة 6: تحقق من كل نداء واجعل الأخطاء تعلّم النموذج
تحقق من كل نداء أداة في جهة الخادم وأعد رسائل خطأ تحتوي على الإصلاح. مقالة Martin Fowler عن استدعاء الدوال تصيغها بصراحة: لا تثق بمخرجات النموذج أبداً. سيمرر سلاسل نصية حيث ينبغي أن تكون تعدادات، وسيخترع معرّفات غير موجودة.
def create_ticket(args):
if args.get("priority") not in {"low", "medium", "high"}:
return {"error": f"priority must be one of: low, medium, high. Got '{args.get('priority')}'. Pass priority='medium' for normal issues."}
if not is_valid_uuid(args.get("assignee_id")):
return {"error": "assignee_id must be a UUID. Call list_team_members to get valid IDs, then retry."}
return db.create_ticket(**args)رسالة الخطأ هي كل اللعبة. قارن:
# Unhelpful: the model retries the same bad call
{"error": "invalid input"}
# Helpful: the model knows exactly what to change
{"error": "priority must be one of: low, medium, high. Got 'urgent'. Use 'high'."}كل خطأ تحقق تعيده أداتك هو موجّه تكتبه لمحاولة النموذج التالية. الأخطاء التي تسمّي القيد وتشير إلى أداة التصحيح تحوّل حلقة إعادة المحاولة إلى تعافٍ من المرة الأولى. هذا أيضاً خط دفاعك الأمني الأول؛ يغطيه دليل حواجز أمان LLM بعمق.
المرحلة 4: كيف تجعله آمناً ثم قابلاً للقياس؟
الأمان والقياس مرحلة واحدة، لأن إجراءً تدميرياً بلا بوابة وتراجعاً بلا قياس يظهران كلاهما كحوادث لم ترها قادمة. ضع بوابات للإجراءات التي لا يمكن التراجع عنها، ثم ركّب أدوات القياس في كل شيء حتى يكون تغيير الأدوات التالي قراراً يستند إلى دليل، لا أملاً.
الممارسة 7: ضع الإجراءات التدميرية خلف بوابة بشرية
افصل أدوات القراءة عن أدوات الكتابة وضع بوابة تأكيد بشرية على أي إجراء تدميري. تدوينات أدوات مواصفات MCP موجودة لهذا الغرض تحديداً: destructiveHint تعلّم الأدوات التي تنفّذ تحديثات تدميرية، وopenWorldHint تشير إلى الأدوات التي تلمس أنظمة خارجية، فيستطيع العميل طلب التأكيد قبل التنفيذ. استخدمهما.
نمط الفشل ليس افتراضياً. وثّق Laurent Kubaski حالة، في مقالته عن استدعاء الأدوات في يوليو 2025 مع ربط التقرير الأصلي، طلب فيها مستخدم من Copilot في Excel تنفيذ إجراء على الصف 4، فنفّذه الوكيل على الصف 8 بدلاً منه. لم تقف أي بوابة تأكيد بين الصف الخاطئ وعملية الكتابة. الإصلاح هو النمط الذي توثّقه AWS لـ Bedrock Agents: يجهّز الوكيل الإجراء، ويعيده للموافقة، ولا ينفّذ إلا بعد تأكيد بشري. يفعل Cursor الشيء نفسه مع تعديلات الملفات. قلّص صلاحيات الاعتماد إلى قراءة فقط حين تكون القراءة كل ما تحتاجه المهمة، وتعامل مع بوابات التأكيد كجزء من سطح الحقن، وهو موضوع دليلنا للوقاية من حقن الموجهات.
الممارسة 8: شغّل حلقة تقييم عند كل تغيير في الأدوات
شغّل مجموعة تقييم صغيرة قبل كل تغيير في الأدوات وبعده، واقرأ المقاييس بترتيب ثابت. يقترح دليل Paragon للتحسين إطاراً رباعي المقاييس يستحق الاعتماد:
| المقياس (حسب Paragon) | ماذا يلتقط | كيف تقيسه |
|---|---|---|
| صحة الأداة | نداءات الأداة الخاطئة | هل استدعى الوكيل الأداة الصحيحة للمهمة؟ |
| دقة الإدخال | وسيطات خاطئة | هل كانت الوسيطات صالحة ومكتملة؟ |
| إتمام المهمة | الفشل من البداية للنهاية | هل تحقق هدف المستخدم؟ |
| كفاءة المهمة | نزف التوكنات، الحلقات | عدد النداءات والتوكنات؟ |
كتاب وصفات تقييم الأدوات من Anthropic، المبني على تقييمات MCP حقيقية في Slack وAsana، يوضح كيف تبدو مهام التقييم الجيدة والسيئة:
# Weak: vague, many valid paths, impossible to score
"Use the Asana tools to organize some work."
# Strong: one correct tool, checkable arguments, binary outcome
"Create a task titled 'Renew TLS cert' in project 'Infra' assigned to [email protected], due 2026-08-15. Expect exactly one create_task call with those four fields."تفسيرنا، موصوفاً كذلك: الأرقام المنشورة تعطيك ترتيب العمل. افحص صحة الأداة أولاً، لأن قياسات Anthropic نفسها تُظهر أن تغييرات الأوصاف والتسمية تحرّكها مباشرة (إعادة الكتابة من 206 إلى 72 توكنة، ونتيجة هلوسة UUID إلى اسم)، واترك كفاءة المهمة للأخير، لأنها تعكس في الغالب إخفاقات التقطتها المقاييس الثلاثة الأولى أصلاً. لمجموعة البداية، صمّم 15-30 مهمة، مهمتين أو ثلاثاً لكل أداة، لكل منها نداء واحد متوقع وشرط نجاح ثنائي. هذا الحجم كافٍ لالتقاط تراجع من إعادة كتابة وصف من دون أسبوع من الوسم، ونقرأ إعداد Slack وAsana في كتاب الوصفات كدليل على أن مجموعة بهذا الصغر هي نقطة البداية المقصودة، لا اختصاراً. الآليات الأعمق في دليلنا لتقييم وكلاء الذكاء الاصطناعي في الإنتاج، وإذا قالت نتائج تقييمك إن الأدوات نفسها سليمة لكن التنسيق ليس كذلك، فحينها تراجع اختيار إطار العمل بمقارنة أفضل أطر عمل وكلاء الذكاء الاصطناعي.
استدعاء الأدوات للوكلاء مقابل MCP: ما الفرق؟
MCP معيار نقل وتسجيل، لا طبقة موثوقية، لذا فإن الممارسات الثماني نفسها تنطبق سواء وصلت أدواتك عبر MCP أو عُرّفت ضمنياً. استدعاء الأدوات الأصلي هو العقد بينك وبين مزود النموذج: كيف يصدر النموذج tool_call ويقرأ tool_result. يوحّد MCP كيف تصل الأدوات إلى النموذج؛ لكنه لا يفعل شيئاً حيال ما إذا كان النموذج يختار الأداة الصحيحة.
| يتولى استدعاء الأدوات الأصلي | يضيفه MCP | لا يتولاه أي منهما |
|---|---|---|
| صيغة رسائل tool_call / tool_result | بروتوكول مشترك يصل بأي عميل إلى أي خادم | جودة الأوصاف |
| مخططات خاصة بكل مزود | اكتشاف الأدوات والتسجيل | تصميم المخططات، التحقق |
| التفاوض على النداءات المتوازية | تدوينات مثل destructiveHint | البوابات البشرية، التقييمات، نظافة الاستجابات |
خادم MCP يعرّض أداة اسمها search بوصف "يبحث عن أشياء" يفشل فشلاً مطابقاً لدالة ضمنية عُرّفت بالطريقة نفسها. أصلح التعريف، ثم اقلق بشأن النقل. يغطي دليلنا لبروتوكول سياق النموذج (MCP) جانب البروتوكول من البداية للنهاية.
كيف تطبّق Techsy هذه الممارسات الثماني
في كل بناء وكيل لعميل، نفرض ثلاثاً من هذه الممارسات قبل إطلاق أي شيء آخر: أوصاف مكتوبة كتعليمات (الممارسة 1)، وبوابات تحقق على كل أداة كتابة (الممارسة 6)، ومجموعة تقييم تعمل قبل النشر لا بعد حادثة (الممارسة 8). تغطي هذه الثلاث نداءات الأداة الخاطئة ونداءات الوسيطات الخاطئة والتراجعات التي تعيد كليهما، وهذا حيث بدأت كل حادثة وكيل إنتاجية صحّحناها. تأتي الممارسات الخمس الأخرى مع نمو الوكيل. إذا تجاوز وكيلك مرحلة النموذج التجريبي ويختار الأدوات الخاطئة، احصل على استشارة مجانية وسنخبرك أي الممارسات الثماني تصلحها أولاً.
عن الكاتب
Mert Batur شريك مؤسس في Techsy.io، حيث يطلق الفريق وكلاء ذكاء اصطناعي وأنظمة أتمتة وخطوط أنابيب صوتية وSDR لعملاء B2B. يكتب عن حزمة أدوات LLM التي يستخدمها فريق Techsy فعلياً في الإنتاج. تواصل معه على LinkedIn.
الأسئلة الشائعة
ما هو استدعاء الأدوات للوكلاء؟
استدعاء الأدوات للوكلاء هو الآلية التي يقرر فيها نموذج LLM استدعاء دالة خارجية، فيصدر tool_call مهيكلاً، وينتظر أن يعيد كودك tool_result يستطيع الاستدلال عليه. هو ما يحوّل نموذج محادثة إلى وكيل يستطيع استعلام قواعد البيانات واستدعاء واجهات API واتخاذ إجراءات: النموذج يختار الأداة والوسيطات، ومنفّذك يشغّلهما.
كيف تعمل حلقة استدعاء الأدوات للوكلاء؟
للحلقة خمس خطوات: يصل طلب المستخدم إلى النموذج، فيختار النموذج أداة ويكتب tool_call، ويشغّله منفّذك، ويعود tool_result إلى النموذج، ثم يجيب النموذج أو يصدر نداءً آخر. تتكرر هذه الدورة حتى إنجاز المهمة. أنماط الفشل الأربعة في هذا الدليل يسكن كل منها خطوة محددة من هذه الحلقة.
لماذا يختار وكيلي الأداة الخطأ؟
عادةً لأن أداتين تتداخلان ولا تقول أوصافهما أيهما أيهما. النموذج يختار من الأسماء والأوصاف وحدها، لذا "يجلب مستخدماً" مقابل "يجد مستخدمين" تبدوان قابلتين للتبادل. أصلح ذلك بسطور الاستثناء ("لا تستخدم للبحث")، وأسماء مفصولة بمساحات أسماء، وأدوات أقل في السياق. أظهر اختبار Kubaski على أربعة نماذج أن حتى النماذج القوية تسيء التوجيه في القوائم الملتبسة.
كيف أجبر وكيل استدعاء الأدوات على هيكلة مخرجاته؟
قيّد المخطط، لا الموجّه. استخدم التعدادات للحقول المحدودة، ومصفوفات الحقول المطلوبة لكل ما تحتاجه المهمة، وكائنات مسطحة بدل المتداخلة. وللإجابة النهائية لا نداء الأداة، تفرض ميزات المزودين مثل المخرجات المهيكلة في OpenAI وأوضاع tool-choice في Anthropic شكلاً محدداً. يغطي دليلنا للمخرجات المهيكلة كلا المسارين مع الكود.
استدعاء الأدوات للوكلاء مقابل MCP: ما الفرق؟
استدعاء الأدوات الأصلي هو العقد بين كودك ومزود نموذج واحد: صيغة رسائل tool_call وtool_result. أما MCP فطبقة بروتوكول توحّد كيف تُكتشف الأدوات وتُسلَّم لأي عميل متوافق. يغيّر MCP الأنابيب، لا الموثوقية. الأداة سيئة الوصف تفشل بالطريقة نفسها عبر أي مسار، كما يشرح دليلنا لبروتوكول سياق النموذج (MCP).
كم أداة تعد كثيرة جداً لوكيل LLM؟
تعامل مع 5-10 أدوات لكل وكيل كنطاق عمل لا كقانون. دقة الاختيار تتدهور مع نمو القائمة المرئية، خاصة حين تتداخل الأسماء أو الأوصاف. الإصلاح ليس نموذجاً أكبر بل التصفية: حمّل فقط المجموعة الفرعية التي تحتاجها المهمة الحالية، باستخدام تقسيم مخطط-منفذ. افصل كل شيء بمساحات أسماء حتى لا يعرّض تكاملان معاً search مجرداً أبداً.
ما أفضل نموذج لاستدعاء الأدوات؟
لا إجابة واحدة، والمعايير المنشورة تشيخ بسرعة في هذا المجال. النماذج الرائدة من OpenAI وAnthropic وGoogle تتجاوز جميعها مهام استخدام الأدوات الأساسية، فيما تكمل النماذج الأصغر المقترنة بأدوات مصممة جيداً المهام بنسبة مقاربة وبجزء من تكلفة التوكنات. ابنِ مجموعة تقييم من 15-30 مهمة من الممارسة 8 واختبر المرشحين ضد أدواتك أنت.
كيف أخفّض تكلفة التوكنات من استدعاء الأدوات؟
اخفِض ما يعود. أعد نتائج موجزة عالية الإشارة بدلاً من حمولات API الخام: وثّقت Anthropic اختصاراً من 206 إلى 72 توكنة من تغيير واحد في response_format. حوّل معرّفات UUID إلى أسماء، واحذف الحقول التي لا يستخدمها النموذج أبداً، وتذكر أن كل نتيجة أداة تعيد دخول نافذة السياق في كل دورة تالية. نداءات أقل، عبر أدوات ذرية، تزيل نتائج كاملة من الفاتورة.
كيف أقيّم جودة استدعاء الأدوات؟
سجّل أربعة مقاييس بالترتيب: صحة الأداة (الأداة الصحيحة؟)، دقة الإدخال (وسيطات صالحة؟)، إتمام المهمة (تحقق الهدف؟)، وكفاءة المهمة (عدد التوكنات والنداءات؟). اكتب 15-30 مهمة، تتوقع كل منها نداءً واحداً محدداً بوسيطات قابلة للفحص وشرط نجاح ثنائي. شغّل المجموعة قبل كل تغيير في الأدوات وبعده حتى لا تُطلق إعادة كتابة وصف من دون قياس أبداً.
الخاتمة
شخّص قبل أن تحسّن. يختار وكيلك الأداة الخطأ لواحد من أربعة أسباب، وثلاث من الممارسات الثماني أعلاه، الأوصاف والمخططات المسطحة والتصفية، تصلحن إخفاقات الاختيار التي تقود معظم حوادث الإنتاج. ابدأ هناك، لأنها تكلف ظهيرة واحدة ولأنها السبب في أن هذه المشكلة قابلة للإصلاح أصلاً. أبقِ أخطاء التحقق غنية بالمعلومات، وضع أي إجراء تدميري خلف بوابة بشرية، وشغّل حلقة التقييم عند كل تغيير حتى تقيس قبل أن تبدّل النماذج. مشكلة الأداة الخاطئة ليست مشكلة نموذج، بل مشكلة تصميم أدوات، والتصميم ملكك.