8 puntos por GN⁺ 2025-08-24 | 2 comentarios | Compartir por WhatsApp
  • Claude Code es un agente de IA/flujo de trabajo sobresaliente en términos de usabilidad
  • Gracias a su simplicidad arquitectónica y su claro bucle de control, ofrece una experiencia donde depurar y dar mantenimiento resulta sencillo
  • Al minimizar la adopción de RAG y aprovechar activamente prompts avanzados y archivos de contexto, maximiza las fortalezas del LLM
  • Mantiene la claridad y consistencia del trabajo mediante diversas herramientas (tools) y lineamientos claros
  • En lugar de complejidad, apuesta por una estructura fácil de entender y un buen diseño de prompts, con la ventaja de que también permite implementar un agente LLM propio de forma similar

Resumen

  • Claude Code (en adelante, CC) ofrece actualmente una de las experiencias más satisfactorias entre los agentes de IA/flujos de trabajo de programación disponibles
  • Las ventajas de CC están en la edición de código enfocada en el objetivo, la reducción de interrupciones innecesarias y una UX agradable que conserva el control del usuario
  • El modelo Claude 4 y su característico Interleaved Thinking cumplen un papel central, pero incluso frente a otras herramientas basadas en el mismo modelo, como Cursor o GitHub Copilot, genera menos fricción
  • Este artículo desmenuza los principios de implementación de CC y ofrece una guía práctica para crear un agente LLM propio que brinde una experiencia similar

La virtud central de Claude Code: la simplicidad

  • La lección más importante es: "mantenlo simple (Keep Things Simple, Dummy)"
  • Cuando un agente LLM incorpora estructuras complejas —multiagente, RAG complejo, sistemas de validación, etc.— depurarlo y mejorarlo se vuelve extremadamente difícil
  • CC adopta un solo bucle principal, un conjunto simple de herramientas y una estructura fácil de entender de un vistazo; además, concentra toda la lógica central en un solo archivo para eliminar boilerplate y complejidad innecesaria

Por qué importa la simplicidad

  • En vez de una arquitectura multiagente, maneja la mayoría del trabajo en un único hilo principal
    • El resumen del historial o la integración de mensajes para la UX se aplican como apoyo
    • Cuando hace falta trabajo complejo, se clona a sí mismo para ramificarse como subagente (sin ramificación recursiva; solo se permite un nivel)
  • Hace un uso activo de una lista de tareas (todo list)
    • Los problemas complejos se dividen en subagentes, pero los resultados se vuelven a integrar al historial principal de mensajes
    • Las estructuras multicapa demasiado abstractas —múltiples agentes, navegación por grafos— pueden terminar degradando la estabilidad y escalabilidad del sistema

Uso activo de modelos ligeros

  • Utiliza modelos LLM ligeros como claude-3-5-haiku para la mayoría de las solicitudes
    • Procesa de forma eficiente muchas tareas, como leer archivos grandes, parsear páginas web o resumir historial de git
    • Al usar modelos ligeros, el costo puede reducirse hasta en un 70–80%
  • Se recomienda usar combinaciones de modelos optimizadas para cada llamada funcional importante

Diseño refinado de prompts

  • El prompt de sistema de CC está compuesto por una gran extensión (aprox. 2800 tokens) y diversas secciones (tono y estilo, gestión de tareas, políticas de uso de herramientas, información del OS/directorios, etc.)
    • Siempre incluye por completo archivos de contexto como claude.md para maximizar la riqueza del contexto
    • El prompt de sistema guía con mucho detalle reglas de política, ejemplos, precauciones y el momento adecuado para usar herramientas

Uso simultáneo de XML y Markdown

  • Dentro del prompt se usan al mismo tiempo etiquetas XML y estructura Markdown
    • Con elementos como <system-reminder>, <good-example>, <bad-example> se transmite información detallada y con bifurcaciones condicionales
    • Los encabezados de Markdown separan claramente las secciones

La importancia de los archivos de contexto

  • La diferencia de rendimiento de CC según exista o no claude.md es muy marcada
    • Es indispensable para transmitir reglas adicionales difíciles de inferir desde la base de código —como excluir carpetas/bibliotecas o políticas preferidas—
    • MinusX también sistematiza preferencias del equipo/usuario mediante minusx.md

