Grep supera a LSP: por qué los agentes de código ignoran tus herramientas más sofisticadas
Grep beats LSP? Why coding agents ignore your fancier tools
Un estudio de AgentConnect compara la búsqueda léxica con grep frente a la navegación semántica basada en LSP en agentes de código. Los agentes suelen elegir grep para tareas de localización y renombrado, pero recurren a LSP en tareas de completitud de referencias. La precisión de LSP es mayor en repositorios ruidosos, pero no siempre ahorra tokens. El formato de salida de las herramientas es clave: incluir contexto en línea reduce lecturas de archivos y mejora el éxito. El estudio concluye que la familiaridad del modelo con las herramientas y la estructura de la tarea influyen, y que el harness que envuelve al modelo es parte del sistema.
Una herramienta no es amigable para un modelo solo porque sus resultados sean precisos; debe devolver suficiente contexto para el siguiente paso y presentarlo en una interfaz y forma de salida que el modelo pueda usar directamente.
- tonyarkles
Ha habido una coevolución interesante que he estado experimentando con Claude Code. Le pido que haga una tarea, observo lo que hace (a menudo mucho find, grep y ripgrep) y luego, cuando termina, le pregunto si hay alguna herramienta que le habría facilitado el trabajo. Esto me ha llevado a herramientas como fzf y otras (notmuch para indexar correos electrónicos, por ejemplo). Luego he tomado esas herramientas y he descubierto cómo integrarlas en mi propio flujo de trabajo, tanto en CLI como en Emacs.
También hemos colaborado en algunas herramientas de Python que toman un formato de datos bastante lento que a menudo tengo que procesar y analizar, indexan todo el corpus, y para el análisis puedo hacer (o Claude Code puede) una conversión de una sola pasada a Parquet que luego se puede consultar con DuckDB. Esa herramienta ha mejorado drásticamente mi tiempo de respuesta en tareas de análisis puntuales y, como herramienta CLI de Python que usa Typer, la interfaz también es agradablemente descubrible para que los harness de LLM trabajen con ella.
- nomilk
Tangencial, pero mi configuración de LSP se rompe cada pocos meses. Ya no me molesto en arreglarla; abro un LLM en ~/dotfiles y me quejo hasta que vuelve a funcionar, normalmente en unos minutos.
Lo interesante es observar cuánto trabajo requiere esto. (Me da mucha más empatía hacia mi yo del pasado; ¡cómo se suponía que un humano torpe supiera y razonara sobre estas cosas!, especialmente cuando no había tocado las configuraciones desde hacía unos meses y las había olvidado casi por completo).
La mayoría de las veces hay entre 10 y 20 programas muy pequeños trabajando juntos para dar la experiencia deseada. La cantidad de minutos y tokens necesarios para resolver estos problemas aparentemente simples como "Mi LSP no funciona" a veces es mucho mayor de lo esperado.
- the_duke
He tenido un gran éxito con una herramienta que escribí y que puede imprimir ASTs dispersos para código.
https://github.com/theduke/smartedit
Con la skill instalada, GPT 5.6 normalmente la usa automáticamente, y reduce significativamente el tiempo de exploración de código y el uso de tokens, por ejemplo imprimiendo solo los tipos y funciones de un archivo sin los cuerpos, y expandiendo solo cuando es necesario.
(nota: también tiene funcionalidad de edición, que no funciona tan bien, ya que los modelos están muy inclinados hacia herramientas de edición comunes en el post-entrenamiento)
- x-complexity
Configurar un LSP depende de 2 requisitos para que funcione correctamente:
(a) que las herramientas del LSP estén construidas competentemente y sean consistentes, y
(b) que el LLM que lo usa haya sido entrenado adecuadamente para usar LSPs en general.
Usar una herramienta nativa como grep tiene los mismos 2 supuestos, pero
(a) se cumple debido a la osificación de las características centrales de grep (algo bueno), y
(b) se cumple extra porque el LLM puede ser entrenado para usar grep específicamente, y no "la vigésima variación de grep envuelta detrás de un LSP, pero lo suficientemente diferente como para lanzar bolas curvas".
Además, grep casi siempre está presente en los entornos Linux predeterminados, por lo que su presencia se asume y se puede confiar en ella cuando sea necesario.
- brunoborges
Lo que me ha funcionado bien es tener una SKILL que indique usar el LSP más a menudo que no.
LSP funciona mejor cuando se usan dependencias que ya están compiladas localmente, pero si todo el código fuente está disponible, sí... todavía no tengo una respuesta sólida sobre cuál es mejor.
Pero de nuevo, para dependencias ya compiladas (piensa en bytecode de Java), sin configuraciones de LSP, es probable que el agente intente extraer binarios de archivos JAR, use grep y javap, y potencialmente intente decompilar los archivos .class.