Tools
टूल खोज
Tool Search एक प्रायोगिक OpenClaw एजेंट रनटाइम सुविधा है। यह एजेंटों को बड़े टूल कैटलॉग खोजने और उन्हें कॉल करने का एक संक्षिप्त तरीका प्रदान करती है। यह तब उपयोगी है जब रन में कई टूल उपलब्ध हों, लेकिन मॉडल को संभवतः उनमें से केवल कुछ की आवश्यकता हो।
यह पृष्ठ OpenClaw Tool Search का दस्तावेज़ीकरण करता है। यह Codex-नेटिव टूल
सर्च या डायनेमिक-टूल्स सतह नहीं है। Codex-नेटिव कोड मोड, टूल सर्च, स्थगित
डायनेमिक टूल और नेस्टेड टूल कॉल स्थिर Codex हार्नेस सतहें हैं और
tools.toolSearch पर निर्भर नहीं हैं।
Tool Search नियंत्रणों के बजाय QuickJS-WASI exec/wait
सतह उपलब्ध कराने वाले सामान्य OpenClaw रनटाइम के लिए, कोड मोड देखें।
OpenClaw रन के लिए सक्षम होने पर, मॉडल को डिफ़ॉल्ट रूप से एक tool_search_code टूल
मिलता है, साथ ही वे डायरेक्ट-ओनली टूल भी मिलते हैं जिनके संरचित परिणाम
संक्षिप्त ब्रिज को पार नहीं कर सकते। कोड टूल एक पृथक
Node सबप्रोसेस में openclaw.tools ब्रिज के साथ एक छोटा JavaScript भाग चलाता है:
const hits = await openclaw.tools.search("GitHub इश्यू बनाएँ");const tool = await openclaw.tools.describe(hits[0].id);return await openclaw.tools.call(tool.id, { title: "स्टार्टअप पर क्रैश", body: "पुनरुत्पादन के चरण...",});कैटलॉग में कैटलॉग-योग्य OpenClaw टूल, Plugin टूल, MCP टूल और क्लाइंट द्वारा प्रदान किए गए टूल शामिल हो सकते हैं। मॉडल हर कैटलॉग किए गए स्कीमा को पहले से नहीं देखता। इसके बजाय, वह संक्षिप्त विवरणकों में खोज करता है, सटीक स्कीमा की आवश्यकता होने पर किसी चयनित टूल का विवरण प्राप्त करता है और उस टूल को OpenClaw के माध्यम से कॉल करता है। डायरेक्ट-ओनली टूल मॉडल को दिखाई देते रहते हैं और कैटलॉग में नहीं जोड़े जाते।
Codex हार्नेस रन को ये प्रायोगिक OpenClaw Tool Search नियंत्रण नहीं मिलते। OpenClaw उत्पाद क्षमताओं को डायनेमिक टूल के रूप में Codex को देता है और स्थिर नेटिव कोड मोड, नेटिव टूल सर्च, स्थगित डायनेमिक टूल तथा नेस्टेड टूल कॉल का स्वामित्व Codex के पास होता है।
एक टर्न कैसे चलता है
योजना बनाते समय OpenClaw का एम्बेडेड रनर रन के लिए प्रभावी कैटलॉग बनाता है:
- एजेंट, प्रोफ़ाइल, सैंडबॉक्स और सेशन के लिए सक्रिय टूल नीति का समाधान करें।
- योग्य OpenClaw और Plugin टूल सूचीबद्ध करें।
- सेशन MCP रनटाइम के माध्यम से योग्य MCP टूल सूचीबद्ध करें।
- वर्तमान रन के लिए प्रदान किए गए योग्य क्लाइंट टूल जोड़ें।
- डायरेक्ट-ओनली टूल को मॉडल के लिए दृश्यमान रखें और शेष कैटलॉग-योग्य टूल के संक्षिप्त विवरणकों को इंडेक्स करें।
- उन डायरेक्ट-ओनली टूल के साथ OpenClaw कोड ब्रिज, संरचित फ़ॉलबैक टूल या संक्षिप्त डायरेक्टरी सतह उपलब्ध कराएँ।
निष्पादन के समय प्रत्येक वास्तविक टूल कॉल OpenClaw पर वापस आता है। पृथक Node
रनटाइम में Plugin कार्यान्वयन, MCP क्लाइंट ऑब्जेक्ट या सीक्रेट नहीं होते।
openclaw.tools.call(...) ब्रिज को पार करके Gateway में वापस जाता है, जहाँ
सामान्य नीति, अनुमोदन, हुक, लॉगिंग और परिणाम प्रबंधन अब भी लागू होते हैं।
मोड
tools.toolSearch में मॉडल के लिए तीन मोड हैं:
code: डायरेक्ट-ओनली टूल के साथ डिफ़ॉल्ट संक्षिप्त JavaScript ब्रिज,tool_search_code, उपलब्ध कराता है।tools: जिन प्रदाताओं को कोड नहीं मिलना चाहिए, उनके लिएtool_search,tool_describeऔरtool_callको सामान्य संरचित टूल के रूप में, डायरेक्ट-ओनली टूल के साथ उपलब्ध कराता है।directory: जिन प्रदाताओं को प्रत्येक पूर्ण स्कीमा के बिना टूल के नाम दिखाई देने चाहिए, उनके लिएtool_search,tool_describeऔरtool_callके साथ उपलब्ध टूल नामों और विवरणों की सीमित प्रॉम्प्ट डायरेक्टरी उपलब्ध कराता है। OpenClaw वर्तमान टर्न के लिए संभावित या आवश्यक टूल स्कीमा का एक छोटा सीमित समूह सीधे भी उपलब्ध करा सकता है। इस मोड में भी डायरेक्ट-ओनली टूल दृश्यमान रहते हैं।
सभी मोड समान नीति-फ़िल्टर किए गए कैटलॉग और सामान्य OpenClaw निष्पादन
पथ का उपयोग करते हैं। catalogMode: "direct-only" के रूप में चिह्नित टूल उस कैटलॉग से बाहर रहते हैं और
मॉडल को दिखाई देते रहते हैं। यदि वर्तमान रनटाइम पृथक Node कोड-मोड चाइल्ड
प्रोसेस लॉन्च नहीं कर सकता, तो डिफ़ॉल्ट code मोड कैटलॉग
संक्षिप्तीकरण से पहले tools पर फ़ॉलबैक करता है। directory मोड में, क्लाइंट द्वारा प्रदान किए गए टूल
वर्तमान रन के लिए सीधे दिखाई देते रहते हैं, जबकि OpenClaw टूल, Plugin टूल और MCP टूल
डायरेक्टरी कैटलॉग के पीछे संक्षिप्त किए जा सकते हैं। किसी सटीक छिपे हुए
डायरेक्टरी नाम पर सीधी कॉल को निष्पादन से पहले उसी अधिकृत कैटलॉग से हाइड्रेट किया जाता है।
सभी मोड प्रायोगिक हैं। छोटे OpenClaw टूल कैटलॉग के लिए सीधे टूल प्रदर्शन को प्राथमिकता दें और Codex हार्नेस रन के लिए Codex-नेटिव स्थिर सतहों को प्राथमिकता दें।
अलग स्रोत-चयन कॉन्फ़िगरेशन नहीं है। Tool Search सक्षम होने पर, सामान्य नीति फ़िल्टरिंग के बाद कैटलॉग में कैटलॉग-योग्य OpenClaw, MCP और क्लाइंट टूल शामिल होते हैं; डायरेक्ट-ओनली टूल अलग रखे जाते हैं।
यह क्यों मौजूद है
बड़े कैटलॉग उपयोगी, लेकिन महँगे होते हैं। प्रत्येक टूल स्कीमा मॉडल को भेजने से अनुरोध बड़ा हो जाता है, योजना धीमी होती है और आकस्मिक टूल चयन बढ़ता है।
Tool Search इसका स्वरूप बदलता है:
- प्रत्यक्ष टूल: मॉडल पहले टोकन से पहले प्रत्येक चयनित स्कीमा देखता है
- Tool Search कोड मोड: मॉडल एक संक्षिप्त कोड टूल, एक छोटा API अनुबंध और सभी डायरेक्ट-ओनली टूल देखता है
- Tool Search टूल मोड: मॉडल तीन संक्षिप्त संरचित फ़ॉलबैक टूल और सभी डायरेक्ट-ओनली टूल देखता है
- Tool Search डायरेक्टरी मोड: मॉडल एक सीमित डायरेक्टरी के साथ सर्च/विवरण/कॉल नियंत्रण, संभावित या आवश्यक स्कीमा का एक छोटा सीमित समूह और सभी डायरेक्ट-ओनली टूल देखता है
- टर्न के दौरान: मॉडल आवश्यकतानुसार शेष स्कीमा लोड कर सकता है
छोटे कैटलॉग के लिए प्रत्यक्ष टूल प्रदर्शन अब भी सही डिफ़ॉल्ट है। Tool Search तब सर्वश्रेष्ठ है जब एक रन कई टूल देख सकता हो, विशेषकर MCP सर्वर या क्लाइंट द्वारा प्रदान किए गए ऐप टूल से।
API
openclaw.tools.search(query, options?)
वर्तमान रन के प्रभावी कैटलॉग में खोज करता है। परिणाम संक्षिप्त और
प्रॉम्प्ट संदर्भ में वापस रखने के लिए सुरक्षित होते हैं। प्रत्येक परिणाम में एक सीमित TypeScript-शैली
input सिग्नेचर शामिल होता है, जैसे { id: string; mode?: "drip" | "flood" }, ताकि
वह सिग्नेचर पर्याप्त होने पर मॉडल describe छोड़ सके। विश्वसनीय
OpenClaw कोर या Plugin टूल में संक्षिप्त output संकेत भी शामिल हो सकता है, जैसे
Array<{ id: string; paid: boolean }>। MCP और क्लाइंट आउटपुट-स्कीमा दावों को
इस विश्वसनीय संकेत में पदोन्नत नहीं किया जाता। उनके अविश्वसनीय इनपुट स्कीमा भी
input: "unknown" के रूप में स्थगित रहते हैं; उन्हें कॉल करने से पहले describe का उपयोग करें। खुले,
अत्यधिक बड़े या अन्यथा आंशिक आउटपुट स्कीमा संकेत को छोड़ देते हैं और इसके बजाय
describe के माध्यम से उपलब्ध रहते हैं।
const hits = await openclaw.tools.search("कैलेंडर इवेंट", { limit: 5 });openclaw.tools.describe(id)
किसी एक खोज परिणाम का पूरा मेटाडेटा लोड करता है, जिसमें सटीक इनपुट स्कीमा और
टूल द्वारा घोषित किए जाने पर विश्वसनीय पूर्ण outputSchema शामिल होता है।
const calendarCreate = await openclaw.tools.describe("mcp:calendar:create_event");openclaw.tools.call(id, args)
चयनित टूल को OpenClaw के माध्यम से कॉल करता है और अपरिष्कृत { tool, result }
एनवेलप लौटाता है। JSON लौटाने वाले टूल सामान्यतः अपना मान
result.details में रखते हैं। यदि कोई विश्वसनीय टूल outputSchema घोषित करता है, तो OpenClaw
निष्पादन से पहले स्कीमा कंपाइल करता है और कैटलॉग कॉल लौटाने से पहले सामान्य टूल
हुक के बाद अंतिम details को सत्यापित करता है।
await openclaw.tools.call(calendarCreate.id, { summary: "योजना", start: "2026-05-09T14:00:00Z",});टूल लेखक टूल की outputSchema प्रॉपर्टी पर आउटपुट अनुबंध घोषित करते हैं।
यह AgentToolResult.details का वर्णन करता है, रेंडर किए गए सामग्री ब्लॉक का नहीं।
सभी गैर-थ्रोइंग वैरिएंट शामिल करें या अस्थिर परिणामों के लिए इसे छोड़ दें। देखें
कोड मोड आउटपुट अनुबंध और
टूल Plugin।
संरचित फ़ॉलबैक मोड वही संचालन टूल के रूप में उपलब्ध कराता है:
tool_searchtool_describetool_call
डायरेक्टरी मोड उपलब्ध कराता है:
tool_searchtool_describetool_call
यह क्लाइंट द्वारा प्रदान किए गए टूल और सभी डायरेक्ट-ओनली टूल को भी सीधे दृश्यमान रखता है,
और वर्तमान टर्न के लिए संभावित या आवश्यक कैटलॉग टूल स्कीमा का एक छोटा सीमित समूह
सीधे उपलब्ध करा सकता है। यदि सीमित डायरेक्टरी प्रविष्टियाँ छोड़ देती है, तो
उन्हें खोजने के लिए tool_search का उपयोग करें। यदि मॉडल किसी सटीक छिपे हुए डायरेक्टरी
टूल नाम का सीधे अनुरोध करता है, तो OpenClaw सामान्य निष्पादन से पहले उसे अधिकृत कैटलॉग से
हाइड्रेट करता है।
डायरेक्टरी-मोड क्लाइंट टूल नामों का OpenClaw, Plugin या MCP
टूल नामों से टकराव नहीं होना चाहिए, क्योंकि सटीक स्थगित डिस्पैच उन्हीं नामों का उपयोग करता है।
रनटाइम सीमा
कोड ब्रिज एक अल्पकालिक Node सबप्रोसेस में चलता है। सबप्रोसेस Node अनुमति मोड सक्षम, खाली एनवायरनमेंट, बिना फ़ाइल सिस्टम या नेटवर्क अनुदान और बिना चाइल्ड-प्रोसेस या वर्कर अनुदान के शुरू होता है। OpenClaw पैरेंट-प्रोसेस वॉल-क्लॉक टाइमआउट लागू करता है और टाइमआउट होने पर, एसिंक कंटिन्यूएशन के बाद भी, सबप्रोसेस को समाप्त कर देता है।
रनटाइम केवल ये उपलब्ध कराता है:
console.log,console.warnऔरconsole.erroropenclaw.tools.searchopenclaw.tools.describeopenclaw.tools.call
अंतिम कॉल पर सामान्य OpenClaw व्यवहार अब भी लागू होता है:
- टूल अनुमति और निषेध नीतियाँ
- प्रति-एजेंट और प्रति-सैंडबॉक्स टूल प्रतिबंध
- चैनल/रनटाइम टूल नीति
- अनुमोदन हुक
- Plugin
before_tool_callहुक - सेशन पहचान, लॉग और टेलीमेट्री
कॉन्फ़िगरेशन
डिफ़ॉल्ट कोड ब्रिज के साथ OpenClaw रन के लिए Tool Search सक्षम करें:
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, }, },}रनटाइम codeTimeoutMs को 1000-60000, maxSearchLimit को 1-50 और
searchDefaultLimit को 1..maxSearchLimit तक सीमित करता है।
इसे अक्षम करें:
{ tools: { toolSearch: false, },}प्रॉम्प्ट और टेलीमेट्री
Tool Search इसे प्रत्यक्ष टूल प्रदर्शन से तुलना करने के लिए पर्याप्त टेलीमेट्री रिकॉर्ड करता है:
- हार्नेस को भेजे गए कुल क्रमबद्ध टूल और प्रॉम्प्ट बाइट
- कैटलॉग आकार और स्रोत विवरण
- खोज, विवरण और कॉल की संख्याएँ
- OpenClaw के माध्यम से निष्पादित अंतिम टूल कॉल
- चयनित टूल आईडी और स्रोत
सेशन लॉग से इन प्रश्नों के उत्तर देना संभव होना चाहिए:
- मॉडल ने पहले से कितने टूल स्कीमा देखे
- उसने कितनी खोज और विवरण कार्रवाइयाँ कीं
- कौन-सा अंतिम टूल कॉल किया गया
- परिणाम OpenClaw, MCP या क्लाइंट टूल में से किससे आया
E2E सत्यापन
QA Lab Gateway परिदृश्य OpenClaw रनटाइम के साथ दोनों पथों को प्रमाणित करता है:
pnpm openclaw qa suite --provider-mode mock-openai --scenario tool-search-gateway-e2eयह बड़े टूल कैटलॉग वाला एक अस्थायी नकली Plugin बनाता है, नकली OpenAI प्रदाता शुरू करता है, Gateway को एक बार प्रत्यक्ष मोड में और एक बार Tool Search सक्षम करके शुरू करता है, फिर प्रदाता अनुरोध पेलोड और सेशन लॉग की तुलना करता है।
रिग्रेशन प्रमाणित करता है:
- प्रत्यक्ष मोड नकली Plugin टूल को कॉल कर सकता है।
- टूल खोज उसी नकली Plugin टूल को कॉल कर सकती है।
- प्रत्यक्ष मोड नकली Plugin टूल की स्कीमाएँ सीधे प्रदाता के सामने उपलब्ध कराता है।
- टूल खोज केवल संक्षिप्त ब्रिज और केवल-प्रत्यक्ष टूल उपलब्ध कराती है।
- बड़ी नकली कैटलॉग के लिए टूल खोज अनुरोध का पेलोड छोटा होता है।
- सत्र लॉग अपेक्षित टूल-कॉल संख्याएँ और ब्रिज किए गए कॉल की टेलीमेट्री दिखाते हैं।
विफलता व्यवहार
टूल खोज को सुरक्षित रूप से विफल होना चाहिए:
- यदि कोई टूल प्रभावी नीति में नहीं है, तो खोज को उसे वापस नहीं करना चाहिए
- यदि कोई चयनित टूल अनुपलब्ध हो जाता है, तो
tool_callको विफल होना चाहिए - यदि नीति या अनुमोदन निष्पादन को अवरुद्ध करता है, तो कॉल परिणाम को उसे दरकिनार करने के बजाय उस अवरोध की रिपोर्ट करनी चाहिए
- यदि कोड ब्रिज पृथक रनटाइम नहीं बना सकता, तो
mode: "tools"का उपयोग करें या उस परिनियोजन के लिए टूल खोज अक्षम करें