Curso de Desarrollo con IA - Día 2 - Programa con agentes sin perder el control
Introducción al Curso de Desarrollo con IA
Bienvenida y Recordatorios
- Se da la bienvenida a los participantes del curso, agradeciendo su asistencia y feedback del primer día.
- Se recuerda a los nuevos inscritos que deben registrarse para recibir apuntes y certificados, revisando también las carpetas de spam en su correo.
Resumen de la Clase Anterior
- Se enfatiza la importancia de entender los fundamentos de la inteligencia artificial antes de comenzar el desarrollo, para mantener el control sobre el proceso.
- Se discuten diferentes modelos de IA, destacando que no siempre se debe optar por el más caro o avanzado; es crucial elegir según las necesidades específicas.
- La ingeniería de prompts se presenta como un aspecto clave para interactuar efectivamente con modelos LLM (Modelos de Lenguaje Grande).
Herramientas y Modelos en Desarrollo con IA
Agentes y Encuesta
- Se explica qué es un agente en IA y cómo puede iterar sobre sus propios resultados.
- Se menciona una encuesta realizada para conocer qué herramienta desean explorar más durante el curso, siendo Cloud Code la opción más popular.
Alternativas a Cloud Code
- Se plantea una preocupación sobre el costo asociado a Cloud Code, sugiriendo Open Code como una alternativa gratuita.
- Open Code se describe como una herramienta open source similar a Cloud Code que será explorada en detalle.
Enfoque en Open Code y Cloud Code
Objetivos del Día
- El enfoque principal será aprender sobre Open Code y Cloud Code, herramientas estándar utilizadas profesionalmente.
- Se introduce el concepto de "arnés" o "guardarrail", necesario para controlar cómo trabajan los agentes.
Controlando Resultados
- En la primera clase se discutió cómo pedirle a un agente que desarrolle páginas web, pero sin control total sobre los resultados generados.
- Hoy se enseñará cómo controlar esos resultados mediante reglas y otros mecanismos.
Evolución en Edición de Código
Cambios en Editores Modernos
- Los editores modernos basados en IA pueden leer archivos completos dentro de un proyecto, mejorando así su funcionalidad.
- Estos editores son capaces de realizar ediciones multiarchivo, lo cual permite coordinar cambios entre varios archivos simultáneamente.
Capacidades Avanzadas
- Los agentes pueden lanzar comandos, realizar búsquedas e incluso desplegar aplicaciones web completas automáticamente.
Iteración Autónoma y Orquestación
Nuevas Dinámicas en Desarrollo
- La interacción con agentes ha evolucionado hacia una iteración autónoma donde estos pueden autocorregirse hasta llegar a un resultado adecuado.
Rol del Desarrollador
- El desarrollador ahora debe actuar como director del proceso, orquestando las interacciones entre múltiples agentes.
Instalación y Uso Práctico
Selección de Herramientas
- La elección entre Open Code y Cloud Code es fundamental debido a su integración efectiva con entornos terminales profesionales.
Proceso Inicial
- Se recomienda revisar documentación antes de comenzar a trabajar desde la terminal.
Tutorial Práctico: Instalación
Instalación Sencilla
- La instalación requiere solo unos pocos pasos simples utilizando scripts específicos según el sistema operativo.
Recomendaciones Adicionales
- Una recomendación personal incluye usar Warp como terminal por sus características avanzadas e integración con IA.
Definición Detallada: Open Code
Características Clave
- Open Code permite correr bucles agénticos mientras utiliza diferentes modelos disponibles.
- Es importante destacar que esta herramienta es open source lo que permite auditar su funcionamiento.
Introducción a OpenCode y su Dinámica de Trabajo
Comandos Iniciales para OpenCode
- Se presenta la interfaz web de OpenCode, que permite abrir proyectos y trabajar desde un entorno local.
- Aunque existe una interfaz web, se recomienda utilizar la terminal para una experiencia más completa.
- Al cerrar una sesión en OpenCode, se puede recuperar la conversación anterior utilizando un ID específico.
- Se introducen los comandos principales de configuración en OpenCode, comenzando con el comando
helppara obtener asistencia.
Conexión y Proveedores de Inteligencia Artificial
- El comando
connectpermite seleccionar proveedores de inteligencia artificial como OpenAI o Google, facilitando el uso de sus modelos.
- La flexibilidad de OpenCode permite elegir entre múltiples proveedores y modelos, incluyendo opciones gratuitas y open source.
Selección y Configuración de Modelos
Uso del Comando models
- Después de conectar un proveedor, se utiliza el comando
modelspara ver los modelos disponibles según la configuración realizada.
- Los usuarios pueden elegir variantes del modelo basándose en niveles de esfuerzo: bajo, medio o alto.
Comandos Adicionales Importantes
- El comando
estatusproporciona información sobre el estado actual del servidor y los plugins activos.
- El comando
sessionspermite revisar sesiones anteriores mediante identificadores específicos.
Modos Operativos en OpenCode
Cambios entre Modos
- Se puede alternar entre el modo "build" (construir) y "plan" (planificar), lo que afecta cómo interactúa el agente con las tareas asignadas.
Niveles de Esfuerzo
- Utilizando combinaciones como
control + T, se puede ajustar rápidamente el nivel de esfuerzo requerido por el modelo seleccionado.
Concepto de Ingeniería de Arnés
Definición e Importancia
- La ingeniería de arneses busca estructurar cómo interactuamos con agentes inteligentes para obtener resultados más precisos.
Implementación Práctica
- Se introduce el archivo
agents.md, que actúa como un prompt persistente que define las reglas y comportamientos esperados del agente.
Creación y Estructura del Archivo agents.md
Generación Automática
- El comando
initgenera automáticamente un archivoagents.md, estableciendo las reglas básicas del proyecto si no existe uno previamente.
Contenido Recomendado
- Incluir nombre del proyecto y descripción breve.
- Detallar stack tecnológico utilizado.
- Establecer convenciones importantes sobre código y flujo laboral.
Agentes Especializados dentro de Open Code
Diferenciación entre Agentes
- Agente Build: Responde inmediatamente a comandos lanzados por el usuario.
- Agente Plan: Desarrolla un plan detallado antes de ejecutar acciones; ideal para tareas complejas o refactorización.
Este formato proporciona una guía clara sobre los temas tratados en la transcripción, permitiendo al lector navegar fácilmente a través del contenido relevante.
Introducción al Modo Plan y Desarrollo de Proyectos
Definición del Agent y Preparación Inicial
- Se enfatiza la importancia de utilizar un modo plan para iniciar proyectos de manera más estructurada, estableciendo guardarraíles.
- Antes de desarrollar, es crucial definir el agent, especificar el stack tecnológico y los comandos necesarios para el proyecto.
Proceso de Reescritura y Toma de Decisiones
- El proceso incluye una reescritura total con enfoque en simplicidad; se puede optar por confirmar o cancelar decisiones durante la creación del plan.
- A pesar de que el plan inicial es simple, se deben tomar decisiones clave que mejoren la estructura del proyecto.
Fases del Modo Plan
Implementación y Valor Agregado
- La fase final del modo plan permite entender cómo este enfoque aporta más valor comparado con métodos anteriores.
- Se introducen conceptos nuevos como MCP (Model Context Protocol), skills y comandos que guiarán el desarrollo.
Model Context Protocol (MCP)
- El MCP es un estándar open source que facilita la conexión entre agentes y herramientas externas, ampliando así el contexto disponible para los desarrolladores.
- Permite integrar información más allá de lo proporcionado inicialmente mediante archivos de texto.
Ejemplo Práctico del MCP
Conexión a Herramientas Externas
- Al implementar el MCP, se puede conectar un agente a herramientas externas, aumentando significativamente las capacidades contextuales.
- Una vez definido el plan, se puede proceder a su implementación en editores como Visual Studio Code.
Resultados Esperados
- Al confirmar e implementar un plan bien estructurado, se pueden observar resultados inmediatos en la construcción del proyecto.
Mejora Continua en el Desarrollo
Avances en la Estructura del Proyecto
- El agente no solo ejecuta tareas individuales sino que gestiona múltiples tareas secuencialmente para optimizar procesos.
Opciones Adicionales Durante la Construcción
- Se pueden abrir sesiones paralelas mientras se espera que el agente complete sus tareas actuales.
Introducción a Skills y Comandos
Diferenciación entre Skills y MCP
- Las skills son instrucciones personalizadas cargadas dentro del agente, mientras que los MCP son servicios externos utilizados para conectarse a herramientas específicas.
Creación e Instalación de Skills
- Es posible crear habilidades reutilizables mediante definiciones específicas; existen muchas ya disponibles creadas por la comunidad.
Introducción a los Agentes y Comandos
Conceptos Básicos de Agentes
- Los agentes pueden ser configurados con habilidades específicas que el usuario puede definir para su uso.
- Se mencionan comandos como herramientas útiles, ejemplificados por
barrainitybarra new, que permiten ejecutar acciones en el sistema.
Creación de Comandos
- Se explica cómo crear un comando en Visual Studio Code, comenzando por la creación de una carpeta llamada
OpenCode.
- Dentro de esta carpeta, se crea otra llamada
commands, donde se define un archivo llamadodescription.mdpara configurar un nuevo comando.
Ejecución de Comandos
Uso Práctico del Comando
- El comando creado (
barra description) permite listar títulos desde una página web, mostrando cómo los comandos facilitan tareas repetitivas.
- A diferencia de las habilidades, los comandos requieren ser invocados explícitamente por el usuario para ejecutarse.
Gestión de Memoria
Importancia de la Memoria
- La gestión adecuada de la memoria es crucial al trabajar con múltiples acciones y tokens; se debe evitar el descontrol en su uso.
- Se recomienda guardar notas y listas de tareas durante las sesiones para mantener un contexto claro sobre lo realizado.
Buenas Prácticas
- Crear documentación específica para cada tarea ayuda a recordar resultados pasados y facilita futuras referencias. Esto actúa como una "memoria" accesible cuando sea necesario.
Estrategias para Manejar Contexto
Limitaciones del Contexto
- Es importante no saturar la ventana de contexto; si se hace, podría dificultar el rendimiento del agente al manejar información relevante.
Métodos para Optimizar Contexto
- Existen comandos como
clearocompactque ayudan a gestionar la memoria:
- Clear: reinicia la sesión pero pierde gran parte del contexto.
- Compact: resume información manteniendo lo más crítico sin perder todo el contexto anterior.
Control y Responsabilidad en Desarrollo
Mantenimiento del Control
- Es esencial que los desarrolladores mantengan control sobre las interacciones con los agentes mediante guardarraíles (harness engineering). Esto asegura que las acciones sean seguras y efectivas dentro del proceso creativo.
Futuro del Desarrollo con IA
- La próxima clase abordará cómo mejorar aún más este control mediante especificaciones detalladas, permitiendo a los agentes desarrollar código más autónomamente mientras se mantiene supervisión externa adecuada.