Pular para o conteúdo

Seu agente de programação está 6 meses desatualizado — Jakub Hojsan, Exa

Ver no idioma original →

Autoria: AI Engineer · Assistir no YouTube

Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.

Idioma original: inglês

Vídeo original: Your Coding Agent Is 6 Months Out of Date — Jakub Hojsan, Exa · Canal: AI Engineer · 12:01 · Assistir no YouTube

Tópicos: Agentes de IA, Engenharia de software com IA, Modelos de IA, RAG, busca e recuperação de informação

Jakub Hojsan apresenta como a Exa criou uma busca semântica para agentes de programação e revisão de código, que fornece trechos relevantes em vez de páginas inteiras. A busca pode ajudar a superar a defasagem de conhecimento dos LLMs, por exemplo, ao verificar mudanças recentes em dependências e repositórios. Ele ressalta que adicionar uma ferramenta de busca ao harness não basta: também é preciso instruir o agente sobre quando usá-la. A apresentação aborda ainda transparência, eficiência no uso de tokens, integrações da Exa e, na sessão de perguntas, técnicas de busca e reranking.

  • Os LLMs podem ter uma defasagem de cerca de seis meses entre a data de corte do conhecimento e o lançamento do modelo.
  • Em revisão de código, a busca na web pode revelar mudanças recentes, como alterações incompatíveis em dependências, que o modelo não conhece.
  • A Exa fornece trechos relevantes de páginas para reduzir o conteúdo enviado ao modelo, em vez de retornar páginas inteiras.
  • Para a busca funcionar bem, é necessário tanto disponibilizar a ferramenta quanto instruir o agente sobre quando usá-la.
  • A Exa destaca a transparência da busca, com acesso às consultas, fontes e trechos enviados ao modelo.
  • A extração de trechos descrita na apresentação é computacional e, segundo o palestrante, não acrescenta latência à chamada de busca.
  • A Exa oferece uma API de busca e o produto Exa Agent, que também pode reunir informações de fontes parceiras.
  • A busca combina embeddings de consulta, filtragem por palavras-chave, busca semântica e etapas de reranking.
Início Capítulo Resumo
00:01 A defasagem de conhecimento dos modelos O palestrante explica como a busca semântica pode ajudar agentes a revisar mudanças recentes que estão fora do conhecimento do modelo.
03:09 Como orientar o agente a usar a busca Ele diferencia a simples disponibilização da ferramenta de busca da instrução explícita sobre quando o agente deve usá-la.
07:51 Exa Agent e aplicações da busca O palestrante apresenta o Exa Agent, integrações com fontes de dados e formas de acessar os serviços da Exa.
09:58 Perguntas: organização e reranking dos resultados Na sessão de perguntas, ele descreve etapas como embeddings de consulta, filtragem por palavras-chave e reranking.
11:31 Geração de esquemas O palestrante demonstra como definir campos em linguagem natural e gerar um esquema para estruturar os resultados.

Agentes de programação não precisam desses 10 links azuis que você vê ao pesquisar no Google. — 00:31

Adicionar uma ferramenta de busca ao seu agente não é suficiente. — 03:09

Você recebe todo o percurso: as consultas exatas, as fontes exatas e os trechos enviados ao modelo. — 04:44

Isso é completamente computacional. — 06:17

  • Exa (empresa): Empresa apresentada como provedora de busca semântica e de ferramentas de busca para agentes.
  • Jakub Hojsan (pessoa): Apresentador da Exa que explica a busca para agentes de programação e revisão de código.
  • Exa Agent (ferramenta): Produto de busca da Exa apresentado como opção para quem não quer orquestrar a própria busca.
  • Cursor (empresa): Empresa citada pelo apresentador entre as que usam a Exa para busca na web.
  • Cognition (empresa): Empresa citada pelo apresentador entre as que usam a Exa para busca na web.
  • Warp (empresa): Empresa citada pelo apresentador entre as que usam a Exa para busca na web.
  • CodeRabbit (empresa): Empresa citada pelo apresentador entre as que usam a Exa para busca na web.
  • Similarweb (empresa): Provedora de dados de análise da web mencionada como parceira da Exa.
  • Particle (empresa): Provedora de dados sobre podcasts mencionada como parceira da Exa.
  • Crunchbase (empresa): Provedora de informações sobre mercados privados mencionada como parceira da Exa.
  • busca semântica (conceito): Método de busca que usa o significado da consulta para encontrar informações relevantes.
  • reranking (conceito): Etapa que reordena resultados de busca para priorizar os mais relevantes.
  • query embedding (conceito): Representação vetorial da consulta usada, entre outras etapas, na busca semântica.
  • MCP (conceito): Protocolo mencionado como uma forma de acessar os serviços de busca da Exa.

