tools.toolSearch.
Quando habilitado para execuções do OpenClaw, o modelo recebe uma ferramenta tool_search_code
por padrão. Essa ferramenta executa um corpo curto de JavaScript em um subprocesso Node
isolado com uma ponte openclaw.tools:
Como um turno é executado
No momento do planejamento, o executor incorporado do OpenClaw cria o catálogo efetivo para a execução:- Resolve a política de ferramentas ativa para o agente, perfil, sandbox e sessão.
- Lista ferramentas elegíveis do OpenClaw e de plugins.
- Lista ferramentas MCP elegíveis por meio do runtime MCP da sessão.
- Adiciona ferramentas elegíveis fornecidas pelo cliente para a execução atual.
- Indexa descritores compactos para busca.
- Expõe a ponte de código do OpenClaw, as ferramentas estruturadas de fallback ou a superfície de diretório compacta ao modelo.
openclaw.tools.call(...) atravessa a ponte de volta para o Gateway, onde a
política, aprovação, hook, registro em log e tratamento de resultados normais ainda se aplicam.
Modos
tools.toolSearch tem três modos voltados para o modelo:
code: expõetool_search_code, a ponte JavaScript compacta padrão.tools: expõetool_search,tool_describeetool_callcomo ferramentas estruturadas simples para provedores que não devem receber código.directory: expõetool_search,tool_describeetool_call, além de um diretório de prompt limitado com nomes e descrições das ferramentas disponíveis para provedores que devem ver nomes de ferramentas sem todos os esquemas completos. O OpenClaw também pode expor diretamente um pequeno conjunto limitado de esquemas de ferramentas prováveis ou exigidos para o turno atual.
code faz fallback para tools antes da
compaction do catálogo. No modo directory, as ferramentas fornecidas pelo cliente permanecem diretamente visíveis
para a execução atual, enquanto ferramentas do OpenClaw, ferramentas de plugins e ferramentas MCP podem ser
compactadas atrás do catálogo de diretório. Uma chamada direta a um nome exato oculto
do diretório é hidratada a partir desse mesmo catálogo autorizado antes da execução.
Todos os modos são experimentais. Prefira exposição direta de ferramentas para catálogos pequenos de ferramentas do OpenClaw,
e prefira as superfícies estáveis nativas do Codex para execuções do harness do Codex.
Não há uma configuração separada de seleção de origem. Quando o Tool Search está habilitado, o
catálogo inclui ferramentas elegíveis do OpenClaw, MCP e do cliente após a filtragem normal
por política.
Por que isso existe
Catálogos grandes são úteis, mas caros. Enviar todos os esquemas de ferramentas ao modelo aumenta a solicitação, desacelera o planejamento e aumenta a seleção acidental de ferramentas. O Tool Search muda o formato:- ferramentas diretas: o modelo vê todos os esquemas selecionados antes do primeiro token
- modo de código do Tool Search: o modelo vê uma ferramenta de código compacta e um contrato curto de API
- modo de ferramentas do Tool Search: o modelo vê três ferramentas estruturadas compactas de fallback
- modo de diretório do Tool Search: o modelo vê um diretório limitado, além de controles de busca/descrever/chamar e um pequeno conjunto limitado de esquemas prováveis ou exigidos
- durante o turno: o modelo pode carregar os esquemas restantes conforme necessário
API
openclaw.tools.search(query, options?)
Pesquisa o catálogo efetivo da execução atual. Os resultados são compactos e seguros
para colocar de volta no contexto do prompt.
openclaw.tools.describe(id)
Carrega os metadados completos de um resultado de busca, incluindo o esquema de entrada exato.
openclaw.tools.call(id, args)
Chama uma ferramenta selecionada por meio do OpenClaw.
tool_searchtool_describetool_call
tool_searchtool_describetool_call
tool_search para encontrá-las. Se
o modelo solicitar diretamente um nome exato de ferramenta oculta do diretório, o OpenClaw
o hidrata a partir do catálogo autorizado antes da execução normal.
Nomes de ferramentas de cliente no modo de diretório não devem colidir com nomes de ferramentas do OpenClaw,
de plugins ou MCP, porque o despacho adiado exato usa esses nomes.
Limite de runtime
A ponte de código é executada em um subprocesso Node de curta duração. O subprocesso inicia com o modo de permissão do Node habilitado, um ambiente vazio, nenhuma concessão de sistema de arquivos ou rede e nenhuma concessão de processo filho ou worker. O OpenClaw impõe um timeout de tempo de parede no processo pai e encerra o subprocesso em caso de timeout, inclusive após continuações assíncronas. O runtime expõe apenas:console.log,console.warneconsole.erroropenclaw.tools.searchopenclaw.tools.describeopenclaw.tools.call
- políticas de permissão e negação de ferramentas
- restrições de ferramenta por agente e por sandbox
- política de ferramentas de canal/runtime
- hooks de aprovação
- hooks
before_tool_callde plugins - identidade da sessão, logs e telemetria
Configuração
Habilite o Tool Search para execuções do OpenClaw com a ponte de código padrão:Prompt e telemetria
O Tool Search registra telemetria suficiente para compará-lo com a exposição direta de ferramentas:- total de bytes serializados de ferramentas e prompt enviados ao harness
- tamanho do catálogo e detalhamento por origem
- contagens de busca, descrição e chamada
- chamadas finais de ferramentas executadas por meio do OpenClaw
- ids e origens das ferramentas selecionadas
- quantos esquemas de ferramentas o modelo viu antecipadamente
- quantas operações de busca e descrição ele realizou
- qual ferramenta final foi chamada
- se o resultado veio do OpenClaw, MCP ou de uma ferramenta de cliente
Validação E2E
O cenário de Gateway do QA Lab comprova ambos os caminhos com o runtime do OpenClaw:- O modo direto consegue chamar a ferramenta do plugin falso.
- O Tool Search consegue chamar a mesma ferramenta do plugin falso.
- O modo direto expõe diretamente os esquemas da ferramenta do plugin falso ao provedor.
- O Tool Search expõe apenas a ponte compacta.
- O payload de solicitação do Tool Search é menor para o grande catálogo falso.
- Os logs de sessão mostram as contagens esperadas de chamadas de ferramentas e a telemetria de chamadas pela ponte.
Comportamento de falha
O Tool Search deve falhar fechado:- se uma ferramenta não estiver na política efetiva, a busca não deve retorná-la
- se uma ferramenta selecionada ficar indisponível,
tool_calldeve falhar - se a política ou a aprovação bloquear a execução, o resultado da chamada deve relatar esse bloqueio em vez de contorná-lo
- se a ponte de código não conseguir criar um runtime isolado, use
mode: "tools"ou desabilite o Tool Search para essa implantação