Big Projects Always Fail... Anthropic Is Fixing That
AAI LABS
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00Hoy en dÃa, lanzar proyectos pequeños se ha vuelto muy fácil, pero los agentes comienzan a fallar en el momento
00:00:04en que la base de código crece y adquiere múltiples dependencias. El problema empeora aún más si
00:00:09trabajas con lenguajes poco convencionales, donde los errores y problemas se vuelven aún más difÃciles de rastrear.
00:00:14Lo que la gente pasa por alto es que debes tomar las medidas adecuadas antes de poner a los agentes a trabajar en bases
00:00:19de código grandes, y esto es exactamente de lo que habla Anthropic aquÃ. Ellos explican cómo manejar
00:00:23proyectos cuando escalan. Fue realmente revelador porque son cosas que nosotros mismos hemos estado
00:00:28usando en nuestros propios proyectos y hemos encontrado bastante útiles. Antes de entrar en detalle sobre cómo configurar
00:00:33un proyecto a gran escala, entendamos primero cómo navegan los agentes por el
00:00:38código en general. Hay dos formas en que lo hacen. La primera es basada en RAG. Funciona incrustando
00:00:43toda la base de código y recuperando los fragmentos relevantes en el momento de la consulta. Según tu consulta, ejecuta
00:00:48una búsqueda semántica que hace coincidir tu consulta con el código en su base de datos. A partir de las coincidencias de similitud,
00:00:53carga ese contexto especÃfico para que el modelo lo analice y trabaje a partir de ahÃ. Esto podrÃa funcionar para
00:00:58aplicaciones a pequeña escala, pero no se sostiene en las grandes. Esto se debe a que hay una base de datos central
00:01:03que mantiene los datos, y si hay muchos archivos en la base de datos, la coincidencia semántica
00:01:08puede ser problemática. Esta es la razón por la que los agentes de codificación alucinan módulos que ya no existen.
00:01:14Precisamente debido a estos problemas, el enfoque basado en RAG ha sido completamente reemplazado. El otro
00:01:18tipo es la navegación basada en el sistema de archivos, que es lo que Claude Code y la mayorÃa de los demás agentes usan ahora. Esto
00:01:24es similar a cómo navegan realmente los desarrolladores de software. El agente utiliza herramientas de bash, encuentra archivos
00:01:29con el comando ls, luego usa grep y reduce la búsqueda hasta el fragmento de código exacto que necesita y carga eso
00:01:34en el contexto. Las herramientas de bash funcionan porque no contaminan la ventana de contexto con fragmentos
00:01:39innecesarios. Asà que este modo soluciona todas las formas en que fallaban los sistemas basados en RAG, y casi todos
00:01:44los agentes de codificación ahora navegan de esta manera. Lo importante aquà es que, sin importar cómo mejoren los modelos
00:01:49por sà mismos, el modelo por sà solo no determina qué tan bueno será el código que puedes producir.
00:01:54Algo aún más importante cuando se trata de sistemas funcionales es qué armazón (harness) utilizas
00:01:59para programar. Asà que, sea cual sea la herramienta que uses, ya sea Claude Code, Codex o Gemini CLI, el resultado que
00:02:05obtienes no depende únicamente de sus potentes modelos. También depende del armazón que combines con las
00:02:10capacidades del modelo. Si el armazón es débil y el modelo es fuerte, no tiene sentido que el modelo
00:02:15sea fuerte por sà solo. Ahora, sabemos que agentes como Claude Code y Codex tienen armazones inherentemente fuertes,
00:02:19pero esto no significa que debas confiar solo en ellos. Necesitas configurar un armazón
00:02:24adaptado directamente a tu proyecto para que se ajuste mejor a él. También existen armazones de código abierto
00:02:29como superpowers, y puedes usar cualquiera de ellos cuando estás construyendo algo, pero cuando estás
00:02:33desarrollando un proyecto a gran escala, estos armazones podrÃan no ser suficientes y necesitarás configurar
00:02:38el tuyo de todos modos. Cada armazón de agente que construyes por tu cuenta o extraes de chats compartidos contiene
00:02:42cinco piezas centradas en cómo se configuran ambientalmente los trabajos y bucles de agentes de Claude.
00:02:47Repasaremos cada una. La primera pieza en el armazón del agente es el archivo Claude.md, que se carga
00:02:53al inicio de la sesión y permanece en la memoria durante toda ella. Este archivo es realmente
00:02:57importante porque le da a Claude la base de conocimientos para la base de código. Ya hemos hecho un video
00:03:02separado sobre cómo escribir y estructurar un Claude.md adecuado, que puedes ver en el canal.
00:03:07Cuando tu base de código crece, Claude.md se vuelve fundamental. Si no le dedicas tiempo,
00:03:12tu proyecto está destinado a fallar a escala. Este archivo es para convenciones del proyecto, conocimientos de la base de código
00:03:17y los pros y contras que se aplican a toda la base de código, no solo a un aspecto. Esto
00:03:22podrÃa estar bien si tu base de código es pequeña, pero se convierte en un problema en el momento en que escalas a múltiples
00:03:26arquitecturas. Asà que meter todos los aspectos del código en un solo archivo es altamente ineficiente. Distrae
00:03:32al agente con información que no necesita en el momento. Es por eso que el Claude.md debe mantenerse corto,
00:03:37idealmente alrededor de 300 lÃneas, y si estás ejecutando un monorepo con múltiples áreas, cada subdirectorio
00:03:43deberÃa tener su propio Claude.md siguiendo las mismas reglas. El agente lo carga progresivamente cuando trabaja
00:03:48en ese directorio, asà que en lugar de extraer todo del archivo raÃz, recibe instrucciones más enfocadas
00:03:53de los archivos del subdirectorio. Este archivo no es algo que escribas una vez y en lo que confÃes para siempre. Necesitamos
00:03:58mantenerlo activamente, no solo a medida que evoluciona el proyecto, sino también a medida que evoluciona la inteligencia del modelo.
00:04:04Los principios aplicables a Sonnet 4.5 definitivamente no se aplicarán a Opus. Los modelos más nuevos
00:04:09están entrenados para superar patrones que fallaban en instrucciones anteriores. Asà que dar las mismas
00:04:14instrucciones a cada modelo solo desperdicia tokens. Pero antes de seguir adelante, unas palabras de
00:04:19nuestro patrocinador, CleanMyMac. Si trabajas con herramientas de IA como nosotros, tu Mac acumula silenciosamente basura, compilaciones antiguas,
00:04:26caché, descargas rotas, y no te das cuenta hasta que empieza a ir lento. Ejecuto CleanMyMac cada semana y
00:04:31libera más de 15 GB en un solo escaneo. Eso es todo, con un clic mi Mac vuelve a estar como nueva. CleanMyMac
00:04:37es creado por MacPaw, cuenta con la certificación de Apple y cuenta con la confianza de más de 29 millones de personas durante 17 años. La función de limpieza
00:04:42elimina más de 20 tipos de basura para que tu sistema se mantenga rápido sin tener que vigilarlo. SpaceLens mapea
00:04:48tu disco visualmente para que sepas qué ocupa espacio. Incluso escanea tu iCloud, Google Drive y
00:04:53Dropbox localmente en busca de archivos no sincronizados que desperdician almacenamiento en la nube. Y detecta el 99% del malware conocido a través de
00:04:59Moonlock, para que tu Mac se mantenga limpia y segura. Tu Mac deberÃa seguirte el ritmo, no al revés.
00:05:03Usa el código AI Labs para obtener un 20% de descuento y prueba CleanMyMac gratis durante siete dÃas. Ahora, los hooks son
00:05:09otra cosa importante que ayuda al trabajar con estas grandes bases de código. Son básicamente
00:05:14scripts que permiten al agente realizar acciones especÃficas según ciertas condiciones. Hay muchos tipos
00:05:19de hooks que puedes configurar, generalmente escritos como scripts de shell que controlan el comportamiento del agente. Por
00:05:23ejemplo, puedes configurar un hook de inicio de sesión que cargue la información que deseas al inicio
00:05:28de cada sesión, como qué archivos deberÃa cargar Claude para obtener contexto. También puedes usar un hook con código de salida
00:05:33también, y enviar el mensaje de error de vuelta a Claude para que pueda iterar sobre eso. Los hooks de pre-uso de herramientas son otro
00:05:38tipo. Cada vez que el agente usa la herramienta que hayas configurado para el hook, ejecuta tus comandos.
00:05:43Puedes usarlo para evitar que Claude edite archivos que no quieres que toque. Pero uno de los más
00:05:48importantes es el hook de detención, que se ejecuta después de que finaliza una sesión. Esto empuja a Claude a reflexionar sobre
00:05:53lo que se ha hecho hasta ahora. A partir de eso, puede actualizar el Claude.md con los aprendizajes de la sesión
00:05:58para que los mismos problemas no vuelvan a ocurrir. También puedes configurar hooks para linting, ejecutar pruebas,
00:06:03y muchos otros propósitos. Todo esto, unido, ayuda mucho con las bases de código a gran escala.
00:06:08Los hooks obligan al agente a hacer cosas con las que debe ser cuidadoso, donde las instrucciones en Claude.md
00:06:13por sà solas pueden no ser suficientes. Las instrucciones en Claude.md pueden difuminarse en el lapso de atención del agente debido
00:06:19a demasiadas cosas en las que enfocarse, pero los hooks realmente fuerzan a Claude a actuar. La tercera pieza en el
00:06:23flujo de trabajo son las habilidades (skills). Es un conjunto de archivos skills.md y otros archivos agrupados que se cargan bajo demanda en lugar
00:06:29de estar presentes en cada sesión y bloquearla innecesariamente. Las habilidades son importantes porque
00:06:34utilizan la divulgación progresiva y están adaptadas para realizar una tarea especializada especÃfica necesaria para el
00:06:40flujo de trabajo. Expandan el conocimiento del agente sobre algo que ya es capaz de hacer. Si
00:06:44pones estas instrucciones en Claude.md, simplemente consumen tokens innecesarios. Las instrucciones especÃficas del proyecto
00:06:49deberÃan ir a las habilidades porque se cargan solo cuando el agente realmente las necesita. Puedes
00:06:54también limitar las habilidades a rutas especÃficas para que solo se activen en la parte relevante del código
00:06:59y no bloqueen el contexto fuera de eso. Por ejemplo, si estás trabajando en el área de implementación,
00:07:04puedes especificar la ruta de ese directorio en la descripción de la habilidad para que la habilidad nunca se cargue cuando
00:07:09estás trabajando en otra parte. Para configurar habilidades, simplemente invocas el creador de habilidades que ahora viene integrado
00:07:14en Claude Code. Anteriormente, tenÃas que obtenerlo de código abierto desde GitHub, luego respondes las preguntas
00:07:19que te hace durante la sesión de discusión. Tendrás una habilidad adaptada a tus necesidades exactas, que
00:07:23puedes acceder una vez que reinicies la sesión. Además de las habilidades, también puedes usar complementos (plugins). Los plugins son un
00:07:29paquete de habilidades, hooks y MCP disponibles como un paquete único, descargable y distribuible. AsÃ
00:07:34que quien instale este plugin tendrá exactamente el mismo contexto y configuraciones disponibles
00:07:39para su uso de inmediato. Asà que si trabajas en equipo, crear tus propios plugins para distribuir
00:07:44a tus compañeros de equipo se vuelve muy importante. Si configuras todas tus configuraciones en un solo lugar, esa información
00:07:49puede ser distribuida en toda la organización para que los miembros de tu equipo tengan el mismo contexto que tú. Puedes
00:07:54hacer esto creando tus propios plugins y gestionándolos, ya sea cargándolos manualmente o sincronizándolos
00:07:59con un repositorio de GitHub. Puedes instalar cualquier plugin usando el comando plugin y puedes
00:08:03navegar por el mercado e instalar el que quieras. También puedes agregar otros mercados usando
00:08:08el comando add plugin marketplace. Claude Code también viene integrado con múltiples plugins como
00:08:13diseño front-end, revisión de código, simplificador de código, Playwright y otros, todo desde el mercado oficial
00:08:18de Claude. Puedes usarlos directamente en tu flujo de trabajo y también puedes crear los tuyos propios.
00:08:22Los plugins importan, especialmente para proyectos a gran escala, porque muchas personas trabajan en el mismo proyecto
00:08:27y distribuir el contexto entre ellas es importante. Asà que en lugar de hacer que cada persona descargue habilidades
00:08:32y otros componentes por separado, pueden instalar el plugin directamente. Además, si estás disfrutando de nuestro
00:08:36contenido, considera presionar el botón de hype porque nos ayuda a crear más contenido como este y llegar
00:08:41a más personas. Otra cosa que importa en los armazones de agentes, pero de la que no se habla lo suficiente, es
00:08:46LSP. El protocolo de servidor de lenguaje o LSP es básicamente una integración que le da al agente el mismo tipo
00:08:52de navegación que un desarrollador tiene en un IDE. Hay un LSP para casi cualquier lenguaje de programación y
00:08:58podrÃa ser innecesario con los populares, pero se vuelve crÃtico con los no convencionales. Le
00:09:03da al agente inteligencia sobre el lenguaje de programación para que pueda navegar por la base de código de la forma en que
00:09:08lo hace un humano. Por ejemplo, cuando un humano quiere encontrar una función, verifica de dónde
00:09:13se importa esa función, va a ese archivo y verifica ese archivo para ver la definición de la función. Asà es como
00:09:17realmente encuentran la fuente exacta que necesitan. Sin LSP, el agente busca patrones basados en
00:09:22texto y es probable que aterrice en el sÃmbolo incorrecto. Como mencionamos, Claude Code usa el enfoque basado en el sistema de archivos
00:09:28con comandos bash, por lo que sin LSP solo busca patrones en nombres de archivos y texto,
00:09:33no navegando con una inteligencia más profunda. Ahora, no asumas que LSP no es necesario solo porque tu agente
00:09:38aún no ha encontrado errores. Configura LSP incluso antes de empezar a trabajar en el proyecto. Configúralo para
00:09:44todos los lenguajes que usarás, incluso antes de escribir cualquier código, para que el agente ya tenga información sobre
00:09:49cómo trabajar con ellos. En lugar de dejar que el agente adivine patrones, instalar LSP le permite leer y editar
00:09:55código de la forma en que un desarrollador piensa sobre él, no solo como texto. Ahora, como ya sabes, MCP se utiliza para
00:10:00conectar el agente a herramientas externas, pero también puedes conectar tus MCP a las herramientas internas, fuentes de datos,
00:10:05APIs u otros sistemas que el agente no podrÃa alcanzar de otro modo. Para eso, necesitas
00:10:10crear tus propios MCP y ponerlos a disposición para que las personas de tu equipo puedan usarlos fácilmente. Los MCP
00:10:16son básicamente una extensión de la configuración existente, cargada siempre que se necesite, y las herramientas que
00:10:20proporcionan están disponibles para que el agente las use. Si estás trabajando en una gran base de código, puedes construir
00:10:25MCP que sirvan para muchos propósitos, como actuar como una guÃa de documentación, recuperar análisis o incluso
00:10:31permitirte realizar cambios a través de ellos. Estos son útiles porque, si tienes tu propia base de código, puedes
00:10:35dejar que el agente interactúe naturalmente con información interna, llame a herramientas y realice cambios allÃ
00:10:40en lugar de hurgar entre una documentación enorme. Esto le da al agente un acceso más directo a la
00:10:45información y los sistemas que necesita. Pero para configurar un MCP, la configuración básica de la aplicación ya debe
00:10:51estar funcionando. Si configuras tu MCP antes de eso, las cosas pueden salir mal y la implementación del MCP puede
00:10:57fallar. Asà que primero asegúrate de que tu aplicación funcione correctamente, luego crea el MCP y deja que el agente
00:11:02interactúe con tu proyecto con más inteligencia y mejor información. Otra cosa que necesitas
00:11:06crear son subagentes. Los subagentes contienen ventanas de contexto aisladas propias y realizan cualquier tarea
00:11:12que les delegue el agente orquestador principal, y luego devuelven solo el resultado final al padre.
00:11:17Esta es una parte clave del armazón de un agente, porque usar subagentes adecuadamente no bloquea la ventana de contexto
00:11:22y hace que la utilización del contexto sea mucho mejor, ya que no llenan el contexto del agente principal
00:11:28con información que no necesita. Los subagentes solo se ejecutan cuando se invocan y luego devuelven sus hallazgos.
00:11:33Claude crea subagentes por su cuenta, pero también puedes configurar subagentes tú mismo. Puedes
00:11:38configurar qué herramientas y modelos quieres para ellos y proporcionar instrucciones sobre cómo deberÃan
00:11:42operar, creando agentes especÃficos para tus propios flujos de trabajo. También puedes anular los agentes existentes de Claude;
00:11:47por ejemplo, puedes crear tu propio agente cuyas instrucciones anulen las existentes, como
00:11:52explorar y proporcionar una descripción sobre cómo deberÃa navegar por tu directorio. El agente de exploración propio
00:11:57de Claude está generalizado para todo tipo de bases de código, pero si configuras el tuyo propio, el personalizado
00:12:03anula el predeterminado. Esto le da al agente más contexto sobre cómo están estructurados los archivos en tu proyecto,
00:12:08asà que no desperdicia tokens navegando archivos confiando solo en la información de Claude.md.
00:12:13Asà que puedes hacer que el agente principal controle toda la ejecución del proyecto y confiar en los subagentes para el
00:12:18trabajo real. Los subagentes también ayudan porque puedes paralelizar su trabajo mediante la delegación de agentes,
00:12:23lo que hace que el flujo de trabajo sea mucho más fluido y rápido que hacerlo todo secuencialmente.
00:12:28Hay algunas prácticas más que debes seguir al navegar por una base de código grande.
00:12:32Esto es importante porque la capacidad de Claude para navegar por una base de código grande está determinada por
00:12:36si es capaz de encontrar el contexto correcto. Asà que asegurarse de que Claude obtenga el contexto correcto es
00:12:41importante para que el agente no reciba demasiado poco o demasiado y se mantenga enfocado. Además de separar
00:12:46el archivo Claude.md, necesitas separar las pruebas para cada subdirectorio en lugar de tenerlas todas en un
00:12:51lugar. De esta manera, se mantienen segmentadas, evitan problemas de tiempo de espera cuando se ejecutan muchas pruebas a la vez y pueden
00:12:56ser limitadas de manera más efectiva. También puedes crear un archivo de mapa de base de código por separado que mapee la estructura
00:13:01de tu proyecto. Si estás trabajando con aplicaciones convencionales como React o Next.js, puedes omitir esto
00:13:06porque los agentes han sido entrenados extensamente en esas. Pero con lenguajes no convencionales como C++
00:13:12necesitas un mapa de base de código. Actúa como una tabla de contenido para el agente, permitiéndole saber dónde
00:13:16vive cada archivo en lugar de ejecutar muchos comandos bash para reducir la búsqueda al correcto. Por último,
00:13:21pero más importante aún, revisa tu configuración cada pocos meses a medida que el modelo evoluciona. Elimina las instrucciones,
00:13:26hooks o cualquier otra cosa que el modelo más nuevo ya no necesite. Usa archivos .ignore como .gitignore
00:13:32y .agentignore para que los archivos que no quieres que el agente o el control de versiones toquen se dejen solos.
00:13:37De esta manera, tu configuración podrá sostenerse en aplicaciones a gran escala. Ahora, los recursos para este
00:13:41video se pueden encontrar en AI Labs Pro para este video y para todos nuestros videos anteriores, desde donde puedes
00:13:46descargar y usarlo para tus propios proyectos. Si has encontrado valor en lo que hacemos y quieres apoyar al
00:13:51canal, esta es la mejor manera de hacerlo. Los enlaces están en la descripción. Eso nos lleva al final de
00:13:55este video. Si te gustarÃa apoyar al canal y ayudarnos a seguir haciendo videos como este, puedes
00:14:00hacerlo usando el botón de super gracias a continuación. Como siempre, gracias por ver y te veré en el próximo.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video