IA aplicada al desarrollo de software: asistentes, agentes, MCP, RAG, automatización, SDD
Entre 2021 y 2026 el desarrollo de software ha incorporado herramientas que van del autocompletado a agentes que leen un repositorio, modifican ficheros, ejecutan pruebas y abren un pull request solos. Todas se apoyan en un LLM y se diferencian en cuánta autonomía se les da y a qué se conectan: el asistente, el agente, MCP, RAG y la automatización. El trabajo se desplaza de escribir código a especificar, revisar y decidir.
1El espectro de autonomía
| Nivel | Qué hace | Quién controla | Herramientas (2026) |
|---|---|---|---|
| Autocompletado | Sugiere la siguiente línea | El desarrollador acepta o ignora | Copilot inline, Cursor Tab |
| Chat / asistente | Responde, explica, propone cambios | El desarrollador pega o aplica | Copilot Chat, ChatGPT, Claude |
| Agente interactivo | Lee el repo, edita, ejecuta comandos y pruebas, itera | Supervisa en tiempo real, aprueba acciones | Claude Code, Cursor Agent, Codex CLI |
| Agente asíncrono | Trabaja en un entorno aislado; entrega un PR | Revisa el resultado, no el proceso | Copilot coding agent, Devin |
| Agente de revisión | Revisa PR ajenos, detecta errores | Los humanos deciden qué aceptar | Copilot code review, CodeRabbit |
A mayor autonomía, la revisión sustituye a la escritura como trabajo principal del desarrollador, y la calidad depende de la calidad de la tarea que se le dio y del contexto que tenía.
2Qué es un agente
"Agente" es de los términos más polisémicos del módulo: agente BDI clásico (años 90), user agent (el navegador, HTTP desde 1991), agente de aprendizaje por refuerzo, agente comercial (persona), y agente de IA / LLM (2023-2026): un LLM ejecutado en bucle con acceso a herramientas que decide él mismo qué llamar y cuándo ha terminado.
La industria (Anthropic, 2024) separa dos cosas que suelen llamarse igual: flujo de trabajo (el programador decide el orden de antemano: predecible, barato de depurar, limitado) y agente (el LLM dirige su propio proceso: flexible, más caro e impredecible).
Tarea + instrucciones + contexto inicial → LLM
LLM → respuesta final → Resultado
LLM → llamada a herramienta (leer, ejecutar, buscar, escribir) → Herramienta
Herramienta → resultado (se añade al contexto) → LLM [se repite]
Cada vuelta reenvía todo el contexto acumulado. Por eso: el coste crece con la duración de la tarea; el agente "olvida" en tareas largas cuando hay que resumir; y cualquier cosa que entre en el contexto puede contener instrucciones que el modelo obedezca — la inyección de prompt, riesgo de seguridad número uno de los agentes (UD1-10).
3La capa de personalización
| Pieza | Qué es | Ficheros habituales |
|---|---|---|
| Instrucciones siempre activas | Convenciones del proyecto: lenguaje, estilo, cómo probar | AGENTS.md, CLAUDE.md, .cursorrules |
| Instrucciones por ruta | Reglas para ciertos ficheros | .github/instructions/*.instructions.md |
| Prompts reutilizables | Tareas parametrizadas invocables como comandos | .github/prompts/*.prompt.md |
| Skills | Instrucciones + ficheros de apoyo, se cargan solo cuando hace falta | SKILL.md |
| Agentes personalizados | Roles con instrucciones y herramientas restringidas | .github/agents/*.agent.md |
| Hooks | Código determinista antes/después de acciones del agente | Configuración JSON |
4MCP: el estándar para conectar herramientas y datos
Model Context Protocol, publicado por Anthropic en noviembre de 2024 y adoptado en 2025 por OpenAI, Google, Microsoft y la mayoría de editores; a finales de 2025 pasó a gobernarse desde una fundación bajo la Linux Foundation. Resuelve que cada aplicación de IA tenía que escribir su propia integración con cada fuente de datos (N × M). MCP define una forma de que una herramienta se describa a sí misma para que cualquier LLM la use.
Host (VS Code, Claude Desktop, un agente propio)
LLM + Cliente MCP
⇄ protocolo MCP (JSON-RPC, stdio o HTTP) ⇄
Servidor MCP: base de datos → Postgres
Servidor MCP: GitHub → API de GitHub
Servidor MCP: ficheros
Servidor MCP: API interna
Host: la app donde vive el LLM. Cliente MCP: el componente del host que habla el protocolo. Servidor MCP: programa pequeño que expone herramientas (funciones), recursos (datos) y prompts (plantillas).
La analogía "el USB-C de la IA" es razonable. Lo que MCP no es: no sustituye a la API de la herramienta (la envuelve); no es un agente (es lo que el agente usa); no aporta seguridad por sí mismo — mínimo privilegio, herramientas de solo lectura salvo que haga falta lo contrario (UD1-10).
5RAG: darle al modelo lo que no sabe
Retrieval-Augmented Generation: un LLM tiene fecha de corte y no sabe nada de los datos de una empresa concreta. En cada petición se buscan documentos relevantes y se incluyen en el contexto junto con la pregunta, sin reentrenar.
Ingesta (una vez, y al cambiar documentos):
Documentos → Trocear (chunks) → Vectorizar (embeddings) → Índice vectorial
Consulta (cada petición):
Pregunta → Vectorizar → Buscar los k más parecidos → Reordenar (reranker)
→ Prompt = instrucciones + trozos + pregunta → LLM → Respuesta con citas
Embedding: vector de un texto tal que textos parecidos quedan cerca. Base vectorial: pgvector, Qdrant, Weaviate, Pinecone, Chroma. Búsqueda híbrida: semántica (vectores) + léxica (BM25), porque cada una falla en casos distintos.
| Necesidad | Opción |
|---|---|
| Responder sobre documentación privada que cambia | RAG (caso canónico) |
| Escribir con el estilo de la empresa | Fine-tuning (no mete hechos, ajusta comportamiento) |
| Documentos que caben en el contexto | Contexto largo, sin índice — más simple y fiable |
| El agente puede buscar él mismo | Búsqueda agéntica: grep, leer ficheros — tendencia 2025-26 |
| Datos estructurados en BD | Texto a SQL o herramienta MCP |
6Automatización: el LLM como un paso, no como el director
| Generación | Qué es | Determinista | Maneja texto libre |
|---|---|---|---|
| Integración por API/scripts | Código que conecta sistemas | Sí | No |
| RPA | Imita clics en pantallas sin API | Sí (frágil) | No |
| Flujos low-code | Disparador → pasos → acciones | Sí | No |
| ... con un paso LLM | Un bloque clasifica/extrae/redacta | Solo ese paso no | Sí |
| Agente | El LLM decide el flujo | No | Sí |
7Spec-driven development y el nivel de abstracción
Vibe coding (Karpathy, 2025): describir vagamente, aceptar lo que salga, sin leer el código — vale para prototipos desechables. Spec-driven development (SDD): escribir primero una especificación precisa — objetivo, requisitos numerados, casos límite, criterios de aceptación — y que el agente implemente a partir de ella, con trazabilidad.
SDD cierra el círculo con los ciclos de vida (UD1-05): recupera un artefacto de aspecto "cascada" (la especificación previa) dentro de un bucle de minutos.
ensamblador → C → Java/Python → frameworks → especificación en lenguaje natural + agente
Cada salto histórico trae más productividad, menos control sobre el detalle, y un nuevo tipo de error que solo se entiende bajando un nivel. Por eso este módulo insiste en frontend/backend, dónde vive la lógica y cómo fluye un dato: es lo que hace falta para revisar lo que la IA produce.
8Cómo influye en el sector: lo que se sabe y lo que se discute
- Los agentes de código son el producto de IA con adopción más rápida en empresas; el trabajo cambia de tecleo a especificar y revisar.
- La productividad medida es ambigua: un estudio METR (2025) con desarrolladores experimentados en repos conocidos encontró que tardaban más con IA aunque creían tardar menos.
- Problemas nuevos: código con vulnerabilidades, slopsquatting (paquetes inventados por el modelo que alguien registra con malware), PR enormes que nadie revisa de verdad.
- El mercado laboral junior se ha endurecido — debate abierto sobre si es por la IA, el ciclo económico, o ambas.
| Afirmación | A favor | En contra |
|---|---|---|
| "Los agentes sustituirán a los junior" | Tareas de entrada se automatizan | Alguien tiene que llegar a senior; revisar exige haber escrito |
| "El código generado es peor" | Más vulnerabilidades en estudios controlados | Depende del contexto y la revisión |
| "Es una burbuja" | Inversión desproporcionada a ingresos | Las herramientas ya están en uso real y pagado |
9Para debatir en clase
- Un agente puede leer todo el repositorio y cambiar veinte ficheros en dos minutos. ¿Cómo se revisa eso? ¿Cambia si el proyecto es propio o de un cliente?
- Escribir un servidor MCP que exponga
borrar_cliente(id)a un agente. ¿Qué podría salir mal? - Un flujo de n8n clasifica correos con un LLM. Un día clasifica como "urgente" un spam que decía "esto es urgente". ¿Qué ha pasado?
- ¿Es SDD una vuelta a la cascada? Argumenta en ambos sentidos.
- Elige una tarea del propio ciclo y decide: ¿asistente, agente, flujo con paso LLM, o nada de IA?
✓Autoevaluación — puntos que debes dominar
Adaptado de 09-ia-para-el-desarrollo-de-software.md.