OpenAI open-source Symphony, orquestra Codex via Linear
OpenAI abriu o Symphony, um spec aberto para orquestrar agentes Codex a partir de tarefas no Linear, conectando repositório, workflow e automação com controles práticos
Danilo Gato
Autor
Introdução
OpenAI open-source Codex orchestration Symphony chegou como um spec aberto que transforma tarefas do Linear em execuções autônomas de agentes Codex, com workspaces isolados, configuração versionada e um protocolo claro de interação via app-server. Na prática, a palavra-chave OpenAI open-source Codex orchestration Symphony resume um movimento de padronização, menos scripts ad hoc e mais previsibilidade operacional.
A proposta ataca um gargalo recorrente, orquestrar várias sessões de coding agents em paralelo sem sobrecarregar pessoas com janelas, prompts e aprovações dispersas. Em vez de gerenciar sessão por sessão, o fluxo passa a gerir trabalho, o que aproxima agentes da cadência real de um time de engenharia. O post oficial descreve Symphony como uma camada mínima de orquestração, referência para conectar Codex ao Linear, sem ambição de virar produto fechado, o que reforça a intenção de comunidade e portabilidade.
O artigo aprofunda os componentes do spec, o papel do Codex App Server e do Linear, além de cases e variações que já surgiram na comunidade, incluindo implementações que trocam o modelo ou o runtime mantendo a mesma orquestração.
O que é o Symphony e por que orquestrar agentes via tarefas
Symphony é um serviço de automação de longa execução, lê tarefas no issue tracker, cria um workspace por tarefa e dispara uma sessão de agente de código dentro desse ambiente. O objetivo é tornar a execução de tickets reprodutível, com isolamento e observabilidade suficientes para operar múltiplos runs em paralelo. O spec deixa claro que Symphony é um scheduler e um leitor de tracker, enquanto transições de ticket e comentários ficam com o agente via ferramentas do runtime.
Quatro problemas operacionais são alvo direto: converter execução manual em daemon confiável, isolar comandos por workspace de ticket, manter política de workflow versionada no repositório e oferecer visibilidade mínima de execução. Isso muda o foco de supervisionar prompts para supervisionar filas de trabalho e critérios de handoff, como ir até Human Review antes de Done.
No post oficial, os autores explicam que a equipe decidiu construir um repositório com zero código humano, todo gerado por Codex, e que o Symphony amadureceu como a cola entre Linear e Codex App Server. O texto também posiciona Symphony como referência, não produto, e recomenda apontar seu agente preferido para o spec e o repositório, reforçando a ideia de ecossistema aberto.
Componentes do spec e arquitetura prática
O SPEC detalha camadas e responsabilidades. Há um Workflow Loader que lê o WORKFLOW.md, um Config Layer que tipa e valida parâmetros, um Issue Tracker Client que normaliza o payload do Linear, um Orchestrator que decide despacho e controle de concorrência, um Workspace Manager que mapeia diretórios por issue, um Agent Runner que inicia o cliente do app-server e uma superfície opcional de status. Esse particionamento facilita portar a orquestração sem acoplar ao runtime de agente.
Além das camadas, o modelo de dados normaliza entidades como Issue com id estável, chave humana do ticket, título, descrição e prioridade. O orchestrator mantém estado de runtime em memória, usa backoff exponencial para falhas transitórias e prevê restart sem banco persistente, com recuperação orientada por filesystem e tracker. São decisões que favorecem simplicidade operacional sem perder robustez.
A especificação também define limites, sem prescrever UI rica ou um motor geral de workflows. O ponto é ser um scheduler especializado, com política definida no repositório e integração clara ao tracker e ao runtime do agente, evitando que a orquestração vire um novo monólito.
![Código em tela de notebook, representando automação de tarefas]
Codex App Server, o protocolo que sustenta a orquestração
Se Symphony é a batuta, o Codex App Server é o canal de comunicação entre a orquestração e o agente. O app-server fornece um protocolo JSON-RPC bidirecional, por stdio ou WebSocket experimental, com métodos como initialize, thread/start e turn/start. Ele também expõe mecanismos de aprovação e suporte a dynamic tools, essenciais para rodar agentes em ambientes com políticas de segurança. A documentação oficial descreve os transports, autenticação para WebSocket e exemplos de handshake com JSON por linha.
No blog do Symphony, os autores destacam que o app-server é mais conveniente e escalável do que tentar dirigir o Codex via CLI ou sessões tmux, além de ser bem documentado. O spec recomenda parâmetros como approvalPolicy, cwd e sandboxPolicy por mensagem, e mostra um transcript de inicialização com initialize, initialized, thread/start e turn/start. Isso resolve o ponto mais sensível de orquestração, padronizar a conversa entre daemon e agente.
Essa separação permite que a comunidade substitua o executor mantendo a mesma orquestração. Já há forks e ports trocando o runtime de agente, alguns inclusive apontando para modelos alternativos, mas preservando o ciclo poll, dispatch e execute definido pelo Symphony.
Linear como fonte de trabalho, GraphQL como coluna vertebral
O spec publica um contrato de integração com trackers e implementa Linear como referência. Na prática, Symphony vigia estados no Linear, decide elegibilidade de issues e cria um workspace isolado por ticket. O Linear expõe uma API GraphQL estável, com endpoint padronizado, o que facilita normalizar entidades e estados para o orchestrator. Essa escolha ajuda a manter o pipeline determinístico e auditar decisões.
Para times que já usam Linear como centro de planejamento, o Symphony vira um plano de controle natural para agentes. Inclusive, o ecossistema do ChatGPT já oferece um conector com sync para referenciar issues e discussões, reforçando o caminho de integração oficial no lado da OpenAI. O post do Symphony cita que a abertura do projeto provocou interesse explícito da comunidade Linear, com destaque para picos de novas workspaces reportados publicamente.
Em termos práticos, basta configurar o token do Linear, definir estados que disparam execução, e deixar a orquestração seguir. Estados intermediários como Agent Review e Human Review aparecem com frequência nas implementações de comunidade, posicionando o humano como aprovador final ou resolvedor de bloqueios de contexto.
Como aplicar Symphony em times reais, de MVP a escala
O caminho mínimo viável começa no repositório. Coloque um WORKFLOW.md com front matter YAML descrevendo políticas de execução e um prompt de agente alinhado ao seu padrão de PR, testes e cobertura. Em seguida, conecte o Linear com estados simples, por exemplo, Todo, In Progress, Human Review. O Symphony cuida do loop de polling, despacho com concorrência limitada e retry com backoff.
No lado do agente, use o Codex App Server em stdio, mais robusto para orquestração local e em CI. Configure políticas de aprovação coerentes com o seu risco, bloqueando comandos destrutivos por padrão, e exponha ferramentas com cuidado, por exemplo, git, linters e um executor de testes. O app-server já define como responder a prompts de aprovação e, em WebSocket, oferece controles de autenticação para ambientes remotos.
Equipes que sentiram fricção inicial de setup reportaram skills e bootstraps feitos sob medida para acelerar a adoção, inclusive templates que inicializam um repo com Linear, Symphony e um conjunto de ferramentas. Esses relatos mostram que o padrão de orquestração é estável, enquanto a ergonomia de setup ainda é um alvo de otimização pela comunidade.
![Tela com código colorido e sintaxe em destaque]
Casos reais e variações da comunidade
Depois da abertura, surgiram ports que mantêm o spec do Symphony e trocam o runtime do agente. Um exemplo é a linha de projetos que replicam a orquestração com Claude Code, criando um pipeline do tipo ticket para PR, com estados e comentários no Linear, e revisão humana antes do merge. Outros relatos mostram dashboards em TUI, além de implementações em Rust e Python que seguem a mesma semântica de poll, dispatch e execute. O fato de o spec ser linguagem agnóstica ajudou a disparar essas experiências.
Discussões em comunidades de desenvolvedores reforçam a visão de que, para tirar mais valor de coding agents, vale parar de microgerenciar sessões e passar a gerenciar trabalho, metas e políticas. O Symphony encaixa nessa mudança de mentalidade, com prova de trabalho verificável, CI passando e walkthroughs antes do merge, sempre que possível definido na política do repositório.
Também já apareceu uma análise independente com o mesmo espírito, sugerindo que o gargalo em engenharia está migrando da execução para contexto compartilhado. Isso explica o apelo de um orquestrador que trata o tracker como plano de controle, em vez de tentar embutir toda a lógica na camada do agente.
Riscos, limites e boas práticas operacionais
Como todo sistema de agentes com poder de escrita, a superfície de risco depende de sandbox, aprovações e escopo de ferramentas. O app-server do Codex já prevê prompts de aprovação para comandos e alterações de arquivo, e permite políticas de sessão e por destino de rede. Equipes devem definir uma aprovação padrão alinhada ao ambiente, proteger tokens e revisar logs com frequência. Quando usar WebSocket, configure autenticação por bearer assinado ou capability token, nunca exponha listeners sem controle.
O Symphony não traz UI rica, banco de estado persistente ou políticas universais. Esses são trade-offs conscientes para manter o spec simples e portátil. Se a sua operação exige governança mais pesada, dá para estender com dashboards, bases de execução e políticas internas mais restritivas, desde que o contrato do spec e do app-server seja respeitado.
Por fim, o Linear é o backend de referência, mas o spec isola a integração em um adapter. Há relatos explorando Jira ou GitHub Issues, porém é prudente tratar essas variações como experimentais até que existam implementações maduras e documentadas. O importante é manter a semântica estável de elegibilidade, despacho, isolamento e handoff, para que o agente possa operar com previsibilidade.
Como começar do zero, passo a passo sugerido
- Preparar o repositório. Adicionar WORKFLOW.md com YAML front matter para configurar concorrência, política de aprovação e ganchos de workspace. Definir o prompt do agente com expectativas de PR, testes e estilo de commit.
- Conectar o Linear. Criar label ou estado que dispare execução, gerar um token de API e limitar escopos mínimos. Adotar convenções de título para o agente preencher automaticamente.
- Subir o agente. Executar o Codex App Server por stdio, criar cliente que envia initialize, thread/start e turn/start. Habilitar logs estruturados e armazenar artefatos por workspace.
- Definir qualidade. Acionar CI por PR, exigir testes e checklists automáticos, e usar Human Review como handoff padrão. Expandir ferramentas com cautela, começando por linters e testes.
- Escalar com segurança. Adicionar limites de concorrência no orchestrator, backoff exponencial e rotinas de limpeza de workspace. Monitorar aprovações de rede e mudanças de arquivo.
Reflexões e insights
A padronização proposta pelo OpenAI open-source Codex orchestration Symphony muda o jogo por dois motivos. Primeiro, desloca a complexidade para um contrato estável, que as equipes podem versionar, auditar e testar como qualquer outro artefato de engenharia. Segundo, cria um trilho para que diferentes runtimes e modelos se conectem sem reinventar a orquestração a cada projeto. Essa combinação tende a acelerar aprendizados entre empresas e comunidades.
Outro ponto interessante é a forma como o app-server transforma o agente em um serviço acoplável. Ao invés de scripts frágeis, há chamadas JSON-RPC previsíveis, com aprovação, eventos e controles de transporte. Isso aproxima agentes da infraestrutura moderna, com padrões de observabilidade e segurança que times já conhecem.
Conclusão
O OpenAI open-source Codex orchestration Symphony posiciona agentes como parte nativa do ciclo de engenharia. Com tracker como fonte de verdade, workspace por issue e app-server como contrato, o fluxo vira gerenciável e testável. O resultado esperado não é magia, é redução do custo de supervisão e aumento da previsibilidade. A abertura do spec indica que a orquestração deve permanecer simples e interoperável, enquanto a evolução fica com os runtimes de agente e as políticas de cada time.
Para começar, mantenha o MVP enxuto, um repositório com WORKFLOW.md, integração com Linear e Codex App Server em stdio. A partir daí, adicione camadas de qualidade e segurança conforme o contexto. O mais promissor desse movimento é a curva de aprendizado entre equipes, motivada por um contrato comum e boas práticas compartilhadas.
