Coding con IA · 2025

Tu nuevo
compañero
de código

Agentes de IA para desarrolladores que
quieren trabajar más listos, no más duro.

Cursor Copilot Antigravity Claude Code OpenCode
Alejandro de la Fuente

Alejandro de la Fuente

Technical Leader · NTT Data · GDNE

El panorama

¿Qué herramientas
tenemos disponibles?

No todas son iguales. Cada una tiene su filosofía.

🐙
GitHub Copilot IDE Plugin
Microsoft

El pionero. Autocompletado + chat. Integrado en VS Code, JetBrains.

Key feature: Completions
Cursor IDE Propio
Popular

Fork de VS Code con agente nativo. Composer para cambios multi-archivo.

Key feature: Multi-file edits
🚀
Antigravity IDE Propio
Google

IDE de Google con Gemini integrado. Surge de la adquisición de Windsurf.

Key feature: Gemini nativo
🤖
Claude Code CLI / Terminal
Anthropic

CLI oficial de Anthropic. Agente autónomo con acceso a ficheros, terminal y git.

Key feature: Autonomía total
💻
Codex CLI / Terminal
OpenAI

CLI de OpenAI. Open source, construido en Rust. Similar a Claude Code.

Key feature: Open Source
Bajo el capó

¿Cómo funcionan
por dentro?

El bucle del agente

1
Leer Tu instrucción + contexto del proyecto
2
Razonar ¿Qué herramientas necesito para esto?
3
Actuar Llama a tools: leer archivo, buscar, editar…
4
Observar Recibe el resultado de la tool call
↺ vuelve al 2 si necesita más pasos
🧠

Context Window

Es la memoria de trabajo del agente. Todo lo que "ve": tu instrucción, el código, el historial, los resultados de tools. Finita y preciosa.

🔧

Tool Calling

El agente puede llamar funciones reales: leer archivos, ejecutar comandos, buscar en la web, llamar a APIs. No solo genera texto.

📋

System Prompt

Las instrucciones permanentes que definen quién es el agente, qué puede hacer y cómo debe comportarse. La base de todo.

El cerebro del agente

¿Qué es el System Prompt?

No es magia. Es la constitución del agente.

📜

Definición

Es un bloque de texto que se pasa al LLM antes que cualquier mensaje del usuario. Define la personalidad, las capacidades, las restricciones y el contexto del agente.

🏗️ Analogía

El System Prompt es como los planos de un edificio. No es el edificio en sí, pero define exactamente qué puede ser construido y cómo. Sin planos sólidos, el edificio puede ser cualquier cosa... y eso es peligroso.

system-prompt.md
# Quién eres
Eres un agente de codificación experto en
TypeScript y arquitectura limpia.

# Tu misión
Ayudar al desarrollador a escribir código
de producción siguiendo Clean Architecture.

# Tus herramientas disponibles
- read_file: Leer archivos del proyecto
- write_file: Crear o modificar archivos
- run_command: Ejecutar comandos en terminal
- web_search: Buscar documentación

# Restricciones importantes
- NUNCA elimines archivos sin confirmar
- SIEMPRE escribe tests para código nuevo
- Pregunta si no entiendes el contexto
El System Prompt consume tokens de contexto en cada petición
🎯 Cuanto más específico, menos alucinaciones
🔒 Es la primera línea de defensa contra comportamientos no deseados
Orquestación

Agentes y Sub-agentes

Divide y vencerás. Pero con criterio.

🎯
Orquestador Recibe la tarea principal, la descompone y delega
📁 File Agent Leer / escribir código
🧪 Test Agent Generar y ejecutar tests
🔍 Review Agent Code review + feedback
↓ resultados consolidados ↓
Respuesta final al desarrollador

¿Cuándo usar sub-agentes?

  • La tarea es compleja y tiene partes independientes
  • Necesitas paralelismo real (varios archivos a la vez)
  • Quieres aislar responsabilidades y reducir errores
  • NO para tareas simples. Añade overhead y complejidad innecesaria
💡 Ejemplo real en Claude Code
// Claude Code lanza sub-agentes para:
1. Explorar el codebase (explore agent)
2. Planificar cambios (plan agent)
3. Implementar en paralelo (build agents)
4. Verificar resultados (verify agent)
⚠️

Ojo con el contexto: Cada sub-agente tiene su propia ventana de contexto. El orquestador debe pasar exactamente la información que necesita cada uno. Ni más, ni menos.

El enemigo número uno

¿Qué son las alucinaciones?

🧠

Definición técnica

Un LLM genera texto estadísticamente probable basado en su entrenamiento. Cuando no tiene información suficiente, inventa respuestas que suenan correctas pero son falsas. No sabe que está mintiendo.

🏗️ Analogía

