33 pontos por GN⁺ 2026-03-18 | 2 comentários | Compartilhar no WhatsApp
  • Organizações de engenharia importantes como Stripe, Ramp e Coinbase, que construíram de forma independente agentes internos de programação, estão convergindo para padrões arquiteturais semelhantes, e o framework que implementa isso como open source é o Open SWE
  • Construído sobre Deep Agents e LangGraph, ele fornece componentes centrais como sandbox em nuvem isolada, conjunto de ferramentas curado, orquestração de subagentes e integração com fluxos de trabalho de desenvolvimento
  • É construído por composição, sem fazer fork de agentes existentes, permitindo manter ao mesmo tempo os upgrades do framework-base e as customizações de cada organização
  • Todos os componentes principais são plugáveis, incluindo provedor de sandbox, modelo, ferramentas, gatilhos, prompt de sistema e middleware
  • Para equipes que estão avaliando adotar agentes internos de programação, oferece um ponto de partida baseado em padrões validados em produção sob licença MIT

Padrões comuns encontrados em implantações em produção

  • Agentes de programação como Minions da Stripe, Inspect da Ramp e Cloudbot da Coinbase, embora tenham sido desenvolvidos de forma independente, convergiram para decisões arquiteturais semelhantes
  • Ambiente de execução isolado: cada tarefa roda em um sandbox dedicado na nuvem, com permissões totais dentro de fronteiras rígidas. Isso isola o impacto de erros sobre sistemas de produção e permite executar comandos sem prompt de aprovação a cada ação
  • Conjunto de ferramentas curado: segundo a equipe de engenharia da Stripe, o agente tem acesso a cerca de 500 ferramentas, mas isso não foi acumulado ao longo do tempo; elas foram cuidadosamente selecionadas e mantidas. Mais importante que a quantidade é a curadoria
  • Invocação com foco em Slack: os três sistemas integram o Slack como interface principal, permitindo acesso dentro do fluxo de comunicação já existente, sem que o desenvolvedor precise mudar de contexto para um novo aplicativo
  • Contexto rico no início: puxam todo o contexto de issues do Linear, threads do Slack e PRs do GitHub e o fornecem antes do início da tarefa, reduzindo a sobrecarga de descobrir requisitos por meio de chamadas de ferramenta
  • Orquestração de subagentes: tarefas complexas são decompostas e delegadas a agentes-filho especializados, cada um com contexto isolado e responsabilidade focada

Arquitetura do Open SWE

  • 1. Harness do agente: composição baseada em Deep Agents

    • Em vez de fazer fork de agentes existentes ou construir tudo do zero, adota composição sobre o framework Deep Agents. É uma abordagem semelhante à da equipe da Ramp ao construir o Inspect sobre o OpenCode
    • Duas vantagens da composição:
      • Caminho de upgrade: quando o Deep Agents evolui (melhor gerenciamento de contexto, planejamento mais eficiente, uso de tokens otimizado), é possível incorporar as melhorias sem reconstruir as customizações
      • Customização sem fork: ferramentas, prompts e fluxos de trabalho específicos da organização podem ser mantidos como configuração, sem alterar a lógica central do agente
    • Infraestrutura fornecida pelo Deep Agents: planejamento embutido via write_todos, gerenciamento de contexto baseado em arquivos, criação nativa de subagentes via ferramenta task e hooks de middleware para orquestração determinística
  • 2. Sandbox: ambiente isolado na nuvem

    • Cada tarefa roda em seu próprio sandbox isolado na nuvem, um ambiente Linux remoto com acesso completo ao shell
    • O repositório é clonado e o agente recebe permissões totais; erros ficam isolados dentro desse ambiente
    • Provedores de sandbox com suporte nativo: Modal, Daytona, Runloop e LangSmith. Também é possível implementar um backend próprio de sandbox
    • Comportamentos centrais:
      • Um sandbox persistente é atribuído a cada thread de conversa e reutilizado em mensagens subsequentes
      • O sandbox é recriado automaticamente se ficar inacessível
      • Várias tarefas rodam em paralelo, cada uma em seu próprio sandbox
  • 3. Ferramentas: curadoria, não acúmulo

    • O Open SWE fornece um conjunto de ferramentas focado junto com as ferramentas nativas do Deep Agents (read_file, write_file, edit_file, ls, glob, grep, write_todos, task)
    • Um conjunto pequeno e curado é mais fácil de testar, manter e raciocinar. Ferramentas adicionais da organização (APIs internas, sistemas de deploy customizados, frameworks de teste especializados) podem ser adicionadas explicitamente
  • 4. Engenharia de contexto: AGENTS.md + contexto da origem

    • O contexto é coletado de duas fontes:
      • Arquivo AGENTS.md: se estiver na raiz do repositório, é lido do sandbox e injetado no prompt de sistema. Codifica convenções, requisitos de teste, decisões arquiteturais e padrões da equipe
      • Contexto da origem: a issue completa do Linear (título, descrição, comentários) ou o histórico da thread do Slack é combinado e passado antes do início do agente, fornecendo contexto específico da tarefa sem necessidade de chamadas extras de ferramenta
    • É uma abordagem em duas camadas que equilibra conhecimento amplo do repositório com informações específicas da tarefa
  • 5. Orquestração: subagentes + middleware

    • Combina dois mecanismos:
      • Subagentes: agentes-filho são criados via ferramenta task. O agente principal delega subtarefas independentes a subagentes isolados, cada um com sua própria pilha de middleware, lista de tarefas e operações com arquivos
      • Middleware: hooks determinísticos executados ao redor do loop do agente
        • check_message_queue_before_model: injeta, antes da próxima chamada ao modelo, mensagens subsequentes que chegaram durante a execução do agente (comentários no Linear, mensagens no Slack). Isso permite entrada adicional do usuário enquanto o agente está trabalhando
        • open_pr_if_needed: uma rede de segurança que cria automaticamente commit e PR caso o agente não consiga concluir a abertura do PR
        • ToolErrorMiddleware: captura e trata erros de ferramenta de forma elegante
    • A separação entre orquestração agêntica (dirigida pelo modelo) e determinística (dirigida por middleware) garante um equilíbrio entre confiabilidade e flexibilidade
  • 6. Invocação: Slack, Linear, GitHub

    • Slack: menção ao bot na thread. A sintaxe repo:owner/name especifica o repositório em que trabalhar. O agente responde na thread com atualizações de status e link do PR
    • Linear: comentário com @openswe na issue. O agente lê todo o contexto da issue, confirma com 👀 e publica o resultado como comentário
    • GitHub: o feedback de revisão é tratado com a tag @openswe nos comentários do PR gerado pelo agente, e as correções são enviadas para a mesma branch
    • Cada invocação gera um ID de thread determinístico, de modo que mensagens posteriores da mesma issue ou thread sejam roteadas para o mesmo agente em execução
  • 7. Validação: baseada em prompt + rede de segurança

    • O agente é instruído a executar linter, formatter e testes antes do commit
    • O middleware open_pr_if_needed atua como backstop: se o agente encerrar sem abrir o PR, o middleware faz isso automaticamente
    • Checks determinísticos de CI, validação visual e gates de revisão podem ser estendidos com middleware adicional

