البحث عن الأدوات في Claude Code: كيف يعثر الوكيل على أداة MCP التي يحتاج إليها
Markdownكيف يعمل البحث عن الأدوات في Claude Code: ما يُحمَّل في السياق فورًا، ومتى تتوقف الآلية عن العمل، وكيفية إعداد ENABLE_TOOL_SEARCH وalwaysLoad.
قراءة المقال كاملًا
إذا كنت قد ربطت عدة خوادم MCP بـ Claude Code، يتيح له البحث عن الأدوات تحميل الأدوات التي يحتاج إليها عند الطلب، من دون تحميل جميع التعريفات مسبقًا. عند بدء التشغيل، يتلقى الوكيل أسماء الأدوات المؤجَّل تحميلها وتعليمات الخوادم، ثم يبحث في الفهرس عما يحتاج إليه. وهذا يساعده على العمل مع مجموعة كبيرة من الأدوات: تذكر وثائق Anthropic أن دقة الاختيار تنخفض عند تحميل أكثر من 30-50 أداة في المرة الواحدة. هذه إرشادات عامة وليست قياسًا لجلسة استخدامك. يكون البحث عن الأدوات مفعّلًا افتراضيًا عندما يدعمه النموذج، لكن يمكن للمنصة أو الوكيل الوسيط أو الإعدادات تعطيله.
وثائق Ailoot: واجهة API والمفاتيح والإعداد.
ما يحدث للسياق عند إيقاف البحث عن الأدوات
يضيف كل خادم MCP متصل أدواته إلى قائمة الأدوات التي يمكن للوكيل استدعاؤها. من دون البحث عن الأدوات، تُحمَّل تعريفاتها — الاسم والوصف ومخطط المعلمات — إلى السياق مسبقًا. وتتصل الخوادم في الخلفية عند بدء الجلسة. إذا احتاجت الجلسة إلى أداة من خادم لم يكتمل اتصاله بعد، ينتظر Claude Code باستخدام الأداة الداخلية WaitForMcpServers. يمكنك تقييم عدد الأدوات والرموز التي يضيفها خادم معين على حدة لكل اتصال.
تذكر الوثائق الرسمية لـ Anthropic رقمين تقريبيين (أرقام عامة من دون ذكر طريقة القياس):
- قد تستهلك 50 أداة ما بين 10-20 ألف رمز من السياق؛
- تنخفض دقة اختيار الأداة المناسبة عند تحميل أكثر من 30-50 أداة في المرة الواحدة.
كيفية تقييم حالة البحث عن الأدوات من الإعدادات
لمعرفة ما إذا كان البحث عن الأدوات ينبغي أن يعمل في الجلسة الحالية، تحقق من الشروط التالية:
- النموذج الذي يجيب — إذا كان Sonnet/Haiku/Opus 4.5 أو أحدث، فالآلية متاحة؛ أما النماذج الأقدم فلا تدعمها؛
- ما إذا كان
ANTHROPIC_BASE_URLمضبوطًا على مضيف غير قياسي — في هذه الحالة تكون الآلية متوقفة افتراضيًا ما لم تُفعَّل صراحةً عبرENABLE_TOOL_SEARCH؛ - قيمة المتغير
ENABLE_TOOL_SEARCH— تؤديfalseإلى تعطيل الآلية بالكامل؛ أماauto/auto:Nفتفعّلها فقط عندما يصل حجم التعريفات إلى حد معين؛ - ما إذا كان
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASمضبوطًا — من دون إعدادات المؤسسة المُدارة، يُبقي هذا المتغير البحث عن الأدوات متوقفًا حتى لو ضبط المستخدمENABLE_TOOL_SEARCH؛ - ما إذا كانت أداة
ToolSearchمحظورة عبرpermissions.denyفي الإعدادات — إذ يؤدي هذا التقييد إلى تعطيل البحث؛ - المنصة المستخدمة — الآلية غير متاحة في عمليات نشر Microsoft Foundry على Azure، بينما يعتمد سلوكها على إصدار Claude Code والنموذج في Google Cloud Agent Platform.
يتيح لك هذا التحقق تقييم الحالة من الإعدادات، لكنه لا يتيح لك ملاحظتها داخل الجلسة. لا يصف قسم MCP ولا قسم البحث عن الأدوات في وثائق Agent SDK مؤشرًا مباشرًا في الواجهة يعرض «البحث عن الأدوات: مفعّل/متوقف». وعدم ذكر هذا المؤشر في هاتين الوثيقتين لا يثبت عدم وجوده في أي موضع آخر.
يمكنك ضبط المتغير قبل بدء الجلسة، مثل ENABLE_TOOL_SEARCH=auto:15 claude. ولضمان تحميل أدوات خادم معين دائمًا، استخدم الحقل alwaysLoad: true في إعدادات ذلك الخادم. وهو متاح لجميع أنواع الخوادم؛ وترد الشروط والقيود في قسم alwaysLoad أدناه.
كيفية عمل البحث عن الأدوات
عند تفعيل البحث عن الأدوات، لا يُحمَّل إلى السياق عند بدء الجلسة سوى أسماء الأدوات المؤجَّل تحميلها وتعليمات الخادم. وتوضح تعليمات الخادم المهام التي يفيد فيها. عندما تتطلب مهمة قدرة غير موجودة بعد في السياق، يبحث الوكيل بنفسه في الفهرس عن أداة مناسبة.
تشرح وثائق Agent SDK آلية البحث بمزيد من التفصيل: يحمّل البحث الواحد افتراضيًا ما يصل إلى خمس أدوات هي الأكثر صلة من الفهرس. وتظل هذه الأدوات متاحة في الأدوار اللاحقة من الجلسة إلى أن يضغط SDK الرسائل التي عثر الوكيل فيها عليها. بعد الضغط، قد تختفي الأدوات المكتشفة سابقًا من السياق، فيبحث عنها الوكيل مجددًا عند الحاجة إليها في المرة التالية. يدعم الفهرس ما يصل إلى 10 000 أداة. ولا تذكر وثائق MCP الخاصة بـ Claude Code هذه الأرقام تحديدًا، لكنها تصف المبدأ نفسه، وهو التحميل المؤجَّل.
وفقًا لوثائق Agent SDK، يضيف كل بحث دورة اتصال إضافية ذهابًا وإيابًا. ولا تحدد الوثائق بدقة ما تتضمنه هذه الدورة. وبالنسبة إلى Claude Code، تصف وثائق MCP أيضًا اختلافًا في الإبلاغ عن الأخطاء: من دون البحث عن الأدوات، لا يُبلغ Claude Code النموذج بفشل اتصالات الخوادم. وعند تفعيل البحث، يتلقى النموذج معلومات عن الخادم الذي تعذر الاتصال به وعن الخطأ الذي وقع.
لا يفرض Claude Code حدًا ثابتًا لعدد الأدوات التي يمكن أن تأتي من خادم واحد. والحد العملي هو ميزانية نافذة السياق للجلسة المعنية.
يُعد إعداد الأدوات إحدى المهام المرتبطة بإدارة سياق وكيل الذكاء الاصطناعي.
متى يكون البحث عن الأدوات متوقفًا افتراضيًا
تكون الآلية مفعّلة افتراضيًا، لكن تشغيلها يعتمد على النموذج ومضيف API والمنصة.
النموذج. يتطلب البحث عن الأدوات نموذجًا يدعم كتل tool_reference: Claude Sonnet 4.5 أو Claude Haiku 4.5 أو Claude Opus 4.5 أو إصدارًا أحدث. أما في النماذج الأقدم، فيحمّل Claude Code تعريفات الأدوات مسبقًا.
مضيف API. يعطّل Claude Code البحث عن الأدوات عندما يشير المتغير ANTHROPIC_BASE_URL إلى مضيف تابع لجهة خارجية، لأن معظم الوكلاء الوسيطين لا يمررون كتل tool_reference الخاصة. ينطبق ذلك عند الاتصال بـ Claude عبر بوابة أو خادم وكيل وسيط خاص بك بدلًا من الاتصال مباشرةً بعنوان Anthropic. سبب التعطيل هو استخدام قيمة غير قياسية لـ ANTHROPIC_BASE_URL؛ أما طريقة دفع قيمة الاشتراك فلا تسبب ذلك بحد ذاتها. يمكنك ضبط ENABLE_TOOL_SEARCH صراحةً لتجاوز هذا السلوك. وإذا كان الوكيل الوسيط نفسه لا يدعم كتل tool_reference، فسيؤدي فرض تشغيل الآلية إلى خطأ في الطلب. ولن يعود Claude Code في هذه الحالة إلى تحميل التعريفات مسبقًا.
منصة النشر. لا يعمل البحث عن الأدوات في عمليات نشر Microsoft Foundry المستضافة على Azure: يرفض الخادم الطلب، ولا يتجاوز ENABLE_TOOL_SEARCH هذا القيد. أما في Google Cloud Agent Platform، فقبل إصدار Claude Code 2.1.221 كانت الآلية متوقفة لجميع النماذج ما لم يُضبط ENABLE_TOOL_SEARCH=true صراحةً. وابتداءً من ذلك الإصدار، تكون مفعّلة افتراضيًا في Opus/Sonnet/Haiku 4.5 والإصدارات الأحدث. أما النماذج الأقدم على المنصة، فيواصل Claude Code تحميل جميع الأدوات مسبقًا لأن البنية التحتية للخادم ترفض الترويسة الداخلية المطلوبة.
للمتغير ENABLE_TOOL_SEARCH خمسة إعدادات ممكنة:
- غير مضبوط — السلوك القياسي، مع الاستثناءات المذكورة أعلاه؛
true— تُفعّل الآلية في النماذج التي تدعمها، باستثناء حالتين: Azure Foundry ونماذج Agent Platform الأقدم؛ وستفشل الطلبات المرسلة عبر وكيل وسيط لا يدعم كتل tool_reference؛auto— يحمّل Claude Code الأدوات مسبقًا ما دامت تعريفاتها مجتمعة تشغل أقل من 10% من نافذة السياق، ثم ينتقل إلى التحميل المؤجَّل عند بلوغ هذا الحد؛auto:N— المبدأ نفسه، مع تحديد النسبة المئوية للحد يدويًا؛false— تُعطّل الآلية بالكامل وتُحمَّل جميع الأدوات مسبقًا.
يوجد أيضًا المتغير CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS: إذا كان مضبوطًا، يظل البحث عن الأدوات متوقفًا، ولا يغيّر إعداد المستخدم لـ ENABLE_TOOL_SEARCH ذلك. ويُستثنى من ذلك إبقاء المؤسسة البحث عن الأدوات مفعّلًا عبر الإعدادات المُدارة، وهي متاحة ابتداءً من إصدار Claude Code 2.1.227.
وظيفة alwaysLoad وتأثيره في السياق وبدء التشغيل
يتاح الحقل alwaysLoad: true في إعدادات الخادم لجميع أنواع الخوادم. وعند استخدامه، تُحمَّل جميع أدوات ذلك الخادم إلى السياق عند بدء التشغيل بصرف النظر عن إعداد ENABLE_TOOL_SEARCH. ولا يحتاج الوكيل إلى البحث عنها قبل استخدامها.
يترتب على تحميل الأدوات دائمًا أمران. تشغل كل أداة تُحمَّل مسبقًا جزءًا من السياق الذي كان يمكن أن يتاح للمهمة نفسها. وإضافةً إلى ذلك، ينتظر بدء الجلسة اتصال هذا الخادم ضمن المهلة القياسية البالغة خمس ثوانٍ.
يُستثنى من ذلك الخادم البعيد الذي لديه مُدخل صالح في ذاكرة التخزين المؤقت: إذ يوفّر الأدوات من الذاكرة المؤقتة من دون اتصال، ولا يؤخر بدء التشغيل. تكون ذاكرة التخزين المؤقت للاكتشاف متوقفة افتراضيًا ما لم تكن قد فُعّلت بالفعل للحساب خلال الإطلاق التدريجي للميزة. ويمكنك أيضًا تفعيلها صراحةً عبر MCP_DISCOVERY_CACHE=1. وينطبق استثناء بدء التشغيل السريع عندما تكون الذاكرة المؤقتة نشطة وتحتوي على مُدخل صالح. وتظل الأدوات التي تستخدم alwaysLoad تشغل مساحة من السياق باستمرار، بصرف النظر عما إذا كان الوكيل سيحتاج إليها عند العمل باستخدام البحث.
لمن يكتبون خوادم MCP الخاصة بهم: تساعد تعليمات الخادم Claude على فهم الوقت المناسب للبحث عن أدواته، على نحو يشبه Skills. يقتطع Claude Code افتراضيًا وصف كل أداة وتعليمات كل خادم إلى 2048 حرفًا، لذا ضع التفاصيل المهمة في البداية.
يعتمد اختيار طريقة توسيع Claude Code على أكثر من عدد خوادم MCP المتصلة. يتناول الدليلان Claude Code: كم إضافة ينبغي إبقاؤها في الوقت نفسه وما الذي تختاره في Claude Code: Skills أم Subagents أم MCP أم Plugins استخدام Skills وSubagents وMCP وPlugins في مهام مختلفة. وللحصول على إعدادات خطوة بخطوة لخوادم MCP محددة، راجع خوادم MCP لـ Claude Code: مجموعات جاهزة.
ما الخطوة التالية
تذكر وثائق Agent SDK أنه بالنسبة إلى مجموعة تضم أقل من نحو 10 أدوات تتسع تعريفاتها في السياق بسهولة، يكون تحميلها كلها دفعة واحدة أسرع عادةً. ومع ذلك، في السلوك الافتراضي لـ Claude Code، عندما لا يكون المتغير مضبوطًا ولا ينطبق أي من القيود المذكورة أعلاه، يكون البحث عن الأدوات مفعّلًا ويُؤجَّل تحميل أدوات MCP إلى حين البحث، باستثناء الخوادم التي تستخدم alwaysLoad.
في هذه الحالة، يمكنك ضبط ENABLE_TOOL_SEARCH=auto صراحةً: ستُحمَّل التعريفات مسبقًا ما دام حجمها المشترك أقل من 10% من نافذة السياق، وسيُفعّل البحث عند بلوغ الحد. وثمة خيار آخر هو ENABLE_TOOL_SEARCH=false إذا كنت تعرف أن المجموعة لن تكبر. وفي هذه الحالة، سيتوقف Claude Code عن إبلاغ النموذج بفشل اتصالات الخوادم، كما هو موضح أعلاه.
في الحالات الأخرى، أعد التحقق من شروط التشغيل عند تغيّر البيئة:
- انتقل إلى Sonnet/Haiku/Opus 4.5 أو إصدار أحدث إذا كانت الجلسة تستخدم نموذجًا أقدم؛
- إذا كان الاتصال يستخدم قيمة غير قياسية لـ
ANTHROPIC_BASE_URL، فلا تضبطENABLE_TOOL_SEARCH=trueصراحةً إلا إذا كان الوكيل الوسيط نفسه يمرر كتل tool_reference؛ - تأكد من أن منصة النشر ليست ضمن قائمة الاستثناءات: Azure Foundry أو نماذج Google Cloud Agent Platform الأقدم.
إذا استوفيت الشروط ولم تمنع الإعدادات البحث، يمكنك توصيل خوادم MCP التي تحتاج إليها. استخدم alwaysLoad فقط للخوادم التي تحتاج أدواتها في كل دور من الجلسة؛ واترك تحميل الأدوات الأخرى ليتم عبر البحث.
المصادر
إذا كنت بحاجة إلى الوصول إلى نماذج الذكاء الاصطناعي عبر Ailoot، فألقِ نظرة على Ailoot.
المزيد من التفاصيل
أسئلة شائعة
لماذا قد يفشل البحث عن الأدوات خلف وكيل وسيط رغم تفعيله؟
يجب أن يدعم مضيف API الخارجي كتل tool_reference. فرض تفعيل ENABLE_TOOL_SEARCH لا يضيف هذا الدعم؛ وقد يرفض الوكيل الوسيط غير المتوافق الطلب بدل الرجوع إلى التحميل المسبق.
متى أضبط alwaysLoad لخادم MCP؟
استخدمه عندما تحتاج إلى أدوات الخادم في كل دورة. عندئذ تشغل جميع تعريفات أدواته سياق بدء التشغيل، وقد ينتظر التشغيل الاتصال ما لم ينطبق إدخال صالح من ذاكرة اكتشاف الأدوات المؤقتة.