00:01 [música] Olá, pessoal. Todos conseguem me ouvir? Ótimo. Beleza. Meu nome é Jakub Hojsan. Sou engenheiro de implantação avançada aqui na Exa. E a apresentação de hoje é sobre como criamos a busca para agentes de programação e revisão e como damos suporte à maioria da Bay Area. Nesse sentido, agentes de programação não precisam exatamente daqueles 10

00:31 links azuis que aparecem quando você pesquisa no Google. O que fazemos é oferecer um mecanismo de busca semântica: você envia uma consulta e nós fornecemos destaques ricos em contexto para passar ao seu LLM. O principal problema que temos com modelos de linguagem grandes em aplicações de revisão de código e agentes de programação é que todos esses modelos têm uma data-limite de conhecimento. Como você pode ver neste gráfico, normalmente há um atraso de cerca de seis meses entre a data-limite de conhecimento e a data de lançamento. Nesses casos, existe essa lacuna entre

01:03 o lançamento do modelo e o momento em que pode haver um changelog importante ou um PR enviado para um repo que você precisa revisar. Neste caso, tenho um exemplo do PR do Cooter Vector Store, feito há alguns meses. Ele está dentro do ponto cego do nosso modelo, depois da data-limite de conhecimento do GPT-5.5. Nos meses seguintes à data-limite, todas essas mudanças são feitas em repos reais que, primeiro, você não consegue usar para criar repos totalmente novos

01:35 e, na verdade, nem consegue revisar. É aí que a Exa entra em ação. Vamos revisar rapidamente este diff para você entender o que quero dizer. Mas, antes disso, como uma pessoa faria essa revisão? Normalmente, ela provavelmente iria ao Stack Overflow e perguntaria: “Essa variável aleatória foi removida? Neste caso, ela se chama inertia check. E por que meu código não está compilando?” Se o seu código não estiver compilando, provavelmente você simplesmente colaria a mensagem de erro no Stack Overflow e receberia a resposta que

02:06 queria; depois, você faria um PR para o repo para resolver o problema. Agora, neste caso, usando um LLM, muitas pessoas sem busca na web vão olhar e pensar: “Certo, aqui está o erro; o diff parece coerente e parece uma limpeza.” Mas não é bem assim. O motivo para remover esse parâmetro, neste caso, é que precisamos refatorar por causa de uma atualização de dependência. Com a busca na web, você consegue consultar o próprio repo, verificar quaisquer mudanças incompatíveis no changelog desse repo e, então, explicar a migração em detalhes.

02:38 O interessante aqui é que não retornamos a página inteira do GitHub. Retornamos um pequeno trecho da página que explica a mudança. Portanto, se a consulta for exatamente esta, temos uma etapa de interpretação que pega a página inteira e a reduz ao que o LLM precisa para responder à pergunta. Assim, você

03:09 não está mais alimentando o modelo com 100 mil caracteres. Está alimentando-o, literalmente, com apenas 500 caracteres para responder à pergunta. Mas adicionar uma ferramenta de busca ao seu agent não é suficiente. Há, obviamente, um processo de duas etapas. Se você simplesmente acoplar uma busca na web ao seu agent, talvez já tenha visto isso ao usar o Claude Code: você diz “Ei, quero usar o Sonnet 4.6 ou 4.7 agora”, e o modelo responde que essa versão não existe, certo? Então, embora tenha acesso a uma

03:40 ferramenta de busca na web, ele não está realmente fazendo nada. Isso porque o Claude Code já tem uma ferramenta de busca na web nativa. Nesses casos, o modelo simplesmente não sabe que você está pedindo uma versão que existe. Então, você precisa fornecer ao modelo um conjunto de regras. Para um agent de revisão de código, por exemplo, a regra poderia ser: quando um diff atualiza uma dependência ou versão, talvez seja bom consultar a fonte upstream para verificar se isso é verdade e, em seguida, fundamentar a revisão no que encontrar. Quando trabalho

