Ir al contenido

Herramientas

Para qué sirve. Las herramientas (tools) son las acciones que un agente puede ejecutar de verdad: leer un archivo, buscar en un índice, abrir un navegador, enviar un borrador de correo. Esta página es el catálogo en vivo de todo lo registrado en esta instancia. La asignación sigue en la pestaña Configuración del agente; aquí revisas el nombre, la categoría, el riesgo y si una llamada espera aprobación.

Ruta: /tools. Barra lateral: Herramientas. Subtítulo: Herramientas registradas disponibles para la ejecución de agentes.

  • Quieres saber qué herramientas existen antes de poner sus ids en un agente.
  • Una llamada se bloqueó y necesitas el nivel de riesgo y si requiere aprobación.
  • Estás conectando MCP o una Conexión y quieres ver las herramientas descubiertas junto a las integradas.
  • Necesitas el esquema de entrada de una herramienta que el agente llama mal una y otra vez.
  1. Abre Herramientas en la barra lateral (/tools).
  2. Busca por nombre o descripción, o filtra por categoría y nivel de riesgo.
  3. Despliega Mostrar esquema en una tarjeta cuando necesites la forma JSON de la entrada.
  4. Pon el id de la herramienta en la pestaña Configuración del agente, en Herramientas (separadas por comas). Ver Configurar.
  5. Las llamadas peligrosas siguen pasando por el gate de seguridad al ejecutarse — una fila del catálogo no concede permisos.

La cabecera cuenta las herramientas y cuántas requieren aprobación. Cada tarjeta muestra un id en monoespaciado, una descripción breve, una insignia de categoría, una insignia de riesgo (green riesgo, yellow riesgo o red riesgo) y un escudo ámbar cuando hace falta aprobación.

ConceptoSignificado
Nombre de la herramientaId estable usado en la configuración del agente y en los logs
DescripciónQué hace la herramienta (se muestra en el catálogo)
CategoríaAgrupación del registro: memory, knowledge, search, documents, board, shell, browser, conversation, communication, research, agent, custom (las herramientas de MCP y de conexiones traen las suyas)
Nivel de riesgogreen / yellow / red — el low / medium / high del gate de seguridad
aprobación requeridaEl ejecutor no ejecuta la llamada hasta que una persona la apruebe
Esquema de entradaJSON Schema de los argumentos; Mostrar esquema / Ocultar esquema
PermisosCASL en la API más el gate de seguridad en cada llamada. Un modelo solo puede ejecutar una herramienta que se ofreció a su agente: cualquier otro nombre se rechaza (‘<tool>’ is not in this agent’s toolset), sin solicitud de aprobación, en todos los proveedores — ver Configurar — Herramientas
SandboxAlgunas herramientas se ejecutan en entornos restringidos

Vacío: Aún no hay herramientas registradas. La carga (Cargando herramientas…) y los errores de carga (No se pudieron cargar las herramientas: …) aparecen como texto en la página, no como una pantalla vacía.

Las herramientas respaldadas por MCP se configuran en Servidores MCP, y las credenciales de sistemas externos en Conexiones.

Registro de ejecución de herramientas

Cada llamada a una herramienta queda en el registro de ejecución de herramientas: el nombre canónico de la herramienta, su entrada, su salida o texto de error, la duración, y la conversación, el agente y la ejecución supervisada a la que pertenece.

  • Las llamadas que ejecuta el ejecutor de EYAS — en proveedores de API, y las herramientas de EYAS que una CLI llama por el puente de EYAS — las registra el ejecutor, una vez cada una.
  • Las herramientas que una CLI ejecutó en su propio bucle — Claude Code, Grok CLI y Kimi Code CLI, como su shell o sus lecturas de archivos — también reciben una fila, con el nombre canónico (el Bash de Claude Code se registra como run_command). EYAS no las ejecutó, así que solo las anota: ya se ejecutaron bajo las comprobaciones de permisos de EYAS para esa CLI.
  • Estas filas son la evidencia de herramientas con la que el crítico de completitud mide una ejecución, y alimentan los informes de Autoaprendizaje y de eficiencia — igual en todos los proveedores.
  • El registro no es memoria: de él no llega nada a la memoria de EYAS. Si la salida de las herramientas se guarda en memoria lo decide únicamente memory.l0.captureToolResults — ver Memoria.

La columna Herramientas de Observabilidad — Uso cuenta las mismas llamadas por traza.

Filtros del catálogo

ControlSignificado
BúsquedaBuscar herramientas… — coincide con el nombre o la descripción
Todas las categoríasLimitar a una categoría del registro
Todos los niveles de riesgoLimitar a un nivel de riesgo

