Por qué OpenAI creó Symphony y lo lanzó de forma gratuita

BBetter Stack
Computing/SoftwareManagementInternet Technology

Transcript

00:00:00Este es Symphony de OpenAI, una herramienta de código abierto para orquestar agentes de larga duración usando un
00:00:05rastreador de problemas existente como Linear para ayudar a tu agente a completar tareas de forma autónoma sin ninguna
00:00:10supervisión humana. Pero, ¿por qué un agente no tiene que construirlo desde cero antes de que puedas usarlo?
00:00:14¿Solo es compatible con Codex CLI? ¿Y es este el comienzo de más
00:00:18herramientas de código abierto de OpenAI? Suscríbete y vamos a averiguarlo.
00:00:25Symphony solo existe porque OpenAI se topó con un cuello de botella de atención humana, lo que significa que los ingenieros
00:00:30solo podían supervisar de 3 a 5 sesiones de Codex simultáneamente antes de que el cambio de contexto comenzara
00:00:35a afectar negativamente a la productividad. Esto, por supuesto, no iba a escalar. Así que, ¿adivinen cómo OpenAI solucionó
00:00:41el problema de agentes rápidos y gestores humanos lentos? Se deshicieron de los gestores humanos. Más o menos.
00:00:47Porque con Symphony, los humanos ponen tareas en un tablero, se crea un nuevo agente para completar esa tarea,
00:00:52y el agente solo involucrará al humano si hay algo que revisar.
00:00:55Pero, ¿cómo se compara Symphony con herramientas similares como Multica y Conductor? Bueno,
00:00:58mira la demostración y eso quedará muy claro. Antes de empezar, sin embargo, solo quiero decir
00:01:03que Symphony tiene el proceso de instalación más extraño que he visto en mi vida. O podría ser la
00:01:07forma más ingeniosa de instalar algo. Llegaremos a eso más tarde.
00:01:10Primero, hagamos un ejemplo básico. Tengo a Symphony funcionando,
00:01:14buscando tareas en Linear para trabajar. Y en Linear, voy a crear un nuevo problema,
00:01:18que consistirá en construir una aplicación Hello World usando TypeScript y BUN.
00:01:22Ahora mismo, Symphony no está configurado para trabajar en tareas pendientes. Así que cambiaré el estado a To-Do
00:01:27y pulsaré en Crear Problema. Recuerda el ID de la tarea, que es SYN7.
00:01:31Después de un rato, Symphony detecta el ID de esa tarea. Y unos segundos después,
00:01:36tenemos un error de validación de GraphQL, que no es gran cosa y es muy fácil de corregir para Codex.
00:01:41Pero tras eso, vemos que Codex ha completado el trabajo, ha cambiado el problema
00:01:45de To-Do a Done, y ha dejado un comentario aquí desde Symphony. Lo que significa que si vamos a
00:01:49nuestro directorio de espacios de trabajo de Symphony, hablaremos de eso más tarde, podemos ver que tenemos un nuevo
00:01:53espacio de trabajo con el mismo ID que nuestro problema. Y si entramos en ese espacio de trabajo, tenemos la lista
00:01:58de archivos creados para la aplicación Hello World en TypeScript y BUN. Y si vamos al directorio source,
00:02:04podemos ver que el código de la aplicación está por aquí. Y eso es básicamente Symphony en pocas palabras.
00:02:08Ahora veamos cómo configurarlo. Hay dos formas de instalar Symphony
00:02:12según este repositorio. La opción dos, que es a la que estamos acostumbrados, configuramos Elixir,
00:02:16clonamos el repositorio, luego compilamos el código y lo ejecutamos usando el archivo de flujo de trabajo existente.
00:02:20La opción uno, sin embargo, es posiblemente la forma más extraña o vanguardista de instalar algo.
00:02:25Básicamente le das a tu agente de programación este prompt, y leerá el archivo de especificaciones,
00:02:30que tiene más de 2000 líneas. Pero básicamente le da a tu agente instrucciones
00:02:34detalladas sobre cómo construir Symphony, lo cual es increíble porque si todos siguieran este camino,
00:02:39no habría dos versiones de Symphony iguales. Algunas personas tendrían diferentes funciones en
00:02:43diferentes lenguajes, lo que sería un caos para OpenAI a la hora de mantener y dar soporte.
00:02:47Pero también es un poco genial porque si construyeras tu propia versión de Symphony,
00:02:51te sentirías responsable de ella. Corregirías los errores, añadirías las funciones,
00:02:55y básicamente la mantendrías. Y si no quisieras que Symphony usara Linear o
00:02:59Codex, eso dependería de ti. Alguien construyó una versión en Go de Symphony que se ejecuta en Charm CLI,
00:03:04y otra persona construyó una impulsada por el SDK de Claude. Yo no fui tan creativo,
00:03:09así que puse el prompt predeterminado en Codex usando GPT 5.5 Low Effort, y me dio una versión en Python
00:03:15de Symphony, lo cual tiene sentido porque los LLM son muy buenos en Python. Una vez hecho esto,
00:03:19necesitarás una clave API personal de Linear, que puedes obtener en seguridad y acceso,
00:03:23y puedes crear una haciendo clic aquí. Luego tendrás que añadir esa clave a tu perfil de trabajo,
00:03:28que es un archivo que le dice a Symphony cómo hacer su trabajo, que contiene algo de front matter en YAML,
00:03:32que por supuesto tiene la clave API, estados activos para que el agente sepa cuándo puede trabajar en una tarea,
00:03:37así como la raíz del espacio de trabajo y el comando de Codex, que es el comando de shell que Symphony
00:03:42usa para lanzar un agente de programación. Y debajo de eso está el prompt en markdown enviado al agente
00:03:46para cada problema. Puedes acceder al archivo workflow.md de OpenAI desde su repositorio si te interesa.
00:03:51Pero a día de hoy, este flujo de trabajo no es apto para un proyecto real. Digamos que quisiera hacer cambios en
00:03:56mi aplicación de emulación de película en la que he estado trabajando. Tendría que añadir un gancho create-after, que se ejecuta
00:04:01después de que Symphony crea un espacio de trabajo para un problema, y este gancho primero clonará el repositorio en el
00:04:06directorio del espacio de trabajo, y luego creará una nueva rama en ese repositorio. También he añadido un gancho run-after,
00:04:10que se ejecuta después de que Codex termine de trabajar en el problema. Así que este prepara los archivos, luego
00:04:15crea un nuevo commit antes de subir la rama y crear una nueva pull request con estos valores.
00:04:20Así que ahora si ejecuto Symphony usando UV, que también fue adquirido por OpenAI, pero ese es tema para otro
00:04:25vídeo, está buscando nuevos problemas. Así que ahora si creo un nuevo problema para actualizar el readme, solo en
00:04:30la sección que muestra el procesamiento por lotes, para usar un comodín en lugar de mostrar varios archivos, de nuevo,
00:04:35lo cambiaré de pendiente a to-do, y luego pulsaré en crear problema. Ahora Symphony ha detectado ese
00:04:40problema. Y si miro el directorio de espacios de trabajo de Symphony, vemos que hay una nueva carpeta que coincide
00:04:45con el ID de nuestro problema, que contiene el proyecto clonado. Y ahora que Symphony ha terminado de trabajar en el
00:04:49problema, ha cambiado el estado a hecho y ha creado una nueva PR con un enlace al ticket de Linear
00:04:54y el cambio exacto que solicité. Ahora, por supuesto, podría cambiar mi código de Symphony para añadir una
00:04:59mejor descripción de la PR y poner un enlace a la PR en los comentarios, pero estoy seguro de que eso es muy fácil de
00:05:04hacer para Codex. Así que esa es una visión rápida de Symphony. Si ya te sientes cómodo con Linear o trabajas en una
00:05:08empresa que lo usa, te sentirás como en casa con la interfaz. Y si eres usuario de Codex,
00:05:13puedes usar tus habilidades, herramientas MCP y plugins que ya tengas instalados. Yo personalmente no
00:05:18uso Codex, pero puedo ver claramente la visión que OpenAI buscaba con Symphony. Imagina
00:05:22que tuvieras un equipo de desarrolladores trabajando en el mismo proyecto con IA. En lugar de que cada uno tuviera su
00:05:28propio arnés personal con su propio flujo de trabajo, podría haber un agente central con habilidades centrales,
00:05:33herramientas centrales, flujos de trabajo centrales y plugins. Y cada desarrollador puede comunicarse con eso
00:05:37dándole una tarea y pueden ver en qué están trabajando otros desarrolladores, qué prompts han usado y pueden
00:05:41ver de un vistazo qué otras funciones podrían afectar a la función en la que están trabajando. Aunque
00:05:46es muy difícil idear una función que no toque otra parte del código en la que alguien
00:05:49más esté trabajando. Pero por muy genial que sea Symphony, en mi opinión, Multica hace un mejor trabajo porque es
00:05:54más fácil de configurar, crear y añadir diferentes agentes, e incluso puedes programar tareas. No obstante,
00:05:59veo perfectamente un lugar para Symphony. Es como la versión básica de Multica donde
00:06:04puedes añadir las funciones exactas que quieras en lugar de tener un producto ya construido para ti. Así que piensa
00:06:08en Symphony como el arnés Pi y en otras herramientas como Multica o Conductor como Claude Code. Y si
00:06:13no sabes nada sobre Multica, echa un vistazo a este vídeo, que repasa todo lo que
00:06:18necesitas saber al respecto.

