# Herramientas

Deja que el agente actúe en los sistemas de tu cliente (reservar, consultar, derivar), no solo que hable

> Full REST + WebSocket API reference: https://api.happ.tools/reference

Las herramientas convierten al agente en algo que *hace* cosas: cada una es una función que la IA puede llamar en mitad de la conversación, ya sea tu webhook o una que trae Happ.

<ToolsPageDemo />

## Añadir una herramienta [#add-a-tool]

1. Abre la pestaña **Herramientas** dentro de un agente.
2. **Webhook**: petición HTTP a tu API. Define nombre, descripción, esquema de parámetros, URL, método y un secreto compartido. Ejemplos: `create_reservation` (POST), `lookup_customer` (GET).
3. **Integradas**: sin configuración, todos los agentes las tienen: `searchKnowledge` (búsqueda vectorial en la base de conocimiento asignada), `turnOffAiMode` (pasa la conversación a un operador humano con todo el contexto), `searchPreviousConversations` (busca lo que este cliente habló antes) y `sendImage` (envía una imagen de la base de conocimiento al chat).
4. Escribe descripciones que expliquen *cuándo* llamarla, no solo qué hace la herramienta: la IA ve el nombre, la descripción y el esquema de parámetros en su prompt.
5. Pulsa **Verificar** en cualquier herramienta para lanzar una llamada de prueba y revisar la respuesta.

La IA rellena los parámetros obligatorios a partir del contexto (preguntando antes al cliente si falta información) y las llamadas a herramientas son recursivas: los resultados alimentan el siguiente turno, así que puede encadenar varias herramientas en una respuesta.

## Ejemplo de llamada webhook [#example-webhook-call]

POST a tu endpoint con los parámetros recogidos más `chatId`:

```json
{ "table_id": "T-12", "time": "2026-05-18T19:30:00Z", "guests": 4, "phone": "+380501234567", "chatId": "chat-uuid" }
```

Devuelve un JSON corto que la IA pueda parafrasear:

```json
{ "result": "Booking confirmed. Confirmation number #12345." }
```

Dale un secreto a la herramienta y cada llamada llevará `Authorization: Basic <secret>`. Las llamadas con cuerpo (POST, PUT, PATCH) también llevan `X-Signature: sha256=<hex>`: HMAC-SHA256 del cuerpo sin procesar; recalcúlalo antes de procesar. Una herramienta GET envía sus parámetros en la query string y no lleva firma.

**API:** [api.happ.tools/reference](https://api.happ.tools/reference)

## Siguiente [#next]

* [Base de conocimiento](/docs/agents/knowledge): deja que consulte información antes de actuar
* [Control de la IA](/docs/workspace/ai-control): cómo deriva `turnOffAiMode` y cuándo se reactiva la IA
* [Canales](/docs/integrations/messengers): dónde ocurren las llamadas a herramientas: Telegram, Instagram, WhatsApp, voz