Grupos de herramientas integradas (destacados)

Superficie de código (independiente del modelo)

Herramientas de sistema de archivos de primera clase para que cualquier modelo (Grok, Claude API, Kimi, local, …) pueda editar código sin depender de las herramientas integradas del SDK de Claude Code:

HerramientaPropósitoRiesgo
read_fileLeer un archivo de texto (desplazamiento/límite de líneas)green
write_fileCrear/sobrescribir un archivoyellow
edit_fileSustitución exacta de texto (edición puntual)yellow
grepBúsqueda de contenido en el workspacegreen
globBuscar archivos por patróngreen
git_status / git_diffAyudas de revisión de solo lecturagreen
run_commandEjecución de programas sin shell (aprobación)red

Las rutas quedan encerradas en las carpetas de trabajo de la conversación (o en el worktree del agente) — una conversación sin carpetas propias trabaja en su propio workspace de EYAS. No hay recurso al directorio del proceso de EYAS. Se deniegan las rutas sensibles (.env, master.key, .ssh, …) y también la memoria fuera de EYAS — la memoria de otras herramientas, las bóvedas de Obsidian, la carpeta de datos propia de EYAS y el workspace de otra conversación —, tanto para leer como para escribir (Seguridad y privacidad — Memoria fuera de EYAS). Una carpeta que expondría memoria o credenciales no se puede guardar como carpeta de trabajo (Conversaciones — Carpetas). En una carpeta que solo contiene uno de esos sitios — un repositorio con el data/ de EYAS, ~/Documents con una bóveda dentro —, grep y glob nunca entran en las subcarpetas protegidas (la carpeta de datos de EYAS, una bóveda de Obsidian anidada, la memoria de otra herramienta, un home de CLI, el workspace de otra conversación), así que una búsqueda nunca devuelve resultados de ellas. Un symlink dentro de la carpeta de trabajo que apunta fuera de ella se rechaza, también cuando su destino aún no existe (vale para las rutas de read_file, write_file, edit_file y browser_upload). Prefiere edit_file a reescribir archivos enteros.

git de solo lectura sin clic. Si el agente llama a run_command (o a un Bash de CLI) con una lista de argumentos que es inequívocamente git status o git diff — sin metacaracteres de shell, sin -C / --git-dir / --no-index, sin ruta absoluta —, el gate de seguridad la remapea a git_status / git_diff y la permite. No recibes ninguna solicitud de aprobación. git commit, git add, ls y cualquier comando con metacaracteres siguen en rojo o se rechazan. Las herramientas propias git_status / git_diff son verdes.

Verify before done: configura agent.verifyCommands en YAML (p. ej. bun test) para lanzar comprobaciones deterministas tras una ejecución; los fallos vuelven a abrir el agente con el resumen del error.

Hooks: cada llamada pasa por los hooks PreToolUse / PostToolUse del ToolExecutor (universales, no solo de Claude). Las herramientas integradas de Claude Code pasan además la comprobación de la política de memoria de EYAS antes de ejecutarse.

Los modelos CLI usan sus propias herramientas de archivo. A Claude Code, Grok y Kimi no se les ofrece esta superficie de código (run_command, read_file, write_file, edit_file, grep, glob, git_status, git_diff) por el puente de EYAS, porque tienen las suyas: las ejecutan en las carpetas del turno, bajo el gate de seguridad, la política de rutas de memoria y — para el shell de Claude Code y las herramientas de Grok — el sandbox de archivos del kernel. Todas las demás herramientas de EYAS les llegan.

Búsqueda y grounding

HerramientaPropósito
list_search_sourcesListar las fuentes (etiqueta, versión, edición, familia, rutas, estado) antes de inventar datos
get_search_contextMostrar qué fuentes están fijadas para esta conversación
set_search_contextFijar o quitar fuentes (sourceIds, labels, version, edition, o clear: true)
search_indexedBúsqueda híbrida FTS + vectorial con citas; respeta la fijación de la conversación/proyecto; sourceIds / labels / version / edition opcionales

Cuando hay varias fuentes odoo-family listas y nada fijado, las herramientas devuelven needsPin en vez de mezclar versiones. Ver Búsqueda — fijación multiversión.

Memoria