Key Takeaway

Symphony escala la productividad de la IA eliminando la supervisión humana constante mediante la integración de agentes autónomos de Codex con el flujo de trabajo de Linear para resolver tareas de programación.

Highlights

  • OpenAI lanzó Symphony para resolver un cuello de botella donde los ingenieros solo podían supervisar entre 3 y 5 sesiones de Codex simultáneamente.

  • Symphony automatiza la orquestación de agentes de larga duración mediante el uso de rastreadores de problemas como Linear.

  • La herramienta permite una instalación mediante un prompt de 2000 líneas que instruye a un agente de programación para construir el software desde cero.

  • El sistema gestiona tareas autónomas creando un espacio de trabajo con el mismo ID del problema detectado en la plataforma de gestión.

  • Symphony admite ganchos personalizados como create-after y run-after para automatizar la clonación de repositorios y la creación de pull requests.

  • OpenAI adquirió UV, una herramienta utilizada para ejecutar Symphony de manera eficiente en entornos de desarrollo.

Timeline

Origen y propósito de Symphony

  • La saturación de la atención humana limita a los ingenieros a gestionar un máximo de 5 sesiones de agentes a la vez.
  • Symphony funciona como una herramienta de código abierto que orquesta agentes sin intervención humana directa.
  • Los humanos actúan como revisores finales mientras los agentes ejecutan las tareas asignadas en tableros de gestión.

