Mapa de código para agentes de IA: busca sin grep

Un mapa de código para agentes de IA: un índice local de archivos, símbolos, imports y tests ayuda a Claude Code y Codex a hallar el código leyendo menos archivos.

Solviera Teknoloji 8 min de lectura

Un mapa de código para agentes de IA es un índice local de los archivos, símbolos, imports, tests e historial de cambios de un repositorio que un agente puede consultar, de modo que encuentra el código correcto en unas pocas llamadas en lugar de hacer grep y leer archivo tras archivo. Menos archivos leídos significa menos en la ventana de contexto, y menos en la ventana de contexto significa que cada turno posterior sale más barato.

Este artículo explica por qué los agentes malgastan tokens explorando, qué contiene un buen mapa y cómo el mapa del proyecto de AgentVera da ese índice a Claude Code, Codex y otros agentes CLI por MCP.

Cómo explora un agente un repositorio sin mapa

Dale a un agente de programación una tarea como «añadir un campo de cupón al checkout» en un repositorio desconocido y hará lo que harías tú con solo una terminal:

  1. grep -r "checkout" y obtener 200 resultados
  2. Abrir los archivos que parecen prometedores, a menudo enteros
  3. Seguir los imports leyendo más archivos
  4. Buscar de nuevo el archivo de tests

Cada paso mete texto en el contexto. Un archivo de 1.000 líneas leído una vez queda en la conversación durante el resto de la sesión, y el modelo vuelve a leer la conversación en cada turno. Si las primeras suposiciones eran erróneas, esos archivos siguen ahí. Es una de las principales razones por las que una sesión se encarece mucho antes de que se haga el cambio real. Para la otra gran fuente, el contexto base, consulta cómo reducir el uso de tokens de Claude Code.

Qué contiene un mapa de código útil

Una lista de archivos no basta. Un agente necesita responder «dónde» y «qué se rompe si cambio esto» sin leer código. Un buen mapa contiene:

CapaResponde
Archivos y módulos¿Qué hay en este repositorio y cómo está organizado?
Símbolos con firmas¿Dónde está applyCoupon y qué recibe?
Imports¿Quién usa este archivo, y quién usa a esos?
Tests enlazados¿Qué tests cubren este código?
Historial de cambios conjuntos¿Qué archivos suelen cambiar junto con este?
Puntos de entrada y comando de test¿Por dónde empieza y cómo ejecuto los tests?

Los dos últimos importan más de lo que parece. El historial de git sabe que checkout.ts, checkout.test.ts y pricing.ts suelen cambiar en el mismo commit, incluso cuando ningún import los une.

Cómo se construye el mapa del proyecto de AgentVera

