Curso de Desarrollo con IA - Día 2 - Programa con agentes sin perder el control

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 help para obtener asistencia.

Conexión y Proveedores de Inteligencia Artificial

  • El comando connect permite 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 models para 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 estatus proporciona información sobre el estado actual del servidor y los plugins activos.
  • El comando sessions permite 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 init genera automáticamente un archivo agents.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 barrainit y barra 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 llamado description.md para 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 clear o compact que 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.
Video description

Si todavía no estás apuntado al Curso Gratis de Desarrollo con IA: Programa con Agentes, déjanos tus datos en este enlace para recibir los apuntes del curso y el acceso al certificado: 👉 https://thebigschool.com/sp/curso-desarrollo-ia-agentes-eg En la clase de hoy vas a: ✔️Montar un entorno de desarrollo con IA en tu IDE para trabajar en Modo Agente, avanzar más rápido y mantener siempre el control de lo que entra en tu proyecto. ✔️Aprender a usar agentes para que la IA no solo te dé snippets sueltos, sino que te ayude a entender, construir, modificar y mejorar partes reales de tu código. ✔️Crear un flujo de trabajo con contexto, reglas y buenas instrucciones para que la IA trabaje de forma más consistente y no tengas que empezar de cero en cada prompt. Prepárate para dominar la IA como desarrollador 🚀