HerramientaPropósito
memory_searchBusca en la memoria de EYAS — resúmenes, hechos, notas del vault, transcripciones importadas —, nunca en la de la CLI del host. De solo lectura y fijada por EYAS al proyecto de la conversación, su tipo y la memoria global; un argumento scope o de proyecto se ignora. Devuelve ids que se abren con memory_expand.
memory_expandAbre un resultado por id (vt:, gs:, en:, … — de memory_search o de una línea de memoria permanente), dentro del mismo bloqueo de proyecto
search_memoryAlias de memory_search, con el mismo bloqueo de proyecto
save_memoryRetirada — no escribe nada. EYAS graba la memoria automáticamente; los agentes nunca escriben memoria por sí mismos

memory_search y memory_expand están siempre disponibles, diga lo que diga la lista Tools de un agente, y son las únicas herramientas de memoria que recibe un modelo en cualquier host — proveedores de API, Claude Code, Grok, Kimi, y OpenCode dentro de una tarea opencode_run. Las tres herramientas de búsqueda/apertura comparten un presupuesto de 3 llamadas por respuesta en todos los proveedores. Quien llama fuera de una conversación de EYAS — un cliente MCP externo, o una sesión de OpenCode que EYAS no inició para una tarea — solo lee la memoria global, 3 llamadas cada 90 segundos. memory_block_read y memory_block_write están retiradas: lo que se guardaba en bloques se copió una vez a la memoria de EYAS y se encuentra con memory_search; un agente cuya lista aún las nombra simplemente ya no las recibe. Los resultados de las herramientas de memoria los enmascara la política de privacidad en todos los transportes (proveedores de API, los puentes de las CLI, clientes MCP externos, OpenCode). Ver Memoria.

Navegador

Playwright headless (browser_*) usa el mismo Chromium que la cadena de impresión de diseños. Prefiere los índices numerados de browser_snapshot al CSS. Los índices y el snapshotId mueren al navegar o volver atrás — haz un snapshot nuevo. Las cookies persisten en un perfil propio de EYAS (data/browser/profile, o EYAS_BROWSER_USER_DATA_DIR) — nunca en el perfil diario de Chrome (Chrome 136+ bloquea CDP en el perfil Default). Las descargas van a Documentos.

HerramientaPropósito
browser_navigateAbrir una URL; la protección SSRF bloquea hosts privados/de metadatos
browser_snapshotÁrbol de accesibilidad + lista interactiva numerada + snapshotId
browser_click / browser_fill / browser_hover / browser_selectActuar por índice o CSS
browser_tabslist / open / switch / close (no se puede cerrar la última pestaña)
browser_back / browser_waitAtrás en el historial; esperar a un selector, URL, carga o tiempo
browser_dialogPreparar aceptar/descartar para el próximo alert/confirm/prompt
browser_uploadCampo de archivo — rutas del workspace o ids de Documentos
browser_evaluateJavaScript en la página (no Node); resultado JSON limitado
browser_downloadPróxima descarga → Documentos, vinculada a la conversación
browser_storageGuardar/cargar el storageState de Playwright (cookies + orígenes)
browser_replay / browser_action_cacheReproducir un locator guardado (sin LLM). JSON en el proyecto o el vault. Nunca valores rellenados
browser_totpTOTP desde Secretos / Llavero de macOS → browser_fill. Amarillo. La semilla nunca se devuelve
browser_screenshot / browser_get_content / browser_closeCaptura, texto, terminar el proceso (el perfil queda en disco)
agent_browser_status / agent_browser_runSidecar agent-browser recomendado (referencias @e1, Apache-2.0) — Browser Use
browser_use_status / browser_use_execSidecar CLI de Python heredado (Browser Use)
opencode_status / opencode_runSidecar opcional del motor de código OpenCode (OpenCode). Status es verde; run es rojo + aprobación. opencode_run solo se ejecuta dentro de una conversación. Dentro de la tarea, OpenCode puede leer la memoria de EYAS con los mismos memory_search / memory_expand de solo lectura, fijados al proyecto de la conversación y compartiendo el presupuesto de 3 llamadas del turno que lo llamó; no puede escribir memoria de EYAS.

Las herramientas de navegador de EYAS, agent_browser_*, browser_use_* y opencode_* también llegan a los modelos CLI (Claude Code, Grok, Kimi) por el puente de EYAS, con el mismo gate, las mismas aprobaciones y el mismo ámbito de herramientas que en los modelos de API.

Studio (módulo opcional)

Motores locales, no Media. Ver Studio.

HerramientaPropósito
hyperframes_*Composición HTML → MP4 determinista (Hyperframes)
videouse_*Metraje + EDL → MP4 (Video Use)

El pulido de capturas de pantalla no es una herramienta de Studio. Recordly es un complemento AGPL en Extensiones — no hay herramientas recordly_*.