04:12 com clientes que usam esses agents de revisão de código e de programação, há vários casos em que isso pode acontecer. Eles podem adicionar a ferramenta ao agent, mas adicioná-la ao harness simplesmente não basta. Portanto, é um processo de duas etapas: instruir o agent sobre quando usar a busca na web — já que muitas vezes ela não vem integrada — e, depois, realmente executar a busca na frase. A Exa nos oferece quatro coisas. Temos transparência. Quando você usa uma ferramenta nativa de busca na web da OpenAI ou da Anthropic, há uma caixa-preta. Eles chamam uma API de busca na web, sintetizam todas as informações — isso pode levar até 10 segundos — e depois você recebe algumas fontes, mas nenhum conteúdo.

04:44 Esse é o primeiro ponto. Ao usar a Exa, você recebe o trecho completo. Tem acesso ao rastreamento completo do que pesquisamos, às consultas exatas, às fontes exatas e aos destaques que foram passados ao modelo. Tudo isso é fornecido a você e pode ser enviado a qualquer uma das suas ferramentas de telemetria para investigar quando algo dá errado. Também fornecemos destaques eficientes em tokens, que vou abordar no próximo slide e que reduzem uma página inteira ao que o modelo precisa.

05:14 Outro ponto é o custo. Muitas vezes, os custos desses provedores de modelos são tão altos que você nem percebe a conta da busca na web. Mas, em cargas de trabalho suficientemente grandes, nossos preços são bem mais vantajosos do que os dos provedores nativos de busca na web, e a qualidade é muito melhor na maioria dos casos. Outra coisa que deixa muitos dos nossos clientes muito satisfeitos é não ficarem presos a um único provedor de modelos. Ao usar uma ferramenta de busca na web de terceiros, você tem esse nível de

05:45 padronização. Você pode usar o GLM quando ele for lançado. Pode usar os novos modelos da Anthropic quando forem lançados. Pode usar os novos modelos da OpenAI quando forem lançados. E aí você tem uma única API fixa para chamar, em vez de tudo que os outros provedores de modelos usam. Além disso, tem um conjunto fixo de parâmetros extremamente flexíveis, que atende às suas necessidades em todas as aplicações de modelos. Aqui está um GIF rápido mostrando como isso funciona, já que eu mesmo aprendo melhor visualmente. Neste exemplo, se você perguntar sobre a API de busca da Exa, nós literalmente

06:17 extraímos algumas linhas em tempo de execução, sem usar um LLM. Isso é totalmente computacional. Portanto, não acrescentamos nenhum atraso extra à chamada de busca ao fornecer o conteúdo de praticamente qualquer página da internet. Tenho um exemplo de como isso funciona. Digamos que você esteja pesquisando — espero que dê para ver bem a consulta — uma biografia,

06:49 você rapidamente recebe um resultado com “Adoro fotografia” e o que faço no meu tempo livre. Gosto de andar de moto, como você pode ver aqui. Mas, no mesmo site, eu poderia perguntar meu número de telefone. Em tempo de execução, obteríamos um conjunto de informações completamente diferente. Assim, dá para ver que isso se aplica a praticamente qualquer caso de uso. Em um caso de programação, você poderia ter um repo inteiro no GitHub com um zilhão de linhas de código, mas não gostaria de passar esse zilhão de linhas para o seu modelo. E também não gostaria de usar um modelo para

07:19 sintetizar essas informações. Isso funciona com qualquer tipo de consulta. Se você quiser as notícias mais recentes sobre a Nvidia e precisar que mencionem Jensen, também pode obter esse resultado. Mas essa é apenas uma das muitas aplicações que temos nesses casos, e a programação é só o começo. Esse foi um dos motivos pelos quais entrei para a Exa. Tínhamos um grande número de pessoas que queriam usar a Exa como uma API de busca para obter

