# Inicio rápido: agente

> Crea una tarea de agente con un objetivo, un destino de OpenWAF Egress, un modelo y un límite de pasos, y revisa lo que propone.

Una tarea `agent` no lleva código tuyo. Nuestro bucle de agente maneja el navegador hacia un **objetivo** que escribes tú, con el **modelo** que elijas, llamado a través de [OpenWAF Egress](https://developers.openwaf.dev/es/egress/cloud/get-started/). Igual que un script, puede leer libremente y solo puede proponer escrituras.

## Antes de empezar

- **Acceso** a OpenWAF Tasks y una clave de navegador. Mira [pedir acceso](https://developers.openwaf.dev/es/tasks/#get-access).
- **OpenWAF Egress** activado, con una credencial del proveedor en el destino que vayas a usar, por ejemplo `openai`. Mira [destinos y claves](https://developers.openwaf.dev/es/egress/cloud/targets-and-keys/).
- **Un `admin` de toda la organización**.

## 1. Crea la tarea

| Campo | Significado |
|---|---|
| `agent.goal` | Qué hacer, hasta 4000 caracteres. Di qué leer, qué informar y qué proponer, si algo. |
| `agent.egress_target` | El destino de Egress al que van las llamadas al modelo; debe tener credencial |
| `agent.model` | El nombre del modelo en ese destino |
| `agent.max_steps` | Llamadas a herramientas del agente por ejecución, de 1 a 50 (25 por defecto) |
| `allow` | Dominios que puede visitar el navegador |

```sh
curl -sS -X POST "https://dash.openwaf.dev/v1/orgs/$ORG/tasks" \
  -H "Authorization: Bearer $OPENWAF_TOKEN" -H "Content-Type: application/json" \
  -H "X-Change-Reason: Weekly docs review" \
  -d '{"name": "docs-review", "kind": "agent",
       "schedule": {"cron": "0 8 * * 1", "timezone": "Europe/Madrid"},
       "browser": {"key_id": "'$KEY_ID'", "profile": "", "recording": true},
       "allow": ["example.com", "*.example.com"],
       "agent": {"goal": "Open https://example.com/docs/ and its linked pages. Report broken links and pages that contradict each other as the output. Do not propose any action.",
                 "egress_target": "openai", "model": "gpt-4.1-mini", "max_steps": 30},
       "max_run_minutes": 15}'
```

OpenWAF crea un agente de Egress para la tarea, llamado `task-` y 8 dígitos hexadecimales (`egress_agent` en la tarea). Sus llamadas aparecen en los [eventos de Egress](https://developers.openwaf.dev/es/egress/cloud/agents/) como las de cualquier otro agente.

## 2. Qué puede hacer el agente

El agente ve la página como texto y capturas y usa estas herramientas: navegar, hacer clic, escribir, leer, hacer una captura, registrar, fijar la salida y `propose_action`. `propose_action` recibe los mismos `summary`, `target` y `steps` que [`task.approve`](https://developers.openwaf.dev/es/tasks/approvals/#steps) de un script. Puede proponer hasta 5 acciones por ejecución.

El contenido de las páginas llega al modelo marcado como dato no fiable, y al modelo se le indica que nunca siga instrucciones de las páginas. Aunque lo hiciera, no puede escribir: mira [inyección de prompts](https://developers.openwaf.dev/es/tasks/security/#prompt-injection).

## 3. Ejecútala y revisa

Ejecútala ahora (`POST /v1/orgs/{org}/tasks/{task}/run`) y abre la ejecución: registros, capturas, `output`, `model_calls`, `prompt_tokens` y `completion_tokens`. Si propuso una acción, revísala en **Tareas → Aprobaciones** como en el [inicio rápido del script](https://developers.openwaf.dev/es/tasks/quickstart-script/#approve-it).

Una ejecución se para cuando el agente termina, tras `max_steps` llamadas a herramientas o tras `max_run_minutes`, lo que llegue antes (`timed_out` en el último caso).
