Open Code: Este es Mi setup definitivo (Skills + Comandos + MCPs + Multi Agentes)
¿Qué es Open Code y cómo se compara con Cloud Code?
Introducción a Open Code
- Open Code es una alternativa gratuita a Cloud Code, permitiendo el acceso a modelos más antiguos sin costo.
- El presentador menciona que después de usar Open Code, siente que tiene capacidades similares o incluso superiores a Cloud Code.
Objetivos del Video
- Se abordarán temas como comandos, habilidades (skills), agentes y la ejecución de múltiples agentes en paralelo.
- También se discutirá cómo conectar MCPs (Modelos de Comportamiento Predictivo) a Open Code.
Características de Open Code
- La página oficial de OpenCode (opencode.aiai) está en constante actualización y ofrece una versión de escritorio recientemente lanzada para Windows.
- Se destaca que la herramienta es un proyecto activo con constantes mejoras y actualizaciones.
Instalación y Configuración Inicial
Proceso de Instalación
- El primer paso es instalar Open Code utilizando npm; el presentador opta por esta opción debido a su disponibilidad.
- Durante la instalación, se menciona un error relacionado con directorios existentes, indicando que ya tenía instalado Open Code previamente.
Uso Inicial
- Una vez instalado, se abre Open Code en la consola. El presentador muestra cómo arrastrar elementos para facilitar el uso.
- La interfaz permite tener un chat o asistente al lado izquierdo y el sistema de archivos al derecho, optimizando el espacio para trabajar.
Acceso a Modelos en Open Code
Selección de Modelos
- Al iniciar, los usuarios tienen acceso al modelo GPT 5.2 Codex tras ingresar sus credenciales de Open AI.
- Aunque hay modelos pagos disponibles, siempre habrá opciones gratuitas para comenzar a trabajar sin necesidad inmediata de una clave API.
Introducción a Open Code y Conectores
Acceso y Proveedores
- Se menciona que los modelos de Open Code son entrenados y pueden ser utilizados temporalmente, permitiendo cambiar entre diferentes agentes o servicios.
- Se presenta una lista de proveedores populares como Open AI, Copilot, Open Code Go, Antropic y Google para Gemini, así como una extensa lista de otros modelos disponibles.
- Al acceder a la sección de "models", se puede ver un desglose de los modelos gratuitos y sus versiones actuales. Por ejemplo, Big Pickle es el modelo por defecto en la última versión.
Configuración del Proveedor
- Para cambiar el modelo dentro del conector de Open AI, se debe seleccionar otro modelo desde la sección "models".
- Se introduce Open Code Sen como un proveedor recomendado que ofrece una lista curada de modelos optimizados para su uso.
Funcionalidad de Open Code Sen
- SEN funciona como cualquier otro proveedor; requiere autenticación para comenzar a usarlo. Ofrece ejemplos prácticos sobre cómo utilizarlo.
- Se compara SEN con Open Router, destacando que permite gestionar múltiples cuentas y pagar solo una vez mientras se cambian entre diferentes modelos según las necesidades.
Pruebas y Costos
- SEN asegura que los usuarios siempre utilicen la mejor versión del modelo disponible tras realizar pruebas y optimizaciones.
- La suscripción a SEN cuesta $10 al mes e incluye acceso a varios modelos destacados como Kimi, GLM y Minimx.
Seguimiento del Uso
- Los usuarios deben generar una API Key para utilizarla dentro de Open Code. Esta clave permitirá hacer un seguimiento detallado del costo asociado a cada modelo utilizado.
- Aunque el uso de SEN es opcional, se invita a los interesados a dejar comentarios si desean ver comparaciones con otros modelos como Codex o Antropic.
Agentes en Open Code
Tipos de Agentes Disponibles
- En el sistema hay dos tipos principales de agentes: Plan (solo lectura sin cambios implementables) y Build (que implementa cambios).
Funciones del Agente Plan
- El agente Plan permite planificar cambios paso a paso antes de su implementación final, facilitando la revisión por parte del usuario.
Funciones del Agente Build
¿Cómo utilizar Open Code para crear un sitio web?
Configuración de Agentes y Variantes
- Se puede agregar agentes personalizados y seleccionar cuál usar mediante la tecla Tab. Las variantes del modelo se pueden cambiar con Control + T, permitiendo ajustar el nivel de razonamiento (mínimo, bajo, medio, alto).
- Cada modelo tiene sus propias variantes que afectan el esfuerzo de razonamiento. Es posible establecer un razonamiento alto por defecto si así se desea.
Personalización del Tema
- La opción de cambiar el tema está disponible en la barra "Themes". Se pueden elegir temas familiares como Drácula o los que están disponibles en Visual Studio Code.
Creación del Proyecto
- Para iniciar un proyecto, se establece en modo plan y se solicita la creación de un sitio web en NextJS para una barbería, incluyendo funcionalidades como reservas de citas.
- Se muestra información sobre el uso de tokens y costos asociados al uso del servicio. La suscripción a GPT permite ver estos detalles sin costo adicional.
Implementación y Resultados
- Al pasar al modo build, se solicita implementar el plan creado previamente. El sistema pregunta sobre la configuración deseada (app router).
- Después de completar la implementación, se presenta un resumen similar a Cloud Code. La legibilidad es buena y resulta familiar para quienes usan Cloud Code.
Evaluación del Resultado
- Se ejecuta el comando
npm randevpara verificar lo creado por GPT Codex. El resultado incluye servicios de reserva y una galería, aunque faltan imágenes.
- A pesar de no ser perfecto, el resultado es interesante considerando que fue generado en una sola ejecución sin prompts adicionales previos.
Uso del Comando Init
- El comando
initcrea un archivoagents.m, similar alcloud.md, que contiene información básica sobre el repositorio utilizado por LLM (modelo de lenguaje).
- Un crítico menciona que estos archivos pueden generar ruido si contienen información genérica sobre tecnologías marginales utilizadas en la aplicación.
Reflexiones sobre Contexto y Mantenimiento
- Aunque hay críticas sobre los archivos generados por init, su utilidad radica en proporcionar contexto general cada vez que se utiliza un prompt con LLM.
- Es importante mantener limpio el repositorio para asegurar que solo se incluya lo necesario como contexto principal para LLM; menos es más en este caso.
- Se recomienda seguir utilizando estos archivos a pesar de las dudas planteadas; son útiles para tener una visión general condensada del repositorio.
¿Cómo utilizar Open Code y sus comandos?
Contexto de Open Code
- Se establece que el contexto es fundamental para el modelo de lenguaje (LM), ya que influye en cómo interactúa con los prompts. Este contexto se configura inicialmente con habilidades, agentes, etc.
Retomar Sesiones
- Al cerrar y volver a abrir Open Code, se puede continuar una sesión anterior. El sistema proporciona un ID y nombre de la sesión para facilitar su reanudación.
- También se puede acceder a todas las conversaciones pasadas mediante la opción "session", permitiendo retomar cualquier punto anterior.
Comandos en Open Code
- Los comandos son esenciales para navegar en Open Code. Por ejemplo, el comando "thinking" permite alternar entre mostrar o esconder el proceso de razonamiento del LLM.
- Otros comandos útiles incluyen "undo" para deshacer mensajes y "time stamps" para mostrar u ocultar marcas de tiempo en los prompts.
Navegación Avanzada
- Con el comando "timeline", se puede regresar a cualquier mensaje previo dentro de una conversación larga, facilitando la revisión rápida de interacciones anteriores.
- Además, hay opciones como renombrar sesiones o compartirlas mediante URLs generadas automáticamente.
Creación y Configuración de Comandos
- Un comando define qué acción realizar; está compuesto por tres pilares: el comando mismo (qué hacer), el agente (quién lo hace), y la habilidad (conocimiento accesible).
- La estructura del comando es un archivo MD que incluye detalles sobre el agente, modelo utilizado y prompt específico. Esto permite configuraciones personalizadas según necesidades específicas.
Ejemplo Práctico
- Se menciona un ejemplo donde se le pide al LM leer un artículo sobre mejores prácticas en prompting para crear un nuevo comando optimizador.
- El resultado es la creación exitosa del comando dentro del directorio correspondiente en Open Code, demostrando la funcionalidad práctica del sistema.
¿Cómo configurar y optimizar prompts en Open Code?
Configuración de Prompts
- Se menciona que dentro del archivo
prompt.mdse encuentran comandos y descripciones, así como los requerimientos para el prompt.
- La configuración puede ser por proyecto, usuario o global. Se prefiere la configuración por proyecto para evitar compartir comandos de prueba con otros proyectos.
- El autor comparte su filosofía sobre mantener configuraciones locales hasta estar satisfecho con ellas antes de hacerlas generales.
Proceso de Optimización
- Se explica que después de crear un prompt, es necesario cerrarlo y volver a abrirlo para aplicar cambios.
- Al usar el comando
barra prompt, se busca optimizar un prompt existente para mejorar claridad y control sobre la salida generada.
Resultados de la Optimización
- Se realiza una prueba con un prompt genérico, solicitando mejoras sin cambiar nada. Esto permite observar cómo el sistema mejora el input original.
- El resultado muestra un nuevo prompt mejorado que puede ser copiado y utilizado directamente.
Funcionalidades Adicionales
- Aparece un popup al hacer clic en el prompt enviado, permitiendo copiarlo, revertir cambios o crear una nueva sesión (fork).
- La opción de revertir cambios es destacada como crucial para evitar errores acumulativos durante pruebas.
¿Qué son los Skills en Open Code?
Definición y Propósito
- Un skill se define como una base de datos o directorio de conocimiento que se proporciona al LLM (modelo de lenguaje grande), permitiendo realizar tareas específicas con mayor contexto.
Ejemplos Prácticos
- Los skills pueden incluir ejemplos prácticos además del conocimiento teórico, lo cual ayuda a guiar al LLM en tareas específicas basadas en patrones establecidos.
Evolución y Relevancia
- Los skills han evolucionado recientemente, comenzando su implementación en plataformas como Antropic. Su uso permite enriquecer las interacciones con el modelo mediante contextos más precisos.
Introducción a Skills.sh y su Utilidad
Protocolo MCP y Skills.sh
- Se menciona el protocolo MCP y la plataforma Skills.sh, creada por Versel, que permite acceder a bases de datos de conocimiento confiables sobre prácticas en programación.
Mejores Prácticas en React
- Las mejores prácticas de React son proporcionadas por Vel, permitiendo a los usuarios importar estas prácticas a sus repositorios para mejorar el uso de React en sus proyectos.
Base de Datos y Migraciones
- Se discute la importancia de verificar el autor al buscar habilidades relacionadas con bases de datos. Un ejemplo es PlanetScale, una empresa consolidada que ofrece conocimientos valiosos.
Desventajas Potenciales
- Se plantea la preocupación sobre la homogeneización del código debido al uso generalizado de las mismas prácticas provenientes de autores reconocidos, lo que podría reducir la diversidad en los enfoques.
Creación de Habilidades Propias
- A pesar del riesgo de homogeneización, se enfatiza que es posible crear habilidades personalizadas para cada repositorio o empresa, lo cual puede diferenciarse significativamente.
Instalación y Uso del Skill Find
Funcionalidad del Skill Find
- El skill "Find Skills" creado por Versel permite instalar habilidades directamente desde la línea de comandos (CLI), facilitando el acceso sin necesidad de visitar la página web.
Ejemplo Práctico: Frontend Design
- Se realiza una prueba instalando un skill llamado "frontend design" desarrollado por Antropic, destacando su popularidad con 100,000 descargas.
Scripts Incluidos en los Skills
- Los skills pueden incluir scripts que permiten ejecutar comandos específicos además de seguir ejemplos. Esto proporciona una funcionalidad adicional similar a tener integraciones directas con aplicaciones externas.
Proceso de Instalación Detallado
Preguntas Durante la Instalación
- Al iniciar la instalación del skill, se presentan preguntas sobre dónde se desea instalarlo y qué agentes utilizar. Esto incluye opciones como Open Code y otros directorios relevantes.
Flexibilidad en Directorios
- La capacidad del sistema para leer desde diferentes directorios (como .open code o .agents) facilita encontrar e instalar skills sin restricciones estrictas sobre su ubicación.
Opciones Avanzadas: Sim Link vs Copia Independiente
- Se discuten las opciones entre usar enlaces simbólicos (sim link), que evitan duplicar archivos innecesariamente, frente a copiar archivos independientes para facilitar futuras limpiezas.
Con esta estructura detallada se busca proporcionar un resumen claro y accesible sobre las funcionalidades y consideraciones importantes al utilizar Skills.sh dentro del contexto presentado.
Integración de Skills en Open Code
Configuración Inicial
- Se menciona que la integración de skills en Open Code tiene objetivos pedagógicos, lo que sugiere un enfoque educativo en el uso de estas herramientas.
- Se discute la importancia del "design thinking" y otros elementos clave para asegurar que los skills sean efectivos y visibles dentro del sistema.
Uso de Skills
- Para que los cambios realizados en los skills tengan efecto, es necesario reiniciar Open Code. Esto se aplica también a otras plataformas como Cloud.
- El proceso para utilizar un skill implica seleccionarlo desde el menú y ejecutarlo, similar a escribir un comando específico.
Introducción a MCPs
- Se presenta el concepto de MCP (Módulos de Control de Pruebas), destacando su capacidad para automatizar pruebas en aplicaciones o sistemas.
- Para comenzar a usar MCP, se debe crear una cuenta gratuita y obtener una API key, lo cual es esencial para la instalación.
Proceso de Instalación
- La instalación se puede realizar siguiendo instrucciones específicas proporcionadas al generar la API key. También hay recursos adicionales disponibles para guiar el proceso.
- Se explica cómo crear un archivo específico en Open Code para habilitar los MCP, enfatizando la flexibilidad del sistema al permitir configuraciones a diferentes niveles (proyecto, usuario o global).
Comparación y Adaptación
- Al definir MCP Servers, se deben seguir ejemplos específicos adaptados a las necesidades del proyecto. La documentación proporciona guías claras sobre cómo proceder.
- Es importante notar las diferencias entre configuraciones locales y remotas; por ejemplo, el tipo local requiere ajustes específicos en comparación con otros entornos.
Ejecución Local
- Se detalla cómo configurar correctamente el entorno local para ejecutar pruebas utilizando comandos adecuados según el sistema operativo utilizado (ejemplo: Windows).
- La configuración final incluye asegurarse de que todos los parámetros estén correctamente definidos antes de proceder con la ejecución.
Conclusión sobre Integraciones
- Resalta la simplicidad del proceso si se siguen las instrucciones adecuadas; sin embargo, es crucial entender cada paso para evitar errores durante la instalación o ejecución.
- Finalmente, se enfatiza que tener acceso a ejemplos claros facilita enormemente la integración efectiva de cualquier MCP deseado.
Documentación y Configuración de Test Sprite
Introducción a Test Sprite
- Se menciona la importancia de la documentación de Cloud Code y cómo se combinan formatos para facilitar el uso de Test Sprite.
- Se establece conexión con Test Sprite, destacando que el primer objetivo es autenticar y comenzar a trabajar en el proyecto.
Configuración Inicial
- La configuración inicial requiere especificar si el test será de backend o frontend, así como definir el alcance del código a probar.
- Se indica que no hay login en la aplicación (barbería), por lo que se deja vacío ese campo. El puerto por defecto es 3000.
Creación del Archivo PRD
- Se crea un archivo MD (PRD) que detalla las características de la aplicación y qué aspectos deben ser testeados.
- Este archivo ayuda a Test Sprite a entender cómo proceder con las pruebas, asegurando una correcta estandarización.
Proceso de Testing
- Una vez configurado, Test Sprite comienza a generar un plan de testing en la carpeta designada.
- Durante el proceso, se puede seguir el progreso mediante una barra que muestra el porcentaje completado de los casos de prueba.
Resultados y Modificaciones
- Los resultados muestran los pasos seguidos durante cada prueba, permitiendo ver grabaciones breves del proceso realizado.
- Es posible modificar los pasos del test sobre la marcha si se considera necesario, lo cual añade flexibilidad al proceso.
Integración con GitHub
- Se destaca una integración interesante con GitHub que permite ejecutar tests automáticamente en cada pull request, proporcionando feedback inmediato sobre los cambios realizados.
- Esta funcionalidad beneficia tanto a desarrolladores independientes como a pequeñas empresas al profesionalizar su pipeline y mejorar la experiencia general.
Oportunidades Adicionales
- Se menciona un hackatón organizado por Test Sprite con premios significativos para fomentar la participación e innovación entre desarrolladores.
¿Cómo crear y testear un proyecto con Test Sprite?
Introducción a Test Sprite
- Se presenta la herramienta Test Sprite, que permite crear y testear proyectos. Los usuarios pueden subir su repositorio de GitHub y compartirlo en Discord para participar en una hackatón.
- La herramienta es gratuita y ofrece créditos para probarla, lo que facilita a los usuarios experimentar antes de decidir si les gusta.
Conceptos de Agentes en Open Code
- Se introduce el concepto de agentes, que son responsables de realizar cambios. Se define el comando como la acción a ejecutar, el skill como el conocimiento necesario, y la gente como quienes ejecutan las acciones.
- Existen dos tipos de agentes: primarios (asistentes principales) y subagentes (asistentes especializados). Los primarios se invocan usando la tecla tab.
Tipos de Agentes
- Los agentes primarios incluyen "build" y "plan", mientras que los subagentes son invocados por los primarios para tareas específicas.
- La ingeniería del prompt se menciona como clave para optimizar resultados; se sugiere dar roles específicos a los subagentes según sus especialidades.
Subagentes en Open Code
- Open Code incluye dos subagentes: "general" (con acceso total para modificar archivos) y "explore" (solo lectura, útil para explorar repositorios).
- El subagente general puede hacer cambios necesarios, mientras que explore ayuda a encontrar archivos o responder preguntas sobre el código sin modificarlo.
Creación de Agentes Personalizados
- Se explica cómo crear nuevos agentes personalizados dentro del directorio Open Code. Ejemplos incluyen un agente de documentación y un auditor de seguridad.
- Al crear un nuevo agente, se debe especificar su ubicación dentro del sistema. Esto permite al usuario definir claramente qué rol desempeñará cada agente creado.
Auditoría con Subagente
- Un ejemplo práctico muestra cómo solicitar una auditoría al subagente Security Auditor, quien identifica vulnerabilidades críticas en el código.
- El agente primario puede invocar al auditor cuando sea necesario, permitiendo una gestión más eficiente de las tareas relacionadas con la seguridad del código.
Creación Alternativa de Agentes
- Se presenta otra forma de crear agentes mediante comandos en terminales externas a Open Code. Este método permite establecer descripciones detalladas sobre las funciones del nuevo agente.
- Al finalizar la creación del nuevo agente especializado en documentación, este queda listo para ser utilizado junto con otros agentes ya existentes.
Implementación de Agentes en Documentación y Seguridad
Creación de un nuevo agente
- Se establece la creación de un nuevo agente especializado en documentación, que incluye aspectos como la arquitectura y las vulnerabilidades de seguridad a corregir.
Organización del repositorio
- Se crea un nuevo directorio llamado "doc" donde se documenta la arquitectura y los aspectos de seguridad, demostrando el funcionamiento del agente primario.
Estructura del sistema
- El repositorio contiene varios elementos: un archivo
agents.mque ofrece una visión general, comandos para mejorar prompts, habilidades para desarrollo frontend y subagentes especializados en auditoría de seguridad.
Optimización del uso de tokens
- La configuración busca ser eficiente en el uso de tokens al optimizar los prompts y contextos para obtener respuestas más precisas sin incurrir en costos adicionales.
Automatización en la invocación de subagentes
- Se propone actualizar el archivo
agents.mpara permitir que el agente principal invoque automáticamente subagentes según sea necesario, mejorando así la eficiencia operativa.