07:51 documentação de programação. E eu estava superanimado com a aplicação. Mas, à medida que avançamos e passamos a atender muitos provedores populares, eles adoraram usar nossos serviços, e oferecemos a eles uma ótima experiência. Cursor, Cognition, Warp, Code Rabbit: todas essas empresas agora usam a Exa para alimentar a busca na web. Mas agora temos uma nova oferta. Ela se chama Exa Agent. Há muitas situações em que você não quer orquestrar sua própria busca, mas precisa de uma boa experiência de busca. E é aí que ela entra. Fizemos parceria com vários provedores de dados para não apenas exibir resultados da web, mas também destaques de muitos lugares diferentes, como Similarweb, para análise da web,

08:21 mas também destaques de muitos lugares diferentes, como Similarweb, para análise da web, Particle, para inteligência sobre podcasts, e Crunchbase, para mercados privados. Estamos fornecendo essas informações às maiores instituições financeiras e aos fundos de hedge. E, se quiser saber mais sobre isso, você pode acessar o Exa Connect. Também tenho uma pequena mensagem aqui. Fiz uma consulta rápida. Se eu quisesse encontrar todas as pessoas que estão participando da conferência AI Engineer, literalmente poderia encontrar qualquer pessoa que já tenha

08:53 mencionado essa conferência nesse local. É meio louco, porque vejo pessoas que conheço e que me enviaram e-mails aqui. Então, estes são a maioria dos palestrantes que estão participando da conferência. E isso se aplica amplamente a todos os casos de uso. Se você quisesse encontrar todos os funcionários que trabalham na Exa, também poderia fazer isso. E também poderia obter os e-mails e perfis do LinkedIn de todos eles para prospecção. Mas, sim, acho isso muito empolgante, e queríamos empacotar nossa busca da melhor forma possível, porque conseguimos orquestrá-la muito bem.

09:27 Mas, sim, se quiser usar a Exa hoje, basta chamar nosso serviço pelo MCP, e estamos disponíveis em praticamente todos os provedores que dão suporte a ele. E, se precisar de ajuda para configurá-lo, esse é o meu trabalho. Então, fique à vontade para me enviar um e-mail. Também há um código QR no alto. Se quiser créditos grátis, pode falar comigo depois da palestra. Mas, sim, se houver alguma pergunta, será um prazer responder. Acho que posso responder a uma ou duas perguntas.

09:58 Desculpe, vou descer rapidinho. Vou pegar. Olá. Olá. Ele perguntou como gerenciamos o reranking e a organização de, basicamente,

10:28 bilhões de documentos na internet. É um processo de várias etapas. Essencialmente, recebemos sua consulta, transformamos em um embedding de consulta e, depois disso, há várias etapas intermediárias de filtragem por palavras-chave, junto com a busca semântica. Existem muitos métodos diferentes para fazer isso. Mas usamos etapas de reranking durante a busca para fornecer as melhores informações. Removemos os resultados que não são relevantes. Nosso índice é altamente selecionado. Então, não temos tantos documentos quanto

10:58 o Google, mas aposto que temos documentos de altíssima qualidade no nosso índice, que contém dezenas de bilhões de documentos. Mas, se tiver interesse em algum detalhe específico, fique à vontade para falar comigo depois. Mas, sim, legal. >> Sim. Sim. Sim. Na verdade, temos esse recurso, que é bastante útil.

11:31 Você pode gerar um schema. Então, pode usar até 10 campos no Deep e, acredito, até 100 no Agents. Basicamente, você digita o que quiser em linguagem natural e pode gerar o schema. Neste exemplo, ele vai gerar, e então você só clica em confirmar e pronto. Aí, seguimos esse schema. Se quiser propriedades adicionais, basta definir isso como verdadeiro, e você pode obter o que quiser. Você também pode… minha demonstração favorita é sobre hobbies. Mas, sim, ótimo. Vou

12:01 responder a algumas perguntas aqui no palco, mas obrigado a todos por ouvirem hoje. >> [música]

Transcrição original

[00:01] [music] Hello everyone. Can you all hear me? Good. Sweet. My name is Jacob Hoisan. I’m a Ford deployed engineer here at Exa. And uh today’s presentation is on how we built search for coding and review agents and how we power most of the Bay Area. Um, in this regard, um, coding agents don’t really need these 10

[00:31] blue links that you see when you search Google. Uh, what we do is we have a semantic search engine that essentially you pass in a query and we provide you context rich highlights to pass into your LLM. The core problem that we have with large language models in code review and coding agent applications is that there’s a knowledge cut off to all of these models. As you can see from this graph, we’re typically lagging around 6 months from the knowledge cutoff date to the release date. In these instances, you have this gap that exists between

