Por que a OpenAI criou o Symphony e o liberou de graça

BBetter Stack
컴퓨터/소프트웨어경영/리더십AI/미래기술

Transcript

00:00:00Este é o Symphony da OpenAI, uma ferramenta de código aberto para orquestrar agentes de longa duração usando um
00:00:05rastreador de problemas existente como o Linear para ajudar seu agente a concluir tarefas de forma autônoma sem qualquer
00:00:10supervisão humana. Mas por que um agente não precisa construí-lo do zero antes que você possa usá-lo?
00:00:14Ele suporta apenas a CLI do Codex? E este é o começo de mais
00:00:18ferramentas de código aberto da OpenAI? Inscreva-se e vamos descobrir.
00:00:25O Symphony só existe porque a OpenAI atingiu um gargalo de atenção humana, o que significa que os engenheiros
00:00:30só podiam supervisionar 3 a 5 sessões do Codex simultaneamente antes que a alternância de contexto começasse
00:00:35a afetar negativamente a produtividade. Isso, claro, não iria escalar. Então adivinhe como a OpenAI resolveu
00:00:41o problema de “agentes rápidos, gestores humanos lentos”? Eles se livraram dos gestores humanos. Mais ou menos.
00:00:47Porque com o Symphony, humanos colocam tarefas em um quadro, um novo agente será criado para concluir essa tarefa,
00:00:52e o agente só envolverá o humano se houver algo para revisar.
00:00:55Mas como o Symphony se compara a ferramentas semelhantes como Multica e Conductor? Bem,
00:00:58assista à demonstração e isso ficará cristalino. Antes de começarmos, porém, eu só quero dizer
00:01:03que o Symphony tem o processo de instalação mais estranho que já vi na minha vida. Ou pode ser a
00:01:07forma mais genial de instalar algo. Falaremos sobre isso mais tarde.
00:01:10Primeiro, vamos passar por um exemplo básico. Então, estou com o Symphony rodando,
00:01:14verificando tarefas no Linear para trabalhar. E no Linear, vou criar um novo problema,
00:01:18que será construir um app Hello World usando TypeScript e BUN.
00:01:22No momento, o Symphony não está configurado para trabalhar em tarefas do backlog. Então, mudarei o status para To-Do
00:01:27e clicarei em Create Issue. Lembre-se do ID da tarefa, que é SYN7.
00:01:31Então, depois de um tempo, o Symphony detecta o ID dessa tarefa. E alguns segundos depois,
00:01:36temos um erro de validação de GraphQL, o que não é grande coisa e é muito fácil para o Codex corrigir.
00:01:41Mas depois disso, podemos ver que o Codex concluiu o trabalho, mudou o problema
00:01:45de To-Do para Done, e deixou um comentário aqui do Symphony. O que significa que se formos ao
00:01:49nosso diretório de espaços de trabalho do Symphony, falaremos mais sobre isso depois, podemos ver que temos um novo
00:01:53espaço de trabalho com o mesmo ID do nosso problema. E se entrarmos nesse espaço de trabalho, temos a lista
00:01:58de arquivos criados para o app Hello World TypeScript BUN. E se entrarmos no diretório source,
00:02:04podemos ver que o código do app está bem aqui. E isso é essencialmente o Symphony em poucas palavras.
00:02:08Agora vamos ver como configurá-lo. Existem duas formas de instalar o Symphony
00:02:12de acordo com este repositório. Opção dois, que é a que estamos acostumados, configuramos o Elixir,
00:02:16clonamos o repositório, depois buildamos o código e o executamos usando o arquivo de fluxo de trabalho existente.
00:02:20A opção um, no entanto, é possivelmente a maneira mais estranha ou visionária de instalar algo.
00:02:25Você basicamente dá ao seu agente de codificação este prompt, e ele lerá o arquivo de especificação,
00:02:30que tem mais de 2.000 linhas. Mas ele basicamente dá ao seu agente instruções
00:02:34detalhadas sobre como construir o Symphony, o que é bizarro porque se todos seguissem este caminho,
00:02:39nenhuma das duas versões do Symphony seria igual. Algumas pessoas teriam recursos diferentes em
00:02:43linguagens diferentes, o que seria um caos para a OpenAI manter e dar suporte.
00:02:47Mas também é genial, porque se você construísse sua própria versão do Symphony,
00:02:51você se sentiria responsável por ela. Você corrigiria os bugs, adicionaria os recursos,
00:02:55e você essencialmente a manteria. E se você não quisesse que o Symphony usasse o Linear ou
00:02:59o Codex, isso seria com você. Alguém construiu uma versão em Go do Symphony que roda no Charm CLI,
00:03:04e outra pessoa construiu uma alimentada pelo SDK do Claude. Eu não fui tão criativo,
00:03:09então coloquei o prompt padrão no Codex usando GPT 5.5 Low Effort, e ele me deu uma versão em Python
00:03:15do Symphony, o que faz sentido porque LLMs são muito bons em Python. Mas assim que terminar,
00:03:19você precisará de uma chave de API pessoal do Linear, que você pode obter em Security and Access,
00:03:23e pode criar uma clicando aqui. Depois, terá que adicionar essa chave ao seu perfil de trabalho,
00:03:28que é um arquivo que diz ao Symphony como fazer seu trabalho, contendo algum YAML front matter,
00:03:32que claro tem a chave de API, estados ativos para o agente saber quando pode trabalhar em uma tarefa,
00:03:37bem como a raiz do espaço de trabalho e o comando codecs, que é o comando de shell que o Symphony
00:03:42usa para lançar um agente de codificação. E abaixo disso está o prompt markdown enviado ao agente de codificação
00:03:46para cada problema. Você pode acessar o arquivo workflow.ind da OpenAI no repositório deles se estiver interessado.
00:03:51Mas no momento, este fluxo de trabalho não é adequado para um projeto real. Digamos que eu quisesse fazer mudanças no
00:03:56meu app de emulação de filme em que estive trabalhando. Eu precisaria adicionar um hook create-after, que roda
00:04:01depois que o Symphony cria um espaço de trabalho para um problema, e este hook primeiro clonará o repositório no
00:04:06diretório do espaço de trabalho e depois fará o checkout para uma nova branch nesse repositório. Também adicionei um hook
00:04:10run-after, que roda depois que o Codex termina de trabalhar no problema. Então este prepara os arquivos, depois
00:04:15cria um novo commit antes de fazer o push da branch e criar um novo pull request com estes valores.
00:04:20Então agora se eu rodar o Symphony usando UV, que também foi adquirido pela OpenAI, mas isso é assunto para outro
00:04:25vídeo, ele está verificando novos problemas. Agora, se eu criar um novo problema para atualizar o readme, apenas
00:04:30na seção que mostra o processamento em lote, para usar um curinga em vez de mostrar múltiplos arquivos, novamente,
00:04:35mudarei de backlog para to-do, e clicarei em create issue. Agora o Symphony detectou esse
00:04:40problema. E se eu olhar o diretório de espaços de trabalho do Symphony, vemos que há uma nova pasta correspondente
00:04:45ao ID do problema, que contém o projeto clonado. E agora que o Symphony terminou de trabalhar no
00:04:49problema, ele mudou o status para done e criou um novo PR com um link para o ticket do Linear
00:04:54e a mudança exata que eu solicitei. Agora, é claro, eu poderia mudar meu código do Symphony para adicionar uma
00:04:59descrição melhor para o PR e colocar um link para o PR nos comentários, mas tenho certeza de que isso é muito fácil para o
00:05:04Codex fazer. Então, essa é uma visão geral rápida do Symphony. Se você já se sente confortável ou trabalha em uma
00:05:08empresa que usa o Linear, você se sentirá em casa com a interface. E se você é um usuário do Codex,
00:05:13pode usar suas habilidades, ferramentas MCP e plugins que você já tem instalados. Eu pessoalmente não
00:05:18uso o Codex, mas consigo ver perfeitamente a visão que a OpenAI pretendia com o Symphony. Imagine
00:05:22que você tivesse uma equipe de desenvolvedores trabalhando todos no mesmo projeto com IA. Em vez de cada um ter seu
00:05:28próprio arnês pessoal com seu próprio fluxo de trabalho, pode haver um agente central com habilidades centrais, ferramentas
00:05:33centrais, fluxos de trabalho e plugins centrais. E cada desenvolvedor pode se comunicar com isso dando
00:05:37uma tarefa a ele e eles podem ver no que outros desenvolvedores estão trabalhando, quais prompts usaram e podem
00:05:41ver rapidamente quais outros recursos podem afetar o recurso no qual estão trabalhando. Embora
00:05:46seja muito difícil criar um recurso que não toque em outra parte do código em que alguém
00:05:49mais esteja trabalhando. Mas por mais legal que o Symphony seja, na minha opinião, o Multica faz um trabalho melhor porque é
00:05:54mais fácil de configurar, criar e adicionar diferentes agentes, e você pode até agendar tarefas. No entanto,
00:05:59vejo totalmente um lugar para o Symphony. É como uma versão básica do Multica onde você
00:06:04pode adicionar os recursos exatos que deseja em vez de ter um produto já construído para você. Então pense
00:06:08no Symphony como o arnês Pi e outras ferramentas como Multica ou Conductor como código pronto. E se
00:06:13você não sabe nada sobre o Multica, dê uma olhada neste vídeo, que mostra tudo o que você
00:06:18precisa saber sobre ele.

