الانتقال إلى المحتوى الرئيسي
البحث في الأدوات ميزة تجريبية في وقت تشغيل وكيل OpenClaw. تمنح الوكلاء طريقة مدمجة واحدة لاكتشاف كتالوجات الأدوات الكبيرة واستدعائها. تكون مفيدة عندما يحتوي التشغيل على أدوات كثيرة متاحة لكن من المرجح أن يحتاج النموذج إلى عدد قليل منها فقط. توثق هذه الصفحة البحث في أدوات OpenClaw. وهي ليست سطح البحث عن الأدوات أو الأدوات الديناميكية الأصلي في Codex. وضع الشيفرة الأصلي في Codex، والبحث في الأدوات، والأدوات الديناميكية المؤجلة، واستدعاءات الأدوات المتداخلة هي أسطح مستقرة في حاضنة Codex ولا تعتمد على tools.toolSearch. عند تمكينها لتشغيلات OpenClaw، يتلقى النموذج أداة tool_search_code واحدة افتراضيا. تشغل هذه الأداة جسما قصيرا من JavaScript في عملية Node فرعية معزولة مع جسر openclaw.tools:
const hits = await openclaw.tools.search("create a GitHub issue");
const tool = await openclaw.tools.describe(hits[0].id);
return await openclaw.tools.call(tool.id, {
  title: "Crash on startup",
  body: "Steps to reproduce...",
});
يمكن أن يتضمن الكتالوج أدوات OpenClaw، وأدوات Plugin، وأدوات MCP، وأدوات يوفرها العميل. لا يرى النموذج كل مخطط كامل مسبقا. بدلا من ذلك، يبحث في واصفات مدمجة، ويصف أداة محددة واحدة عندما يحتاج إلى المخطط الدقيق، ثم يستدعي تلك الأداة من خلال OpenClaw. لا تتلقى تشغيلات حاضنة Codex عناصر التحكم التجريبية هذه للبحث في أدوات OpenClaw. يمرر OpenClaw قدرات المنتج إلى Codex كأدوات ديناميكية، ويمتلك Codex وضع الشيفرة الأصلي المستقر، والبحث الأصلي في الأدوات، والأدوات الديناميكية المؤجلة، واستدعاءات الأدوات المتداخلة.

كيف يعمل الدور

في وقت التخطيط، يبني مشغل OpenClaw المضمن الكتالوج الفعال للتشغيل:
  1. حل سياسة الأدوات النشطة للوكيل، والملف الشخصي، وصندوق العزل، والجلسة.
  2. سرد أدوات OpenClaw وPlugin المؤهلة.
  3. سرد أدوات MCP المؤهلة من خلال وقت تشغيل MCP للجلسة.
  4. إضافة أدوات العميل المؤهلة المقدمة للتشغيل الحالي.
  5. فهرسة الواصفات المدمجة للبحث.
  6. كشف جسر شيفرة OpenClaw، أو أدوات الرجوع المنظمة، أو سطح الدليل المدمج للنموذج.
في وقت التنفيذ، يعود كل استدعاء أداة حقيقي إلى OpenClaw. لا يحتفظ وقت تشغيل Node المعزول بتنفيذات Plugin، أو كائنات عميل MCP، أو الأسرار. يعبر openclaw.tools.call(...) الجسر عائدا إلى Gateway، حيث لا تزال سياسات السماح، والموافقة، والخطافات، والتسجيل، ومعالجة النتائج العادية مطبقة.

الأوضاع

لدى tools.toolSearch ثلاثة أوضاع موجهة للنموذج:
  • code: يكشف tool_search_code، وهو جسر JavaScript المدمج الافتراضي.
  • tools: يكشف tool_search، وtool_describe، وtool_call كأدوات منظمة عادية للمزودين الذين يجب ألا يتلقوا شيفرة.
  • directory: يكشف tool_search، وtool_describe، وtool_call إضافة إلى دليل مطالبة محدود لأسماء الأدوات المتاحة وأوصافها للمزودين الذين يجب أن يروا أسماء الأدوات بدون كل مخطط كامل. يمكن لـ OpenClaw أيضا كشف مجموعة صغيرة محدودة من مخططات الأدوات المرجحة أو المطلوبة مباشرة للدور الحالي.
