Lo esencial
Una buena cocina tiene tres partes: la receta (qué hacer y en qué orden), los ingredientes (los productos concretos) y el chef (quien lee la receta y usa los ingredientes). Quita cualquiera de las tres y no sale nada. WAT es esa misma lógica aplicada a los sistemas con agentes.
Conceptos clave
- WAT = Workflows + Agent + Tools: tres partes inseparables de un sistema
- Workflow (un proceso de trabajo, una secuencia de tareas) = una receta en lenguaje natural (en markdown, un lenguaje sencillo para dar formato al texto)
- Herramientas = acciones concretas (llamadas a una API, la interfaz de programación de aplicaciones, y scripts)
- Agente (un programa que ejecuta tareas por su cuenta) = el ejecutor que lee la receta y usa los ingredientes
- La estructura de carpetas de un proyecto WAT
- Cómo el agente mejora el sistema con el tiempo
Teoría
Tres componentes: de la abstracción a la realidad
La mayoría de la gente que oye "IA agéntica" piensa simplemente en un "chatbot listo". Pero los sistemas con agentes de verdad están armados de forma más compleja, y en esa complejidad está toda su fuerza.
El framework WAT es una forma sencilla de pensar la arquitectura de cualquier sistema con agentes.
W: Workflows
A: Agent (agente)
T: Tools (herramientas)
Cada componente cumple su papel. Juntos forman un sistema capaz de hacer tareas complejas de varios pasos.
W: el workflow, una receta en lenguaje natural
Un workflow es una instrucción paso a paso escrita en lenguaje común (markdown). Es la receta que el agente va a seguir.
Qué incluye un workflow:
- Objetivo: qué debe pasar al final
- Pasos: qué hacer y en qué orden
- Condiciones: qué hacer si algo sale mal
- Herramientas: qué herramienta usar en cada paso
- Puntos de revisión: dónde hace falta la confirmación de una persona
Ejemplo de workflow para un newsletter semanal:
# Workflow: Newsletter semanal de bienes raíces ## Objetivo Reunir 5 noticias actuales, generar un correo HTML y enviarlo a la lista de destinatarios cada lunes a las 9:00. ## Pasos ### Paso 1: Reunir noticias Usa la herramienta `research_news` para buscar. Consulta: "mercado inmobiliario [semana actual]" Resultado esperado: 5-7 noticias con título, descripción breve y enlace. ### Paso 2: Generar el correo Usa la herramienta `generate_newsletter_html`. Pásale: la lista de noticias del paso 1 y la fecha actual. Estilo: ver /config/newsletter_style.json. ### Paso 3: ⚠️ REVISIÓN HUMANA Detén la ejecución. Muestra la vista previa en HTML. Espera la confirmación antes de enviar. ### Paso 4: Envío Usa la herramienta `send_via_gmail`. Destinatarios: de /config/recipients.json. Asunto: "Resumen inmobiliario: [fecha actual]" ### Paso 5: Archivo Guarda el HTML final en /archive/YYYY-MM-DD.html. Anota en el registro: fecha de envío, número de destinatarios, asunto.
Fíjate: el workflow está escrito en español, no en Python (un lenguaje de programación). Eso es fundamental. Cualquier persona puede leerlo y editarlo, no solo un desarrollador. Eso hace que el sistema sea comprensible y controlable.
T: las herramientas, acciones concretas
Las herramientas son funciones ejecutables. Si el workflow dice "usa la herramienta research_news", significa: llama a un script o a una API concreta.
Cada herramienta hace una sola cosa concreta. El principio: una función, una responsabilidad.
Ejemplos de herramientas:
| Herramienta | Qué hace | Técnicamente |
|---|---|---|
research_news |
Busca noticias sobre un tema | Llamada a la Perplexity API |
generate_newsletter_html |
Crea HTML a partir de datos | Llamada a la Anthropic API + plantilla |
send_via_gmail |
Envía el correo | Gmail API con OAuth |
archive_to_sheets |
Escribe en Google Sheets | Google Sheets API |
generate_infographic |
Crea una imagen | API de generación de imágenes |
Estructura de una herramienta típica (Python):
# tools/research_news.py
def research_news(query: str, num_results: int = 5) -> list[dict]:
"""
Busca noticias según la consulta con la Perplexity API.
Devuelve una lista de diccionarios: [{title, description, url, date}]
"""
# llamada a la API
# procesar la respuesta
# devolver datos estructuradosLas herramientas no toman decisiones. Solo ejecutan una acción concreta y devuelven el resultado. Las decisiones las toma el agente con base en el workflow.
A: el agente, el chef
El agente es el propio Claude Code (u otro LLM, un modelo grande de lenguaje). El agente:
- Lee el workflow (la receta)
- Elige qué herramienta usar en cada paso
- Pasa los datos de una herramienta a otra
- Maneja las situaciones fuera de lo normal
- Se detiene en los puntos indicados para que una persona revise
- Se adapta si algo sale mal
La gran fuerza del agente es su capacidad de adaptarse.
Si la herramienta research_news devolvió solo 3 noticias en vez de 5, una automatización determinista truena con un error. El agente se adapta: repite la búsqueda con otra consulta, o sigue con tres noticias, o te pregunta qué hacer.
Si una noticia viene en inglés, el agente la traduce solo, porque entiende que el newsletter es en español (eso está escrito en el CLAUDE.md).
Cómo interactúan los tres componentes
Workflow (receta)
↓ lo lee
Agente
↙ ↘ llama
Herramienta1 Herramienta2
↘ ↙ recibe los resultados
Agente
↓ sigue con el workflow
...siguiente paso...Workflow sin herramientas = receta sin ingredientes.
Escribiste "mezcla la harina con los huevos", pero no hay harina ni huevos. Un workflow que dice "busca noticias" no sirve si no hay una herramienta que sepa buscar.
Herramientas sin workflow = ingredientes sin receta.
Tienes harina, huevos, azúcar, leche. ¿Qué preparas con eso? Un caos de opciones. Las herramientas sin workflow no le dan dirección al sistema.
Agente sin workflow ni herramientas = chef sin cocina.
Listo, con experiencia, pero sin receta ni ingredientes no puede cocinar nada.
La estructura de carpetas de un proyecto WAT
Esta es la estructura estándar que vas a usar en cada proyecto:
my-project/
├── CLAUDE.md ← prompt de sistema (prompt: la petición en texto para la IA), ver la lección sobre CLAUDE.md
├── .env ← claves de API (¡nunca en git, el sistema de control de versiones del código!)
├── main.py ← punto de entrada
│
├── workflows/ ← Workflows
│ ├── main_workflow.md ← workflow principal
│ └── fallback_workflow.md ← de respaldo si hay errores
│
├── tools/ ← Herramientas
│ ├── research.py ← buscar información
│ ├── generate_content.py ← generar contenido
│ ├── send_email.py ← enviar correos
│ └── archive.py ← archivar
│
├── config/ ← Configuración
│ ├── style.json ← estilo, colores, parámetros
│ └── recipients.json ← destinatarios/parámetros
│
├── brand_assets/ ← Materiales de marca
│ ├── logo.png ← logotipo
│ └── brand_guidelines.md ← reglas de la marca
│
├── docs/ ← Documentación (opcional)
│ └── api-reference.md
│
└── logs/ ← Registros automáticos
└── (se crea automáticamente)Por qué justo esta estructura:
- Todos los workflows en un solo lugar → fáciles de encontrar y cambiar
- Cada herramienta en su propio archivo → fácil cambiar o mejorar una sola
- La configuración separada del código → cambias ajustes sin tocar el código
- Los brand assets aparte → el agente sabe de dónde tomar los materiales de marca
- .env en la raíz → el lugar estándar para las claves
Cómo el agente mejora el sistema con el tiempo
Esta es una característica importante de WAT que muchas veces se subestima.
Después de varias ejecuciones del workflow, el agente empieza a ver patrones:
- "Cada vez que busco noticias sobre vivienda usada, los resultados son peores. ¿Afino la consulta?"
- "Esta herramienta suele devolver noticias duplicadas. ¿Agrego un filtro de duplicados?"
- "Los correos se abren más cuando el asunto lleva la fecha. ¿Lo incluyo en la plantilla?"
Puedes pedirle al agente:
Analiza las últimas 10 ejecuciones del workflow del newsletter en /logs/. ¿Qué funciona bien? ¿Qué conviene mejorar? Propón cambios concretos al workflow o a las herramientas.
El agente leerá los registros, los analizará y propondrá cambios concretos. Eso es "el agente mejora el sistema": no por arte de magia, sino analizando datos reales.
Un ejemplo real de estructura: Lead Qualifier (calificación de prospectos)
lead-qualifier/
├── CLAUDE.md ← prompt de sistema
├── .env ← claves de API (CRM, el sistema de gestión de clientes; correo; Anthropic)
├── .gitignore ← excluir .env, logs/, node_modules/
├── main.py ← punto de entrada
│
├── workflows/
│ ├── qualify_lead.md ← workflow principal de calificación
│ └── escalate_to_human.md ← workflow para casos difíciles
│
├── tools/
│ ├── fetch_lead_from_crm.py ← traer los datos del prospecto desde el CRM
│ ├── enrich_company_data.py ← completar los datos de la empresa
│ ├── score_lead.py ← calificar al prospecto (scoring)
│ ├── send_notification.py ← avisar al responsable de ventas
│ └── update_crm_status.py ← actualizar el estado en el CRM
│
├── config/
│ ├── scoring_rules.json ← reglas de calificación (industria, tamaño, presupuesto)
│ └── notification_templates.json ← plantillas de avisos
│
├── docs/
│ └── crm-api-reference.md ← documentación de la API del CRM
│
└── logs/
└── (se crea automáticamente)Fíjate: cada herramienta hace exactamente una cosa. El workflow describe el orden de las llamadas. El agente coordina.
Práctica
Tarea: dibujar el esquema WAT de la automatización que quieres construir.
Paso 1, elegir la tarea (5 min):
Elige una:
- Envío automático de noticias a clientes
- Publicación automática de posts en redes sociales
- Reporte de ventas automático
- Calificación automática de prospectos entrantes
- Una tarea propia
Paso 2, el esquema WAT (15 min):
En papel o en cualquier editor, dibuja tres bloques:
[WORKFLOW]
1. Primer paso
2. Segundo paso
3. ⚠️ Revisión de una persona
4. Cuarto paso
[HERRAMIENTAS]
- Nombre → qué hace → qué API/servicio
- Nombre → qué hace → qué API/servicio
[AGENTE]
- Qué decide el agente por su cuenta
- Dónde se detiene el agente para la revisiónPaso 3, crear la estructura (10 min):
Crea la carpeta del proyecto con una estructura WAT vacía usando Claude Code:
Crea la estructura estándar de un proyecto WAT para [tu tarea]. Crea archivos vacíos con los nombres correctos. En cada archivo escribe un comentario sobre lo que debe contener. Crea un CLAUDE.md con la descripción del proyecto.
Errores comunes
❌ Error: escribir toda la lógica en un solo archivo main.py (el patrón God Object).
✅ Lo correcto: una herramienta = un archivo. El workflow coordina las llamadas. Así puedes cambiar y probar las herramientas por separado sin romper todo el sistema.
❌ Error: escribir el workflow en Python o JavaScript (un lenguaje de programación) en lugar de markdown.
✅ Lo correcto: el workflow se escribe en lenguaje natural (markdown). Esa es su gran ventaja: cualquier persona puede leerlo y editarlo, no solo un desarrollador. El agente convierte la instrucción en acciones por su cuenta.
❌ Error: no agregar un punto de revisión humana (Human-in-the-loop) al workflow.
✅ Lo correcto: pon siempre la marca REVISIÓN HUMANA antes de cualquier acción irreversible (enviar un correo, publicar, cambiar el CRM). Sobre todo en las primeras ejecuciones, mientras el sistema no esté probado.
Herramientas y recursos
- Claude Code: para crear la estructura del proyecto
- draw.io: herramienta gratuita en línea para dibujar diagramas
- Excalidraw: herramienta sencilla para dibujar diagramas de arquitectura
- trigger.dev: plataforma para correr workflows en producción
- n8n: alternativa para armar flujos de forma visual: puedes instalarla en tu propio servidor (la Community Edition es gratis) o usar un plan en la nube. Precios vigentes: Lo vigente
- Claude Code en GitHub: ejemplos de proyectos e issues
→ Mira la lección CLAUDE.md: el prompt de sistema que describe un proyecto WAT
→ Mira la lección Las Four C's: Context, Connections, Capabilities, Cadence
→ Mira la lección Tu primer workflow en vivo: de la idea a una automatización que funciona
Ideas clave
WAT = tres partes inseparables. Quita cualquiera y el sistema no funciona.
El workflow se escribe en lenguaje natural (markdown), no en código. Cualquier persona puede leerlo y cambiarlo.
Cada herramienta hace una sola cosa. El agente coordina; las herramientas ejecutan.
Una estructura de carpetas estándar acelera el trabajo: el agente sabe dónde buscar cada cosa sin que se lo expliques.
Siguiente lección
→ Tu primer workflow en vivo: un newsletter automático de la idea al arranque
La marca se guarda solo en este navegador y no se envía a ningún sitio. Mi progreso