Farah Rahman tenía un problema familiar en Doha: un informe de error de un cliente, un hilo de Slack a medianoche y una base de código con 1,8 millones de líneas repartidas en 43 repositorios. Le pidió a un agente que rastreara un fallo en un pago. La primera pasada devoró tantos tokens que el modelo perdió el hilo. Luego devolvió una respuesta parcialmente correcta, presentada con mucha seguridad.
Ese es el tipo de caos que Semble intenta arreglar. Su propuesta - búsqueda de código para agentes que usa 98% menos tokens que grep - suena casi descarada. Pero debajo del titular hay un cambio serio: la búsqueda de código ya no trata solo de encontrar texto rápido. Se trata de alimentar a las máquinas únicamente con el fragmento de código fuente que necesitan. En una forma sobre la que puedan razonar sin quemar presupuesto ni contexto.
Honestamente, eso importa porque el flujo de trabajo antiguo estaba pensado para humanos que revisan terminales. Los agentes no hojean. Consumen. Y cuando consumen mal, todas las acciones posteriores se vuelven más inestables: generación de parches, análisis de causa raíz, selección de pruebas, correcciones de documentación, incluso revisiones de seguridad.
Por qué importa ahora

Dos cosas cambiaron casi al mismo tiempo. Primero, los equipos empezaron a colocar LLMs directamente en los flujos de trabajo de ingeniería, desde asistentes de IDE hasta bots autónomos de triaje. Segundo, el coste del contexto se volvió dolorosamente visible. ¿Tiene sentido? Los prompts largos no solo son caros; también son frágiles. Si un agente necesita inspeccionar un monorepo, unos pocos pasos de recuperación malos pueden desperdiciar toda una ejecución.
Mientras tanto, las expectativas de búsqueda han cambiado. Los desarrolladores siguen queriendo la precisión de grep, pero los agentes necesitan algo más que coincidencias exactas de cadenas. Necesitan una reducción semántica, agrupación consciente de símbolos y suficiente estructura para no alucinar a partir de fragmentos irrelevantes. Semble se sitúa justo en ese hueco.
La idea central: búsqueda para el modelo, no solo para el ingeniero

El grep tradicional es brillante en una cosa: hacer coincidir texto. También es brutalmente literal. Si tu error se expresa mediante una función renombrada, un archivo generado o un símbolo que vive dentro de cinco envoltorios, grep puede quedarse ciego a menos que el humano sepa exactamente qué aguja buscar.
La búsqueda de código para agentes debería comportarse de otra manera. Debería reducir un repositorio enorme a una evidencia compacta y de alto valor informativo. Eso significa clasificar por relevancia probable. Devolver la estructura circundante y eliminar el relleno repetido que un ojo humano podría ignorar pero que un modelo consumiría encantado, gastando tokens.
El punto de fondo es que los tokens ahora son un recurso de ingeniería escaso. No de forma abstracta. Literalmente. Cada fragmento extra de archivo que le das a un agente puede cambiar la latencia, el coste y la calidad de la respuesta. Por eso una herramienta que afirma usar 98% menos tokens que grep es interesante: no porque grep sea malo, sino porque grep nunca fue diseñado como un plan de dieta para LLMs.
En la práctica, un mejor sistema para la búsqueda de código orientada a agentes suele hacer bien varias cosas:
- Indexa símbolos, no solo líneas. Las funciones, clases, importaciones y referencias son más fáciles de resumir para los agentes que los bloques de texto sin procesar.
- Clasifica por contexto, no solo por cantidad de coincidencias. Una sola coincidencia de alto valor cerca de una prueba fallida puede importar más que 27 apariciones en documentación generada.
- Comprime de forma agresiva. Los encabezados de licencia repetidos, el código de terceros y las constantes duplicadas no deberían dominar el prompt.
- Devuelve fragmentos estructurados. La ruta del archivo, el nombre del símbolo, el tramo y las pistas de dependencia ayudan al modelo a razonar sin volver a leer todo el árbol.
- Preserva la trazabilidad. La buena búsqueda para agentes es auditable. Deberías poder ver por qué se eligió un fragmento.
- Funciona bien con las herramientas. La mejor capa de búsqueda encaja en CI, IDEs y flujos de terminal, en lugar de exigir un ritual aparte.
Si un modelo no puede explicar por qué eligió un archivo, probablemente no confíes lo suficiente en él como para editar ese archivo.
También hay una ganancia sutil de ergonomía. Los humanos usan la búsqueda para orientarse. Los agentes usan la búsqueda para generar acciones. No es la misma tarea. Un desarrollador puede echar un vistazo a 12 resultados ruidosos y aun así saber adónde ir. Un agente. En cambio, puede propagar con seguridad la hipótesis equivocada a través de todo un parche si la capa de recuperación es descuidada.
Por tanto, la afirmación de Semble sobre la reducción de tokens debería leerse como un indicador de algo más grande: una mejor higiene de recuperación. Menos ruido significa menos superficie para la alucinación. Menos ruido también significa más espacio para que el modelo vea las invariantes reales del código. Que es de donde salen los cambios útiles.
Cómo se ve esto en la práctica

