{"id":1221,"date":"2026-11-11T10:33:48","date_gmt":"2026-11-11T09:33:48","guid":{"rendered":"https:\/\/rosmarops.com\/es\/?p=1221"},"modified":"2026-11-11T10:33:49","modified_gmt":"2026-11-11T09:33:49","slug":"agentes-de-ia-errores-repetidos","status":"publish","type":"post","link":"https:\/\/rosmarops.com\/es\/blog\/agentes-de-ia-errores-repetidos\/","title":{"rendered":"La IA no aprende de sus errores. Tu sistema deber\u00eda hacerlo."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Tu agente no recuerda que ayer se equivoc\u00f3. Si quieres que no vuelva a pasar, quien tiene que cambiar es el sistema en el que trabaja. C\u00f3mo convertir un error repetido en un cambio que se quede, y por qu\u00e9 escribirlo en un fichero no siempre basta.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hay una sensaci\u00f3n que conoce cualquiera que trabaje con agentes de IA. Le corriges un error, te da las gracias, lo arregla. Al d\u00eda siguiente, en otra sesi\u00f3n, vuelve a cometer exactamente el mismo. Y t\u00fa vuelves a explic\u00e1rselo, con un poco menos de paciencia que la primera vez.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No es mala fe ni falta de inteligencia. Es que no se acuerda. Cada conversaci\u00f3n empieza casi de cero, y lo que t\u00fa aprendiste ayer no lo aprendi\u00f3 \u00e9l. Si quieres que el error no vuelva, la memoria tiene que estar fuera del agente: en el sistema en el que trabaja.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En UXMachine aprend\u00ed esto a principios de septiembre. La \u00fanica comprobaci\u00f3n obligatoria antes de juntar un cambio era que el c\u00f3digo estuviera bien escrito, sin errores de sintaxis. El 2 de septiembre, las pruebas fallaron en las diez ramas en las que trabajaban los agentes ese d\u00eda, y no bloque\u00f3 nada, porque nadie hab\u00eda dicho que fallar las pruebas impidiera juntar. Se cambiaron dos cosas. Ahora un cambio solo entra con todas las pruebas en verde, comprobadas sobre la versi\u00f3n real. Y cada control tiene que demostrar, con un fallo hecho a prop\u00f3sito, que de verdad se pone en rojo cuando debe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">El tercer bucle<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En esta serie separo tres bucles. El del agente, que dura segundos: llama a una herramienta, lee lo que le devuelve y sigue. El de trabajo, del que habl\u00e9 en el art\u00edculo anterior: alguien de fuera comprueba el resultado y se lo devuelve si falla. Y el del sistema, que dura d\u00edas o semanas: cuando un fallo se repite, se convierte en un cambio permanente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una forma sencilla de verlo: el bucle de trabajo es corregir el examen; el bucle del sistema es cambiar c\u00f3mo se prepara el siguiente. El primero arregla lo que el agente acaba de hacer. El segundo arregla lo que hace que se equivoque. <strong>Es el \u00fanico de los tres que consigue que la semana que viene sea m\u00e1s barata que esta.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La idea de Hashimoto: que no vuelva a pasar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Mitchell Hashimoto le ha puesto nombre a esta costumbre: <em>harness engineering<\/em>, que podr\u00edamos traducir como la ingenier\u00eda del arn\u00e9s. Cada vez que un agente comete un error, dedicas un rato a dise\u00f1ar una soluci\u00f3n para que no lo vuelva a cometer nunca.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuenta dos maneras de hacerlo:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>Escribirlo.<\/strong> A\u00f1ade una l\u00ednea al fichero de instrucciones que el agente lee al empezar cada sesi\u00f3n, el AGENTS.md. En uno de los suyos, dice, cada l\u00ednea sale de un mal comportamiento del agente, y casi todos desaparecieron.<\/li>\n\n\n<li><strong>Darle una herramienta.<\/strong> Por ejemplo, un peque\u00f1o programa que hace capturas de pantalla o que pasa solo las pruebas que importan. Y despu\u00e9s lo anota en el AGENTS.md para que el agente sepa que existe.<\/li>\n\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Una regla escrita es un deseo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed conviene no ser demasiado optimista. Escribir una l\u00ednea en un fichero de instrucciones es lo m\u00e1s f\u00e1cil, y no siempre lo m\u00e1s eficaz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un estudio publicado en febrero, <em>Evaluating AGENTS.md<\/em>, lo midi\u00f3 con varios agentes y modelos. Los ficheros de instrucciones, en general, no aumentaron las tareas resueltas, y encarecieron cada tarea m\u00e1s de un 20 % de media. Los agentes s\u00ed segu\u00edan las instrucciones; lo que no ayudaba eran las descripciones generales del proyecto. La conclusi\u00f3n de los autores es prudente: esos ficheros sirven para dejar por escrito lo que tu proyecto hace distinto de lo habitual, y todo lo dem\u00e1s conviene medirlo antes de darlo por bueno.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ichigo lo resume con una imagen que me gusta mucho. \u00abNo toques las migraciones\u00bb, escrito en un fichero de texto, es un deseo: el agente lo leer\u00e1 y casi siempre lo cumplir\u00e1. Una regla que le quita el permiso de tocarlas es un muro: lo cumplir\u00e1 aunque se le olvide. Por eso propone este orden cuando algo falla:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>Primero, la estructura:<\/strong> que el error no se pueda cometer.<\/li>\n\n\n<li><strong>Despu\u00e9s, una comprobaci\u00f3n autom\u00e1tica<\/strong> que lo detecte siempre.<\/li>\n\n\n<li><strong>Texto en las instrucciones,<\/strong> solo donde de verdad hace falta criterio.<\/li>\n\n\n<li><strong>Y una persona que revisa,<\/strong> al final.<\/li>\n\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">La raz\u00f3n es casi contable. Una l\u00ednea en las instrucciones se paga en cada sesi\u00f3n, y el agente puede pasarla por alto. Una comprobaci\u00f3n autom\u00e1tica, una vez hecha, no cuesta nada.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Arreglarlo donde se produce, no donde se ve<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hay un error de enfoque muy habitual: arreglar el fallo justo donde se ha visto. En la <a href=\"https:\/\/guia.qtorb.com\/#\/dos-puertas\">Gu\u00eda AI-First<\/a> lo escrib\u00ed as\u00ed: si algo vuelve despu\u00e9s de arreglarlo, es que se arregl\u00f3 donde se observ\u00f3, no donde se produce. Y \u00abun fallo arreglado donde se observ\u00f3 est\u00e1 escondido, no arreglado\u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La gu\u00eda propone una pregunta sencilla antes de dar algo por cerrado: si esto mismo apareciera en otro sitio, \u00bflo parar\u00eda algo? Si la respuesta es no, todav\u00eda no est\u00e1 terminado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y hay un contrapeso que tambi\u00e9n est\u00e1 en la gu\u00eda: un control que nunca se ha puesto en rojo, o no est\u00e1 probado, o sobra. Por eso cada comprobaci\u00f3n nueva deber\u00eda demostrar, al menos una vez, que detecta el fallo para el que existe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">De los prompts a una forma de trabajar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Al principio pensaba que el truco estaba en pedir mejor. Ahora creo que est\u00e1 en decidir antes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En la gu\u00eda, cada encargo dice \u00abqu\u00e9 se hace, qu\u00e9 no se toca, c\u00f3mo se comprueba y cu\u00e1ndo se para\u00bb. Y antes de empezar, una l\u00ednea: \u00ab\u00bfqu\u00e9 tendr\u00eda que pasar para que lo dejara?\u00bb. Lo dem\u00e1s sale de ah\u00ed:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Qu\u00e9 puede tocar.<\/strong> No le pidas al agente que no toque algo: qu\u00edtale el permiso. \u00abLo que un rol puede tocar no se le dice, se le limita.\u00bb<\/li>\n\n\n<li><strong>Qui\u00e9n decide qu\u00e9.<\/strong> Para cada papel, dos columnas: qu\u00e9 decide y qu\u00e9 no decide. La segunda es la dif\u00edcil, y la \u00fanica que sirve cuando hay prisa.<\/li>\n\n\n<li><strong>Cu\u00e1ndo para.<\/strong> Una condici\u00f3n de parada escrita antes de empezar. Un plazo no es una condici\u00f3n de parada.<\/li>\n\n\n<li><strong>Qui\u00e9n lo mira antes de que salga.<\/strong> La entrega se acepta sobre el resultado real, no sobre lo que el agente dice que hizo. Y si no lo puedes mirar t\u00fa, alguien tiene que hacerlo, y no puede ser el agente.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Saber qu\u00e9 alcanza cada agente<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para poner un muro, primero hay que saber d\u00f3nde hace falta. Con varios agentes en el mismo ordenador eso no es evidente: cada uno lee sus ficheros, sus herramientas y sus claves, y a veces los de los dem\u00e1s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso hago <a href=\"https:\/\/rosmarops.com\/es\/\">RosmarOps<\/a>. Lee la configuraci\u00f3n de los agentes que hay en tu ordenador y dibuja un mapa de lo que cada uno puede alcanzar. No cambia tus agentes ni pone l\u00edmites: te ense\u00f1a d\u00f3nde est\u00e1n hoy, para que decidas t\u00fa d\u00f3nde van los muros.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tres preguntas para la pr\u00f3xima vez que un agente repita un error<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>\u00bfD\u00f3nde se produce el error, y no solo d\u00f3nde lo he visto?<\/li>\n\n\n<li>\u00bfPuedo hacer que no se pueda cometer, o que una comprobaci\u00f3n lo detecte siempre, antes de escribirlo en las instrucciones?<\/li>\n\n\n<li>Si aparece en otro sitio, \u00bflo parar\u00eda algo?<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Lo que no se arregla con reglas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un sistema que aprende evita repetir errores. Pero hay un coste que no aparece en ning\u00fan error: construir m\u00e1s deprisa de lo que entiendes. De eso trata el \u00faltimo art\u00edculo de la serie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Fuentes: Mitchell Hashimoto, <a href=\"https:\/\/mitchellh.com\/writing\/my-ai-adoption-journey\">\u00abMy AI Adoption Journey\u00bb<\/a> (5 de febrero de 2026); Gloaguen, M\u00fcndler-Sasahara, M\u00fcller, Raychev y Vechev, <a href=\"https:\/\/arxiv.org\/abs\/2602.11988\">\u00abEvaluating AGENTS.md: Are Repository-Level Context Files Helpful for Coding Agents?\u00bb<\/a>, arXiv:2602.11988 (12 de febrero de 2026); Albert Garcia Pujadas, <a href=\"https:\/\/guia.qtorb.com\/#\/dos-puertas\">Gu\u00eda AI-First<\/a>; <a href=\"https:\/\/x.com\/iiiichigo_chan\/status\/2118397992239571196\">hilo de Ichigo en X<\/a> (5 de noviembre de 2026).<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Escrito con ayuda de asistentes de IA. Los ejemplos, la interpretaci\u00f3n y la decisi\u00f3n de publicar son m\u00edos.<\/em><\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Tu agente no recuerda que ayer se equivoc\u00f3. Si quieres que no vuelva a pasar, quien tiene que cambiar es el sistema en el que trabaja. C\u00f3mo convertir un error repetido en un cambio que se quede, y por qu\u00e9 escribirlo en un fichero no siempre basta.<\/p>\n","protected":false},"author":1,"featured_media":1222,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rosmarops_translation_url":"","rosmarops_url_en":"https:\/\/rosmarops.com\/blog\/ai-agents-repeated-mistakes\/","rosmarops_url_es":"","rosmarops_url_ca":"https:\/\/rosmarops.com\/ca\/blog\/agents-dia-errors-repetits\/","footnotes":"","_genesis_title":"Agentes de IA que repiten errores: el bucle del sistema","_genesis_description":"Tu agente no recuerda que ayer se equivoc\u00f3. C\u00f3mo convertir un error repetido en un cambio permanente, y por qu\u00e9 una regla escrita no siempre basta.","_tsf_title_no_blogname":""},"categories":[338],"tags":[331,319],"class_list":["post-1221","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-loop-engineering","tag-agents-md","tag-claude-code"],"_links":{"self":[{"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/posts\/1221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/comments?post=1221"}],"version-history":[{"count":1,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/posts\/1221\/revisions"}],"predecessor-version":[{"id":1228,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/posts\/1221\/revisions\/1228"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/media\/1222"}],"wp:attachment":[{"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/media?parent=1221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/categories?post=1221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/tags?post=1221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}