<!--
  AUTO-GENERADO por scripts/import-corpus.mjs a partir de manuales/corpus/ — NO EDITAR A MANO.
  Para cambiar este contenido: edita manuales/neutros/*.html, regenera el corpus
  (manuales/build-corpus.mjs) y vuelve a ejecutar "pnpm run import:corpus".
  Fuente: manuales/neutros/57-manual-copiloto-integrador.html#seccion-1
-->

El copiloto deja que el asistente de IA de tu plataforma haga algo más que responder texto: puede **llevar a la persona a una pantalla, resaltarle dónde está cada cosa y, si tú lo permites, rellenar y pulsar botones por ella** — siempre a la vista, siempre con su sesión, siempre con su confirmación antes de guardar nada. Se sostiene sobre tres piezas:

- **El cerebro** es el agente de IA del tenant, en el backend de la Plataforma. Decide *qué* hacer, pero nunca actúa directamente contra tu web: solo propone un plan.
- **Las manos** son el SDK del copiloto: una librería sin IA y sin red propia que instalas junto a tu widget de chat. No decide nada — ejecuta a la vista el plan que el cerebro propuso, con su propio diálogo de confirmación.
- **El manifiesto** es un JSON que tú escribes: el catálogo cerrado de pantallas, campos y botones de tu web que el copiloto puede llegar a usar. Si algo no está en el manifiesto, no existe para el asistente — nunca inventa una pantalla ni un botón.

```
flowchart LR
  subgraph Backend["Backend de la Plataforma"]
    Agente["Agente del tenant(el cerebro)"]
  end
  subgraph Tuweb["Tu web"]
    Widget["Tu widget de chat"]
    SDK["SDK del copiloto(las manos, sin red propia)"]
    DOM["Tus formulariosy botones reales"]
  end
  Manifiesto["Tu manifiesto v1(pantallas y anclas)"]
  Agente -- "1. plan validado" --> Widget
  Widget -- "2. postMessage" --> SDK
  SDK -- "3. navega / resalta / rellena / pulsa" --> DOM
  SDK -. "declarado contra" .-> Manifiesto
  DOM -- "4. resultado real" --> Widget
  Widget -- "5. resultado" --> Agente
  
```

Nada de esto ocurre si tú no lo activas explícitamente: tener el widget en tu web **no** da el copiloto. Hacen falta las tres cosas a la vez — (1) el copiloto activado para ese canal en la Plataforma, (2) el SDK instalado en tu web con su manifiesto y (3) ese manifiesto aprobado — y si falta cualquiera, el widget se comporta exactamente como un chat normal.

> **Nota — El SDK nunca habla con ningún servidor**
>
> El SDK del copiloto no hace ninguna llamada de red, propia ni ajena — todo lo que hace es leer tu manifiesto, escuchar mensajes `postMessage` de tu propio widget (con el origen verificado) y tocar el DOM de tu página. La conversación con el backend de la Plataforma siempre pasa por tu widget, nunca por el SDK directamente.