<!-- https://vatio.ai/es/guias/agente-ia-para-seguros-y-finanzas · Actualizado: 2026-10-11 -->

> Construye un agente de IA que cotiza con tu sistema, informa el estado de siniestros y solicitudes y lista documentos, con reglas estrictas contra asesorar.

# Agente de IA para seguros y finanzas

Un agente de IA para una aseguradora o una financiera atiende a los clientes por WhatsApp, Instagram y tu sitio web, entrega cotizaciones calculadas por tu propio sistema, informa el estado de un siniestro o una solicitud a partir de su número y el RUT del cliente, y lista los documentos que pide cada trámite. Nunca asesora ni promete una aprobación, y todo lo que no puede responder desde una tool o tu conocimiento va a una persona. Con Vatio describes ese agente en un archivo `vatio.yml`, con lo que nunca debe hacer escrito como reglas.

Esta guía construye uno de punta a punta para una aseguradora de autos, y después muestra qué cambia para una financiera. Vatio no tiene ninguna certificación para servicios financieros regulados: lo que exige tu regulador es tuyo de revisar, y esta guía indica dónde van esas decisiones.

## Qué resuelve el agente

Casi todo lo que llega al chat de una aseguradora o una financiera son las mismas conversaciones:

- **Cotizaciones.** El agente pide lo que necesita tu motor de cotización, lo llama y repite la prima, el deducible y las condiciones tal como volvieron, con un link para seguir en línea.
- **Estado de un siniestro o una solicitud.** Con el número de siniestro y el RUT del asegurado, le lee el estado y el siguiente paso.
- **Documentos.** Qué pide un siniestro o una solicitud, desde una lista en el conocimiento. Los clientes mandan fotos y PDF, y puede decir qué ítems ve.
- **Pólizas y pagos, con sesión iniciada.** En tu sitio o tu app, un cliente autenticado puede preguntar por sus propias pólizas y fechas de renovación.
- **Todo lo demás va a una persona.** Asesoría, disputas, reclamos, anulaciones, cualquiera que diga que no puede pagar.

Una conversación típica, con lo que el agente hizo por dentro:

> **Cliente:** hola, cuánto sale un seguro todo riesgo para un corolla 2020? tengo 34 y vivo en providencia
>
> **Agente:** El seguro todo riesgo para un Toyota Corolla 2020 sale $34.900 al mes, con un deducible de $250.000. Es una cotización referencial, sujeta a inspección del auto. Puedes seguir aquí: https://cordillera.example/cotizacion/Q-77120
>
> **Cliente:** vale la pena para un auto de esa edad o mejor solo daños a terceros?
>
> **Agente:** Eso depende de tu situación, y es una decisión en la que un asesor te puede ayudar. Puedo pasarte con uno, o cotizarte también el seguro de daños a terceros para que compares los dos.

Detrás de la primera respuesta hubo una llamada a `cotizar_seguro`: la prima, el deducible, la condición y el link son de la tool, palabra por palabra. La segunda respuesta es la regla de no asesorar en acción, con una condición de derivación detrás.

## Antes de escribir nada: cinco preguntas para el negocio

1. **¿Quién escribe y para qué?** Normalmente cotizaciones, estado de siniestros, documentos y pagos.
2. **¿Qué no debe decir nunca?** Pídele la lista a cumplimiento, en sus palabras: asesoría, promesas de aprobación o cobertura, cualquier tasa que no produjo el motor de cotización.
3. **¿Cuándo toma la conversación una persona?** Asesoría, disputas, reclamos, anulaciones, cualquiera en dificultades para pagar.
4. **¿De qué sistemas lee?** El motor de cotización, el sistema de siniestros y el sistema de pólizas detrás del login de clientes.
5. **¿Qué exige tu normativa de estas conversaciones?** Avisos obligatorios, registro, qué respuestas requieren a una persona habilitada. Esta la responde cumplimiento, no el desarrollador.

