tools.toolSearch.
Когда функция включена для запусков OpenClaw, модель по умолчанию получает один инструмент
tool_search_code, а также все инструменты, доступные только напрямую, чьи структурированные результаты нельзя передать
через компактный мост. Инструмент кода выполняет короткий фрагмент JavaScript в изолированном
дочернем процессе Node с мостом openclaw.tools:
Как выполняется ход
На этапе планирования встроенная среда выполнения OpenClaw формирует эффективный каталог для запуска:- Определяет активную политику инструментов для агента, профиля, песочницы и сеанса.
- Перечисляет подходящие инструменты OpenClaw и плагинов.
- Перечисляет подходящие инструменты MCP через среду выполнения MCP сеанса.
- Добавляет подходящие клиентские инструменты, предоставленные для текущего запуска.
- Оставляет инструменты, доступные только напрямую, видимыми модели и индексирует компактные дескрипторы остальных подходящих для каталогизации инструментов.
- Предоставляет мост кода OpenClaw, структурированные резервные инструменты или компактный интерфейс каталога вместе с инструментами, доступными только напрямую.
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 также может напрямую предоставлять для текущего хода небольшой ограниченный набор схем вероятных или обязательных инструментов. Инструменты, доступные только напрямую, также остаются видимыми в этом режиме.
catalogMode: "direct-only" остаются вне этого каталога и
видимыми модели. Если текущая среда выполнения не может запустить изолированный дочерний процесс
режима кода Node, режим code по умолчанию переключается на tools до сжатия
каталога. В режиме directory предоставленные клиентом инструменты остаются непосредственно видимыми
для текущего запуска, а инструменты OpenClaw, плагинов и MCP могут быть
скрыты за каталогом. Прямой вызов по точному имени скрытого инструмента
каталога перед выполнением дополняется данными из того же авторизованного каталога.
Все режимы являются экспериментальными. Для небольших каталогов инструментов OpenClaw предпочтительно
предоставлять инструменты напрямую, а для запусков в среде Codex следует использовать стабильные нативные интерфейсы Codex.
Отдельной конфигурации выбора источников нет. Когда Tool Search включён,
каталог после обычной фильтрации политикой включает подходящие для каталогизации инструменты OpenClaw, MCP и клиента;
инструменты, доступные только напрямую, сохраняются отдельно.
Для чего это нужно
Большие каталоги полезны, но ресурсоёмки. Передача модели схем всех инструментов увеличивает размер запроса, замедляет планирование и повышает вероятность случайного выбора инструмента. Tool Search изменяет структуру:- прямые инструменты: модель видит каждую выбранную схему до первого токена
- режим кода Tool Search: модель видит один компактный инструмент кода, краткий контракт API и все инструменты, доступные только напрямую
- режим инструментов Tool Search: модель видит три компактных структурированных резервных инструмента и все инструменты, доступные только напрямую
- режим каталога Tool Search: модель видит ограниченный каталог, элементы управления поиском, описанием и вызовом, небольшой ограниченный набор схем вероятных или обязательных инструментов, а также все инструменты, доступные только напрямую
- во время хода: модель может загружать остальные схемы по мере необходимости
API
openclaw.tools.search(query, options?)
Выполняет поиск в эффективном каталоге текущего запуска. Результаты компактны, и их можно безопасно
возвращать в контекст промпта.
openclaw.tools.describe(id)
Загружает полные метаданные одного результата поиска, включая точную схему входных данных.
openclaw.tools.call(id, args)
Вызывает выбранный инструмент через OpenClaw.
tool_searchtool_describetool_call
tool_searchtool_describetool_call
tool_search, чтобы найти их. Если модель напрямую запрашивает точное имя скрытого инструмента
каталога, OpenClaw перед обычным выполнением дополняет его данными из авторизованного каталога.
Имена клиентских инструментов в режиме каталога не должны совпадать с именами инструментов OpenClaw, плагинов или MCP,
поскольку для точной отложенной диспетчеризации используются эти имена.
Граница среды выполнения
Мост кода работает в кратковременном дочернем процессе Node. Дочерний процесс запускается с включённым режимом разрешений Node, пустым окружением, без разрешений на доступ к файловой системе или сети, а также без разрешений на дочерние процессы или рабочие потоки. OpenClaw применяет тайм-аут по астрономическому времени в родительском процессе и завершает дочерний процесс при его истечении, в том числе после асинхронных продолжений. Среда выполнения предоставляет только:console.log,console.warnиconsole.erroropenclaw.tools.searchopenclaw.tools.describeopenclaw.tools.call
- политики разрешения и запрета инструментов
- ограничения инструментов для отдельных агентов и песочниц
- политика инструментов канала и среды выполнения
- перехватчики подтверждения
- перехватчики плагина
before_tool_call - идентификация сеанса, журналы и телеметрия
Конфигурация
Включите Tool Search для запусков OpenClaw с мостом кода по умолчанию:codeTimeoutMs диапазоном 1000-60000, maxSearchLimit диапазоном 1-50, а
searchDefaultLimit диапазоном 1..maxSearchLimit.
Отключение:
Промпт и телеметрия
Tool Search записывает достаточно телеметрии для сравнения с прямым предоставлением инструментов:- общий объём сериализованных данных инструментов и промпта, отправленных в среду
- размер каталога и распределение по источникам
- количество операций поиска, описания и вызова
- окончательные вызовы инструментов, выполненные через OpenClaw
- идентификаторы и источники выбранных инструментов
- сколько схем инструментов модель увидела заранее
- сколько операций поиска и описания она выполнила
- какой окончательный инструмент был вызван
- был ли результат получен от OpenClaw, MCP или клиентского инструмента
Сквозная проверка
Сценарий Gateway в QA Lab проверяет оба пути в среде выполнения OpenClaw:- Прямой режим может вызвать инструмент имитирующего плагина.
- Tool Search может вызвать тот же инструмент имитирующего плагина.
- Прямой режим предоставляет схемы инструментов имитирующего плагина непосредственно провайдеру.
- Tool Search предоставляет только компактный мост и все инструменты, доступные только напрямую.
- Полезная нагрузка запроса Tool Search меньше для большого имитирующего каталога.
- Журналы сеанса содержат ожидаемое количество вызовов инструментов и телеметрию вызовов через мост.
Поведение при сбоях
Tool Search должен безопасно блокировать выполнение при сбоях:- если инструмент не разрешён эффективной политикой, поиск не должен возвращать его
- если выбранный инструмент становится недоступен,
tool_callдолжен завершиться ошибкой - если политика или подтверждение блокирует выполнение, результат вызова должен сообщать об этой блокировке, а не обходить её
- если мост кода не может создать изолированную среду выполнения, используйте
mode: "tools"или отключите Tool Search для этого развёртывания