تستخدم كل الأوضاع الكتالوج نفسه المرشح بالسياسة ومسار تنفيذ OpenClaw العادي. إذا كان وقت التشغيل الحالي لا يستطيع إطلاق عملية Node الفرعية المعزولة لوضع الشيفرة، يرجع وضع code الافتراضي إلى tools قبل Compaction الكتالوج. في وضع directory، تبقى أدوات العميل المقدمة مرئية مباشرة للتشغيل الحالي، بينما يمكن ضغط أدوات OpenClaw، وأدوات Plugin، وأدوات MCP خلف كتالوج الدليل. يتم ترطيب الاستدعاء المباشر لاسم دليل مخفي دقيق من ذلك الكتالوج المخول نفسه قبل التنفيذ. كل الأوضاع تجريبية. فضل كشف الأدوات المباشر لكتالوجات أدوات OpenClaw الصغيرة، وفضل الأسطح المستقرة الأصلية في Codex لتشغيلات حاضنة Codex. لا يوجد إعداد منفصل لاختيار المصدر. عند تمكين البحث في الأدوات، يتضمن الكتالوج أدوات OpenClaw، وMCP، والعميل المؤهلة بعد الترشيح العادي بالسياسة.

سبب وجود ذلك

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

API

openclaw.tools.search(query, options?) يبحث في الكتالوج الفعال للتشغيل الحالي. النتائج مدمجة وآمنة لإعادتها إلى سياق المطالبة.
const hits = await openclaw.tools.search("calendar event", { limit: 5 });
openclaw.tools.describe(id) يحمل البيانات الوصفية الكاملة لنتيجة بحث واحدة، بما في ذلك مخطط الإدخال الدقيق.
const calendarCreate = await openclaw.tools.describe("mcp:calendar:create_event");
openclaw.tools.call(id, args) يستدعي أداة محددة من خلال OpenClaw.
await openclaw.tools.call(calendarCreate.id, {
  summary: "Planning",
  start: "2026-05-09T14:00:00Z",
});
يكشف وضع الرجوع المنظم العمليات نفسها كأدوات:
  • tool_search
  • tool_describe
  • tool_call
يكشف وضع الدليل:
  • tool_search
  • tool_describe
  • tool_call
كما يبقي أدوات العميل المقدمة مرئية مباشرة وقد يكشف مجموعة صغيرة محدودة من مخططات أدوات الكتالوج المرجحة أو المطلوبة مباشرة للدور الحالي. إذا أغفل الدليل المحدود إدخالات، فاستخدم tool_search للعثور عليها. إذا طلب النموذج اسم أداة دليل مخفية دقيقا مباشرة، فإن OpenClaw يرطبه من الكتالوج المخول قبل التنفيذ العادي. يجب ألا تتصادم أسماء أدوات العميل في وضع الدليل مع أسماء أدوات OpenClaw أو Plugin أو MCP لأن الإرسال المؤجل الدقيق يستخدم تلك الأسماء.

حدود وقت التشغيل

يعمل جسر الشيفرة في عملية Node فرعية قصيرة العمر. تبدأ العملية الفرعية مع تمكين وضع أذونات Node، وبيئة فارغة، وبدون منح لنظام الملفات أو الشبكة، وبدون منح للعمليات الفرعية أو العمال. يفرض OpenClaw مهلة زمنية حائطية للعملية الأصلية ويقتل العملية الفرعية عند انتهاء المهلة، بما في ذلك بعد الاستمرارات غير المتزامنة. يكشف وقت التشغيل فقط:
  • console.log، وconsole.warn، وconsole.error
  • openclaw.tools.search
  • openclaw.tools.describe
  • openclaw.tools.call