Por que usar Deep Agents

  • Gerenciamento de contexto: descarrega para memória baseada em arquivos a grande quantidade de dados intermediários gerados por tarefas longas de programação (conteúdo de arquivos, saída de comandos, resultados de busca), em vez de manter tudo no histórico da conversa. Isso é eficaz para evitar overflow de contexto em codebases grandes
  • Primitiva de planejamento: a ferramenta embutida write_todos estrutura a decomposição de tarefas complexas, o acompanhamento do progresso e a adaptação do plano a novas informações. É especialmente útil para tarefas longas de múltiplas etapas
  • Isolamento de subagentes: quando o agente principal cria agentes-filho com a ferramenta task, cada um recebe um contexto isolado. O histórico de conversa de subtarefas diferentes não se contamina, permitindo raciocínio mais claro em tarefas complexas
  • Hooks de middleware: permitem injetar lógica determinística em pontos específicos do loop do agente. São usados para implementar ações que precisam rodar de forma confiável, como injeção de mensagens e criação automática de PR
  • Caminho de upgrade: como o Deep Agents é desenvolvido ativamente como biblioteca independente, melhorias em compressão de contexto, cache de prompts, eficiência de planejamento e orquestração de subagentes podem ser incorporadas ao Open SWE sem reconstruir as customizações

Customização por organização

  • O Open SWE foi projetado não como um produto pronto, mas como uma base customizável. Todos os componentes principais são plugáveis:
    • Provedor de sandbox: é possível alternar entre Modal, Daytona, Runloop e LangSmith. Também é possível implementar um backend próprio de sandbox para atender aos requisitos da infraestrutura interna
    • Modelo: qualquer provedor de LLM pode ser usado. O padrão é Claude Opus 4, e é possível definir modelos diferentes por subtarefa
    • Ferramentas: podem ser adicionadas ferramentas para APIs internas, sistemas de deploy, frameworks de teste e plataformas de monitoramento. Ferramentas desnecessárias podem ser removidas
    • Gatilhos: a lógica de integração com Slack, Linear e GitHub pode ser modificada. É possível adicionar novas superfícies de gatilho como e-mail, webhook e UI customizada
    • Prompt de sistema: o prompt padrão e a lógica de incorporação do arquivo AGENTS.md podem ser customizados. É possível adicionar diretrizes, restrições e convenções específicas da organização
    • Middleware: é possível adicionar hooks próprios de middleware para validação, gates de aprovação, logging e verificações de segurança

Comparação com implementações internas

  • Em comparação com os sistemas internos da Stripe, Ramp e Coinbase com base nas informações públicas, os padrões centrais são semelhantes
  • As diferenças estão nos detalhes de implementação, integrações internas e ferramentas específicas de cada organização, o que é esperado ao adaptar o framework para ambientes diferentes

Como começar

  • Open SWE está disponível no GitHub sob licença MIT: https://github.com/langchain-ai/open-swe
  • O Installation Guide traz instruções para criar o GitHub App, configurar o LangSmith, definir gatilhos de Linear/Slack/GitHub e fazer o deploy em produção
  • O Customization Guide mostra como trocar sandbox, modelo, ferramentas, gatilhos, prompt de sistema e middleware
  • É possível fazer fork, customizar e implantar internamente

2 comentários

 
sea715 2026-03-18

Parece que todo mundo pensa meio parecido mesmo.. é realmente uma época de Estados Combatentes

 
xguru 2026-03-18

Agora todo mundo está criando agentes de programação internos, então acabaram fazendo um framework para isso. Todo mundo é rápido.

Mesmo que você não use isso necessariamente, talvez valha a pena dar uma olhada nos padrões de várias empresas que eles consultaram internamente.