Ir al contenido

Tool Search

Búsqueda de herramientas es una característica experimental del tiempo de ejecución del agente OpenClaw. Ofrece a los agentes una forma compacta de descubrir y llamar a catálogos de herramientas grandes. Es útil cuando la ejecución tiene muchas herramientas disponibles, pero es probable que el modelo solo necesite algunas de ellas.

Esta página documenta la Búsqueda de herramientas de OpenClaw. No es la superficie de búsqueda de herramientas ni de herramientas dinámicas nativa de Codex. El modo de código nativo de Codex, la búsqueda de herramientas, las herramientas dinámicas diferidas y las llamadas a herramientas anidadas son superficies de arnés de Codex estables y no dependen de tools.toolSearch.

Cuando se habilita para ejecuciones de OpenClaw, el modelo recibe una herramienta tool_search_code de manera predeterminada. Esa herramienta ejecuta un cuerpo breve de JavaScript en un subproceso aislado de Node 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, complementos, herramientas MCP y herramientas proporcionadas por el cliente. El modelo no ve cada esquema completo por adelantado. En su lugar, busca descriptores compactos, describe una herramienta seleccionada cuando necesita el esquema exacto y llama a esa herramienta a través de OpenClaw.

Las ejecuciones del arnés Codex no reciben estos controles experimentales de Búsqueda de Herramientas de OpenClaw. OpenClaw pasa las 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 a herramientas anidadas.

En el momento de la planificación, el ejecutor integrado de OpenClaw construye el catálogo efectivo para la ejecución:

  1. Resuelve la política de herramientas activa para el agente, el perfil, el entorno limitado y la sesión.
  2. Enumera las herramientas elegibles de OpenClaw y complementos.
  3. Enumera las herramientas MCP elegibles a través del tiempo de ejecución MCP de la sesión.
  4. Agrega las herramientas de cliente elegibles proporcionadas para la ejecución actual.
  5. Indexa descriptores compactos para la búsqueda.
  6. Expone el puente de código de OpenClaw o las herramientas de respaldo estructuradas al modelo.

En el momento de la ejecución, cada llamada real a una herramienta regresa a OpenClaw. El tiempo de ejecución de Node aislado no contiene implementaciones de complementos, objetos de cliente MCP ni secretos. openclaw.tools.call(...) cruza el puente de vuelta al Gateway, donde todavía se aplican la política normal, la aprobación, los enlaces, el registro y el manejo de resultados.

tools.toolSearch tiene dos modos orientados al modelo:

  • code: expone tool_search_code, el puente JavaScript compacto predeterminado.
  • tools: expone tool_search, tool_describe y tool_call como herramientas estructuradas simples para proveedores que no deben recibir código.

Ambos modos utilizan el mismo catálogo y ruta de ejecución. La única diferencia es la forma que ve el modelo. Si el tiempo de ejecución actual no puede iniciar el proceso hijo aislado en modo de código Node, el modo code predeterminado vuelve a tools antes de la compactación del catálogo.

Ambos modos son experimentales. Se prefiere la exposición directa de herramientas para catálogos de herramientas de OpenClaw pequeños, y se prefieren las superficies estables nativas de Codex para ejecuciones de arnés de Codex.

No hay una configuración separada de selección de fuentes. Cuando Tool Search está habilitado, el catálogo incluye las herramientas elegibles de OpenClaw, MCP y del cliente después del filtrado normal de políticas.

Los catálogos grandes son útiles pero costosos. Enviar cada esquema de herramienta al modelo hace que la solicitud sea más grande, ralentiza la planificación y aumenta la selección accidental de herramientas.

Tool Search cambia la forma:

  • herramientas directas: el modelo ve cada esquema seleccionado antes del primer token
  • modo de código de Tool Search: el modelo ve una herramienta de código compacta y un contrato de API corto
  • modo de herramientas de Tool Search: el modelo ve tres herramientas estructuradas de reserva compactas
  • durante el turno: el modelo carga solo los esquemas de herramienta que realmente necesita

La exposición directa de herramientas sigue siendo el valor predeterminado correcto para catálogos pequeños. Tool Search es mejor cuando una ejecución puede ver muchas herramientas, especialmente desde servidores MCP o herramientas de aplicación proporcionadas por el cliente.