Es como un arquitecto que, cuando no conoce una normativa concreta, inventa una normativa plausible en lugar de decir "no lo sé". El edificio parece bien diseñado hasta que aparece el inspector.

~30% de errores en código generado son alucinaciones
aumentan con tareas largas y sin contexto claro

Ejemplos reales en código

📦 Paquetes que no existen
El agente genera: import { superTool } from "nonexistent-lib"
💥 El agente inventa una API que nunca existió
📋 APIs incorrectas
El agente genera: react.useState(0)
💥 Mezcla sintaxis de versiones distintas o APIs deprecadas
📁 Archivos que no existen
El agente genera: import config from "./config/db.ts"
💥 El agente asume una estructura de proyecto que no es la real
💡

El modelo no tiene acceso al estado real de tu proyecto. Sin contexto, adivina. Y adivina bien... para las estadísticas. Mal para ti.

Control y prevención

Cómo evitar las alucinaciones

No es suerte. Es técnica y disciplina.

📄

Contexto explícito

Da al agente la información que necesita. No asumas que "sabe" tu proyecto.

Ejemplo: Incluye package.json, estructura de carpetas, versiones exactas.
🎯

Instrucciones específicas

Sé preciso en el System Prompt. Ambigüedad = alucinaciones.

Ejemplo: "Usa React 19 con TypeScript strict. Sin any. Sin as."
🔍

Pide verificación

Instrucción explícita: "Si no estás seguro de algo, pregunta antes de inventar."

Ejemplo: En el system prompt: NEVER guess. Ask when uncertain.

Revisa y verifica

El código generado no es tu código hasta que lo entiendes y compruebas.

Ejemplo: Corre los tests, lee lo que generó, no solo copiar-pegar ciegamente.
🔄

Contexto fresco

Las conversaciones largas degradan la calidad. Restablece el contexto.

Ejemplo: Empieza nuevas sesiones para tareas distintas. Mantén el foco.
📋

CLAUDE.md / AGENTS.md

Archivos de contexto permanente del proyecto que el agente lee automáticamente.

Ejemplo: Define arquitectura, convenciones, dependencias y reglas del proyecto.
Craftmanship

Buenas prácticas

El agente es tan bueno como el desarrollador que lo dirige.

Hazlo

Usa el agente para tareas repetitivas: boilerplate, tests, documentación
Dale contexto de arquitectura. El agente no adivina tu estilo
Revisa SIEMPRE el código generado. Tú eres el responsable
Haz preguntas de alto nivel, deja los detalles al agente
Usa CLAUDE.md / AGENTS.md para codificar las reglas del proyecto
Itera en conversaciones cortas y enfocadas
Lee el código del PR, no solo el plan: 1.000 líneas de plan ≈ 1.000 líneas de código

Evita esto

No confíes ciegamente en código sin tests
No des tareas enormes en un solo prompt
No le pidas que tome decisiones de arquitectura sin contexto
No copies APIs o paquetes que el agente "inventa"
No uses el agente como sustituto de entender el problema
No dejes sesiones largas sin resetear el contexto
No apruebes planes a ciegas: aprobar = delegar 100% al agente
🤖

El agente es Jarvis. Tú eres Tony Stark. Jarvis no construye el traje solo. Tú diriges, él ejecuta. Invierte el rol y el resultado será una catástrofe.

Para producción

Los 12 factores de un agente

Los buenos agentes son sobre todo software bien escrito.

📐

Dexter Horthy (HumanLayer) tras hablar con +100 fundadores: todos chocan al 70-80% de calidad usando frameworks. Frente a la rendición ("rewrite desde cero"), propone 12 principios modulares para incrustar en software existente. En el espíritu de los 12 Factor Apps.

01
NL → Tool Calls El LLM convierte lenguaje en JSON validable.
02
Own your prompts Versiona tus prompts como código fuente.
03
Own your context Tú decides qué entra. La librería no es caja negra.
04
Tools = structured outputs La tool call es JSON. La lógica vive en tu código.
05
Unify state Estado del agente = estado de tu negocio.
06
Launch / Pause / Resume Tu agente se para y reanuda como cualquier proceso.
07
Contact humans as tools El humano-en-el-loop también es una tool call.
08
Own your control flow Si conoces el workflow, no lo metas en el prompt.
09
Compact errors Error → mensaje corto accionable, no volcado.
10
Small focused agents Mejor varios micro-agentes que un mega-agente.
11
Trigger anywhere Slack, cron, webhook, email. Donde el usuario vive.
12
Stateless reducer nuevo_estado = agente(estado, evento). Replay trivial.
💡

"La mayoría de productos que se anuncian como AI Agents son código determinista con pasos LLM espolvoreados en el sitio justo." — Dexter Horthy, HumanLayer

El arte de la información

Gestión de contexto

Lo que el agente no sabe, lo inventa.

¿Qué hay en el contexto?

