1. Contenidos
1.1 Del chatbot al asistente de desarrollo
Hasta ahora hemos trabajado la inteligencia artificial como una herramienta conversacional: escribimos una pregunta, recibimos una respuesta y decidimos si nos sirve. Este modelo se parece a hablar con un chatbot.
Sin embargo, en programación existen herramientas de IA más integradas en el proceso de desarrollo. Algunas pueden leer archivos del proyecto, analizar errores, proponer cambios, modificar código o ejecutar comandos. A este tipo de herramienta se le suele llamar agente de IA.
Idea clave: Un chatbot responde. Un agente puede actuar sobre un entorno de trabajo. Por eso un agente puede ser más útil, pero también requiere más supervisión.
En un proyecto real, esta diferencia es importante. No es lo mismo pedir una explicación teórica que permitir a una herramienta modificar archivos de una aplicación.
1.2 ¿Qué es un chatbot?
Un chatbot es una herramienta que mantiene una conversación con el usuario. El usuario escribe una petición y el sistema genera una respuesta en forma de texto, código, explicación, tabla o lista de pasos.
En programación, un chatbot puede ayudarnos a:
- Explicar un concepto.
- Interpretar un mensaje de error.
- Generar un ejemplo de código.
- Comparar dos soluciones.
- Proponer casos de prueba.
- Redactar documentación.
Ejemplo de uso:
Estoy aprendiendo Java. Explícame qué diferencia hay entre un método static
y un método no static con un ejemplo sencillo.
El chatbot puede responder con una explicación útil, pero normalmente no tiene acceso directo al proyecto completo ni modifica archivos por sí mismo.
1.3 ¿Qué es un agente de IA?
Un agente de IA es un sistema que no solo genera respuestas, sino que puede realizar acciones para cumplir una tarea. En programación, un agente puede trabajar sobre un proyecto de software y tomar decisiones intermedias para avanzar hacia un objetivo.
Un agente de programación puede realizar acciones como:
- Leer archivos del proyecto.
- Buscar dónde se define una clase, método o variable.
- Proponer cambios sobre varios archivos.
- Modificar código.
- Ejecutar comandos de compilación o pruebas.
- Analizar errores devueltos por la terminal.
- Preparar cambios para Git.
Ejemplo de petición a un agente:
Analiza este proyecto Java y localiza dónde se calcula el precio final de un pedido.
No modifiques ningún archivo todavía. Primero explícame qué archivos has revisado
y qué función cumple cada uno.
Buena práctica: Antes de pedir a un agente que modifique código, conviene pedirle solo análisis. Primero entender, después cambiar.
1.4 Diferencias entre chatbot y agente
La siguiente tabla resume las diferencias principales entre trabajar con un chatbot y trabajar con un agente de IA en programación.
| Aspecto | Chatbot | Agente de IA |
| Forma de trabajo | Responde a preguntas. | Puede planificar y ejecutar acciones. |
| Acceso al proyecto | Normalmente solo ve lo que el usuario pega en el chat. | Puede leer archivos del proyecto si tiene permiso. |
| Modificación de código | Propone código para copiar o adaptar. | Puede modificar archivos directamente. |
| Ejecución de comandos | No suele ejecutar el proyecto. | Puede lanzar pruebas, compilación o comandos de terminal. |
| Riesgo | Puede dar respuestas incorrectas. | Puede dar respuestas incorrectas y además cambiar archivos. |
| Supervisión necesaria | Revisar la respuesta. | Revisar la respuesta, los cambios y los comandos ejecutados. |
Conclusión: Cuanta más capacidad tenga una herramienta para actuar sobre el proyecto, más importante es revisar lo que hace.
1.5 ¿Qué es una skill?
Una skill o habilidad es una capacidad especializada que permite a una herramienta de IA realizar mejor una tarea concreta. Puede entenderse como una función adicional, un procedimiento preparado o una integración con una herramienta específica.
Ejemplos de skills relacionadas con programación:
- Analizar un repositorio de código.
- Ejecutar pruebas automáticas.
- Leer documentación técnica.
- Generar una página HTML siguiendo una plantilla.
- Crear una consulta SQL.
- Preparar un commit de Git.
- Revisar errores de compilación.
Una skill no convierte a la IA en infalible. Simplemente le permite trabajar mejor en una tarea concreta porque dispone de instrucciones, herramientas o procedimientos más específicos.
Analogía: Un modelo de IA es como un trabajador generalista. Una skill sería una herramienta concreta o una guía de trabajo para una tarea especializada.
1.6 Herramientas de IA en el entorno de desarrollo
Las herramientas de IA para programación pueden integrarse en diferentes lugares del flujo de trabajo del desarrollador.
| Tipo de herramienta | Dónde se utiliza | Uso habitual |
| Chat web | Navegador | Explicaciones, ejemplos, revisión de fragmentos. |
| Asistente en el IDE | Visual Studio Code, IntelliJ IDEA u otro editor. | Autocompletado, explicación de código, sugerencias en contexto. |
| Agente en terminal | Línea de comandos. | Analizar proyectos, editar archivos, ejecutar pruebas. |
| Herramienta conectada a Git | Repositorio local o remoto. | Revisar cambios, ayudar con commits, explicar diferencias. |
La elección de herramienta depende de la tarea. Para una duda conceptual puede bastar un chat. Para modificar un proyecto completo puede ser más útil un agente integrado con los archivos del proyecto.
1.7 Qué puede hacer un agente en un proyecto de programación
Un agente puede ayudar a realizar tareas que implican varios pasos. Por ejemplo, si una aplicación Java no compila, el agente puede revisar el error, localizar el archivo afectado, proponer un cambio y volver a ejecutar la compilación.
Ejemplo de flujo de trabajo:
- El programador describe el problema.
- El agente revisa la estructura del proyecto.
- El agente identifica los archivos relevantes.
- El agente propone una hipótesis sobre el error.
- El agente modifica una parte del código, si tiene permiso.
- El agente ejecuta una prueba o compilación.
- El programador revisa los cambios y decide si los acepta.
Prompt recomendado:
Revisa por qué este proyecto Java no compila.
Antes de modificar archivos:
1. Resume el error principal.
2. Indica qué archivos vas a revisar.
3. Propón el cambio mínimo necesario.
No hagas cambios hasta que los haya revisado.
Control del proceso: El programador debe decidir cuándo el agente puede leer, modificar o ejecutar. No conviene dar permisos amplios sin revisar el plan.
1.8 Riesgos de trabajar con agentes
Los agentes son herramientas potentes, pero tienen riesgos específicos. Al poder actuar sobre archivos reales, sus errores pueden afectar al proyecto.
| Riesgo | Ejemplo | Medida de prevención |
| Cambios excesivos | Modifica muchos archivos cuando solo hacía falta cambiar una línea. | Pedir cambios mínimos y revisar el diff. |
| Pérdida de estilo | Cambia nombres, formato o estructura sin necesidad. | Indicar las normas del proyecto. |
| Errores ocultos | El código compila, pero cambia el comportamiento. | Ejecutar pruebas y comparar resultados. |
| Datos sensibles | Envía claves, tokens o datos privados al modelo. | No compartir secretos ni información personal. |
| Dependencia | El alumno acepta cambios que no entiende. | Exigir explicación y defensa del código. |
Regla profesional: Un cambio que no entiendes es un cambio que todavía no deberías aceptar.
1.9 Buenas prácticas con Git antes de usar agentes
Cuando un agente puede modificar archivos, es recomendable trabajar con control de versiones. Git permite guardar el estado del proyecto y revisar qué ha cambiado.
Antes de pedir cambios a un agente, conviene:
- Tener el proyecto funcionando o, al menos, conocer su estado actual.
- Guardar los cambios propios antes de empezar.
- Hacer commits pequeños y claros.
- Revisar el diff después de cada modificación.
- No aceptar cambios grandes de una sola vez.
- Ejecutar pruebas después de cada cambio importante.
Comandos útiles de Git:
git status
git diff
git add .
git commit -m "Añade validación de edad"
Buena práctica: Si el agente estropea algo, Git permite ver qué cambió y volver a una versión anterior.
1.10 Cómo pedir cambios seguros a un agente
La forma de pedir cambios a un agente debe ser más cuidadosa que en un chatbot, porque el agente puede actuar sobre archivos reales.
Un prompt seguro suele incluir:
- Objetivo concreto.
- Archivos o zona del proyecto que puede tocar.
- Archivos o zonas que no debe modificar.
- Restricción de cambio mínimo.
- Petición de explicación antes o después del cambio.
- Pruebas que debe ejecutar o proponer.
Ejemplo de prompt seguro:
Añade una validación para que la edad no pueda ser negativa.
Restricciones:
- Modifica solo la clase ValidarEdad.java.
- Mantén los nombres actuales de los métodos.
- Haz el cambio mínimo necesario.
- Antes de cambiar nada, explica qué línea modificarías y por qué.
- Después del cambio, propón tres casos de prueba.
Este tipo de prompt reduce la probabilidad de que el agente haga cambios innecesarios o difíciles de revisar.
1.11 Revisión de cambios: el diff
Cuando una herramienta modifica código, no basta con mirar el archivo final. Es importante revisar el diff, es decir, la comparación entre la versión anterior y la versión modificada.
El diff permite ver:
- Qué líneas se han añadido.
- Qué líneas se han eliminado.
- Qué archivos se han modificado.
- Si el cambio es mayor de lo esperado.
Ejemplo simplificado de diff:
- if (edad >= 18) {
+ if (edad != null && edad >= 18) {
System.out.println("Acceso permitido");
}
Pregunta de revisión: ¿El cambio soluciona el problema sin introducir otros nuevos?
1.12 Cuándo no conviene usar un agente
Aunque los agentes pueden ser muy útiles, hay situaciones en las que no conviene utilizarlos o debemos limitar mucho su actuación.
- Cuando el ejercicio busca practicar una técnica básica que el alumno aún no domina.
- Cuando el proyecto contiene claves, contraseñas o datos personales.
- Cuando no existe copia de seguridad o control de versiones.
- Cuando no entendemos los cambios que propone.
- Cuando la tarea requiere una decisión académica o profesional que debe tomar una persona.
En estos casos puede ser mejor pedir una explicación, una pista o una revisión parcial, en lugar de permitir que el agente modifique el proyecto.
Principio final: La IA puede ayudar a programar, pero no debe decidir por nosotros ni asumir la responsabilidad del resultado.