tools.toolSearch पर निर्भर नहीं हैं।
Tool Search नियंत्रणों के बजाय QuickJS-WASI exec/wait
सतह उपलब्ध कराने वाले सामान्य OpenClaw रनटाइम के लिए, कोड मोड देखें।
OpenClaw रन के लिए सक्षम होने पर, मॉडल को डिफ़ॉल्ट रूप से एक tool_search_code टूल
मिलता है, साथ ही वे डायरेक्ट-ओनली टूल भी मिलते हैं जिनके संरचित परिणाम
संक्षिप्त ब्रिज को पार नहीं कर सकते। कोड टूल एक पृथक
Node सबप्रोसेस में openclaw.tools ब्रिज के साथ एक छोटा JavaScript भाग चलाता है:
एक टर्न कैसे चलता है
योजना बनाते समय OpenClaw का एम्बेडेड रनर रन के लिए प्रभावी कैटलॉग बनाता है:- एजेंट, प्रोफ़ाइल, सैंडबॉक्स और सेशन के लिए सक्रिय टूल नीति का समाधान करें।
- योग्य OpenClaw और Plugin टूल सूचीबद्ध करें।
- सेशन MCP रनटाइम के माध्यम से योग्य MCP टूल सूचीबद्ध करें।
- वर्तमान रन के लिए प्रदान किए गए योग्य क्लाइंट टूल जोड़ें।
- डायरेक्ट-ओनली टूल को मॉडल के लिए दृश्यमान रखें और शेष कैटलॉग-योग्य टूल के संक्षिप्त विवरणकों को इंडेक्स करें।
- उन डायरेक्ट-ओनली टूल के साथ OpenClaw कोड ब्रिज, संरचित फ़ॉलबैक टूल या संक्षिप्त डायरेक्टरी सतह उपलब्ध कराएँ।
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 वर्तमान टर्न के लिए संभावित या आवश्यक टूल स्कीमा का एक छोटा सीमित समूह सीधे भी उपलब्ध करा सकता है। इस मोड में भी डायरेक्ट-ओनली टूल दृश्यमान रहते हैं।
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 डायरेक्टरी मोड: मॉडल एक सीमित डायरेक्टरी के साथ सर्च/विवरण/कॉल नियंत्रण, संभावित या आवश्यक स्कीमा का एक छोटा सीमित समूह और सभी डायरेक्ट-ओनली टूल देखता है
- टर्न के दौरान: मॉडल आवश्यकतानुसार शेष स्कीमा लोड कर सकता है
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 के माध्यम से उपलब्ध रहते हैं।
openclaw.tools.describe(id)
किसी एक खोज परिणाम का पूरा मेटाडेटा लोड करता है, जिसमें सटीक इनपुट स्कीमा और
टूल द्वारा घोषित किए जाने पर विश्वसनीय पूर्ण outputSchema शामिल होता है।
openclaw.tools.call(id, args)
चयनित टूल को OpenClaw के माध्यम से कॉल करता है और अपरिष्कृत { tool, result }
एनवेलप लौटाता है। JSON लौटाने वाले टूल सामान्यतः अपना मान
result.details में रखते हैं। यदि कोई विश्वसनीय टूल outputSchema घोषित करता है, तो OpenClaw
निष्पादन से पहले स्कीमा कंपाइल करता है और कैटलॉग कॉल लौटाने से पहले सामान्य टूल
हुक के बाद अंतिम details को सत्यापित करता है।
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
- टूल अनुमति और निषेध नीतियाँ
- प्रति-एजेंट और प्रति-सैंडबॉक्स टूल प्रतिबंध
- चैनल/रनटाइम टूल नीति
- अनुमोदन हुक
- Plugin
before_tool_callहुक - सेशन पहचान, लॉग और टेलीमेट्री
कॉन्फ़िगरेशन
डिफ़ॉल्ट कोड ब्रिज के साथ OpenClaw रन के लिए Tool Search सक्षम करें:codeTimeoutMs को 1000-60000, maxSearchLimit को 1-50 और
searchDefaultLimit को 1..maxSearchLimit तक सीमित करता है।
इसे अक्षम करें:
प्रॉम्प्ट और टेलीमेट्री
Tool Search इसे प्रत्यक्ष टूल प्रदर्शन से तुलना करने के लिए पर्याप्त टेलीमेट्री रिकॉर्ड करता है:- हार्नेस को भेजे गए कुल क्रमबद्ध टूल और प्रॉम्प्ट बाइट
- कैटलॉग आकार और स्रोत विवरण
- खोज, विवरण और कॉल की संख्याएँ
- OpenClaw के माध्यम से निष्पादित अंतिम टूल कॉल
- चयनित टूल आईडी और स्रोत
- मॉडल ने पहले से कितने टूल स्कीमा देखे
- उसने कितनी खोज और विवरण कार्रवाइयाँ कीं
- कौन-सा अंतिम टूल कॉल किया गया
- परिणाम OpenClaw, MCP या क्लाइंट टूल में से किससे आया
E2E सत्यापन
QA Lab Gateway परिदृश्य OpenClaw रनटाइम के साथ दोनों पथों को प्रमाणित करता है:- प्रत्यक्ष मोड नकली Plugin टूल को कॉल कर सकता है।
- टूल खोज उसी नकली Plugin टूल को कॉल कर सकती है।
- प्रत्यक्ष मोड नकली Plugin टूल की स्कीमाएँ सीधे प्रदाता के सामने उपलब्ध कराता है।
- टूल खोज केवल संक्षिप्त ब्रिज और केवल-प्रत्यक्ष टूल उपलब्ध कराती है।
- बड़ी नकली कैटलॉग के लिए टूल खोज अनुरोध का पेलोड छोटा होता है।
- सत्र लॉग अपेक्षित टूल-कॉल संख्याएँ और ब्रिज किए गए कॉल की टेलीमेट्री दिखाते हैं।
विफलता व्यवहार
टूल खोज को सुरक्षित रूप से विफल होना चाहिए:- यदि कोई टूल प्रभावी नीति में नहीं है, तो खोज को उसे वापस नहीं करना चाहिए
- यदि कोई चयनित टूल अनुपलब्ध हो जाता है, तो
tool_callको विफल होना चाहिए - यदि नीति या अनुमोदन निष्पादन को अवरुद्ध करता है, तो कॉल परिणाम को उसे दरकिनार करने के बजाय उस अवरोध की रिपोर्ट करनी चाहिए
- यदि कोड ब्रिज पृथक रनटाइम नहीं बना सकता, तो
mode: "tools"का उपयोग करें या उस परिनियोजन के लिए टूल खोज अक्षम करें