📋 System Prompt ~2k tokens
💬 Historial de conversación variable
📁 Archivos leídos (tool calls) ~grandes
🔧 Resultados de herramientas variable
🚫 Límite de contexto 200k tokens
💡

Cuanto más largo el contexto, más cara la petición y más probabilidad de que el modelo "olvide" lo que dijiste al principio. Mantén el foco.

Archivos de contexto por herramienta

CLAUDE.md Claude Code

Arquitectura del proyecto, reglas de estilo, comandos de build y test, contexto del dominio.

AGENTS.md Genérico / Multi-agente

Instrucciones de proyecto. Formato estándar compatible con múltiples agentes de IA.

copilot-instructions.md GitHub Copilot

En .github/. Personaliza el comportamiento de Copilot Chat para tu repositorio.

Pro tip

Empieza siempre con un CLAUDE.md o AGENTS.md básico. Documenta ahí la arquitectura, los patrones que usas y los que NUNCA debes usar. El agente lo leerá en cada conversación.

Hands on

Flujo de trabajo real

Así se trabaja con Claude Code en el día a día.

Los 4 pasos que siempre uso

01
📋 CLAUDE.md

Definimos el contexto del proyecto: arquitectura, stack, reglas.

02
💬 Prompt claro

Instrucción específica con scope definido y criterio de éxito.

03
🔄 Agente trabaja

Lee archivos, razona, hace tool calls, genera el código.

04
🔍 Revisión crítica

Verificamos, corremos tests, iteramos si es necesario.

Pipeline de trabajo

🔭
Explorar "Analiza la estructura del proyecto"
📐
Planificar "Qué cambios necesitamos y por qué"
Implementar "Genera el código siguiendo la arquitectura"
Verificar "Corre los tests y valida"
claude-code
$claude
✓ Claude Code iniciado
✓ Leyendo CLAUDE.md...
Refactoriza el servicio de usuarios siguiendo Clean Architecture
⟳ Analizando estructura del proyecto...
⟳ Leyendo src/users/... (3 archivos)
⟳ Generando casos de uso...
✓ Completado: 4 archivos modificados, tests incluidos
⚠️

Esta presentación ha sido creada en tiempo real usando Claude Code. Lo que ves es el producto del flujo que acabas de aprender.

El siguiente nivel

Harness Engineering

Tu nuevo rol: operacionalizar el repo para un ejército de agentes.

"

La implementación ya no es el recurso escaso. El código es libre: gratis de producir, refactorizar y borrar. No es algo que merezca preocupar más.

— Ryan Lopopolo, OpenAI · token billionaire

Las 3 ideas matriz

🆓
Code is free Producir, refactorizar y borrar código deja de ser escaso. Cada engineer tiene 5-50-5.000 colaboradores 24/7. La migración de 6 meses se cierra lanzando 15 agentes.
🧠
Recursos escasos: tiempo, atención, contexto El cuello de botella ya no es teclear. Es la atención humana, la del modelo y el context window. Hay que estructurar el repo para gastarlos bien.
📚
El repo es prompt persistente Cada lint, test, error message y reviewer agent es prompt que se reactiva cuando toca. Escríbelo una vez, durabilidad infinita.

Patrones operativos

01
Reviewer agents por persona Cada engineer documenta su rol (front-end, reliability, scalability). Un agent por persona se ejecuta en CI bloqueando merges con esa lente.
02
Garbage Collection Friday Una vez a la semana, todo el equipo convierte feedback humano en lints, tests y docs que ningún agente vuelva a saltarse.
03
Skills para escribir prompts Cuando escribir prompts a mano se repite, shellea al agente con una skill que los genere a partir de cookbooks.
🎯

Mismo patrón emergente en OpenAI (Lopopolo), Y Combinator (Garry Tan / gstack) y HumanLayer (Horthy / 12-factor). Persona-based review se ha vuelto pieza estable.

"Cada vez que tienes que decirle 'continúa' al agente es un fallo del harness." Si la sesión necesita ese empujón, lo que falla es la información que el harness pone delante del agente.

El futuro del desarrollo
ya está aquí.
¿Estás preparado?

Para llevarte a casa

01 El agente es Jarvis, tú eres Tony Stark. Dirige.
02 Sin System Prompt sólido, sin resultados predecibles.
03 Contexto es poder. Dale al agente lo que necesita.
04 Revisa siempre. El código no es tuyo hasta que lo entiendes.
05 Las alucinaciones se previenen, no se aceptan.
06 Los buenos agentes son sobre todo software bien escrito.
07 Harness engineering: estructura el repo como prompt persistente.
💬

"La IA no te va a sustituir.
Te va a sustituir alguien que sabe usar la IA mejor que tú."

Hecho con ❤️ por Código Sin Siesta
1 / 13
Navegación