Las respuestas se convierten en las instrucciones, las condiciones de `handoff`, las tools y el conocimiento, en ese orden.

## El `vatio.yml`

```yaml
workspace: cordillera-seguros
agent:
  name: Cordillera Seguros
  personality: Claro, tranquilo y preciso. Palabras simples, sin presión de venta.
  instructions: |
    Ayudas a los clientes de Cordillera Seguros a cotizar un seguro de auto,
    consultar un siniestro y saber qué documentos pide un siniestro. Eres
    un asistente, no un asesor.

    Cotizaciones: pide la marca, el modelo y el año del auto, la edad del
    conductor, la comuna y la cobertura. Llama a cotizar_seguro y entrega
    la prima, el deducible y las condiciones exactamente como los devolvió
    la tool, con su link_cotizacion.

    Siniestros: pide el número de siniestro y el RUT del asegurado, y llama
    a estado_siniestro. Si no devuelve nada, di que no coinciden.

    Documentos: busca la lista en knowledge_lookup. Puedes leer las fotos y
    los PDF que mande el cliente para decirle qué ítems ves, pero los
    documentos se ingresan solo por el link portal_siniestros.

    Pólizas, pagos y renovaciones: llama a mis_polizas. Solo funciona para
    clientes con sesión iniciada en el sitio o la app; a cualquier otro le
    envías el link iniciar_sesion.

    Reglas que nunca rompes:
    - Nunca des asesoría financiera, legal ni tributaria, ni digas qué
      producto o cobertura le conviene a alguien. Ofrece un asesor.
    - Nunca digas que un siniestro será aprobado o pagado, ni que algo está
      cubierto. Eso lo deciden la póliza y el equipo de siniestros.
    - Nunca des una prima, tasa, deducible o monto que una tool no haya
      devuelto, y nunca ofrezcas un descuento.
    - Nunca pidas números de tarjeta, claves bancarias ni códigos de un
      solo uso.
    - Nunca digas si alguien tiene una póliza o un siniestro, salvo lo que
      una tool devolvió para el número y el RUT que te dio.
    - Si alguien reporta un accidente con heridos, dile que llame primero
      al 131.
  tools: [cotizar_seguro, estado_siniestro, mis_polizas, knowledge_lookup, identify_contact]
  knowledge: [seguros]
  links:
    portal_siniestros: https://cordillera.example/siniestros
    iniciar_sesion: https://cordillera.example/ingresar
  handoff:
    after_turns: 10
    when:
      - el cliente pregunta qué cobertura o producto le conviene
      - el cliente no está de acuerdo con la resolución de un siniestro o hace un reclamo
      - el cliente quiere anular una póliza
      - el cliente dice que no puede pagar una prima
      - el cliente pregunta por la póliza o el siniestro de otra persona
auth:
  public_key: identity.pub
```

Algunas decisiones que vale la pena explicar:

- **Cada regla va en su propia viñeta, en palabras de cumplimiento.** «Nunca digas que un siniestro será aprobado» en su propia línea es mucho más confiable que una frase dentro de un párrafo sobre el tono, y es la línea que va a buscar quien revise.
- **Cada número viene de una tool.** El motor de cotización pone el precio, y las condiciones que devuelve se repiten tal cual. Si un aviso debe decirse con palabras exactas, haz que la tool lo devuelva en vez de escribirlo en el prompt.
- **Dice que es un asistente.** El agente de Vatio no se hace pasar por una persona, y cuando deriva dice que lo está consultando con un colega. Varias jurisdicciones exigen avisar que el cliente está hablando con una máquina.
- **`after_turns: 10`** es más bajo que lo habitual. Una conversación larga con una aseguradora suele ser algo que el agente no debería llevar solo.

## Tools: cotizaciones, siniestros y el cliente autenticado

Una tool es un request HTTP a tu backend, descrito en YAML. Guarda la dirección y la llave como secrets:

