El octubre pasado le encargué a Claude una tarea bastante aburrida: "Crea un envoltorio de API REST de WordPress en PHP, escribe pruebas PHPUnit para él, ejecútalas, corrige lo que falle". Le di acceso a mi terminal mediante una configuración local de tool-use de Claude y me fui a hacer té. Volví doce minutos después. Las pruebas estaban en verde. Tenía un envoltorio funcional con cobertura del 94% y un pequeño comentario en línea donde Claude había detectado un caso extremo que no había mencionado en el brief. Me quedé ahí en mi cocina en Bermondsey genuinamente desasosegado.Claude tool-use setup and walked away to make tea. Came back twelve minutes later. Tests were green. I had a working wrapper with 94% coverage and a small inline comment where Claude had caught an edge case I hadn't mentioned in the brief. I stood there in my kitchen in Bermondsey genuinely unsettled.
Eso es desarrollo agentico. No autocompletar, no un Stack Overflow más inteligente. Un modelo que razona sobre un objetivo, elige la siguiente acción, la ejecuta, observa el resultado y sigue en bucle hasta completarse. Y está cambiando cómo dirijo proyectos en Seahawk Media más rápido que casi cualquier cosa en los últimos nueve años.
Qué Significa Realmente "Agentico" (Y Qué No)
Seamos precisos, porque esta palabra se usa libremente. Un bucle agentico de IA tiene tres cosas: un objetivo, un conjunto de herramientas y la capacidad de decidir qué hacer después basándose en lo que acaba de suceder. El modelo no solo está generando texto. Está actuando, observando y replanificando.
Lo que no es es magia. El modelo aún puede alucinar una firma de función. Puede meterse en un callejón sin salida haciendo el mismo arreglo incorrecto siete veces. Puede malinterpretar tu objetivo en el paso uno y construir con confianza en la dirección equivocada durante diez pasos. He visto todo esto. Una vez, en un proyecto de panel de React, Claude pasó unos veinte minutos agregando verificaciones de nulidad cada vez más rebuscadas para resolver un problema que era en realidad un await faltante. Ese fue mi culpa, le di una especificación inicial vaga.not is magic. The model can still hallucinate a function signature. It can loop itself into a corner doing the same wrong fix seven times. It can misunderstand your goal at step one and build confidently in the wrong direction for ten steps. I've seen all of these. Once, on a React dashboard project, Claude spent about twenty minutes adding increasingly baroque null checks to solve a problem that was actually a missing await. That one was my fault, I gave it a vague initial spec.
La distinción que importa para quienes lo practican: las tareas agénticas estrechas superan a las abiertas. "Escribir y probar una función de sanitización de slugs que maneje árabe, japonés y emoji" es una excelente tarea agéntica. "Construyeme un SaaS" no lo es. Acota el alcance, o pasarás más tiempo revisando giros equivocados que el que habrías invertido en escribir el código directamente.narrow agentic tasks beat open-ended ones. "Write and test a slug sanitisation function that handles Arabic, Japanese, and emoji" is a great agentic task. "Build me a SaaS" is not. Scope it tight, or you'll spend more time reviewing wrong turns than you would have spent just writing the code.
El Stack Real que Estoy Usando
Las herramientas importan enormemente aquí. Sin el andamiaje correcto, "Claude agéntico" es solo una ventana de chat.
Mi configuración actual en Seahawk:
- [Claude API](https://www.anthropic.com/api) con tool-use, específicamente el beta de computer_use y herramientas personalizadas de bash y sistema de archivos, specifically the
computer_usebeta and custom bash/filesystem tools - Cursor como la capa IDE, con Claude 3.5 Sonnet configurado como modelo backend as the IDE layer, with Claude 3.5 Sonnet set as the backend model
- pytest / PHPUnit / Jest dependiendo del proyecto, porque Claude necesita una señal determinística en la que iterar. Sin salida de pruebas, vuela a ciegas. depending on the project, because Claude needs a deterministic signal to loop on. Without test output, it's flying blind.
- Un prompt de sistema breve que le dice a Claude cuál es la estructura del proyecto, cuáles son los estándares de codificación y, esto es importante, que se detenga y pregunte si está a punto de crear un nuevo archivo fuera del directorio especificado. that tells Claude what the project structure is, what the coding standards are, and, this is important, to stop and ask if it's about to create a new file outside the specified directory.
Esa última restricción parece menor. No lo es. Los modelos agénticos crearán alegremente módulos completamente nuevos si piensan que sirve al objetivo. Las barreras protectoras en el sistema de archivos me han salvado de varios momentos de "¿de dónde salió esto?".
Una cosa que no uso: frameworks de orquestación multiagente para la mayoría del trabajo. LangChain, AutoGen, CrewAI, son genuinamente interesantes, pero para uso de desarrollador solo o agencia pequeña, la sobrecarga de configurar agentes-hablando-con-agentes generalmente no vale la pena. Un Claude loop bien acotado supera a tres agentes mal acotados gritándose entre sí.
Cómo Estructuro una Tarea Digna de un Bucle
Esto es a lo que llegué después de probablemente más de 200 sesiones agenticas este año. Dale al modelo un resumen de tarea que contenga cuatro cosas:
- El objetivo, específico, comprobable, lo suficientemente pequeño para terminar en menos de 30 pasos, specific, testable, small enough to finish in under 30 steps
- El estado inicial, qué archivos existen, qué pruebas ya pasan, what files exist, what tests already pass
- La condición de éxito, generalmente "todas las pruebas en verde" o una firma de función específica que debe producir, usually "all tests green" or a specific function signature it must produce
- La condición de parada, "si has intentado el mismo arreglo más de tres veces, detente y explica por qué estás atrapado", "if you've tried the same fix more than three times, stop and explain why you're stuck"
Ese cuarto punto está subestimado. Sin él, Claude a veces entrará en un bucle infinito. No infinito-infinito, pero lo he visto hacer 18 intentos en un problema regex complicado, cada uno ligeramente diferente, ninguno correcto, nunca deteniéndose para decir "no estoy seguro". Decirle explícitamente que exponga la confusión es algo que la especificación del modelo de Anthropic menciona en términos del enfoque del modelo a la incertidumbre, pero en la práctica, aún necesitas pedirlo en el prompt.Anthropic model spec discusses in terms of the model's approach to uncertainty, but in practice, you still need to prompt for it.
En 2022 un cliente nos dio un trabajo migrando 14,000 listados de productos de una instalación legacy de Magento a WooCommerce. En ese momento Claude no estaba haciendo bucles agenticos, así que escribimos los scripts de migración a mano durante dos semanas. ¿El mismo trabajo hoy? Escribiría una especificación ajustada, se la pasaría a Claude con acceso de lectura al esquema de la base de datos de Magento y acceso de escritura a una instancia de WooCommerce en staging, y lo dejaría correr. Genuinamente creo que terminaríamos en dos días. Esa es la diferencia.
Dónde Claude Es Sorprendentemente Bueno
Refactorizando Código Existente
Aquí es donde más me ha impresionado. Dale una clase desordenada de 400 líneas, pídele que refactorice hacia responsabilidad única, y déjala ejecutar sus propias pruebas unitarias como puntos de control. Mantiene el contexto en todo el archivo mejor de lo que esperaba y es genuinamente cuidadosa de no romper las pruebas que pasan. El resultado no siempre es la arquitectura que yo elegiría, pero normalmente es defendible.I would choose, but it's usually defensible.
Escribir Pruebas para Código que No Escribiste
Seahawk hace muchas auditorías de sitios y rescates. Heredamos bases de código todo el tiempo, a menudo sin pruebas y sin el desarrollador original a la vista. He empezado a usar Claude agentico específicamente para escribir un conjunto de pruebas para código heredado antes de tocar nada. Lee el código fuente, infiere la intención a partir de nombres de funciones y comentarios, escribe pruebas, las ejecuta, y se ajusta cuando algo falla inesperadamente. El mes pasado detectó un error silencioso de corrupción de datos en un manejador de órdenes de WooCommerce personalizado que probablemente había estado ahí durante dos años. Nadie lo sabía.
Molienda a Través de Código Repetitivo
Andamios de endpoints REST, migraciones CRUD, formularios de paneles de administración. Las cosas aburridas que le toman una tarde a un desarrollador competente y a nadie le gustan. Claude es rápido y consistente aquí, y la consistencia es en realidad lo que quieres en código repetitivo, no se vuelve creativo, no se cansa, simplemente reconoce patrones en tu código existente y lo extiende.
Dónde Se Equivoca
Honestamente, los fracasos son instructivos. Estos son los que encuentro con más frecuencia:
- Desbordamiento de ventana de contexto en bases de código grandes. Claude 3.5 Sonnet tiene una ventana de contexto de 200k tokens, que suena enorme hasta que le alimentas un plugin de WordPress completo con 40 archivos. Empieza a olvidar cosas que vio al principio de la sesión. Solución: divide el trabajo en bucles más pequeños con puntos de control explícitos. Claude 3.5 Sonnet has a 200k token context window, which sounds enormous until you're feeding it a full WP plugin with 40 files. It starts forgetting things it saw early in the session. Solution: break the job into smaller loops with explicit checkpoints.
- Confianza en cosas en las que no debería estar confiado. Claude arreglará una consulta de base de datos, ejecutará la prueba, pasará, e informará éxito, pero la consulta ahora es sutilmente menos eficiente porque cambió una cláusula WHERE amigable con índices por una subconsulta. Resolvió el problema declarado y creó uno no declarado. La revisión de código sigue siendo importante. Claude will fix a database query, run the test, it passes, and report success, but the query is now subtly less efficient because it swapped an index-friendly
WHEREclause for a subquery. It solved the stated problem and created an unstated one. Code review still matters. - Expansión de permisos de herramientas. Si le das acceso a bash y no lo restringes, ejecutará npm install para paquetes que no pediste, o peor, hará una solicitud de red que no autorizaste. Esto no es malicioso, es el modelo haciendo lo que parece útil. Establece los permisos de tus herramientas antes de empezar, no después de que algo raro suceda. If you give it bash access and don't constrain it, it will run
npm installfor packages you didn't ask for, or worse, make a network request you didn't sanction. This isn't malicious, it's the model doing what seems helpful. Set your tool permissions before you start, not after something weird happens.
Una nota sobre seguridad: si estás ejecutando bucles de agentes contra algo conectado a datos de producción, por favor lee la orientación propia de Anthropic sobre seguridad en el uso de herramientas. No es larga, y te ahorrará un mal día.guidance on tool-use safety. It's not long, and it will save you a bad day.
Indicaciones para Comportamiento de Agente vs. Comportamiento de Chat
El modelo de indicaciones es diferente y esto confunde a la gente. En un contexto de chat eres conversacional, iterativo, de ida y vuelta. En un contexto de agente, la indicación inicial es un documento de especificación. No estarás ahí para aclarar en mitad de la tarea.
Cosas que hacen funcionar las indicaciones de agente:
- Declara las restricciones primero, no al final. La mayoría de la gente las entierra.
- Dile qué no debe hacer. "No modificar ningún archivo fuera de /src/utils" es más útil que diez líneas de instrucciones positivas.not to do. "Do not modify any file outside
/src/utils" is more useful than ten lines of positive instructions. - Dale una salida de emergencia. "Si llegas a un punto de decisión donde proceder requeriría cambiar el esquema de la base de datos, detente y escribe un resumen de por qué."
- Referencia el comando del ejecutor de pruebas explícitamente. "Ejecuta ./vendor/bin/phpunit tests/ después de cada cambio y usa la salida para guiar tu siguiente paso."
./vendor/bin/phpunit tests/after every change and use the output to guide your next step."
El cambio de enfoque es: estás escribiendo un resumen para un contratista que es muy capaz pero no puede hacer preguntas. Así que escribe como uno.
El Dial de Autonomía: Cuánto Dejar Que Funcione
Esta es la pregunta que más recibo de otros dueños de agencias. ¿Lo cuidas paso a paso o lo dejas ir?
Mi respuesta después de un año: depende completamente de si las acciones son reversibles. Investigación de solo lectura, escritura de pruebas, andamiaje en un nuevo directorio, déjalo correr. Cualquier cosa que toque una base de datos en vivo, modifique manifiestos de paquetes o interactúe con APIs externas, revisa cada pocos pasos, o al menos lee el plan antes de que se ejecute.
El patrón de prompting ReAct (Reason + Act, del paper de Yao et al. de 2022) vale la pena entender aquí. Es esencialmente lo que Claude hace internamente cuando le das herramientas: piensa en voz alta sobre qué hacer, lo hace, lee el resultado, piensa de nuevo. Hacer ese razonamiento visible, pidiéndole a Claude que imprima su plan antes de cada acción, te da un punto de revisión natural sin romper el flujo.ReAct prompting pattern (Reason + Act, from the 2022 Yao et al. paper) is worth understanding here. It's essentially what Claude does internally when you give it tools: it thinks out loud about what to do, does it, reads the result, thinks again. Making that reasoning visible, asking Claude to print its plan before each action, gives you a natural review point without breaking the loop.
Comencé a tratar el output de razonamiento paso a paso de Claude de la misma forma que trato un PR de un desarrollador junior. Le doy una ojeada. Si algo se ve mal, intervengo. Si se ve razonable, dejo que proceda. Ese modelo mental me ha servido bien.
FAQ
¿Claude agéntico realmente está listo para producción en trabajo con clientes?
Para tareas específicas y acotadas en entornos que no sean producción: sí, absolutamente. Lo uso regularmente en las fases de andamiaje, refactorización y escritura de pruebas de proyectos. Para cualquier cosa que toque una base de datos de cliente en vivo o una API de pago externa, mantengo a un humano en el ciclo en cada paso de ejecución. El modelo es capaz; el riesgo está en el radio de explosión de un error, no en el modelo en sí.
¿Cuál es la diferencia entre Claude agéntico y simplemente usar Cursor o GitHub Copilot?
Cursor y Copilot son sugerencias de código en línea e interfaces de chat. Reaccionan a lo que escribes. Claude agéntico toma un objetivo y ejecuta un plan multietapa por su cuenta, usando herramientas como una terminal, sistema de archivos o navegador web. Es la diferencia entre un motor de autocompletado y un proceso que puede funcionar sin supervisión durante diez minutos y volver con una tarea completada.
¿Necesito saber programar para usar esto?
Necesitas suficiente contexto para escribir una especificación coherente y para revisar el resultado de forma crítica. Si no puedes leer un diff y determinar si el cambio tiene sentido, vas a pasar un mal momento. La IA agéntica amplifica la competencia. No reemplaza la línea base.
¿Qué modelo de Claude debo usar para bucles agénticos?
Claude 3.5 Sonnet es mi opción predeterminada actual. Logra un buen equilibrio entre la calidad del razonamiento y la velocidad, lo que importa cuando pagas por token en un bucle de 30 pasos. Claude 3 Opus es mejor para tareas de razonamiento muy complejo pero más lento y más caro; lo uso para el paso de planificación inicial en trabajos grandes y luego lo transfiero a Sonnet para la ejecución.
---
Lo que siempre me lleva de vuelta es que el desarrollo agéntico no se trata realmente de que la IA reemplace a los desarrolladores. Se trata de cambiar cuánto vale el tiempo de un desarrollador. Los doce minutos que no gasté escribiendo ese wrapper PHP el octubre pasado, los gasté pensando en arquitectura. Es un intercambio que haré siempre.
