El blog de Deska
Aider vs. Claude Code: ¿Qué agente alucina menos importaciones?
Comparativa técnica de Aider vs. Claude Code manejando importaciones en monorepos de TypeScript y cómo Deska ofrece un espacio visual para estos agentes.
· 10 min de lectura
Manejar monorepositorios complejos de TypeScript requiere un agente que comprenda el intrincado mapeo entre los límites de los paquetes y las rutas de los archivos. Al comparar Aider vs. Claude Code, los desarrolladores suelen encontrar que el mayor obstáculo no es escribir la lógica en sí, sino si el agente puede referenciar correctamente los módulos existentes sin inventar rutas inexistentes. Las alucinaciones de importación ocurren cuando una IA asume una estructura de archivos basada en convenciones de nomenclatura en lugar de la realidad del disco, lo que provoca errores de compilación y pérdida de tiempo en depuración.
Comprendiendo el problema del mapeo de importaciones
En un proyecto de TypeScript a gran escala, las importaciones rara vez son simples. Puedes tener alias de rutas definidos en tsconfig.json, espacios de trabajo anidados en una configuración de Yarn o pnpm, y archivos "barrel" compartidos que exportan cientos de funciones. Para que un agente de IA funcione de manera efectiva, debe procesar este contexto sin exceder su ventana de tokens o confundirse por nombres de archivos similares en diferentes paquetes.
Aider se ha consolidado como una potente herramienta de CLI mediante el uso de un mapa del repositorio. Crea una representación comprimida de tu código para ayudar al LLM a entender dónde residen los archivos. Esto es particularmente útil para la edición multi-archivo porque proporciona al modelo un mapa de firmas y definiciones. Cuando pides un cambio, Aider intenta identificar qué archivos deben modificarse y cómo se relacionan entre sí.
Claude Code, siendo una entrada más reciente de Anthropic, adopta un enfoque más integrado con herramientas. Funciona directamente en tu terminal y utiliza un conjunto de herramientas integradas para buscar, leer y editar archivos. Debido a que está optimizado para el modelo Claude 3.5 Sonnet, a menudo muestra un alto grado de razonamiento al resolver dependencias. Sin embargo, ambas herramientas siguen siendo propensas a alucinaciones si la estructura del proyecto es lo suficientemente opaca o si el contexto proporcionado es incompleto.
Cómo maneja Aider el contexto multi-archivo
Aider destaca por mantener la conversación centrada en un conjunto específico de archivos. Al usar el comando /add, le indicas explícitamente al agente qué archivos son relevantes para tu tarea. Esto reduce el ruido y ayuda a evitar que el modelo alucine importaciones de partes no relacionadas del monorepo.
- El mapa del repositorio: Aider genera un archivo
.aider.tags.cache. Este contiene un mapa de los símbolos de tu código. - Selección de contexto: Puedes añadir archivos manualmente o dejar que Aider los sugiera.
- Bloques de edición: Utiliza un formato de búsqueda y reemplazo que suele ser más robusto que reescribir archivos enteros.
A pesar de estas fortalezas, si trabajas en un monorepo con múltiples archivos index.ts, Aider podría sugerir ocasionalmente una importación desde @/components cuando el alias real es ~components o requiere una ruta relativa. La efectividad depende en gran medida de la precisión del mapa del repositorio y de si los archivos package.json relevantes se incluyeron en la sesión.
Claude Code y el paradigma del uso de herramientas
Claude Code se basa en un ciclo de "planificar, actuar y reflexionar". En lugar de simplemente generar bloques de código, puede ejecutar un comando grep o un comando para listar archivos para verificar una ruta antes de escribir la sentencia de importación. Esta exploración activa puede reducir significativamente las alucinaciones porque el agente está observando el sistema de archivos en tiempo real.
En un monorepo de TypeScript, Claude Code podría usar sus herramientas de búsqueda para encontrar dónde se define una interfaz específica. Si encuentra la interfaz en packages/core/src/types.ts, es menos probable que adivine una ruta y más probable que use la ubicación real. Sin embargo, este proceso iterativo puede consumir más tokens y tardar más que el estilo de edición directa de Aider.
Ejecutando agentes lado a lado en Deska
Una forma de mitigar las debilidades de cualquier agente individual es usar múltiples herramientas para diferentes partes de una tarea. El canvas de Deska te permite ejecutar diferentes agentes como paneles separados. Puedes tener Aider ejecutándose en un panel de terminal y Claude Code en otro, ambos apuntando al mismo directorio local.
Deska es una aplicación de escritorio local-first que ofrece un lienzo infinito para tu flujo de trabajo de desarrollo. En lugar de limitarte a una sola ventana de terminal, puedes distribuir tu trabajo en múltiples paneles. Esto es especialmente útil al gestionar importaciones porque puedes mantener tu tsconfig.json abierto en un panel de editor de código como referencia rápida mientras los agentes trabajan.
Los agentes de codificación en Deska, incluyendo Claude Code y Aider a través de la terminal, se benefician de este diseño visual. Si Aider alucina una importación, puedes ver rápidamente el error en un panel de terminal que ejecute tu compilador y usar el asistente Ask Deska para verificar la ruta de archivo correcta.
Estrategias para reducir alucinaciones de importación
Independientemente de la herramienta que elijas, ciertas prácticas pueden ayudar a reducir la frecuencia de importaciones incorrectas en monorepos de TypeScript:
- Mantén tus rutas de
tsconfig.jsonsimples y consistentes entre paquetes. - Asegúrate de que los agentes tengan acceso al
package.jsonraíz y a cualquier configuración de espacio de trabajo relevante. - Usa la adición explícita de archivos: no confíes en que el agente adivine toda la estructura del proyecto.
- Ejecuta un comando de verificación de tipos o de compilación con frecuencia para detectar alucinaciones temprano.
En Deska, puedes organizar tus terminales de modo que una esté siempre ejecutando un observador de archivos (como tsc --watch). Debido a que Deska es una aplicación de escritorio gratuita, puedes personalizar este espacio de trabajo sin preocuparte por costos adicionales por la interfaz en sí. Simplemente aportas tus propias claves de API para los modelos de IA.
El papel del contexto local y la privacidad
Tanto Aider como Claude Code se ejecutan localmente en tu máquina, lo cual es esencial para la seguridad y la velocidad. Deska sigue esta filosofía asegurando que tu código y tus sesiones permanezcan en tu equipo. La política de privacidad enfatiza que tus datos no se almacenan en servidores externos por parte del espacio de trabajo.
Si no estás en tu escritorio, la aplicación móvil te permite monitorear el progreso de tus agentes a través de un relevo seguro. Esto es útil para tareas de larga duración donde un agente podría estar refactorizando múltiples archivos en un monorepo. Puedes verificar si la compilación pasó o si el agente se quedó atascado en una importación alucinada.
Comparación de flujos de ejecución
| Característica | Aider | Claude Code |
|---|---|---|
| Método de Contexto | Mapa de Repositorio | Uso de herramientas / Búsqueda |
| Estilo de Edición | Bloques de Búsqueda / Reemplazo | Archivo completo o basado en herramientas |
| Soporte Monorepo | Adición manual de archivos | Exploración autónoma |
| Integración | CLI | CLI |
Aider suele ser más rápido para cambios quirúrgicos en archivos que ya conoces. Claude Code suele ser mejor explorando una base de código con la que estás menos familiarizado, aunque puede ser más lento debido a la naturaleza iterativa de sus llamadas a herramientas. Usarlos en paneles de Deska lado a lado te permite elegir la herramienta adecuada para cada subtarea específica.
FAQ
¿Cómo soluciono los errores de importación de Aider?
La forma más efectiva es añadir explícitamente el archivo que contiene la definición correcta al chat usando el comando /add. Esto obliga al LLM a ver la ruta y los símbolos reales, reduciendo la posibilidad de una alucinación.
¿Es Claude Code mejor para monorepos?
Claude Code tiene una gran capacidad para buscar en el sistema de archivos de forma autónoma, lo que puede ser una ventaja en monorepos grandes. Puede encontrar archivos que quizás olvidaste incluir en el contexto manualmente.
¿Puedo ejecutar Aider y Claude Code al mismo tiempo?
Sí, puedes ejecutarlos en sesiones de terminal separadas. Usar un espacio de trabajo como Deska facilita esto al permitirte ver ambas salidas en un solo canvas sin tener que cambiar de pestaña constantemente.
Comenzando con Deska
Si estás cansado de gestionar múltiples pestañas de terminal y perder el rastro de tus sesiones de agentes, Deska ofrece una forma visual de organizar tu desarrollo impulsado por IA. Al colocar tus terminales, código y notas en un lienzo infinito, obtienes la conciencia espacial necesaria para gestionar proyectos complejos de TypeScript.
Puedes descargar Deska para Mac, Windows o Linux. El espacio de trabajo en sí es gratuito para usar con tus propias claves de API. Para obtener más información sobre cómo configurar tu entorno, consulta la guía de inicio rápido o explora los diversos tipos de paneles disponibles para personalizar tu flujo de trabajo.