Correo (borrador → aprobación → envío)

HerramientaPropósito
email_create_draftCrear un borrador local
email_approve_draftMarcar el borrador como aprobado
email_send_draftEnviar solo si está aprobado

Odoo (módulo opcional)

Instancia en vivo (JSON-RPC):

HerramientaPropósito
odoo_search_tasksBuscar tickets/tareas (sobre todo lectura)
odoo_get_taskObtener una tarea
odoo_message_postPublicar un mensaje en el chatter
odoo_write_taskEscritura controlada

Índice de código local (cadena de programación):

HerramientaPropósito
odoo_search_modelBuscar _name / _inherit en el Python local
odoo_search_fieldBuscar asignaciones fields.*
odoo_search_xml_idBuscar ids de registros XML

Las raíces se resuelven desde: fijación de conversación/proyecto → Fuentes de búsqueda (family: odoo) → EYAS_ODOO_SOURCES_JSON / EYAS_ODOO_SOURCE_PATHS. Filtros opcionales de la herramienta: label, labels, sourceIds, version, edition. Citas: [source:odoo-src:label:file:line].

Skill: coding/odoo/odoo-dev-chain. Credenciales en vivo mediante Conexiones (tipo Odoo). Varias versiones en la interfaz: Búsqueda · Proyectos · pestaña Fuentes de la conversación.

Inventario de conexiones

HerramientaPropósito
connections_list / connections_catalogInventario + catálogo
connections_testComprobación de estado
connections_proposeProponer una conexión para aprobación humana

Media (módulo opcional)

Conecta Magnific, Higgsfield, fal o HeyGen en Media. Los agentes reciben cinco herramientas compartidas, no una por modelo del proveedor. Vídeo de presentador / talking head: fija provider: heygen.

HerramientaPropósitoRiesgo
media_generateIniciar imagen / vídeo / audio / escalado / edición / 3Dyellow
media_waitConsultar hasta que el trabajo termineyellow
media_catalogListar modelos de un tipogreen
media_balanceCréditos restantesgreen
media_historyTrabajos recientesgreen

Los archivos terminados entran en Documentos y se adjuntan al turno que los produjo.

Otros grupos registrados

Aparecen en el catálogo cuando su módulo está activado: herramientas de board, de conversation, de document, de knowledge, de research, de schedule, channel enviar/listar, A2A delegate y, opcionalmente, Google Docs.

Enrutado de agentes (lo registra el módulo agent, no se duplica en este catálogo):

HerramientaPropósitoRiesgo
run_specialistLanza un especialista activo y espera el resumen. Alias: delegate_to_agent. La única forma de ejecutar especialistas en todos los proveedores — no se ofrece la herramienta de subagentes propia de Claude Code.green
handoff_to_colleagueAbre el hilo de inicio de otro colega y arranca allí una ejecución de inmediato, con el encargo como objetivo; se rechaza mientras ese hilo esté ocupado.green
assign_taskTarjeta asíncrona del tablero para un agente activo.green
propose_teamTarjeta si faltan roles, el trabajo es épico o se pide un equipo expresamente.yellow
propose_agent_creationPropone una plantilla de especialista nueva.yellow

Ver Equipos y delegación.

Paridad CLI MCP

Cuando los agentes corren en Grok CLI o Kimi Code CLI, EYAS inyecta un puente MCP stdio para que esos hosts compartan las mismas herramientas de ToolExecutor que las sesiones in-process / Claude Code — incluidas las de memoria. Cada turno tiene su propio secreto, ligado en el servidor a esa conversación, agente, proyecto, carpetas y ámbito de herramientas, y las llamadas puenteadas siguen pasando por el gate de seguridad. En ambos puentes — el servidor MCP in-process de EYAS de Claude Code y el puente de Grok/Kimi —, una CLI recibe exactamente la lista Tools del agente más memory_search / memory_expand (todas las herramientas si la lista está vacía), ninguna herramienta de delegación en una conversación Solo y no las herramientas para las que está concedido el equivalente propio de la CLI (read_file, grep, glob siempre; write_file, edit_file mientras la lista conceda la escritura; run_command, git_status, git_diff mientras conceda el shell). La misma lista también limita las herramientas propias de escritura, shell y web de la CLI (ver Agentes — Herramientas). Una llamada a cualquier otra herramienta se rechaza y aparece como Denegado. EYAS prueba el puente en cada arranque y registra un aviso cuando Grok/Kimi no alcanzan las herramientas de EYAS. Cada host nombra las herramientas a su manera (Grok: use_tool con eyas__<nombre>). Ver MCP.