openclaw.tools.search(query, options?)

Busca en el catálogo efectivo para la ejecución actual. Los resultados son compactos y seguros para volver a colocar en el contexto del prompt.

const hits = await openclaw.tools.search("calendar event", { limit: 5 });

openclaw.tools.describe(id)

Carga los metadatos completos para 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 a una herramienta seleccionada a través de OpenClaw.

await openclaw.tools.call(calendarCreate.id, {
summary: "Planning",
start: "2026-05-09T14:00:00Z",
});

El modo de reserva estructurado expone las mismas operaciones que herramientas:

  • tool_search
  • tool_describe
  • tool_call

El puente de código se ejecuta en un subproceso de 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 o red, y sin concesiones de procesos secundarios o trabajadores. OpenClaw impone un tiempo de espera de reloj del proceso principal y termina el subproceso cuando se agota el tiempo, incluso después de las continuaciones asíncronas.

El tiempo de ejecución expone solo:

  • console.log, console.warn y console.error
  • openclaw.tools.search
  • openclaw.tools.describe
  • openclaw.tools.call

El comportamiento normal de OpenClaw todavía se aplica a las llamadas finales:

  • políticas de permiso y denegación de herramientas
  • restricciones de herramientas por agente y por espacio aislado
  • channel/política de herramientas en tiempo de ejecución
  • ganchos de aprobación
  • ganchos de complemento before_tool_call
  • identidad de sesión, registros y telemetría

Habilitar la Búsqueda de herramientas para ejecuciones de OpenClaw con el puente de código predeterminado:

Ventana de terminal
openclaw config set tools.toolSearch true

JSON equivalente:

{
tools: {
toolSearch: true,
},
}

Usar las herramientas de respaldo estructuradas en su lugar para ejecuciones de OpenClaw:

{
tools: {
toolSearch: {
mode: "tools",
},
},
}

Ajuste el tiempo de espera del modo de código y los límites de resultados de búsqueda:

{
tools: {
toolSearch: {
mode: "code",
codeTimeoutMs: 10000,
searchDefaultLimit: 8,
maxSearchLimit: 20,
},
},
}

Deshabilitarlo:

{
tools: {
toolSearch: false,
},
}

Tool Search registra suficiente telemetría para compararla con la exposición directa de herramientas:

  • bytes totales de herramientas y prompt serializados enviados al arnés
  • tamaño del catálogo y desglose de fuentes
  • recuentos de búsqueda, descripción y llamadas
  • llamadas finales de herramientas ejecutadas a través de OpenClaw
  • ids y fuentes de herramientas seleccionadas

Los registros de sesión deben permitir responder:

  • cuántos esquemas de herramientas vio el modelo desde el principio
  • 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

El ejecutor E2E de la puerta de enlace valida ambos caminos con el tiempo de ejecución de OpenClaw:

Ventana de terminal
node --import tsx scripts/tool-search-gateway-e2e.ts

Crea un complemento falso temporal con un catálogo de herramientas grande, inicia el proveedor simulado de OpenAI, inicia una Gateway una vez en modo directo y una vez con Tool Search habilitado, y luego compara las cargas útiles de solicitud del proveedor y los registros de sesión.

La regresión demuestra:

  1. El modo directo puede llamar a la herramienta del complemento falso.
  2. Tool Search puede llamar a la misma herramienta del complemento falso.
  3. El modo directo expone directamente los esquemas de herramientas del complemento falso al proveedor.
  4. Tool Search expone solo el puente compacto.
  5. La carga útil de solicitud de Tool Search es más pequeña para el catálogo falso grande.
  6. Los registros de sesión muestran los recuentos esperados de llamadas a herramientas y la telemetría de llamadas puenteadas.

La búsqueda de herramientas debe fallar de forma cerrada:

  • si una herramienta no está en la política efectiva, la búsqueda no debe devolverla
  • si una herramienta seleccionada no está disponible, tool_call debería fallar
  • si la política o la aprobación bloquean la ejecución, el resultado de la llamada debería informar de ese bloqueo en lugar de omitirlo
  • si el puente de código no puede crear un tiempo de ejecución aislado, use mode: "tools" o deshabilite la Búsqueda de herramientas para esa implementación