```bash
vatio secrets set SEGUROS_API https://api.cordillera.example
vatio secrets set SEGUROS_API_KEY sk_live_...
```

`tools/cotizar_seguro.yml`:

```yaml
description: Entrega una cotización referencial de seguro de auto.
when_to_use: El cliente quiere saber cuánto costaría asegurar su auto.
parameters:
  type: object
  properties:
    marca: { type: string }
    modelo: { type: string }
    anio: { type: integer }
    edad_conductor: { type: integer }
    comuna: { type: string }
    cobertura: { type: string, enum: [terceros, todo_riesgo] }
  required: [marca, modelo, anio, edad_conductor, comuna, cobertura]
access: public
request:
  method: POST
  base_url: "$env.SEGUROS_API"
  path: /cotizaciones/auto
  requires: [params.marca, params.modelo, params.anio, params.edad_conductor, params.comuna, params.cobertura]
  headers:
    Authorization: "Bearer $env.SEGUROS_API_KEY"
  body:
    marca: "$params.marca"
    modelo: "$params.modelo"
    anio: "$params.anio"
    edad_conductor: "$params.edad_conductor"
    comuna: "$params.comuna"
    cobertura: "$params.cobertura"
respond:
  data:
    prima: "$.prima"
    deducible: "$.deducible"
    condiciones: "$.condiciones"
    link_cotizacion: "$.link_cotizacion"
```

`tools/estado_siniestro.yml`:

```yaml
description: Estado de un siniestro, por número de siniestro y RUT del asegurado.
when_to_use: El cliente pregunta cómo va su siniestro.
parameters:
  type: object
  properties:
    numero_siniestro: { type: string }
    rut: { type: string }
  required: [numero_siniestro, rut]
access: public
request:
  method: POST
  base_url: "$env.SEGUROS_API"
  path: /siniestros/estado
  requires: [params.numero_siniestro, params.rut]
  headers:
    Authorization: "Bearer $env.SEGUROS_API_KEY"
  body:
    numero_siniestro: "$params.numero_siniestro"
    rut: "$params.rut"
respond:
  data:
    estado: "$.estado"
    siguiente_paso: "$.siguiente_paso"
    documentos_faltantes: "$.documentos_faltantes"
```

En WhatsApp e Instagram un contacto es anónimo mientras no inicie sesión, así que `estado_siniestro` es una tool pública y **tu backend verifica que el número de siniestro y el RUT correspondan**, con el mismo `404` para cualquiera de los dos errores, para que nadie pueda probar números. Devuelve el estado, el siguiente paso y lo que falta, nunca montos en disputa ni nada sobre terceros: el modelo ve cada resultado de una tool y puede repetirlo.

### Pólizas y pagos, detrás de un login

Los datos personales de la cuenta requieren un cliente autenticado. En tu sitio o tu app, tu backend firma un token para el cliente autenticado (`vatio auth --new-key` crea el par de llaves; el bloque `auth` de arriba guarda la mitad pública) y lo pone en el widget. Así, `tools/mis_polizas.yml` lee solo los datos de ese cliente:

```yaml
description: Las pólizas, pagos y fechas de renovación del cliente autenticado.
when_to_use: Un cliente con sesión iniciada pregunta por sus pólizas, pagos o renovación.
access: private
request:
  method: GET
  base_url: "$env.SEGUROS_API"
  path: /yo/polizas
  headers:
    Authorization: "Bearer $auth.token"
respond:
  data:
    polizas: "$.polizas"
```

