2 pontos por GN⁺ 2024-11-09 | 1 comentários | Compartilhar no WhatsApp
  • Codebuff é uma ferramenta CLI que, ao receber tarefas em linguagem natural no terminal, lê a base de código e faz edições e criação de arquivos. Pode ser usada imediatamente após instalar com npm i -g codebuff, sem barreira de login
  • Reduz o fluxo de entrada para uma etapa: o usuário só precisa informar a tarefa desejada, e a ferramenta usa o processo para executar testes, rodar verificador de tipos e instalar pacotes
  • Internamente, usa tree-sitter para analisar símbolos como nomes de funções e classes em 11 linguagens e criar um mapa da base de código, combinando cache de prompt do Claude Haiku 3.5 com chamadas ao Claude/OpenAI
  • O agente coloca os arquivos relevantes no contexto e depois processa chamadas de ferramenta em forma de tags XML para edit_file, execução de comandos de terminal e solicitação de leitura de arquivos adicionais
  • Todas as contas recebem até US$ 20 em créditos, e mais créditos são oferecidos no plano de US$ 99 por mês, embora a empresa diga que o produto é mais caro que os concorrentes por causa do contexto grande e das chamadas caras de LLM

Editando código no terminal com linguagem natural

  • Codebuff é uma ferramenta CLI que funciona como um “Cursor Composer dentro do terminal”
    • Você digita em linguagem natural a alteração desejada e aperta Enter; então ela analisa a base de código e modifica os arquivos
    • É capaz tanto de editar arquivos-fonte existentes quanto de criar novos arquivos
    • Pode executar testes, verificadores de tipo e instalação de pacotes para concluir a solicitação
  • A instalação e o início de uso são feitos com npm i -g codebuff
    • Pode ser usado imediatamente, sem barreira de login
    • Todas as contas recebem até US$ 20 em créditos
  • Vídeo de demonstração: YouTube

Dos experimentos iniciais ao produto

  • A ideia inicial surgiu ao testar o Sonnet 3.5 em um hackathon
    • O primeiro script trazia de uma vez o contexto da base de código, e na segunda etapa reescrevia os arquivos
    • Esse processo de 2 etapas ainda permanece no Codebuff atual
    • A demonstração inicial não conseguiu produzir código útil
  • Ao transmitir ao modelo conhecimentos específicos de cada base de código, surgiu a ideia do knowledge.md
    • No servidor de uma startup anterior, para criar um endpoint era necessário modificar 3 arquivos específicos, mas o modelo não sabia disso
    • Ao escrever um guia da base de código em Markdown, como se estivesse explicando a um novato, e colocá-lo no prompt de sistema do Sonnet 3.5, a qualidade do código melhorou muito
    • O Codebuff ainda usa um arquivo knowledge.md lido automaticamente a cada solicitação
  • Pouco antes da entrevista com a YC, a maior limitação era a confiabilidade da edição de arquivos
    • Tentaram substituir strings no arquivo original com várias estratégias de prompt, mas isso não funcionava de forma estável
    • Na véspera da entrevista, fizeram fine-tuning do GPT-4o para transformar o rascunho de mudanças desenhado pelo Claude em um git patch
    • Funcionou no dia seguinte, e foi implantado em produção pouco antes da entrevista com a YC

Mapa da base de código e fluxo de execução do agente

  • Ao executar, a ferramenta percorre o diretório atual e os subdiretórios para criar um mapa da base de código
    • Usa tree-sitter para analisar símbolos equivalentes a nomes de funções e classes em 11 linguagens
    • Utiliza em conjunto a árvore de arquivos e as informações de símbolos
    • Faz uma solicitação ao Claude Haiku 3.5 para armazenar em cache o contexto da base de código e reduzir a latência de resposta à entrada do usuário
  • Quando o usuário envia uma mensagem, o Claude primeiro escolhe os arquivos relevantes
    • Depois de carregar os arquivos selecionados no contexto, o agente responde
    • As chamadas de ferramenta são escritas e analisadas em tags XML
    • Um exemplo é a tag de edição de arquivo no formato <edit_file path="src/app.ts">…</edit_file>
    • Outras tags também permitem executar comandos de terminal ou solicitar leitura de arquivos adicionais