La necesidad de esta herramienta surge cuando el cambio de contexto degrada la productividad de los desarrolladores de OpenAI. El sistema utiliza Linear para asignar tareas y genera un nuevo agente específico para cada problema. Esta estructura permite que el flujo de trabajo escale sin depender de la velocidad de un gestor humano lento.

Ejecución técnica de una tarea autónoma

  • El cambio de estado de una tarea a To-Do en Linear activa automáticamente el escaneo de Symphony.
  • Symphony genera archivos de código completos, como una aplicación Hello World en TypeScript y BUN, basándose en el ID del problema.
  • El agente corrige errores de validación de forma autónoma antes de marcar la tarea como finalizada.

Al detectar el ID de tarea SYN7, el sistema inicia un proceso de validación y corrección de errores mediante Codex. Una vez completado el trabajo, Symphony deja un comentario en la plataforma y organiza los archivos en un directorio local específico. Este espacio de trabajo refleja la estructura exacta del proyecto solicitado sin intervención manual.

Métodos de instalación y personalización extrema

  • Existen dos métodos de instalación: la compilación tradicional con Elixir o el uso de un prompt instructivo para un agente IA.
  • El archivo de especificaciones contiene más de 2000 líneas de instrucciones detalladas para construir la herramienta.
  • La configuración requiere una clave API personal de Linear y un archivo de perfil de trabajo en formato YAML.

El método de instalación mediante prompt permite que cada usuario genere una versión de Symphony adaptada a sus necesidades, como versiones en Python, Go o integraciones con el SDK de Claude. El archivo YAML centraliza los estados activos, los comandos de Codex y el prompt en markdown que guía al agente. Esta flexibilidad fomenta que los usuarios se sientan responsables del mantenimiento y la mejora de su propia instancia.

Automatización de flujos de trabajo profesionales

  • Los ganchos create-after permiten clonar repositorios y crear ramas nuevas automáticamente al iniciar una tarea.
  • El gancho run-after gestiona los commits y la creación de pull requests con enlaces directos al ticket de Linear.
  • Symphony utiliza la herramienta UV para la ejecución y gestión de dependencias en el entorno local.

Para proyectos reales, la herramienta se extiende mediante ganchos que automatizan el ciclo de vida del código. Un ejemplo práctico muestra cómo una solicitud para actualizar un archivo Readme resulta en una pull request terminada con cambios precisos. Esto transforma a Symphony de un simple ejecutor de scripts en un colaborador capaz de gestionar el control de versiones por sí mismo.

Visión estratégica y comparación con alternativas

  • Symphony facilita la colaboración en equipo al centralizar prompts, habilidades y flujos de trabajo en un agente central.
  • La interfaz es familiar para usuarios de Linear y permite el uso de herramientas MCP y plugins existentes de Codex.
  • Herramientas como Multica ofrecen una configuración más sencilla y programación de tareas comparado con la naturaleza básica de Symphony.

La visión de OpenAI es crear un entorno donde múltiples desarrolladores interactúen con una IA centralizada que conoce el contexto global del proyecto. Symphony se posiciona como una base personalizable, similar a un arnés técnico, mientras que competidores como Conductor o Multica se presentan como productos finales más pulidos. Esta arquitectura permite ver en tiempo real cómo las funciones desarrolladas por la IA afectan a otras partes del código.

Community Posts

View all posts