Parei de usar Grep e meu agente ficou 10x mais rápido

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00Existe este plugin de MCP chamado Claude Context que indexa todo o seu código
00:00:06em um banco de dados vetorial, o que significa que o seu agente de codificação pode obter rapidamente o código exato
00:00:11que precisa, sem precisar adivinhar usando grep ou glob e torcer para encontrar o arquivo certo.
00:00:15Ele até analisa seu código com ASTs e usa uma abordagem de busca híbrida, combinando vetores semânticos
00:00:20com correspondência de palavras-chave, o que acaba usando 40% menos contexto.
00:00:24Mas ele precisa de uma conta na nuvem da Zilliz e de uma chave da OpenAI para os embeddings, mesmo que você use o código do Claude.
00:00:30Então, será que o esforço e o custo extras valem a economia de tokens?
00:00:34Inscreva-se e vamos descobrir.
00:00:35Ok, Claude Context — não tenho certeza sobre o nome — é feito pela Zilliz, que é uma empresa
00:00:43criada pelos fundadores do Milvus, um banco de dados vetorial de alto desempenho.
00:00:47Ele se conecta ao seu agente via MCP, o que significa que pode funcionar com qualquer orquestrador de agentes,
00:00:52e não apenas com o Claude Code.
00:00:54Mas ele faz três coisas bem complexas para tornar seu código facilmente localizável.
00:00:58Primeiro, ele usa o Tree-sitter para percorrer todo o código, criando blocos de funções
00:01:03e classes, e isso suporta nove linguagens, incluindo TypeScript, Python, Rust e Go.
00:01:08Depois, ele usa um Merkle DAG personalizado para criar um hash de cada arquivo com snapshots JSON, o que significa que ele só reindexa
00:01:15os arquivos que foram alterados, e não toda a base de código.
00:01:18E, quando você realmente quer pesquisar no código, ele realiza dois tipos diferentes de busca
00:01:22ao mesmo tempo: uma busca vetorial para encontrar o significado semântico do código, e uma busca por índice BM25
00:01:29para correspondência exata de palavras-chave.
00:01:31Tudo isso resulta em uma redução de até 40% do contexto, o que é muito para grandes bases de código.
00:01:37Na verdade, vamos ver na prática testando contra a base de código do VS Code, que tem
00:01:42cerca de 1,5 milhão de linhas de código.
00:01:44Então, dentro do repositório clonado do VS Code, vou usar o OpenCode com GPT-4o porque
00:01:50não quero estourar meus limites semanais do Claude Pro.
00:01:53E para configurar o servidor MCP, que você pode ver aqui, já adicionei
00:01:58as informações relevantes ao meu arquivo JSON do OpenCode.
00:02:01E para essas informações aqui, você poderia rodar o Milvus localmente, mas usei o Zilliz Cloud.
00:02:06Então, peguei minha chave de API daqui e criei um cluster.
00:02:10Este é um cluster da AWS e obtive os endpoints públicos daqui.
00:02:14Agora, enquanto falamos de clusters, tentei usar o gratuito primeiro, mas continuei recebendo
00:02:19problemas de tempo limite (timeout).
00:02:20Então, tive que adquirir um servidorless, que custa dinheiro, mas funcionou muito melhor.
00:02:25Agora, depois de configurar o servidor MCP, certifique-se de estar rodando uma versão do Node abaixo
00:02:28de 24, mas igual ou acima de 20.
00:02:31Estou usando a versão 22 para este projeto.
00:02:34E isso lhe dará acesso a quatro ferramentas de MCP: indexar código, pesquisar código, limpar índice e obter
00:02:39status do índice.
00:02:40A primeira coisa que você precisa fazer é indexar a base de código, e podemos fazer isso com este prompt.
00:02:44Mas antes de apertar Enter, vamos dar uma olhada em quanto dinheiro já gastamos com embeddings
00:02:48da OpenAI, que foi apenas um centavo, e foi para eu testar uma base de código de 23.000 linhas.
00:02:53Também podemos ver em nosso cluster que já temos informações da base de código que foi indexada.
00:02:58Então, agora se indexarmos esta base de código, leva algum tempo e inicia a indexação em
00:03:02segundo plano.
00:03:03Neste ponto, não recomendo realizar nenhuma busca.
00:03:05Como é uma base de código grande, vai demorar um pouco para indexar.
00:03:09Então, voltarei depois que a indexação terminar.
00:03:11E após cerca de 50 minutos, a indexação está concluída e podemos ver que temos um novo chunk
00:03:16em nosso cluster com mais de 223.000 entradas carregadas.
00:03:21E para referência, o código que eu estava testando, que tinha 23.000 linhas, tem cerca de
00:03:271.000 linhas de entradas e levou menos de um minuto para indexar.
00:03:32E com o uso da OpenAI, passamos de um centavo para US$ 1,06, o que é muito, mas não
00:03:38imagino que passar por 1,5 milhão de linhas de código seja algo que as pessoas façam regularmente.
00:03:42Ok, vamos ver quão rápida é uma busca.
00:03:45Aqui temos uma instância do OpenCode usando o servidor MCP do Claude Context, e aqui
00:03:49temos uma sem servidores MCP.
00:03:52Portanto, ela estará usando as ferramentas regulares de grep e glob para pesquisar no código.
00:03:56E daremos o prompt: "Use o Claude Context para encontrar o ponto de entrada de quando este projeto
00:04:00é iniciado".
00:04:01Vamos ver quanto tempo isso leva.
00:04:02Ok, ele está usando a ferramenta de indexação e agora está usando a ferramenta de busca.
00:04:06E tudo levou cerca de 19 segundos para pesquisar em todo o projeto e encontrar
00:04:10o arquivo main.ts.
00:04:11E agora vamos dar ao OpenCode um prompt semelhante, e ele encontra a resposta
00:04:15em 14 segundos.
00:04:16Então, para esta consulta, usar o GLM normal é muito mais rápido.
00:04:20Vamos iniciar uma nova sessão.
00:04:21E então vou dar um novo prompt: "Qual função abre um novo documento sem título?"
00:04:26Este demorou um pouco mais, 40 segundos, e encontrou a função principal com o número da linha
00:04:30e usou cerca de 23 mil tokens.
00:04:32E a outra instância fez em 12 segundos e usou 18 mil tokens, mas parece que encontrou
00:04:37um arquivo diferente.
00:04:38Na verdade, o Claude Context fornece muito mais informações, mostrando o código e outros arquivos relacionados a
00:04:44abrir o editor.
00:04:45Então, vou pedir a ambos para me mostrarem o código exato.
00:04:48E neste ponto, o Claude Context responde em 23 segundos com o código, e o OpenCode sem
00:04:52Claude Context responde em 49 segundos, quase o dobro do tempo.
00:04:56E chega ao mesmo código que o Claude Context, o que me dá uma ideia.
00:05:00Vou dar um prompt mais amplo e generalizado: "Procure no código e diga-me
00:05:04como este projeto funciona".
00:05:06O Claude Context termina em 49 segundos usando 41 mil tokens, e a outra instância termina
00:05:11mais rápido e usa menos tokens.
00:05:13Mas se dermos uma olhada no resultado produzido, podemos ver que há muito mais detalhes do Claude
00:05:17Context, dando a arquitetura em camadas e até algumas informações sobre o aplicativo Electron
00:05:22e os processos que ele usa.
00:05:23E a opção sem Claude Context também fornece algumas informações de arquitetura, mas não é
00:05:28tão detalhada quanto a outra.
00:05:30Na verdade, sei que não parece, mas eu diria que o Claude Context é muito bom em
00:05:34obter informações de código com antecedência, rapidamente e com muitos detalhes.
00:05:37Quero dizer, dê uma olhada nisto.
00:05:38Então, a partir deste prompt, fiz um prompt de acompanhamento para me dizer mais informações sobre o processo principal
00:05:43no aplicativo Electron, que ele afirmou aqui em cima.
00:05:47Então, depois que fiz esse prompt, levou cerca de 1 minuto e 47 segundos, mas olhe todos esses
00:05:52detalhes.
00:05:53Então começou com a sequência de inicialização e depois a fase um, ou seja, a criação do serviço e
00:05:58a inicialização do serviço.
00:05:59E temos muito mais da fase dois, o aplicativo de código com todas as referências
00:06:04aos arquivos relevantes.
00:06:05Temos o app.ts linha 185, e poderíamos continuar sem parar.
00:06:10Enquanto sem o Claude Context, o OpenCode ainda está percorrendo todos os arquivos usando vários
00:06:15sub-agentes.
00:06:16E isso é um pouco enganoso porque não conseguimos ver exatamente quantos tokens cada sub-agente
00:06:21está usando.
00:06:22Mas se esperarmos um pouco e voltarmos, podemos ver que, após cerca de cinco minutos, o OpenCode
00:06:26responde com muitas informações sobre o processo Electron, mas isso não é tanto
00:06:31quanto o que o Claude Context forneceu, e levou cinco vezes mais tempo.
00:06:34Agora, sim, talvez se eu usasse um modelo mais inteligente como o Claude 3.5 Opus com alto esforço, ele obteria
00:06:40mais informações, mas ainda demoraria muito e usaria muitos tokens.
00:06:44E essas são as diferenças, cinco minutos versus um minuto, que eu estava vendo quando
00:06:48estava testando antes de gravar com a base de código de 23 mil linhas.
00:06:51Então, no final, é difícil dizer quem é o vencedor claro.
00:06:54Quero dizer, o Claude Context sempre forneceu mais detalhes, mas nem sempre foi o mais rápido e
00:07:00o mais eficiente em termos de tokens.
00:07:01E para grandes bases de código, demorou muito tempo para indexar.
00:07:05No entanto, para bases de código de tamanho médio, ou seja, 20 a 30 mil linhas de código, o tempo de indexação
00:07:10é realmente rápido.
00:07:11E a diferença nos detalhes dos resultados é muito aparente.
00:07:14Na verdade, eu diria que prefiro muito mais usar o Claude Context para bases de código de tamanho médio
00:07:20do que usá-lo em bases de código grandes.
00:07:22Então, isso é algo para se pensar.
00:07:23Mas, para ser honesto, esta é mais uma ótima ferramenta de vendas para a Zilliz, porque antes de usar o Claude
00:07:27Context, eu nunca tinha ouvido falar deles e agora eles têm um novo cliente pagante.
00:07:31Mas mesmo que tenha demorado um pouco para configurar e a indexação de grandes bases de código tenha demorado muito
00:07:36tempo.
00:07:37Como alguém que analisa regularmente bases de código open source e faz perguntas, acho que
00:07:42esta é uma ferramenta que vou usar muito mais.
00:07:44Quero dizer, para uma base de código de tamanho médio, o plano serverless não é muito caro, já que os
00:07:49embeddings da OpenAI também não custam muito.
00:07:52Então, estou feliz em arcar com esse custo.
00:07:53Falando em recuperação de dados e IA.
00:07:55Se você quiser aprender como construir um sistema RAG realmente bom do zero que realmente
00:07:59funcione, então confira este vídeo do Andrej.
00:08:02E se você é fã de Star Wars, você vai gostar especialmente deste vídeo.