Kenji Silva, analista de datos en Cracovia, Polonia, ayudaba a su equipo a depurar un proceso de precios que tocaba 14 servicios y 9 modelos SQL. Una búsqueda convencional devolvió 311 coincidencias para una cadena de error. Un flujo de trabajo de búsqueda consciente de tokens redujo el conjunto de trabajo a 18 fragmentos y recortó el tamaño del prompt del agente en un 91%. Dijo que el primer diagnóstico útil llegó en 4 minutos en lugar de 29.
Rina Popescu, líder de operaciones en Tallin, Estonia, usó un agente para inspeccionar manuales de incidente en 6 repositorios internos. El agente se había confundido repetidamente por el markdown basado en plantillas y los runbooks duplicados. Una vez que su equipo cambió a una capa de búsqueda de código que deduplicaba el relleno, las escaladas falsas del bot bajaron de 17 en una semana a 3, y el equipo de guardia dejó de ignorar la mitad de sus alertas.
Farah Rahman, de vuelta en Doha, ejecutó una prueba piloto en un servicio de pagos con 248 fallos de prueba durante un mes. Su equipo pidió a un agente que agrupase los fallos por causa raíz. Con una mejor capa de búsqueda, el agente agrupó 193 de ellos en 5 patrones y mostró las rutas exactas de los archivos que cambiaron. Eso no eliminó el juicio humano. Sí eliminó mucha búsqueda a ciegas.
Errores comunes que evitar

-
Tratar el ahorro de tokens como el objetivo total. Menor uso de tokens es genial, pero no es el producto. Si la búsqueda devuelve menos contexto y peores evidencias, solo has comprimido el error. El objetivo no son prompts más pequeños; son decisiones más fiables.
-
Usar un enfoque de coincidencia exacta para tareas semánticas. grep es excelente cuando conoces la cadena, el símbolo o la ruta de importación. Los agentes a menudo no. Si tu estrategia de recuperación solo copia grep con una envoltura más fina, te perderás código renombrado, dependencias implícitas y artefactos generados.
-
Ignorar la estructura del repositorio. Una definición de función en un helper de pruebas y el mismo nombre en código de producción no son iguales. Los agentes necesitan pistas sobre la propiedad, los límites de los módulos y la dirección de las llamadas. Sin eso, pueden parchear la capa equivocada con total tranquilidad.
-
Alimentar demasiado relleno. Los bloques de licencia, los paquetes de terceros, el JS minificado y los fragmentos de configuración repetidos pueden consumir contexto rápidamente. Los equipos suelen pasarlo por alto porque los humanos saltan mentalmente el desorden. Los modelos no saltan; absorben.
-
Omitir la evaluación. Una capa de búsqueda que parece ingeniosa en una demo puede fallar en cargas reales con nombres de larga cola, repositorios poliglota o pruebas desordenadas. Mide la calidad de la recuperación con tareas concretas: localización de errores, ordenación de archivos y corrección de respuestas, no solo la latencia de la consulta.
-
Asumir que el agente se autocorregirá. A menudo no lo hará. Si el paso de recuperación apunta al clúster de archivos equivocado, el modelo puede construir una historia pulida pero falsa sobre él. Una buena búsqueda es la primera barrera de protección, no una mejora opcional.
Una lista de verificación práctica

