JetBrains construye un pipeline RAG para buscar código por significado, no por palabra clave

Building a RAG Pipeline for Semantic Code Search

JetBrains construye un pipeline RAG para buscar código por significado, no por palabra clave

JetBrains comparte las lecciones de llevar Air Context, su buscador semántico de código, de prototipo a producción. El primer artículo detalla el parsing y chunking guiado por AST para nueve lenguajes, la vectorización y la optimización del almacenamiento de millones de embeddings. La idea central: los agentes necesitan recuperar código por significado, no por coincidencia textual, para trabajar sobre bases de código enormes.

La pregunta no es tanto si un agente puede completar la tarea, ya que con suficiente tiempo y recursos de tokens seguramente lo hará, sino cuánto tiempo, esfuerzo y dirección se requieren para que genere resultados de calidad de producción.
  1. keeda

    Creo que algo así sería clave para mejorar la calidad de los agentes de programación. Un problema muy común (quizás el más grande) observado por mucha gente es que los agentes a menudo producen mucho código duplicado y redundante; múltiples abstracciones, métodos, clases, estructuras de datos, etc. que sirven para variaciones menores del mismo propósito... ¡a veces dentro del mismo archivo!

    Mi teoría es que esto se debe a una especie de "visión de túnel" que tienen estos modelos mientras ejecutan una tarea dada, porque los ingenieros nuevos en una empresa hacen lo mismo hasta que aprenden el "panorama" y descubren que problemas similares se han resuelto en otros lugares.

    En un trabajo anterior, mi equipo era dueño de la herramienta interna de búsqueda de código en múltiples repositorios, que era de lejos la herramienta interna más popular, y luego otro equipo añadió una capacidad similar de búsqueda semántica. Esto fue muy emocionante, pero me fui antes de poder ver qué tal funcionaba en la vida real.

    O sea, harías una búsqueda por palabra clave y explorarías si necesitas alguna funcionalidad importante que requeriría un trabajo significativo, o cada vez que te encuentras con una abstracción cuyo código no existe en tu repositorio y quieres aprender más sobre ella. Pero cuando estás en el flujo e inventando abstracciones más pequeñas, como una clase o un método de utilidad, no necesariamente piensas en buscarlo. Peor aún, incluso si lo hicieras, no podrías buscarlo de manera efectiva porque algo similar puede existir con un nombre o terminología ligeramente diferentes o un error tipográfico que una búsqueda por palabra clave pasaría por alto. Predeciblemente, en sc […]

  2. duhhhhh1212

    https://www.pangram.com/history/c901e80e-9cb7-46e4-bf10-7348...

    No quiero decir que no pierdas tu tiempo, ya que la primera mitad está escrita por un humano. Preguntas para los autores: ¿se cansaron de escribir y dijeron "a la mierda, que el LLM termine el resto"? ¿O uno de ustedes usó un LLM para escribir la última mitad y el otro usó sus propias palabras?

  3. simianwords

    Aquí vamos de nuevo, la industria en gran medida abandonó RAG. De hecho, apenas he visto un caso en el que grep no funcione tan bien como RAG.

Más de este día

2026-10-04