Key Takeaway

O uso do Claude Context em bases de código de tamanho médio acelera consultas complexas em até 5x, superando a busca tradicional baseada em grep e glob apesar do custo adicional com infraestrutura na nuvem.

Highlights

  • O plugin Claude Context utiliza busca híbrida com vetores semânticos e índice BM25 para localizar código, reduzindo o uso de contexto em até 40%.

  • A indexação de uma base de código com 1,5 milhão de linhas leva cerca de 50 minutos e custa aproximadamente US$ 1,06 em embeddings da OpenAI.

  • Bases de código de tamanho médio (20 mil a 30 mil linhas) são indexadas em menos de um minuto com um custo de apenas um centavo.

  • O uso do Claude Context em consultas complexas sobre a arquitetura do VS Code reduziu o tempo de resposta de cinco minutos para um minuto e 47 segundos.

  • O sistema utiliza Tree-sitter para analisar estruturas de funções e classes em nove linguagens, incluindo TypeScript, Python, Rust e Go.

  • O uso de um Merkle DAG personalizado permite a reindexação incremental, processando apenas os arquivos alterados em vez de toda a base de código.

Timeline

Mecanismo e arquitetura do Claude Context

  • O sistema indexa códigos em um banco de dados vetorial via MCP para evitar adivinhações baseadas em grep.
  • A abordagem híbrida combina busca vetorial semântica e correspondência por índice BM25.
  • O uso de Tree-sitter possibilita a compreensão de estruturas de código em nove linguagens distintas.
  • Um Merkle DAG personalizado otimiza o desempenho ao realizar reindexação apenas de arquivos modificados.