Minimizar RAG, aprovechar la búsqueda del LLM

  • En lugar de RAG (Retrieval Augmented Generation), CC prefiere una estructura basada en búsqueda directa de código con comandos como ripgrep, jq y find, tal como lo haría un desarrollador real
    • Esto ofrece una alternativa a las posibilidades de falla ocultas que vienen con configuraciones RAG complejas (por ejemplo: función de similitud, reranker, chunking)
    • Como el LLM explora y comprende directamente el contexto real del código, se reduce la cantidad de piezas en movimiento y hasta puede esperarse una mayor eficiencia en el aprendizaje por RL

Diseño y jerarquía de herramientas (tool)

  • CC admite herramientas de bajo nivel (Bash, Read, Write), nivel medio (Edit, Grep, Glob) y alto nivel (Task, WebFetch, etc.)
    • Las herramientas necesarias se separan individualmente considerando frecuencia de uso, precisión y otros factores
    • En el prompt de sistema se indican con claridad la descripción, los ejemplos y el momento de uso de cada tool
  • Las tareas complejas se gestionan de forma consistente mediante Task o herramientas de alto nivel

Gestión explícita de Todo para evitar pérdida de contexto

  • Para resolver los problemas típicos de los agentes LLM de ejecución prolongada —pérdida de contexto y de dirección—, CC administra el estado con una lista de Todo mantenida directamente
    • En vez de una estructura multiagente, el modelo actualiza por sí mismo el Todo y asegura al mismo tiempo dirección de trabajo y flexibilidad

Control del tono, estilo y grado de cercanía del agente

  • El tono, estilo y nivel de iniciativa se gestionan en secciones separadas
    • Se diseña una experiencia de usuario consistente, por ejemplo evitando explicaciones innecesarias y permitiendo emojis solo cuando se solicitan explícitamente
  • Usa modificadores fuertes como "IMPORTANT", "NEVER" y "ALWAYS" para transmitir puntos críticos de atención

Diseño del algoritmo de decisión y del flujo

  • Los algoritmos clave que el LLM debe seguir se describen y ejemplifican con claridad
    • Más que una lista de Do/Don't, diagramas de flujo y checklists por pasos resultan más efectivos para mantener la estabilidad del algoritmo
    • También se estructura explícitamente el alcance del rol y las políticas, considerando la posibilidad de conflicto entre distintas instrucciones y ejemplos

Patrones de diseño y consejos prácticos de aplicación

  • Su postura fuerte y su estructura bien definida pueden servir de benchmark inmediato al diseñar un agente propio
    • Más que abusar de frameworks que complican el panorama, lo importante es diseñar una estructura simple y efectiva
  • En MinusX ya están aplicando muchos de estos principios y planean ampliarlos gradualmente

Conclusión

  • La lección más importante de Claude Code: “la simplicidad es la mayor fuerza”
  • La claridad estructural, el diseño significativo de prompts y la combinación de herramientas ligeras hacen posible un agente LLM potente
  • Al desarrollar tu propio agente LLM, vale mucho la pena tomar como referencia activa la filosofía de diseño y las guías de CC

2 comentarios

 
kaydash 2025-08-25