Key Takeaway

O Symphony da OpenAI automatiza a gestão de agentes de codificação ao integrar-se diretamente ao Linear, eliminando a necessidade de supervisão humana constante para cada tarefa individual.

Highlights

  • O Symphony resolve o gargalo de produtividade onde engenheiros humanos conseguem supervisionar apenas de 3 a 5 sessões simultâneas do Codex.

  • A ferramenta automatiza a conclusão de tarefas de forma autônoma utilizando rastreadores de problemas como o Linear.

  • O processo de instalação permite que um agente de IA construa o próprio software a partir de uma especificação de 2.000 linhas.

  • Desenvolvedores podem customizar o Symphony em diferentes linguagens como Python, Go ou Elixir através de prompts para LLMs.

  • Hooks de automação como 'create-after' e 'run-after' permitem clonar repositórios, criar branches e abrir Pull Requests automaticamente.

  • A OpenAI utiliza o gerenciador de pacotes UV para executar o Symphony de maneira eficiente.

Timeline

A origem do Symphony e o fim do gerenciamento humano lento

  • A produtividade dos engenheiros cai drasticamente ao alternar o contexto entre mais de 5 sessões de codificação.
  • O Symphony permite que humanos apenas coloquem tarefas em um quadro para que agentes as executem de forma independente.
  • A supervisão humana ocorre apenas quando o agente solicita explicitamente uma revisão de código.

