OpenAI Symphony

Source

  • Blog post: https://openai.com/index/open-source-codex-orchestration-symphony/
  • GitHub: https://github.com/openai/symphony

Type

orchestration-spec

What it is

Especificación open-source para orquestar agentes de código Codex a nivel de proyecto. Symphony convierte el trabajo en ejecuciones autónomas aisladas, permitiendo a equipos gestionar trabajo en lugar de supervisar agentes. Licencia Apache 2.0, implementado principalmente en Elixir, con implementaciones alternativas en Go, Python y otros lenguajes por la comunidad.

Key Points

  • El problema original: context switching. Cada ingeniero podía gestionar cómodamente 3-5 sesiones de Codex en paralelo; más allá, la productividad caía. Tenían «un equipo de ingenieros junior extremadamente capaces» siendo micromanejados por ingenieros humanos.
  • Métrica de impacto: +500% en PRs merged en algunas equipes de OpenAI en las primeras tres semanas.
  • Arquitectura de 6 componentes: Workflow Loader, Config Layer, Issue Tracker Client, Orchestrator, Workspace Manager, Agent Runner. Capa opcional de Status Surface para observabilidad.
  • WORKFLOW.md: El workflow se define en un archivo versionado en el repo (`WORKFLOW.md`), permitiendo que equipos controlen el prompt del agente y configuración runtime junto con su código.
  • Aislamiento por issue: Cada issue tiene su propio workspace en disco, evitando que comandos de un agente afecten a código fuera de su scope.
  • Objetivos > transiciones rígidas: «Damos a los agentes herramientas y contexto y les dejamos cocinar» — en vez de prescribir pasos, se asignan objetivos como haría un buen manager.
  • Los agentes también crean trabajo: Durante implementación o review, los agentes frecuentemente detectan mejoras y crean nuevos issues que otros agentes pueden recoger.
  • Trabajo especulativo de coste casi cero: Filing tickets para explorar ideas, prototypear o testear hipótesis — si el agente falla, el coste es casi nulo.
  • No solo código: Algunos issues son investigación o análisis puro que nunca tocan el codebase.
  • CI automation: Symphony vigila CI, hace rebase, resuelve conflictos, reintenta checks flaky, y guía los cambios por el pipeline.
  • Perfiles no-técnicos pueden iniciar trabajo: PMs y diseñadores pueden filing requests directamente desde Linear sin necesidad de checkout del repo.
  • Concurrencia limitada: Ejecuta múltiples agentes concurrentes con límites configurables y backoff exponencial para reintentos.
  • Codex App Server mode: Usa el API JSON-RPC de Codex en modo headless, con `linear_graphql` como tool dinámica para queries Linear sin exponer tokens.
  • Referencia oficial: Implementación en Elixir (~15,700 estrellas en GitHub). Contrabass (Go, 1,300+ estrellas) ofrece TUI y dashboard web. Existen implementaciones en Python, Rust, Java y otros lenguajes.
  • Cómo empezó: v1 era solo una sesión Codex en tmux haciendo poll a Linear y spawneando sub-agentes. Funcionaba pero no era fiable. La referencia es Elixir por sus primitivas de concurrencia/supervisión.
  • Auto-construcción: Usaron Symphony para construir Symphony — el segundo día del proyecto ya lo estaban usando para tareas internas.

Why it matters

OpenAI publica la especificación interna que usa para coordinar agentes Codex en producción. El dato de +500% PRs landed en algunas equipes es una métrica concreta de impacto. El patrón clave: pasar de supervisar sesiones a gestionar trabajo — los ingenieros se concentran en problemas ambiguos y difíciles mientras Symphony maneja la implementación rutinaria. La comunidad ya ha creado múltiples implementaciones (Go, Rust, Python, Java), indicando que el patrón tiene demanda real.

Limitations

  • La referencia oficial es Elixir — barrera de entrada para equipos sin experiencia en el ecosistema.
  • Requiere issue tracker compatible (Linear en la spec, pero adaptable a otros).
  • Symphony es un scheduler/runner, no un sistema de aprobación o sandboxing — la seguridad depende de la configuración del entorno.
  • Documentado como «engineering preview» — no garantiza estabilidad para producción sin evaluación.

Notes

Es un anuncio de especificación + referencia, no de un producto. La propuesta de valor principal es el patrón open-source: cualquier equipo puede implementar la spec en el lenguaje de su elección. Ver también Contrabass (Go) como alternativa más accesible.

Scroll al inicio