O plugin Claude Context, desenvolvido pela Zilliz, integra-se a agentes via MCP (Model Context Protocol). A arquitetura utiliza a biblioteca Tree-sitter para mapear blocos de código e hashes JSON para identificar alterações. Essa estrutura permite uma busca híbrida que melhora a precisão na localização de arquivos em grandes repositórios, resultando em uma economia de 40% no volume de contexto enviado aos modelos.

Configuração e testes em grandes bases

  • Testes realizados na base de código do VS Code envolveram 1,5 milhão de linhas de código.
  • O uso de um servidorless na Zilliz Cloud resolveu problemas de tempo limite encontrados na versão gratuita.
  • O custo de indexação para bases de código de 23.000 linhas foi de um centavo, subindo para US$ 1,06 em bases massivas.
  • A indexação inicial de grandes bases requer tempo de espera, sendo contraindicado realizar buscas durante o processo.

A implementação envolve a configuração do servidor MCP no arquivo de projeto e a conexão com um cluster na Zilliz Cloud. O processo de indexação em larga escala mostrou-se eficiente para bases de tamanho médio, embora o custo e o tempo de processamento aumentem linearmente com o volume de dados. A versão serverless provou ser necessária para manter a estabilidade durante a análise de repositórios extensos como o do VS Code.

Comparativo de desempenho e conclusão

  • Consultas simples podem ser mais rápidas usando ferramentas tradicionais de busca no código.
  • Consultas complexas sobre arquitetura de software são executadas 5x mais rápido com Claude Context.
  • A ferramenta fornece respostas significativamente mais detalhadas e estruturadas em comparação ao método padrão.
  • A aplicação é recomendada preferencialmente para bases de código de tamanho médio devido à relação custo-benefício e velocidade.

Testes comparativos indicam que o Claude Context entrega resultados com mais profundidade técnica em perguntas sobre arquitetura. Embora o grep seja mais veloz para tarefas de busca elementar, a vantagem do sistema reside na capacidade de síntese de processos complexos, como a sequência de inicialização de um aplicativo Electron. A ferramenta torna-se um ativo importante para análise e exploração de bases de código abertas, justificando os custos de infraestrutura.

Community Posts

View all posts