[01:03] when the model was released and when you might have an important change log or a PR push to a repository that you do have to review. Um, in this instance, I do have an example where from the uh cooter vector store PR um that was made a few months back. This is within our model blind spot after GPD 5.5’s cutoff date. So in these months leading after the cutoff date, you have all of these changes being made to real repositories that one you can’t create net new repos

[01:35] with, but you actually can’t review at all. Um, so that’s kind of where Exa comes into play in this instance. Uh, and we’ll actually just review this diff real quick so you can kind of see what I’m getting at. But before we do that, like how would a human even review this? Very typically a a human would probably go on to Stack Overflow and say, “Was this like random variable removed? In this case, it’s called inertia check.” Um, and like why isn’t my code compiling? And uh if your code’s not compiling, you’ll probably just paste the error code into Stack Overflow and you’d actually get the response that you

[02:06] would want and then you would make a PR to the repo in order to resolve it. Now in this case in with using a large language model many people without web search will go see okay here’s the error the diff looks consistent and it looks like a cleanup but that’s really not the case. The reason why we’re removing this parameter uh in this instance is because we actually need to refactor to a dependency bump. So using web search, you’re actually able to take a look at the repository itself, any breaking

[02:38] changes from this repos change log and then explain the migration in depth. So what’s interesting here is that we don’t return the entire GitHub repository page. What we’ll return is a very small snippet from the page explaining the change. So if the query is exactly this, we have an interpretation step which will take that entire page and distill it down into exactly what the large language model needs to answer the question. So you’re

[03:09] not feeding the model 100,000 characters anymore. You’re feeding it quite literally only 500 characters to answer the question. Now adding a search tool to your agent is not enough. There’s obviously kind of a two-step process here. Um, if you just bolt on a web search onto your agent, many of you have seen maybe when you’re using cloud code, you’ll say, “Hey, I’d like to use sonnet 46 or 47 now.” And the model will say it doesn’t exist, right? So even though it has access to a

[03:40] web search tool, it’s not actually like doing anything. Um, because natively cloud code does have a web search tool. Um, and in these instances, the model simply doesn’t know that you’re requesting a version that does exist. So you actually have to provide the model with a set of rules. So when you’re doing a code review agent, the rule might look like when you have a diff that bumps a dependency or version, you might want to look at the upstream source to verify that this is actually true and then ground the actual review in what you find. Um, so when I work

[04:12] with these code review and coding agent customers, there’s several instances where this might happen. They might actually add the tool to their agent and then adding it to the harness is simply not enough. So, it’s really a two-step process. It’s instructing your agent when to use web search uh since oftent times it’s not built in and then also actually just executing the search uh in the sentence. So, there’s four things that AXA kind of gives us a model. Uh we have transparency. When you’re using a native web search tool within OpenAI or Anthropic, you actually have this black

[04:44] box that exists. They they call a web search API. They synthesize all the information. It might take up to 10 seconds and then you get some of the sources and then none of the content. So that’s really point one. When you use Exo, you get the entire span. You get the entire trace of what we looked for, the exact queries, the exact sources, what highlights were passed into the model. Um, this is all given to you and can be passed into any of your telemetry to go investigate when something does go wrong. Um, we also provide token efficient highlights, which I’ll cover on the next slide, which distills an

[05:14] entire page down into exactly what the model needs. And then it also comes down to cost. Many many of the times that cost from these model providers are actually so large that you don’t notice your web search bill. Um but given like sufficiently large workloads were priced actually much more effectively than native web search providers and much better quality in most instances. Um and then another thing that most of our customers are very happy with is that not being tied to one model provider. uh when you use a thirdparty web search tool, you have this level of

[05:45] standardization that exists. Uh you can use GLM when it comes out. You can use the new anthropic models when it comes out. You can use the new OpenAI models when it comes out. And then you have like one fixed API that you’re calling instead of everything that the other model providers are using. And you have a fixed set of parameters that are extremely flexible um to what you would need across all model applications. So, here’s a quick gif of kind of how this works since I’m more of a visual learner myself. Um, but in this instance, if you’re asking about the access search API, we’re quite literally