AgentVera construye un mapa del proyecto para cada carpeta de proyecto:

  • Símbolos. tree-sitter lee funciones, clases, métodos, interfaces, tipos, enums y constantes con rangos de líneas, firmas y la primera frase del comentario de documentación, para TypeScript, TSX, JavaScript, Python y Go. Otros 30 lenguajes más se indexan por ruta.
  • Imports y tests. Los imports se resuelven a archivos, y los tests se enlazan con el código que cubren.
  • Cambios conjuntos. Se enlazan los archivos que cambiaron juntos en al menos 2 de los últimos 500 commits. Los commits que tocan más de 40 archivos se ignoran, para que un gran renombrado no enlace todo con todo.
  • Qué omite. Parte de git ls-files y respeta .gitignore. Omite node_modules, dist, build, archivos de más de 1 MB y archivos generados o minificados. En repositorios con más de 20.000 archivos solo indexa carpetas de código fuente como src, lib, app y packages/*/src.

El mapa se construye en tu ordenador y no gasta tokens. Vigila los cambios en los archivos, recuenta el historial de cambios conjuntos cuando llegan commits y vuelve a comprobar un archivo cuando un agente pregunta por él. Un mapa por carpeta lo comparten todos los agentes que trabajan ahí, así que un proyecto y cada uno de sus worktrees tienen el suyo. Se guarda comprimido en la carpeta de datos de la app.

Las herramientas MCP que usan los agentes

AgentVera añade a cada agente un servidor MCP llamado agentvera-map. Sus instrucciones le dicen al agente que empiece una tarea con map_related, use map_outline antes de leer un archivo y map_usages antes de cambiar código.

HerramientaDevuelve
map_relatedLos archivos que probablemente implica una tarea, ordenados, con las razones (coincidencia de nombre, imports, cambios conjuntos, tests)
map_outlineLos símbolos de un archivo con rangos de líneas y firmas, sus imports, quién lo importa y sus tests
map_usagesQuién llama o importa un símbolo o archivo, a profundidad 2 los que importan a los importadores, más los tests que lo cubren
map_findSímbolos o archivos por nombre aproximado, con tipo, file:line y firma
map_overviewMódulos, tamaños, puntos de entrada y el comando de test
map_apiLa API exportada real de un paquete instalado, en la versión de node_modules, a partir de sus declaraciones de tipos

map_related acepta una tarea en lenguaje natural, en cualquier idioma. Palabras turcas como sepet, kupon u ödeme coinciden con nombres de código en inglés como cart, coupon y payment.

map_api corrige una fuente silenciosa de bugs: un agente que escribe llamadas de memoria para una versión de una librería que no tienes. Lee los archivos .d.ts de la versión realmente instalada.

Los agentes nuevos también reciben en sus instrucciones un breve resumen de los módulos, los puntos de entrada y el comando de test, para no gastar los primeros turnos averiguando cómo ejecutar los tests.

Antes y después: la misma tarea

Así cambia la tarea del cupón. Los pasos son típicos, no un benchmark.

Sin mapa:

grep -rn "checkout" src        # 200 lines of hits
cat src/checkout/index.ts      # whole file
cat src/checkout/summary.tsx   # whole file, not the right one
cat src/pricing/total.ts       # whole file
grep -rn "total(" src test     # find callers and tests

Con el mapa:

map_related "add a coupon field to checkout"
  -> src/pricing/total.ts (name match, changed together with checkout)
  -> src/checkout/CheckoutForm.tsx (imports total.ts)
  -> test/pricing/total.test.ts (test)
map_outline src/pricing/total.ts   # symbols and lines only
map_usages calculateTotal          # callers and tests

Después el agente lee solo las líneas que necesita. La primera versión llena el contexto con archivos que no necesitaba; la segunda lo llena con una lista ordenada y un esquema.

Smart tools: cuando el agente lee de todos modos

Los agentes no siempre consultan primero el mapa. Para Claude Code, las smart tools de AgentVera usan hooks para intervenir:

  • La primera lectura completa de un archivo de más de 800 líneas y 24 KB devuelve en su lugar el esquema del mapa del proyecto, para que el agente pueda leer la parte que necesita.
  • Las lecturas repetidas de un archivo que no ha cambiado se bloquean, porque el contenido ya está en el contexto.
  • Las ejecuciones de tests se acotan a los tests que importan.

Si quieres ver cómo funcionan los hooks en general, lee la guía de hooks de Claude Code.

Activar y desactivar el mapa

El mapa del proyecto está activado por defecto y forma parte del plan gratuito.

  1. Abre Settings → Token savings y busca el interruptor Project map. Está activado salvo que lo hayas desactivado.
  2. Para dejar a un agente sin él, desmarca su casilla Project map en el diálogo de edición del agente.
  3. Para ver el mapa, abre la página Details del proyecto y la pestaña Project map. Dibuja un grafo con los imports en gris y los enlaces de cambios conjuntos como líneas naranjas discontinuas. Escribe una tarea y pulsa Show para ver lo que devolvería map_related.

Si el mapa aún no está listo, por ejemplo justo después de abrir un repositorio grande, las herramientas responden con el progreso de la construcción. El agente espera unos segundos y después recurre a sus herramientas habituales.

¿De verdad ahorra tokens?

La respuesta sincera es: depende del repositorio y de la tarea. En un repositorio pequeño donde el agente ya sabe dónde mirar, se gana poco. En un repositorio grande o desconocido, donde un agente leería una docena de archivos equivocados, se gana mucho.

En lugar de fiarte de una cifra, mídelo en tu propio trabajo. La pestaña AI ROI tiene una tarjeta Project map impact que compara las conversaciones con y sin el mapa por éxito, aprobación a la primera, tokens por tarea y seguimientos.

Límites que conviene conocer

  • El detalle de símbolos es para TypeScript, TSX, JavaScript, Python y Go. Los demás lenguajes reciben indexado a nivel de ruta.
  • Los agentes en un host SSH remoto no reciben el mapa.
  • Un agente solo lee el mapa de su propia carpeta, así que un agente de worktree ve su worktree, no el checkout principal.
  • La ventana de mapa de código del recorrido del proyecto de AgentVera es una función aparte para que explores el código tú; el mapa del proyecto es lo que consultan los agentes.

Resumen

Un mapa de código para agentes de IA sustituye la exploración a ciegas de grep y lectura por unas pocas preguntas dirigidas: qué archivos, qué símbolos, quién los usa y qué tests los cubren. El mapa del proyecto de AgentVera construye ese índice en local con tree-sitter y git, lo mantiene al día y se lo da a todos los agentes con MCP a través de agentvera-map, mientras que las smart tools interceptan las lecturas grandes y repetidas en Claude Code. Combínalo con una memoria de proyecto compartida para que los agentes sepan tanto dónde está el código como por qué es así, y descarga AgentVera para probarlo en tu repositorio más grande.

Preguntas frecuentes

¿Qué es un mapa de código para agentes de IA?

Un índice de un repositorio que un agente puede consultar en lugar de buscar a ciegas: qué archivos existen, qué símbolos definen, quién los importa, qué tests los cubren y qué archivos suelen cambiar juntos.

¿Un mapa de código reduce los tokens de Claude Code?

Puede hacerlo. Cada archivo que lee un agente permanece en su contexto y se vuelve a leer en los turnos siguientes. Si el agente pide primero un esquema o una lista de archivos ordenada, lee menos cosas y más pequeñas. Cuánto ahorra depende del repositorio y de la tarea.

¿Qué lenguajes entiende el mapa del proyecto de AgentVera?

Lee símbolos de TypeScript, TSX, JavaScript, Python y Go, con rangos de líneas, firmas y la primera frase del comentario de documentación. Otros 30 lenguajes más se indexan por ruta.

¿Construir el mapa gasta tokens?

No. El mapa se construye en tu ordenador con tree-sitter y git, y se mantiene al día a medida que cambian los archivos y llegan commits. Solo las respuestas que pide un agente entran en su contexto.

¿Qué agentes pueden usar el mapa del proyecto?

Todos los agentes CLI de AgentVera que admiten servidores MCP, como Claude Code, Codex, opencode, Copilot, Gemini y Cursor. Los agentes en un host SSH remoto no lo reciben.

Reúne a tus agentes en un mismo escritorio.

Descarga AgentVera gratis; tus CLI instaladas ya están listas.

Más artículos