لا يزال سلوك OpenClaw العادي ينطبق على الاستدعاءات النهائية:
  • سياسات السماح بالأدوات ومنعها
  • قيود الأدوات لكل وكيل ولكل صندوق عزل
  • سياسة أدوات القناة/وقت التشغيل
  • خطافات الموافقة
  • خطافات Plugin before_tool_call
  • هوية الجلسة، والسجلات، والقياسات

الإعداد

مكن البحث في الأدوات لتشغيلات OpenClaw باستخدام جسر الشيفرة الافتراضي:
openclaw config set tools.toolSearch true
JSON المكافئ:
{
  tools: {
    toolSearch: true,
  },
}
استخدم أدوات الرجوع المنظمة بدلا من ذلك لتشغيلات OpenClaw:
{
  tools: {
    toolSearch: {
      mode: "tools",
    },
  },
}
استخدم سطح الدليل المدمج بدلا من ذلك لتشغيلات OpenClaw:
{
  tools: {
    toolSearch: {
      mode: "directory",
    },
  },
}
اضبط مهلة وضع الشيفرة وحدود نتائج البحث:
{
  tools: {
    toolSearch: {
      mode: "code",
      codeTimeoutMs: 10000,
      searchDefaultLimit: 8,
      maxSearchLimit: 20,
    },
  },
}
عطله:
{
  tools: {
    toolSearch: false,
  },
}

المطالبة والقياسات

يسجل البحث في الأدوات قياسات كافية لمقارنته بكشف الأدوات المباشر:
  • إجمالي بايتات الأدوات والمطالبات المتسلسلة المرسلة إلى الحاضنة
  • حجم الكتالوج وتفصيل المصادر
  • أعداد البحث، والوصف، والاستدعاء
  • استدعاءات الأدوات النهائية المنفذة من خلال OpenClaw
  • معرفات الأدوات ومصادرها المحددة
ينبغي أن تجعل سجلات الجلسة من الممكن الإجابة عن:
  • كم عدد مخططات الأدوات التي رآها النموذج مسبقا
  • كم عدد عمليات البحث والوصف التي أجراها
  • أي أداة نهائية تم استدعاؤها
  • ما إذا كانت النتيجة جاءت من OpenClaw، أو MCP، أو أداة عميل

تحقق E2E

يثبت سيناريو Gateway في QA Lab كلا المسارين مع وقت تشغيل OpenClaw:
pnpm openclaw qa suite --provider-mode mock-openai --scenario tool-search-gateway-e2e
ينشئ Plugin مؤقتا مزيفا بكتالوج أدوات كبير، ويبدأ مزود OpenAI الوهمي، ويبدأ Gateway مرة في الوضع المباشر ومرة مع تمكين البحث في الأدوات، ثم يقارن حمولات طلبات المزود وسجلات الجلسة. يثبت اختبار الانحدار:
  1. يستطيع الوضع المباشر استدعاء أداة Plugin المزيفة.
  2. يستطيع البحث في الأدوات استدعاء أداة Plugin المزيفة نفسها.
  3. يكشف الوضع المباشر مخططات أدوات Plugin المزيفة مباشرة للمزود.
  4. يكشف البحث في الأدوات الجسر المدمج فقط.
  5. حمولة طلب البحث في الأدوات أصغر للكتالوج المزيف الكبير.
  6. تعرض سجلات الجلسة أعداد استدعاءات الأدوات المتوقعة وقياسات الاستدعاء عبر الجسر.

سلوك الفشل

ينبغي أن يفشل البحث في الأدوات بإغلاق آمن:
  • إذا لم تكن أداة ما في السياسة الفعالة، فيجب ألا يعيدها البحث
  • إذا أصبحت أداة محددة غير متاحة، فيجب أن يفشل tool_call
  • إذا منعت السياسة أو الموافقة التنفيذ، فيجب أن تبلغ نتيجة الاستدعاء عن ذلك الحظر بدلا من تجاوزه
  • إذا تعذر على جسر الشيفرة إنشاء وقت تشغيل معزول، فاستخدم mode: "tools" أو عطل البحث في الأدوات لذلك النشر

ذو صلة