Configuração do servidor e infraestrutura

  • O servidor é estruturado para encaminhar mensagens ao Anthropic ou OpenAI e não armazena estado
    • Usa websocket para a movimentação de dados entre cliente e servidor
    • Nos primeiros 3 meses, funcionou sem autenticação nem banco de dados, processando solicitações com instalação gratuita e chave de API própria
  • Depois, foram adicionados os componentes necessários para operar o produto
    • Banco de dados Postgres + Drizzle
    • Servidor Bun
    • Hospedagem Render
    • Autenticação Auth.js
    • Site em NextJS
    • Pagamentos com Stripe
    • Logs com BetterStack
    • Dashboard em Retool

Preço, casos de uso e SDK

  • O preço é composto por uma franquia gratuita limitada e um plano pago de US$ 99 por mês
    • O plano pago oferece mais créditos
    • A empresa afirma que o produto é mais caro que os concorrentes por causa do contexto maior e das chamadas de LLM mais caras
  • Entre os casos reais de uso estão criação de apps Flutter, escrita de testes unitários, modificações iterativas e automação de tarefas repetitivas
    • Um usuário criou dois apps Flutter em paralelo e gerou uma fatura de US$ 500, concluindo os apps por meio de longas conversas com o Codebuff sem olhar diretamente o código gerado
    • Vários usuários criaram apps reais para times ou para uso pessoal ao longo de um fim de semana
    • Usos gerais frequentes incluem escrever testes unitários, executar loops de correção de código até os testes passarem, configurar fluxos OAuth e fazer scaffolding de APIs
  • Também é oferecido um SDK alpha para usuários que querem usar o Codebuff em seus próprios sistemas
    • O app pode chamar a mesma interface em linguagem natural e receber edições de código
    • Link para solicitar acesso antecipado: Retool form

1 comentários

 
GN⁺ 2024-11-09
Comentários no Hacker News
  • Parabéns pelo lançamento do Codebuff, mas ele parece muito semelhante ao Aider. O Aider é open source, e basta aprovar quando ele pede para adicionar arquivos. O Aider também consegue executar comandos. Fico curioso para saber o que é diferente

  • As demos sempre se aplicam apenas a projetos simples, e faltam exemplos de projetos reais e complexos. Preciso de ajuda para resolver as partes difíceis de um PR. Muitas ferramentas ajudam a começar, mas deixam a desejar na resolução de problemas

  • Não quero pagar US$ 20 para enviar minha chave SSH e minha área de transferência para vários terceiros. Eu gostaria de comprar um software que ofereça suporte a shell inline sem chamadas de rede. Esta é minha opinião geral sobre esses produtos

  • O Codebuff era conhecido anteriormente como manicode e é útil para tarefas complexas de refatoração. Usei em um projeto Rust para separar arquivos em diretórios de módulos, e ele conseguia executar testes e verificar erros de compilação. Foram usados cerca de 100 créditos nessa tarefa

  • Fico curioso para saber se o código é enviado por meio de servidores. Parece que seria melhor implementá-lo como um serviço local. Também quero saber se o LLM pode receber comandos que causem perda de arquivos e como isso seria evitado

  • É arriscado e vulnerável em termos de segurança deixar um LLM executar comandos sem revisão humana

  • Já existem AIDE, Continue, Cody, Aider e Cursor. Fico curioso para saber por que eu deveria usar esta ferramenta

  • Já experimentei esta ferramenta, e há pontos em que ela é melhor que o CoPilot e o Cursor. Principalmente, não parece que ela está “competindo” com o editor como acontece especialmente com o CoPilot. Tenho preocupações com segurança e quero saber como ela lida com arquivos sensíveis

  • Fico curioso para saber se ela é melhor que o Cursor em termos de qualidade de código. Uso o Cursor e economizo tempo por não precisar copiar arquivos. Ainda assim, continuo programando usando a interface do chatGPT/claude

  • Eles ajustaram finamente o GPT-4o para transformar os esboços de mudanças do Claude em patches git. Os dados de treino foram gerados tarde da noite, e o processo de fine-tuning rodava enquanto dormiam. Fico curioso para saber o conteúdo completo dos dados de treino e como os esboços de mudanças e os patches git funcionavam