O Symphony surge para resolver a desproporção de velocidade entre agentes de IA rápidos e gestores humanos lentos. O sistema utiliza o Linear para organizar o fluxo de trabalho, onde cada nova tarefa gera automaticamente um agente dedicado. Isso remove a fricção da troca de contexto constante que limitava a escala das operações da OpenAI.

Demonstração prática e fluxo de trabalho autônomo

  • A mudança de status de uma tarefa no Linear para 'To-Do' ativa imediatamente a detecção pelo Symphony.
  • O Codex consegue identificar e corrigir erros de validação de GraphQL sem intervenção externa.
  • O sistema cria diretórios de trabalho específicos rotulados com o ID da tarefa original do Linear.

Durante a execução de uma tarefa para criar um aplicativo Hello World com TypeScript e BUN, o Symphony monitora o ID da tarefa (ex: SYN7). Após a detecção, o agente gera todos os arquivos necessários no diretório de trabalho e altera o status da tarefa para 'Done'. O resultado final inclui o código-fonte completo e comentários automáticos no rastreador de problemas.

Instalação visionária via prompt de especificação

  • A instalação pode ser feita fornecendo a um agente um arquivo de especificação com mais de 2.000 linhas de instruções.
  • Essa abordagem resulta em versões personalizadas da ferramenta em diversas linguagens como Python, Go e Elixir.
  • A configuração exige uma chave de API do Linear e um arquivo de perfil de trabalho em formato YAML.

Existem dois caminhos para configurar o Symphony: a compilação tradicional de código Elixir ou a geração assistida por IA. No método por IA, o desenvolvedor fornece um prompt detalhado e o LLM constrói a lógica do Symphony. Isso transfere a responsabilidade de manutenção e correção de bugs para o usuário, permitindo que cada versão seja otimizada para necessidades específicas, como o uso do SDK do Claude ou implementações em Python.

Automação avançada com Pull Requests e Hooks

  • O hook 'create-after' automatiza o clone do repositório e a criação de novas branches para cada ticket.
  • O hook 'run-after' gerencia o commit, o push e a abertura do Pull Request após a conclusão da codificação.
  • O uso do UV da OpenAI acelera a execução e o gerenciamento das dependências do ambiente Symphony.

Para projetos reais, o fluxo padrão é estendido com hooks que conectam o Symphony ao GitHub. Ao criar uma tarefa para atualizar um README, por exemplo, o Symphony detecta o problema, prepara o ambiente, aplica a mudança solicitada e envia o Pull Request com links de referência cruzada. Isso garante que todo o ciclo de desenvolvimento, do ticket ao código em produção, seja orquestrado sem comandos manuais de Git.

Visão de futuro: agentes centrais vs. ferramentas prontas

  • O Symphony funciona como um hub central onde múltiplos desenvolvedores podem observar prompts e fluxos de trabalho de agentes compartilhados.
  • A ferramenta é comparada a uma estrutura básica personalizável, enquanto alternativas como Multica oferecem soluções prontas.
  • Usuários do Codex podem aproveitar ferramentas MCP e plugins existentes dentro da infraestrutura do Symphony.

A visão da OpenAI com o Symphony é criar um 'agente central' com habilidades e plugins padronizados para uma equipe inteira. Embora ferramentas como o Multica ofereçam facilidades de agendamento e configuração mais simples, o Symphony se destaca como um 'arnês' minimalista para quem deseja controle total sobre os recursos. Ele permite que uma equipe veja rapidamente como diferentes recursos de IA podem impactar partes distintas do código simultaneamente.

Community Posts

View all posts