Me encanta muchísimo, soy feliz, es lo máximo, es dulcísimo, quiero seguir para siempre.

 
GN⁺ 2025-08-24
Comentarios en Hacker News
  • Cree que la simplicidad tipo KISS siempre gana, y le pareció útil que el artículo estuviera bien organizado.

  • Lamenta que Claude Code no sea open source, pero menciona que hay herramientas para entender mejor cómo funciona internamente; si de verdad te interesa cómo opera, recomienda Claude Trace.
    https://github.com/badlogic/lemmy/tree/main/apps/claude-trace
    Esta herramienta genera un archivo JSON que muestra todas las herramientas y prompts usados en una sesión, además de un archivo HTML formateado para verlo con más facilidad.

  • Opina que fue útil ver cómo aborda esto una organización centrada en LLM en una época en la que los sistemas multiagente están tan de moda; él también está probando varias perspectivas de diseño en su día a día, así que se sintió identificado.
    Los insights principales fueron:
    (1) está bien que el prompt sea largo, y hay que incluir sí o sí explicaciones básicas como el propósito de la herramienta o cómo ayuda
    (2) las tool calls son una parte muy básica, así que hay que reflejar mejor el contexto (cuándo usarla y cuándo no, por ejemplo)
    (3) está bien gestionar el estado del sistema como mensajes; también pensó en métodos más fancy (guardar dataframes, parsear variables, etc.), pero cree que si la ventana de contexto se alarga, con solo mensajes basta

    • Que los prompts largos funcionen bien depende de que el modelo esté optimizado para manejarlos; probó cambiar Claude Code por otros modelos y, en su experiencia, casi no hubo modelos locales que manejaran tan bien como se anuncia tanto los prompts extensos como el uso de herramientas.
      También probó modelos de OpenAI y Google Gemini, pero sintió que ninguno rendía tan bien como los de Anthropic y además eran más lentos; mientras más largo se volvía el prompt, más se le olvidaban las herramientas o devolvían resultados con formato incorrecto.
    • (Autor del blog) Cree que, usando bien solo las funciones básicas, se puede sacar muy buen rendimiento en casi el 99% de los casos; lo importante es mantener simple el loop y ofrecer herramientas claras, aunque sus funciones se solapen.
      La claridad y la simplicidad van primero.
  • Pregunta cómo se compara Google Gemini, especialmente la versión Pro, frente a Claude; le gustan muchos productos de Google, pero le preocupan su tendencia a cancelar productos con frecuencia, su forma algo brusca de ejercer control corporativo (como con Chrome) y los temas de censura.

    • Gemini destaca especialmente cuando puedes cargar de una sola vez los archivos fusionados de todo el repositorio y conversar sobre eso; el nivel al que entiende la codebase completa resulta sorprendente, y ayuda mucho en el diseño de arquitectura. Claude se queda bastante corto en eso.
      Su estrategia personal es usar Gemini para generar un resumen del proyecto y un plan de diseño de alto nivel; luego usa gpt5 para mejorarlo y diseñar workflows detallados, por ejemplo en documentos XML, y después se lo pasa de nuevo a Claude. Solo con eso casi evita por completo que Claude ande dando vueltas sin rumbo.
    • Gemini Pro no es malo para programar, pero por experiencia Claude es mucho mejor en tareas relacionadas con terminales, como CLI; además, la mayoría de las CLI también usan mucho Claude.
      https://www.tbench.ai/leaderboard
    • En la web UI (chat) le gusta bastante Gemini 2.5 Pro; en herramientas de línea de comandos, Gemini code no sirve y Claude code casi siempre es lento.
    • Gemini es mejor para depurar problemas difíciles donde hay que seguir varias llamadas de función; Claude, en cambio, es predecible cada vez y sigue bien las instrucciones, especialmente para gestionar listas de tareas pendientes.
    • Antes le gustaba bastante, pero últimamente siente que se volvió un poco más tonto; se pregunta si será solo percepción suya.
  • Cree que la buena evaluación de los usuarios se debe a que el modelo base en sí es fuerte para tareas reales de programación, algo distinto de los problemas típicos de benchmark; si usas GitHub Copilot, Claude está muy por encima de los modelos de OpenAI y Google. La diferencia es tan grande que los demás llegan a sentirse prácticamente inútiles.

    • Piensa que Anthropic puede optimizar internamente el modelo y los prompts durante el aprendizaje por refuerzo, así que el consejo del artículo de “usar tal cual los métodos existentes” le parece más adecuado para los modelos de Anthropic. Gracias al modelo de suscripción, tienen un incentivo fuerte para hacer más eficiente el loop.
    • No se puede explicar solo por la diferencia del modelo base. Cuando usa opus y cline juntos en vs code frente a cuando usa Claude code, le cuesta expresar la diferencia de productividad con cifras concretas, pero logra hacer más cosas con CC.
    • Vio tantos elogios que usó Claude Code durante un mes con grandes expectativas, pero terminó más decepcionado; le dio una experiencia peor que la barra lateral de Cursor, y se quedó pensando si lo estaba usando mal. En dos codebases distintas siguió cometiendo demasiados errores de código absurdos, y eso le frustró.
  • Ahora mismo está intentando depurar con Claude Code un problema relacionado con Elastic en Security Onion, pero después de unos minutos empieza a escupir código JS críptico y aparece el error Error: kill EPERM.
    Por los logs, sospecha que mata el proceso de Node.js y que por eso muere el propio Claude, o quizá siente que Claude se cierra solo porque no logra resolver el problema.
    En cualquier caso, le gustaría que ayudara más si el proceso se mantuviera vivo.

    • Claude y algunas partes de localstack no se llevan bien entre sí; en Rust, sorprendentemente, sí funciona bastante bien.
      Cree que en adelante se irá imponiendo cada vez más el lenguaje, plataforma o arquitectura que mejor conozcan los LLM; por ejemplo, si el LLM maneja nodejs 10 veces mejor, entonces puede ser razonable usar nodejs desde el principio en lugar de Elixir o Go. Incluso un desarrollador junior podría rendir como alguien mid-level o senior con ayuda de un LLM.
    • Ese error aparece a veces cuando usas sudo para intentar ejecutar el proceso con privilegios de superusuario y termina haciendo timeout.
    • A veces el problema se resuelve actualizando la instalación o borrando los archivos de la instalación anterior y reinstalando; él lo arregló así.
    • Tiene experiencia pasándose a otro LLM para ver qué fue lo que pasó, aunque no es una recomendación oficial.
    • Nunca ha conseguido buenos resultados con la combinación de Elasticsearch y LLM; la mayoría de las respuestas fueron “alucinaciones” sin sustento. Cree que es porque no hay muchos ejemplos decentes en internet.
  • Construyó el primer MVP completo de su startup con Claude Code y ahora ya tiene clientes de pago. Claro, existe la ansiedad de fondo de que todo podría venirse abajo en un instante si ocurre un incidente SEV, pero aun así sigue usando Claude activamente para corregir vulnerabilidades de seguridad, hacer desarrollo guiado por pruebas y diseñar la arquitectura de software según una hoja de ruta de largo plazo.
    Espera que este tipo de historias se vuelvan cada vez más comunes.

    • Le piden que comparta un enlace porque les da curiosidad el producto; quieren ver un caso de uso real.
    • Le hacen en tono de broma la pregunta de si eso de “corregir vulnerabilidades de seguridad” no significa que Claude escribió el código desde el principio y también creó las vulnerabilidades.
    • Le piden que explique con ejemplos concretos cómo le ayudó en cosas como desarrollo guiado por pruebas y diseño de software.
    • Bromea diciendo que le pidió a Claude Code que le transfiriera dinero todos los meses a su cuenta bancaria, y que de verdad lo hizo.
    • Le dicen que estaría bien que revelara específicamente qué construyó con Claude Code.
  • Opina que, si la idea de “Keep things simple” es correcta, entonces esto en realidad puede sentirse como una configuración algo compleja.
    Él siempre ha hecho bastante trabajo con un método simple de preguntar una cosa por prompt.
    No está seguro de qué valor adicional aportan estas estructuras complejas frente a un prompt realmente bien elaborado.
    Por ejemplo, piensa que un prompt de una sola oración como "cómo hacer un bucle while en un lenguaje que estoy aprendiendo" podría ser incluso más eficiente.
    El control flow le parece más bien poco claro, y también duda de si los LLM realmente usan bien la parte del appendix (herramientas o system prompt). Si la solicitud se vuelve demasiado compleja, cree que tal vez se ignoran partes o se desperdician tokens.
    A él le resulta mucho más natural “programar” lanzando prompts individuales por partes.
    Le gustaría ver ejemplos de otros enfoques o prompts.
    Tiene curiosidad por cómo construye la gente programas completos usando LLM en la práctica, y quiere ver casos donde se hagan por partes, prompt por prompt.

    • Dice que él también lo usa exactamente así, así que le interesan las respuestas de los demás.
  • Como referencia, avisa que al final del artículo hay un enlace a minusx.com, pero el certificado de seguridad venció hace 553 días. Dice que el sitio no es válido, así que conviene tener cuidado.