[06:17] just pulling certain lines at runtime, not using an LLM. This is completely computational. So, we actually cut zero, we add zero extra latency to our search call by providing you the contents of pretty much any page on the internet. Um, and I do have an example of how this works. So, let’s say you’re looking up. Hopefully, you can see that all right on the query there. If you’re looking up and then a biography,

[06:49] you’ll quite quickly get a result that I love photography and then what I do in my free time. So, I like driving motorcycles. As you can see, it’s right here. But then from that same website, I could actually ask for my phone number. And then at runtime, we’ll actually just get a completely different set of information. So you can see this is generally applicable to pretty much any use case. In a coding use case, you might have an entire GitHub repo that has like a bajillion lines of code, but you don’t want the bajillion lines of code to be passed into your model. And you don’t want to use a model to

[07:19] synthesize that information either. Um, so this works across any type of query. If you want the latest news about Nvidia and it has to mention Jensen, then you could also get that. Um but yeah, this is like one of the many applications that we have um in these instances and coding is really just the beginning. Um this is one of the reasons why I joined Exa in the first place. We have we had such a large swath of people that wanted to use Exa as a search API to get

[07:51] coding docs. Um and I was super excited for the application. Um but as we went forward and we took on many popular providers and they loved using us and we provided them a great experience. Cursor, Cognition, Warp, Code Rabbit, all of these companies now use Exa to power their web search. Um but now we have a new offering. Uh it’s called Exa Agent. Now there’s many instances where you don’t want to orchestrate your own search, but you need a good search experience. Uh and that’s kind of where it comes in. We partnered with several data providers to not just surface from

[08:21] the web but then also surface highlights from many different places such as similar web for web analytics, particle for podcast intelligence and crunchbas for private markets. So we’re powering the biggest financial firms and hedge funds uh with this information. Um and if you want to learn more about this you can go to exit connect. And then I do have a small little message here as well. I ran a quick query. If I wanted to find all of the people that are attending the AI engineer conference, you can quite literally find anyone that has ever

[08:53] mentioned this conference at this location. And it’s kind of crazy because I see people that I know and have emailed me here. So, uh, these are most of the speakers that are attending the conference. Um, and this applies broadly across every single use case. If you wanted to find all the employees that work at Exa, you can also do that. And you could also get all their emails and LinkedIns for outbound. But yeah, um I think this is quite exciting and we wanted to package our search in the best way possible um because we can orchestrate our search quite well.

[09:27] But yeah, we’re you if you want to use Access today, you could simply call us via our MCP and then we’re on basically every single provider that supports it. Um and if you’d like any help in setting it up, that’s my job. So you can feel free to send me an email. Um, but yeah, there’s also a QR code at the top. Um, if you want free credits, you could also talk to me after the talk. Um, but yeah, if there’s any questions, happy to take them. I think I could take one question or two questions.

[09:58] Sorry, I’ll come down real quick. I’ll get it. Hello. Hello. Uh he asked how we manage the reranking and organization of like

[10:28] billions of documents on the internet basically. Um and it’s a multi-stage process. Um so essentially we pass in your query, we turn it into a query embedding and then once we’ve turned it into a query embedding. There’s several steps in between for keyword filtering uh alongside semantic search. But um there’s uh many different methods of doing this. Uh but we do employ reranker ranking steps during our search uh in order to give you the best information. Um we drop results that are not relevant. Our index is highly curated. So, we don’t have as many documents as

[10:58] Google, but I bet you that we have very high quality documents in our like tens of billions of documents index. Uh, but yeah, if you’re interested about any specifics, feel free to talk to me after. But yeah, cool. >> Yeah. Yeah. Yeah. So, we actually have this feature that’s quite useful. Um,

[11:31] so you could actually generate a schema. So, you up to 10 fields on deep and then I I believe it’s up to 100 on agents. Uh, but you basically type whatever you want in natural language and you can generate it and then in this instance it’ll generate and then you’ll just click confirm and there you go. So, and then we adhere to it and then if you want additional properties, you just set this to true and then you can get whatever you’d like. You could also, my favorite demo is hobbies. But yeah, um, great. I’ll

[12:01] take some questions off the stage, but uh, thank you all for listening today. >> [music]