<!--
  Translated by the docs agent from content-src/es/api/copilot-sdk/01-que-es-el-copiloto-y-como-se-conecta.md
  (source_hash 44655fc23107). If that Spanish source_hash changes, re-check this translation.
-->

The copilot lets your platform's AI assistant do more than reply with text: it can **take a person to a screen, highlight where everything is and, if you allow it, fill in and tap buttons on their behalf** — always in full view, always with their own session, always with their own confirmation before saving anything. It rests on three pieces:

- **The brain** is the tenant's AI agent, on the Platform's backend. It decides *what* to do, but it never acts directly against your site: it only proposes a plan.
- **The hands** are the copilot SDK: a library with no AI and no network of its own that you install alongside your chat widget. It decides nothing — it runs the plan the brain proposed, in full view, with its own confirmation dialog.
- **The manifest** is a JSON document you write: the closed catalog of screens, fields and buttons on your site the copilot can ever use. If something isn't in the manifest, it doesn't exist for the assistant — it never invents a screen or a button.

```
flowchart LR
  subgraph Backend["Platform backend"]
    Agente["Tenant agent(the brain)"]
  end
  subgraph Tuweb["Your site"]
    Widget["Your chat widget"]
    SDK["Copilot SDK(the hands, no network of its own)"]
    DOM["Your real formsand buttons"]
  end
  Manifiesto["Your v1 manifest(screens and anchors)"]
  Agente -- "1. validated plan" --> Widget
  Widget -- "2. postMessage" --> SDK
  SDK -- "3. navigate / highlight / fill in / tap" --> DOM
  SDK -. "declared against" .-> Manifiesto
  DOM -- "4. real result" --> Widget
  Widget -- "5. result" --> Agente
  
```

None of this happens unless you explicitly turn it on: having the widget on your site does **not** give you the copilot. All three things are needed at once — (1) the copilot turned on for that channel on the Platform, (2) the SDK installed on your site with its manifest and (3) that manifest approved — and if any one is missing, the widget behaves exactly like a normal chat.

> **Note — The SDK never talks to any server**
>
> The copilot SDK makes no network call of its own or anyone else's — all it does is read your manifest, listen for `postMessage` messages from your own widget (with the origin verified) and touch your page's DOM. The conversation with the Platform's backend always goes through your widget, never through the SDK directly.