-
Empieza con un único flujo de trabajo doloroso. Elige una tarea como el triaje de errores, el análisis de fallos de pruebas o el rastreo de dependencias. No intentes abarcarlo todo antes de saber qué problema de búsqueda importa más.
-
Mide el tamaño del prompt antes y después. Registra los tokens de entrada, la calidad de la salida y el tiempo hasta obtener una primera respuesta útil. Si no puedes nombrar la línea de base, no puedes demostrar la mejora.
-
Registra por qué se devolvió cada fragmento. Conserva la ruta del archivo, el símbolo y la señal de relevancia. La depuración importa cuando un modelo da un salto raro.
-
Elimina el peso muerto pronto. Excluye directorios de terceros, artefactos de compilación y archivos generados duplicados. Esto es barato y a menudo compensa de inmediato.
-
Prefiere la recuperación estructurada frente a los volcados de texto bruto. Dale al agente un paquete compacto: nombre del símbolo, líneas circundantes y pistas de dependencia. Eso suele ser mejor que pegar archivos completos.
-
Prueba con consultas feas. Intenta con funciones renombradas, mensajes de error parciales y descripciones vagas como “la cosa del checkout falla después del retry”. Los agentes reales ven desorden, no palabras clave perfectas.
-
Compara con grep de forma honesta. grep sigue ganando en muchas tareas humanas. Observa dónde la nueva búsqueda ayuda a un agente y dónde la herramienta antigua sigue siendo más rápida y simple.
-
Vigila la falsa confianza. Si el agente se vuelve más fluido pero menos preciso, refuerza la recuperación y exige citas que apunten a los tramos fuente.
Cuándo NO hacer esto
No todos los equipos necesitan una capa de búsqueda orientada a agentes. Si tu repositorio es pequeño, tu stack está ordenado y tus tareas dependen sobre todo de humanos, grep más una búsqueda decente en el IDE puede ser suficiente. La recuperación sofisticada puede convertirse en teatro cuando el verdadero cuello de botella es entender el producto, no localizar el archivo.
También es una mala decisión si no tienes suficiente disciplina operativa para evaluar las salidas. Un motor de búsqueda eficiente en tokens puede abaratar los experimentos, lo cual está bien, pero también puede abaratar el mal comportamiento del agente. Si nadie revisa la calidad de la recuperación, quizá solo estés automatizando la confusión a menor coste.
Dónde aprender más
- https://owasp.org/www-project-top-ten/ - para los fundamentos de seguridad que siguen importando cuando los agentes tocan código
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions - un buen recordatorio de lo que realmente hace grep bajo el capó
- https://en.wikipedia.org/wiki/Information_retrieval - el campo más amplio detrás de la clasificación, la relevancia y la evaluación de búsqueda
Fwiw, la parte interesante de Semble no es la cifra de marketing, aunque 98% menos tokens sea un buen titular. Es la pista de que la búsqueda de código se está reconstruyendo primero para lectores de máquinas y después para lectores humanos, y ese cambio va a remodelar la manera en que los equipos depuran, parchean y automatizan su software. La pregunta ya no es si los agentes pueden buscar código: es si tu capa de búsqueda les está ayudando a pensar con claridad o solo les está alimentando más ruido.