Tools
Búsqueda de herramientas
La Búsqueda de herramientas es una función experimental de agente PI de OpenClaw. Ofrece a los agentes PI una forma compacta de descubrir y llamar grandes catálogos de herramientas. Es útil cuando la ejecución tiene muchas herramientas disponibles, pero es probable que el modelo necesite solo unas pocas.
Esta página documenta la Búsqueda de herramientas PI de OpenClaw. No es la búsqueda de
herramientas nativa de Codex ni la superficie de herramientas dinámicas. El modo de código
nativo de Codex, la búsqueda de herramientas, las herramientas dinámicas diferidas y las
llamadas de herramientas anidadas son superficies estables del harness de Codex y no
dependen de tools.toolSearch.
Cuando está habilitada para PI, el modelo recibe una herramienta tool_search_code de forma predeterminada.
Esa herramienta ejecuta un cuerpo JavaScript breve en un subproceso Node aislado con un
puente 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...",
});
El catálogo puede incluir herramientas de OpenClaw, herramientas de plugins, herramientas MCP y herramientas proporcionadas por el cliente. El modelo no ve todos los esquemas completos por adelantado. En su lugar, busca descriptores compactos, describe una herramienta seleccionada cuando necesita el esquema exacto y llama esa herramienta mediante OpenClaw.
Las ejecuciones del harness de Codex no reciben estos controles experimentales de Búsqueda de herramientas de OpenClaw. OpenClaw pasa capacidades del producto a Codex como herramientas dinámicas, y Codex posee el modo de código nativo estable, la búsqueda de herramientas nativa, las herramientas dinámicas diferidas y las llamadas de herramientas anidadas.
Cómo se ejecuta un turno
En el momento de planificación, el ejecutor PI integrado construye el catálogo efectivo para la ejución:
- Resolver la política de herramientas activa para el agente, el perfil, el sandbox y la sesión.
- Enumerar las herramientas de OpenClaw y de plugins elegibles.
- Enumerar las herramientas MCP elegibles mediante el runtime MCP de la sesión.
- Agregar las herramientas de cliente elegibles suministradas para la ejecución actual.
- Indexar descriptores compactos para la búsqueda.
- Exponer al modelo el puente de código PI o las herramientas estructuradas de reserva.
En tiempo de ejecución, cada llamada de herramienta real vuelve a OpenClaw. El runtime Node
aislado no contiene implementaciones de plugins, objetos cliente MCP ni secretos.
openclaw.tools.call(...) cruza el puente de vuelta al Gateway, donde la
política, la aprobación, el hook, el registro y el manejo de resultados normales siguen aplicándose.
Modos
tools.toolSearch tiene dos modos visibles para el modelo:
code: exponetool_search_code, el puente JavaScript compacto predeterminado.tools: exponetool_search,tool_describeytool_callcomo herramientas estructuradas simples para proveedores que no deberían recibir código.
Ambos modos usan el mismo catálogo y la misma ruta de ejecución. La única diferencia es la
forma que ve el modelo. Si el runtime actual no puede iniciar el proceso hijo Node
aislado de modo de código, el modo code predeterminado recurre a tools antes de
la compactación del catálogo.
Ambos modos son experimentales. Prefiere la exposición directa de herramientas para catálogos pequeños de herramientas PI y prefiere las superficies estables nativas de Codex para ejecuciones del harness de Codex.
No hay una configuración separada de selección de fuentes. Cuando la Búsqueda de herramientas está habilitada, el catálogo incluye herramientas elegibles de OpenClaw, MCP y cliente tras el filtrado normal de políticas.
Por qué existe
Los catálogos grandes son útiles, pero costosos. Enviar todos los esquemas de herramientas al modelo hace que la solicitud sea más grande, ralentiza la planificación y aumenta la selección accidental de herramientas.
La Búsqueda de herramientas cambia la forma:
- herramientas directas: el modelo ve todos los esquemas seleccionados antes del primer token
- modo de código de Búsqueda de herramientas: el modelo ve una herramienta de código compacta y un contrato de API breve
- modo de herramientas de Búsqueda de herramientas: el modelo ve tres herramientas estructuradas compactas de reserva
- durante el turno: el modelo carga solo los esquemas de herramientas que realmente necesita
La exposición directa de herramientas sigue siendo el valor predeterminado correcto para catálogos pequeños. La Búsqueda de herramientas es mejor cuando una ejecución puede ver muchas herramientas, especialmente desde servidores MCP o herramientas de apps proporcionadas por el cliente.
API
openclaw.tools.search(query, options?)
Busca en el catálogo efectivo de la ejecución actual. Los resultados son compactos y seguros para volver a colocarlos en el contexto del prompt.
const hits = await openclaw.tools.search("calendar event", { limit: 5 });
openclaw.tools.describe(id)
Carga los metadatos completos de un resultado de búsqueda, incluido el esquema de entrada exacto.
const calendarCreate = await openclaw.tools.describe("mcp:calendar:create_event");
openclaw.tools.call(id, args)
Llama una herramienta seleccionada mediante OpenClaw.
await openclaw.tools.call(calendarCreate.id, {
summary: "Planning",
start: "2026-05-09T14:00:00Z",
});
El modo estructurado de reserva expone las mismas operaciones como herramientas:
tool_searchtool_describetool_call
Límite del runtime
El puente de código se ejecuta en un subproceso Node de corta duración. El subproceso se inicia con el modo de permisos de Node habilitado, un entorno vacío, sin concesiones de sistema de archivos ni red, y sin concesiones de procesos hijos ni workers. OpenClaw aplica un tiempo de espera de reloj de pared en el proceso padre y elimina el subproceso al agotarse el tiempo de espera, incluso después de continuaciones asíncronas.
El runtime expone solo:
console.log,console.warnyconsole.erroropenclaw.tools.searchopenclaw.tools.describeopenclaw.tools.call
El comportamiento normal de OpenClaw sigue aplicándose a las llamadas finales:
- políticas de permitir y denegar herramientas
- restricciones de herramientas por agente y por sandbox
- control de acceso solo para propietarios
- hooks de aprobación
- hooks
before_tool_callde plugins - identidad de sesión, registros y telemetría
Configuración
Habilita la Búsqueda de herramientas para ejecuciones PI con el puente de código predeterminado:
openclaw config set tools.toolSearch true
JSON equivalente:
{
tools: {
toolSearch: true,
},
}
Usa en su lugar las herramientas estructuradas de reserva para ejecuciones PI:
{
tools: {
toolSearch: {
mode: "tools",
},
},
}
Ajusta el tiempo de espera de modo de código y los límites de resultados de búsqueda:
{
tools: {
toolSearch: {
mode: "code",
codeTimeoutMs: 10000,
searchDefaultLimit: 8,
maxSearchLimit: 20,
},
},
}
Deshabilítala:
{
tools: {
toolSearch: false,
},
}
Prompt y telemetría
La Búsqueda de herramientas registra suficiente telemetría para compararla con la exposición directa de herramientas:
- total de bytes serializados de herramientas y prompt enviados al harness
- tamaño del catálogo y desglose por fuente
- conteos de búsquedas, descripciones y llamadas
- llamadas finales de herramientas ejecutadas mediante OpenClaw
- ids y fuentes de herramientas seleccionadas
Los registros de sesión deberían permitir responder:
- cuántos esquemas de herramientas vio el modelo por adelantado
- cuántas operaciones de búsqueda y descripción realizó
- qué herramienta final se llamó
- si el resultado provino de OpenClaw, MCP o una herramienta de cliente
Validación E2E
El ejecutor E2E del Gateway prueba ambas rutas con el harness PI:
node --import tsx scripts/tool-search-gateway-e2e.ts
Crea un plugin falso temporal con un catálogo grande de herramientas, inicia el proveedor OpenAI simulado, inicia un Gateway una vez en modo directo y otra vez con la Búsqueda de herramientas habilitada, y luego compara las cargas útiles de solicitudes del proveedor y los registros de sesión.
La regresión prueba:
- El modo directo puede llamar la herramienta del plugin falso.
- La Búsqueda de herramientas puede llamar la misma herramienta del plugin falso.
- El modo directo expone los esquemas de herramientas del plugin falso directamente al proveedor.
- La Búsqueda de herramientas expone solo el puente compacto.
- La carga útil de solicitud de la Búsqueda de herramientas es menor para el catálogo falso grande.
- Los registros de sesión muestran los conteos esperados de llamadas de herramientas y la telemetría de llamadas puenteadas.
Comportamiento ante fallos
La Búsqueda de herramientas debería fallar de forma cerrada:
- si una herramienta no está en la política efectiva, la búsqueda no debería devolverla
- si una herramienta seleccionada deja de estar disponible,
tool_calldebería fallar - si la política o la aprobación bloquean la ejecución, el resultado de la llamada debería informar ese bloqueo en vez de omitirlo
- si el puente de código no puede crear un runtime aislado, usa
mode: "tools"o deshabilita la Búsqueda de herramientas para ese despliegue