> ## Documentation Index
> Fetch the complete documentation index at: https://docs.whaapy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Subagents y Tools

> Cómo pensar capacidades especializadas, acciones y conectores dentro del agente de Whaapy

# Subagents y Tools

Un agente útil no debería resolver todo con un solo prompt.

En Whaapy, `Tools`, `Subagents` y `MCPs` son la forma de darle capacidades concretas al agente sin volverlo una mezcla inmanejable de reglas.

<Info>
  Piensa en el agente principal como el coordinador de la conversación. Las tools ejecutan acciones, los subagents se enfocan en tareas específicas y los MCPs conectan sistemas externos.
</Info>

***

## Diferencia rápida

| Elemento    | Qué es                                            | Cuándo usarlo                                                      |
| ----------- | ------------------------------------------------- | ------------------------------------------------------------------ |
| `Tool`      | Una acción o consulta concreta                    | Agendar, buscar catálogo, disparar un trigger, transferir a humano |
| `Subagent`  | Un agente especializado en una responsabilidad    | Ventas, soporte, agenda, calificación, seguimiento                 |
| `MCP`       | Un conector estructurado a un sistema externo     | CRM, base de datos, calendario, docs, herramientas internas        |
| `Knowledge` | Información que el agente consulta para responder | FAQs, políticas, servicios, procesos, documentos                   |

La regla práctica:

* si el agente necesita **saber**, usa `Knowledge`
* si necesita **hacer una acción puntual**, usa `Tools`
* si necesita **trabajar como especialista**, usa `Subagents`
* si necesita **conectarse a otro sistema**, usa `MCPs`

***

## Tools

Una tool convierte una intención del cliente en una acción controlada.

Ejemplos:

* consultar disponibilidad
* agendar una cita
* cancelar una cita
* buscar un producto
* disparar un flujo externo
* transferir a humano
* crear una nota interna

La diferencia importante: una tool no es "la IA prometiendo que hizo algo". Una tool es una capacidad configurada para que el agente pueda consultar o ejecutar algo de forma explícita.

### Buen uso

```text theme={null}
Cliente: "Tienes espacio el viernes?"
Agente: consulta disponibilidad con una tool.
Agente: responde con horarios reales.
```

### Mal uso

```text theme={null}
Cliente: "Agenda para el viernes."
Agente: responde "listo" sin usar ninguna tool de agenda.
```

Si una acción cambia algo en el negocio, debería estar respaldada por una tool o un MCP, no solo por texto.

***

## Subagents

Un subagent es una especialización del agente principal.

Sirve cuando una parte del flujo necesita instrucciones, objetivo o contexto propio.

Ejemplos:

<CardGroup cols={2}>
  <Card title="Ventas" icon="cart-shopping">
    Califica intención, recomienda productos y empuja al siguiente paso comercial.
  </Card>

  <Card title="Soporte" icon="headset">
    Pide datos mínimos, identifica problema y decide si debe escalar.
  </Card>

  <Card title="Agenda" icon="calendar">
    Coordina disponibilidad, confirma horarios y evita dobles reservas.
  </Card>

  <Card title="Seguimiento" icon="rotate-right">
    Reactiva conversaciones abandonadas con reglas claras.
  </Card>
</CardGroup>

No crees subagents para todo. Úsalos cuando separar responsabilidades reduzca complejidad.

<Tip>
  Si una regla cabe en una frase, probablemente va en `Control` o en el prompt. Si requiere un flujo completo, probablemente merece un subagent.
</Tip>

***

## MCPs

MCP significa Model Context Protocol. En Whaapy puedes pensarlo como una forma estándar de conectar capacidades externas al agente.

No necesitas verlo como infraestructura. Para el usuario, un MCP es un conector que responde preguntas como:

* qué sistema puede consultar el agente
* qué acciones puede ejecutar
* con qué permisos
* qué datos quedan disponibles
* cómo se prueba o desconecta

Ejemplos de uso:

* consultar un CRM
* leer documentación interna
* buscar datos en una base externa
* consultar disponibilidad en un sistema tercero
* ejecutar acciones en una herramienta operativa

***

## Cómo trabajan juntos

```mermaid theme={null}
flowchart TD
    mainAgent["Agente principal"] --> sales["Subagent de ventas"]
    mainAgent --> support["Subagent de soporte"]
    mainAgent --> agenda["Subagent de agenda"]
    mainAgent --> tools["Tools"]
    mainAgent --> mcps["MCPs"]
    tools --> actions["Acciones controladas"]
    mcps --> externalSystems["Sistemas externos"]
```

Un flujo real puede verse así:

<Steps>
  <Step title="El cliente escribe">
    "Quiero cotizar y saber si pueden instalar esta semana."
  </Step>

  <Step title="El agente principal entiende intención">
    Detecta que hay una parte comercial y una parte operativa.
  </Step>

  <Step title="Un subagent de ventas califica">
    Pide datos mínimos y entiende presupuesto, zona o urgencia.
  </Step>

  <Step title="Una tool consulta disponibilidad">
    El agente no inventa horarios: consulta una capacidad conectada.
  </Step>

  <Step title="El agente responde">
    Da una respuesta clara y, si aplica, agenda o transfiere a humano.
  </Step>
</Steps>

***

## Buenas prácticas

* Crea tools para acciones que tengan efecto real.
* Crea subagents para responsabilidades completas, no para reglas pequeñas.
* Usa MCPs cuando la fuente o acción vive fuera de Whaapy.
* Define límites claros: qué puede hacer, qué no puede hacer y cuándo escalar.
* Prueba cada capacidad con conversaciones reales antes de activarla en producción.
* Mantén el prompt principal corto; delega conocimiento a `Knowledge` y acciones a `Tools`.

***

## Configuración relacionada

<CardGroup cols={2}>
  <Card title="Tools" icon="wrench" href="/guides/agent-tools">
    Configura acciones disponibles para el agente.
  </Card>

  <Card title="Subagents" icon="diagram-project" href="/guides/agent-subagents">
    Diseña agentes especializados por tarea o flujo.
  </Card>

  <Card title="MCPs" icon="plug" href="/guides/agent-mcps">
    Conecta sistemas externos como capacidades estructuradas.
  </Card>

  <Card title="Knowledge" icon="book-open" href="/guides/agent-knowledge">
    Alimenta el contexto que los agentes usan para responder.
  </Card>
</CardGroup>