No recibe ningún parámetro. Tu API verifica el token y lee de ahí quién es el cliente, y una tool privada que declarara `customer_id` haría fallar el deploy, porque el modelo llena los parámetros y podrían convencerlo de poner el de otra persona. Para ofrecerla también en WhatsApp e Instagram, agrega `sign_in_url` al bloque `auth`: la tool le envía al cliente un botón **Iniciar sesión** hacia tu sitio, y la conversación sigue cuando vuelve ([En WhatsApp e Instagram](https://vatio.ai/docs/authentication/sessions#on-whatsapp)). Mira [Conectar tu backend](/es/guias/conectar-tu-backend).

### Para una financiera

El mismo agente funciona con tres cambios: una tool `simular_credito` que devuelve lo que calcula tu backend (cuota, costo total y los avisos que debas mostrar) en lugar de `cotizar_seguro`; un número de solicitud más el RUT en lugar del número de siniestro; y la lista de documentos de la solicitud en el conocimiento. Deja la regla de no asesorar exactamente como está: si alguien debería endeudarse nunca lo decide el agente.

Pólizas, siniestros y créditos son conversaciones de dinero. Todo workspace de Vatio se trata como si guardara datos sensibles: las conversaciones se guardan cifradas, solo van a modelos de IA sin retención de datos y el equipo de Vatio no puede leerlas salvo que le des acceso de soporte. En **Seguridad**, en el inbox, exige la verificación en dos pasos a todo tu equipo; así las sesiones también se cierran tras 12 horas sin uso. **Actividad**, en la misma sección, registra quién abrió, respondió o exportó qué.

## Conocimiento: listas de documentos y trámites

Todo lo largo que el agente deba leer en vez de memorizar va en una base de conocimiento: una entrada en Markdown por tema, con secciones que puedan responder una pregunta por sí solas.

```bash
vatio kb create seguros
vatio kb write seguros documentos-siniestro documentos-siniestro.md
vatio kb write seguros proceso-siniestros proceso-siniestros.md
vatio kb write seguros pagos pagos.md
```

Una buena entrada es específica:

```markdown
# Documentos para un siniestro de auto

## Choque con otro vehículo
- Tu carnet de identidad y licencia de conducir
- La constancia de Carabineros, si concurrieron al lugar
- Fotos de ambos autos y del lugar
- Nombre, RUT, patente y aseguradora del otro conductor

## Robo
- Tu carnet de identidad
- La denuncia en Carabineros o en la fiscalía
- Las dos llaves del auto
```

Vatio no lee sitios web. Si la respuesta está en una página, pon en una entrada lo que el agente necesita, con la redacción que aprobó cumplimiento. Los supervisores pueden editar entradas desde el inbox, y cada edición queda guardada como una versión numerada, con quién la hizo.

## Fotos y PDF de documentos

Los clientes mandan lo que tienen: una foto de la constancia, un carnet escaneado, un presupuesto de reparación en PDF. Vatio le pasa al agente las imágenes y los PDF compatibles de hasta 8 MB y transcribe los audios, y agrupa varios mensajes seguidos en una sola pregunta antes de responder.

El agente lee un documento para responder la pregunta que tiene enfrente, como encontrar un número de siniestro en una carta o decir qué ítems de la lista ve. No juzga si un documento es válido o suficiente, y no puede enviar archivos. Las tools envían parámetros, no archivos, así que los documentos se ingresan en tu portal de siniestros; los que llegan por el chat quedan en la conversación, donde tu equipo los ve en el inbox.

## Pruébalo antes que cualquier cliente

```bash
vatio push
vatio chat "¿Cuánto sale un seguro todo riesgo para un Corolla 2020? Tengo 34 y vivo en Providencia"
vatio chat "¿Me haces un 10% menos si pago el año completo?"
vatio chat --new "Si el otro conductor tuvo la culpa, ustedes me pagan la reparación, ¿cierto?"
vatio chat --new "Estado del siniestro 2026-118734, RUT 12.345.678-5"
vatio chat --new "¿Me conviene usar mis ahorros para pagar el crédito del auto?"
vatio chat show
```

Todas las que siguen a la primera son reglas de lo que nunca dice: un descuento, una promesa de pago, un siniestro con un RUT que no coincide y una asesoría. `chat show` muestra cada llamada a tools que hizo. La CLI no inicia sesión como cliente, así que prueba `mis_polizas` desde tu sitio con un cliente de prueba autenticado y el widget con el token del entorno preview. Estas pruebas llaman a tus tools de verdad, así que antes dale a preview un backend de pruebas: `vatio secrets set SEGUROS_API https://sandbox.cordillera.example --env preview`.

## Que mejore cada semana

Cuando tu equipo usa el inbox, **marca** cualquier respuesta que estuvo mal y escribe lo que debió pasar. `vatio flags` convierte esas notas en un documento desde el cual tu coding agent puede corregir, y cada flag se vuelve un caso de eval. Una regla que un supervisor detectó una vez se vuelve a probar contra cada versión nueva, y `vatio publish` no publica una que rompa un reporte que live pasa. Mira [Mejorar tu agente](/es/guias/mejorar-tu-agente-de-ia).

## Publicar

```bash
vatio publish
```

Después conecta tu número de WhatsApp Business y tu cuenta de Instagram en la página **Canales** del inbox (WhatsApp además necesita su interruptor **En vivo** activado), y agrega el widget a tu sitio, con el token del cliente autenticado. Para un negocio regulado, revisa cada cambio a las reglas en tu repositorio antes de publicarlo, y no publiques con `--force`: así nada llega a live sin pasar los reportes que ya resolviste, y `vatio rollback` restaura la configuración y el conocimiento anteriores de live, juntos.

Vatio nunca pone el contenido de una conversación en el correo diario de reportes, y tu backend debería aplicar la misma regla a sus propios logs. Los avisos obligatorios, el consentimiento, el registro y qué respuestas requieren a una persona habilitada dependen de dónde operas, y son tuyos de revisar con tu equipo de cumplimiento antes de que un cliente hable con el agente.

## Preguntas frecuentes

### ¿Un agente de IA puede cotizar seguros por WhatsApp?

Sí, siempre que la cotización venga de tu propio sistema de cotización a través de una tool. El agente nunca calcula una prima por su cuenta: sus instrucciones le prohíben dar cualquier monto que una tool no haya devuelto, y tu sistema sigue siendo el que pone el precio.

### ¿El agente va a dar asesoría financiera?

Solo si se lo permites, y no deberías. Escribe la regla de forma explícita en sus instrucciones (nada de asesoría financiera, legal ni tributaria, ni decir qué producto le conviene a alguien) y pon esas preguntas en handoff.when para que las tome una persona habilitada.

### ¿Los clientes pueden consultar un siniestro o una solicitud por WhatsApp?

Sí, con el número de siniestro o de solicitud y su RUT. Una tool envía ambos a tu backend, que devuelve el estado solo si coinciden. Pólizas, pagos y documentos personales quedan detrás de un login en tu sitio web o tu app.

### ¿Vatio hace que un agente de IA cumpla la normativa de seguros o bancaria?

No. Vatio no tiene ninguna certificación para servicios financieros regulados y no hace que un agente cumpla la normativa. Te da reglas explícitas, derivación a una persona, cada llamada a tools visible en el inbox y cambios por pull requests revisados; lo que exige tu regulador es tuyo de revisar.

### ¿El agente puede leer los documentos que mandan los clientes?

Sí. Lee fotos y PDF de hasta 8 MB, así que puede decirle a un cliente qué ítems de una lista ve. No puede enviar archivos, y las tools envían parámetros, no archivos, así que los documentos se ingresan donde se ingresan hoy, en tu portal de siniestros.

### ¿El agente envía recordatorios de pago o de renovación?

Sí, cuando tu sistema los pide. Conoce el vencimiento, así que llama a la Messages API de Vatio para cada cliente y la conversación se abre por WhatsApp: tu propio texto, un brief a partir del cual escribe el agente, o una plantilla aprobada si pasaron más de 24 horas desde el último mensaje del cliente. Un monto que no debe cambiar va en tu propio texto o en la plantilla, nunca en un brief. El agente atiende la respuesta sabiendo por qué escribió.
