{"id":36826,"date":"2026-10-23T12:48:05","date_gmt":"2026-10-23T10:48:05","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=36826"},"modified":"2026-10-23T12:48:07","modified_gmt":"2026-10-23T10:48:07","slug":"harness%c2%b2-y-la-recursion-de-agentes","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/","title":{"rendered":"Harness\u00b2 y la recursi\u00f3n de\u00a0agentes"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Si has trabajado con inteligencia artificial, seguramente has visto que un mismo modelo puede comportarse de manera muy diferente dependiendo de las instrucciones que recibe, las herramientas que tiene disponibles y la forma en que se organiza su trabajo. Un buen modelo importa, pero en la <strong>recursi\u00f3n de agentes<\/strong> <strong>tambi\u00e9n importa el sistema que lo rodea<\/strong>: esa es la premisa detr\u00e1s de <strong>Harness\u00b2<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ah\u00ed entra <strong>Harness\u00b2 (Harness2)<\/strong>, un proyecto de Google Research que explora c\u00f3mo mejorar el sistema de ejecuci\u00f3n de un <a href=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/agentes-de-ia-y-flujos-agenticos\/\" data-type=\"link\" data-id=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/agentes-de-ia-y-flujos-agenticos\/\" target=\"_blank\" rel=\"noreferrer noopener\">agente<\/a> de IA a partir de la evidencia obtenida al realizar tareas y aqu\u00ed lo interesante es que busca hacerlo <strong>sin modificar ni volver a entrenar los pesos del modelo base<\/strong>. En lugar de cambiar el motor, trabaja sobre el equipo que permite que ese motor act\u00fae como agente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En este art\u00edculo vamos a conocer qu\u00e9 es Harness\u00b2 de forma simple y pr\u00e1ctica, porque no necesitas empezar siendo especialista en agentes aut\u00f3nomos: la idea es entender primero el problema y despu\u00e9s observar c\u00f3mo se traduce en c\u00f3digo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Harness\u00b2 es un proyecto de investigaci\u00f3n disponible p\u00fablicamente. Su repositorio aclara que no es un producto de Google oficialmente soportado. Los resultados experimentales citados m\u00e1s adelante corresponden a las configuraciones y benchmarks descritos por sus autores; no son una garant\u00eda de mejora en cualquier aplicaci\u00f3n.<\/em> <a href=\"https:\/\/github.com\/google-research\/harness2\" rel=\"noopener\" target=\"_blank\"><em>Repositorio oficial<\/em><\/a><em>.<\/em><\/p>\n\n\n\n<h2 id=\"h-que-es-harness\u00b2\" class=\"wp-block-heading\"><strong>\u00bfQu\u00e9 es Harness\u00b2?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para entender de qu\u00e9 se trata, primero tenemos que separar dos conceptos: el modelo y el <em>harness;<\/em> \u00bfy qu\u00e9 es un harness en inteligencia artificial? pues imagina que un modelo de IA es el motor de un autom\u00f3vil. El motor puede ser potente, pero para llegar a un destino necesita direcci\u00f3n, controles, sensores, reglas y una manera de coordinarse con el resto del veh\u00edculo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En un agente de IA, el <strong>harness<\/strong> es ese sistema de <strong>recursi\u00f3n de agentes<\/strong> que rodea al modelo y le permite ejecutar tareas y puede incluir instrucciones, herramientas, memoria, habilidades, subagentes y l\u00f3gica de orquestaci\u00f3n. Dos agentes que usan el mismo modelo pueden obtener resultados distintos si sus harnesses est\u00e1n dise\u00f1ados de forma diferente.<\/p>\n\n\n\n<h3 id=\"h-que-hace-harness\u00b2\" class=\"wp-block-heading\"><strong>\u00bfQu\u00e9 hace Harness\u00b2?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Harness\u00b2 es un framework de <strong>recursi\u00f3n de agentes<\/strong> para la <strong>adaptaci\u00f3n recursiva del harness de un agente<\/strong>, es decir, prueba cambios al sistema que gu\u00eda al agente, observa qu\u00e9 resultados producen y utiliza esa evidencia para decidir qu\u00e9 mejorar. El proyecto trabaja en dos niveles conectados:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Recursi\u00f3n a nivel de tarea:<\/strong> refina el harness para resolver mejor la tarea que tiene delante.<\/li>\n\n\n\n<li><strong>Recursi\u00f3n a nivel de mejora:<\/strong> conserva aprendizajes respaldados por evidencia para orientar el refinamiento de tareas futuras.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">La clave es que la mejora sucede alrededor del modelo: Harness\u00b2 mantiene fijos sus pesos durante ese proceso; esto no significa que el modelo nunca se pueda entrenar por otros medios, sino que el m\u00e9todo estudiado no necesita hacerlo para adaptar el harness.<\/p>\n\n\n\n<h3 id=\"h-como-funciona-harness\u00b2-propose-probe-compose\" class=\"wp-block-heading\"><strong>\u00bfC\u00f3mo funciona Harness\u00b2? (Propose\u2013Probe\u2013Compose)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La mec\u00e1nica principal puede entenderse con tres verbos: <strong>proponer, probar y componer<\/strong>. El repositorio lo describe como un proceso contrastivo: el sistema compara lo que ocurre al ejecutar variantes del harness en la misma tarea, en vez de depender exclusivamente de una respuesta correcta conocida de antemano.<\/p>\n\n\n\n<h4 id=\"h-propose-proponer-un-nbsp-cambio\" class=\"wp-block-heading\"><strong><em>Propose: proponer un&nbsp;cambio<\/em><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">El sistema plantea modificaciones posibles al harness. Puede considerar reglas generales que deber\u00edan servir en diferentes contextos y otras m\u00e1s espec\u00edficas del dominio de trabajo. Por ejemplo, si un agente concilia movimientos contables, una propuesta podr\u00eda cambiar la forma en que el script suma cargos y abonos. La propuesta es una hip\u00f3tesis: <em>todav\u00eda no sabemos si realmente mejora el resultado.<\/em><\/p>\n\n\n\n<h4 id=\"h-probe-probar-las-alternativas\" class=\"wp-block-heading\"><strong><em>Probe: probar las alternativas<\/em><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s se ejecutan las variantes en la misma tarea. Es importante comparar condiciones equivalentes: si cada versi\u00f3n resuelve un problema completamente diferente, resultar\u00e1 m\u00e1s dif\u00edcil atribuir la diferencia al cambio realizado. En la analog\u00eda del taller, no basta con decir <em>\u201cesta pieza parece mejor\u201d,<\/em> hay que ponerla a prueba y observar qu\u00e9 cambia.<\/p>\n\n\n\n<h4 id=\"h-compose-componer-una-version-nbsp-refinada\" class=\"wp-block-heading\"><strong><em>Compose: componer una versi\u00f3n&nbsp;refinada<\/em><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">El sistema utiliza los contrastes entre las ejecuciones para construir un harness refinado. La comparaci\u00f3n entre resultados ayuda a identificar qu\u00e9 modificaci\u00f3n parece haber contribuido y c\u00f3mo integrar las mejoras. Aqu\u00ed, el enfoque busca guiar estos cambios mediante evidencia de comportamiento, incluso cuando no se dispone de una respuesta de referencia para cada tarea desconocida. Esto es especialmente relevante para escenarios abiertos, donde no todas las tareas futuras pueden anticiparse durante el dise\u00f1o inicial.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a class=\"alt=&quot;Infograf\u00eda de recursi\u00f3n de agentes y arquitectura de Harness\u00b2&quot;\" href=\"https:\/\/gemini.google.com\/3170d810-5749-4bd6-aaa3-33a79d15ac24\" target=\"_blank\" rel=\" noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"447\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/11B43JSkYJG7n0D8zaVmb7w.jpeg\" alt=\"\" class=\"wp-image-36832\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/11B43JSkYJG7n0D8zaVmb7w.jpeg 800w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/11B43JSkYJG7n0D8zaVmb7w-300x168.jpeg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/11B43JSkYJG7n0D8zaVmb7w-768x429.jpeg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/11B43JSkYJG7n0D8zaVmb7w-400x225.jpeg 400w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h3 id=\"h-un-segundo-ciclo-aprender-de-la-experiencia\" class=\"wp-block-heading\"><strong>Un segundo ciclo: aprender de la experiencia<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Harness\u00b2 a\u00f1ade otra capa a la <strong>recursi\u00f3n de agentes<\/strong>: despu\u00e9s de adoptar un harness, puede registrar la soluci\u00f3n y las lecciones justificadas por las ejecuciones y esa experiencia persistente alimenta los siguientes refinamientos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pensemos en dos niveles de aprendizaje:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Mejorar el trabajo actual:<\/strong> probar cambios para una tarea concreta.<\/li>\n\n\n\n<li><strong>Mejorar la forma de mejorar:<\/strong> guardar lecciones \u00fatiles y respaldadas por evidencia para los siguientes trabajos.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">No es una memoria infalible ni significa que cada lecci\u00f3n vaya a funcionar en cualquier escenario. Las experiencias se organizan por dominio y deben interpretarse seg\u00fan el contexto del que proceden.<\/p>\n\n\n\n<h3 id=\"h-los-ocho-componentes-que-harness\u00b2-puede-nbsp-editar\" class=\"wp-block-heading\"><strong>Los ocho componentes que Harness\u00b2 puede&nbsp;editar<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El README oficial identifica ocho componentes editables alrededor del modelo. En t\u00e9rminos sencillos:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"147\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1cbJEkc9Ku5Hpig3Qj3uPGA.png\" alt=\"\" class=\"wp-image-36828\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1cbJEkc9Ku5Hpig3Qj3uPGA.png 800w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1cbJEkc9Ku5Hpig3Qj3uPGA-300x55.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1cbJEkc9Ku5Hpig3Qj3uPGA-768x141.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Estos ejemplos son explicaciones pr\u00e1cticas, no una lista de configuraciones recomendadas para todos los casos. La documentaci\u00f3n agrupa estos componentes seg\u00fan su papel en el contexto, la interfaz de herramientas, la delegaci\u00f3n y el comportamiento durante la ejecuci\u00f3n.&nbsp;<\/p>\n\n\n\n<h4 id=\"h-ejemplo-un-agente-que-calcula-mal-el-nbsp-saldo\" class=\"wp-block-heading\"><strong>Ejemplo: un agente que calcula mal el&nbsp;saldo<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos que tenemos una hoja de transacciones. Los importes positivos representan cargos y los negativos representan abonos y queremos sumar todos los movimientos con su signo para obtener el total neto. Nuestro primer script contiene un error: suma solo los importes mayores que cero.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">from decimal import Decimal\n\nimportes = &#91;Decimal(<span class=\"hljs-string\">\"100.25\"<\/span>), Decimal(<span class=\"hljs-string\">\"-20.10\"<\/span>), Decimal(<span class=\"hljs-string\">\"5.00\"<\/span>)]\n\ndef total_original(importes):\n    <span class=\"hljs-comment\"># Error: excluye todos los importes negativos.<\/span>\n    <span class=\"hljs-keyword\">return<\/span> sum((x <span class=\"hljs-keyword\">for<\/span> x in importes <span class=\"hljs-keyword\">if<\/span> x &gt; <span class=\"hljs-number\">0<\/span>), Decimal(<span class=\"hljs-string\">\"0\"<\/span>))\n\n<span class=\"hljs-keyword\">print<\/span>(f<span class=\"hljs-string\">\"Total original: {total_original(importes):.2f}\"<\/span>)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">El resultado del c\u00f3digo es <code>105.25<\/code>. Sin embargo, el total correcto es <code>85.15<\/code>, porque hay que sumar tambi\u00e9n el movimiento de <code>-20.10<\/code>. Podemos escribir una variante corregida:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">def total_corregido(importes):\n    <span class=\"hljs-keyword\">return<\/span> sum(importes, Decimal(<span class=\"hljs-string\">\"0\"<\/span>))\n\n<span class=\"hljs-keyword\">print<\/span>(f<span class=\"hljs-string\">\"Total corregido: {total_corregido(importes):.2f}\"<\/span>)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Ahora obtenemos <code>85.15<\/code> y \u00bfc\u00f3mo se conecta esto con Harness\u00b2?<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Propose:<\/strong> proponer eliminar el filtro que descarta importes negativos.<\/li>\n\n\n\n<li><strong>Probe:<\/strong> ejecutar el script original y el modificado con el mismo libro contable.<\/li>\n\n\n\n<li><strong>Compose:<\/strong> utilizar la diferencia observada para integrar la correcci\u00f3n en el harness.<\/li>\n\n\n\n<li><strong>Experiencia:<\/strong> si las pruebas dan evidencia suficiente, registrar que en conciliaciones de este tipo hay que conservar los signos de los importes.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Esta explicaci\u00f3n manual no reproduce por s\u00ed sola todo el framework, pero sirve para visualizar el razonamiento. Aqu\u00ed lo interesante es que la demostraci\u00f3n oficial de Harness\u00b2 utiliza precisamente un peque\u00f1o caso de conciliaci\u00f3n de transacciones para ejercitar el flujo real de adaptaci\u00f3n con editores deterministas.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Repositorio del experimento:<\/strong> <a href=\"https:\/\/github.com\/Orliluq\/harness2_tutorial.git\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/Orliluq\/harness2_tutorial.git<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><em>El cuaderno&nbsp;<\/em><code><em>.ipynb<\/em><\/code> <em>que acompa\u00f1a este art\u00edculo contiene las celdas preparadas para ejecutar este flujo en orden. Puedes abrirlo en Google Colab y cargar all\u00ed el archivo descargado.<\/em><\/p>\n\n\n\n<h3 id=\"h-que-demuestra-esta-practica\" class=\"wp-block-heading\"><strong>\u00bfQu\u00e9 demuestra esta pr\u00e1ctica?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Demuestra<\/strong> c\u00f3mo recorrer el flujo real de adaptaci\u00f3n de <strong>recursi\u00f3n de agentes<\/strong> y biblioteca de experiencia con la implementaci\u00f3n local determinista incluida en Harness\u00b2 y permite explorar los archivos generados y comparar el enfoque paralelo con el secuencial.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>No demuestra<\/strong> que un modelo de lenguaje concreto haya mejorado su rendimiento en un benchmark, ni que las mejoras publicadas se reproduzcan autom\u00e1ticamente. La demo utiliza editores programados para este escenario y no llama a un LLM remoto.<\/p>\n\n\n\n<h3 id=\"h-como-ejecutar-un-benchmark-real-con-modelos-de-nbsp-ia\" class=\"wp-block-heading\"><strong>\u00bfC\u00f3mo ejecutar un benchmark real con modelos de&nbsp;IA?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El paso siguiente es configurar uno de los benchmarks compatibles: <strong><em>JobBench<\/em><\/strong> para tareas profesionales, <strong>LAB<\/strong> para trabajo jur\u00eddico o <strong><em>WorkBuddy-Bench<\/em><\/strong> para tareas de oficina, web y c\u00f3digo. Este proceso no es tan simple como ejecutar la demo local.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El entorno de benchmarks requiere dependencias adicionales. Entre ellas est\u00e1n Linux, Python 3.12, <code>uv<\/code>, Node.js 20 o posterior y Google Cloud CLI. Para las configuraciones de Vertex AI hay que configurar el proyecto y los modelos correspondientes, y autenticar la sesi\u00f3n de Google Cloud. Algunos benchmarks a\u00f1aden requisitos espec\u00edficos: LAB necesita Pandoc y Poppler, mientras que WorkBuddy-Bench requiere Docker. Un flujo de ejemplo descrito en la documentaci\u00f3n oficial para LAB es:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">harness2-setup lab\nharness2-check --bench lab\nharness2 --bench lab --k 1 --mode parallel --only-domains antitrust-competition --max-tasks 1\nharness2-judge --bench lab --k 1 --mode parallel\nharness2-report --bench lab --k 1 --mode parallel<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Ese ejemplo es ilustrativo y solo podr\u00e1 ejecutarse tras completar los requisitos, la autenticaci\u00f3n y la configuraci\u00f3n de modelos. Las llamadas a modelos pueden generar costes; conviene empezar con una selecci\u00f3n peque\u00f1a y revisar los precios antes de lanzar experimentos grandes; para esto, consulta <a href=\"https:\/\/github.com\/google-research\/harness2\/blob\/main\/docs\/SETUP.md\" rel=\"noopener\" target=\"_blank\">SETUP.md<\/a>, <a href=\"https:\/\/github.com\/google-research\/harness2\/blob\/main\/docs\/BENCHMARKS.md\" rel=\"noopener\" target=\"_blank\">BENCHMARKS.md<\/a> y <a href=\"https:\/\/github.com\/google-research\/harness2\/blob\/main\/docs\/EXPERIMENTS.md\" rel=\"noopener\" target=\"_blank\">EXPERIMENTS.md<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora bien, los benchmarks son p\u00fablicos y algunos criterios o r\u00fabricas pueden estar accesibles en Internet. Si un agente tambi\u00e9n tiene acceso a la web durante una evaluaci\u00f3n, podr\u00eda obtener informaci\u00f3n que no deber\u00eda formar parte de la tarea. El propio proyecto advierte de este riesgo y recomienda configurar restricciones de red para evitar que el agente consulte respuestas o criterios de evaluaci\u00f3n. Por eso, una evaluaci\u00f3n responsable debe controlar qu\u00e9 informaci\u00f3n puede ver el agente, documentar la configuraci\u00f3n utilizada y distinguir entre una ejecuci\u00f3n incompleta y un resultado realmente incorrecto.<\/p>\n\n\n\n<h2 id=\"h-resultados-publicados-mejora-realmente-a-los-nbsp-agentes\" class=\"wp-block-heading\"><strong>Resultados publicados: \u00bfmejora realmente a los&nbsp;agentes?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El README del proyecto informa de resultados positivos en tres benchmarks profesionales y cuatro configuraciones de modelo y harness. Entre los resultados m\u00e1ximos reportados aparecen mejoras de hasta <strong>11,5 puntos en WorkBuddy-Bench<\/strong>, <strong>4,5 puntos en JobBench<\/strong> y <strong>11,8 puntos porcentuales en la tasa de aprobaci\u00f3n parcial de LAB<\/strong>. Los autores tambi\u00e9n indican que aumentar el presupuesto de recursi\u00f3n puede aportar mejoras adicionales en sus experimentos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Estas cifras deben leerse con contexto porque son resultados de las configuraciones y tareas evaluadas, no una promesa de rendimiento para cualquier modelo, benchmark o aplicaci\u00f3n propia. Para juzgar si Harness\u00b2 vale la pena en un proyecto real, habr\u00eda que comparar <a href=\"https:\/\/arxiv.org\/abs\/2610.14224\" rel=\"noopener\" target=\"_blank\">una l\u00ednea base<\/a> y la versi\u00f3n refinada usando las mismas tareas, modelos, presupuesto, herramientas y condiciones de evaluaci\u00f3n.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a class=\"alt=&quot;Harness\u00b2 y la recursi\u00f3n de agentes&quot;\" href=\"https:\/\/gemini.google.com\/eba69f3a-f707-452a-b65b-c705f826eb6c\" target=\"_blank\" rel=\" noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"447\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1cWc_pGydUiopleSP_bdDUQ.jpeg\" alt=\"\" class=\"wp-image-36831\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1cWc_pGydUiopleSP_bdDUQ.jpeg 800w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1cWc_pGydUiopleSP_bdDUQ-300x168.jpeg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1cWc_pGydUiopleSP_bdDUQ-768x429.jpeg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1cWc_pGydUiopleSP_bdDUQ-400x225.jpeg 400w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h3 id=\"h-parallel-vs-sequential-que-significa-cada-nbsp-modo\" class=\"wp-block-heading\"><strong>Parallel vs. Sequential: \u00bfqu\u00e9 significa cada&nbsp;modo?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Harness\u00b2 permite aumentar el presupuesto de recursi\u00f3n de dos maneras:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Parallel (paralelo):<\/strong> explora varias alternativas de forma m\u00e1s amplia y utiliza la evidencia reunida para componer harnesses refinados.<\/li>\n\n\n\n<li><strong>Sequential (secuencial):<\/strong> realiza pasos consecutivos, llevando al siguiente paso el harness refinado y la evidencia acumulada.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Una analog\u00eda sencilla ser\u00eda que, el modo paralelo se parece a probar varias soluciones candidatas antes de elegir una composici\u00f3n; el secuencial se parece a ajustar una soluci\u00f3n, volver a probarla y continuar desde ese resultado y el modo m\u00e1s conveniente depende del objetivo, los recursos disponibles y la forma de la tarea.<\/p>\n\n\n\n<h3 id=\"h-cuando-podria-ser-util-harness\u00b2\" class=\"wp-block-heading\"><strong>\u00bfCu\u00e1ndo podr\u00eda ser \u00fatil Harness\u00b2?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un enfoque como Harness\u00b2 resulta interesante cuando:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Las tareas var\u00edan y no todas pueden preverse durante el dise\u00f1o del agente.<\/li>\n\n\n\n<li>El rendimiento depende mucho de instrucciones, herramientas, scripts o coordinaci\u00f3n.<\/li>\n\n\n\n<li>Es posible probar varias ejecuciones y conservar evidencia de qu\u00e9 cambios ayudaron.<\/li>\n\n\n\n<li>El equipo necesita mejorar su sistema de agentes sin empezar por reentrenar el modelo.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Aun as\u00ed, no toda aplicaci\u00f3n necesita recursi\u00f3n automatizada, porque en un flujo sencillo, una instrucci\u00f3n mejor escrita o un test determinista puede ser suficiente. La optimizaci\u00f3n debe justificarse con resultados observables, no solo por lo sofisticado del framework.<\/p>\n\n\n\n<h2 id=\"h-el-modelo-importa-pero-el-sistema-nbsp-tambien\" class=\"wp-block-heading\"><strong>El modelo importa, pero el sistema&nbsp;tambi\u00e9n<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Harness\u00b2 propone una idea poderosa y f\u00e1cil de olvidar, el que aplicar la <strong>recursi\u00f3n de agentes<\/strong> para mejorar un sistema no siempre significa cambiar el modelo de lenguaje. A veces, el avance est\u00e1 en las instrucciones, las herramientas, los scripts, la coordinaci\u00f3n y la forma sistem\u00e1tica de comprobar qu\u00e9 funciona.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Su ciclo <strong>Propose\u2013Probe\u2013Compose<\/strong> permite comparar cambios sobre una tarea, mientras que la segunda capa conserva aprendizajes respaldados por evidencia para futuras adaptaciones. <strong>La lecci\u00f3n para quienes construimos soluciones con IA:<\/strong> no basta con preguntarnos qu\u00e9 modelo utilizar, tambi\u00e9n debemos observar c\u00f3mo trabaja, con qu\u00e9 herramientas cuenta y c\u00f3mo aprendemos de los resultados sin confundir una mejora observada con una garant\u00eda universal.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a class=\"alt=&quot;Ilustraci\u00f3n conceptual de un agente de IA optimizando su sistema de herramientas y memoria mediante Harness\u00b2.&quot;\" href=\"https:\/\/gemini.google.com\/be1f16e4-ff9f-4c3a-8870-c325913bca2c\" target=\"_blank\" rel=\" noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"447\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1GH0fCxLnqRmklk32wvhjug.jpeg\" alt=\"\" class=\"wp-image-36829\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1GH0fCxLnqRmklk32wvhjug.jpeg 800w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1GH0fCxLnqRmklk32wvhjug-300x168.jpeg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1GH0fCxLnqRmklk32wvhjug-768x429.jpeg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1GH0fCxLnqRmklk32wvhjug-400x225.jpeg 400w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si has trabajado con inteligencia artificial, seguramente has visto que un mismo modelo puede comportarse de manera muy diferente dependiendo de las instrucciones que recibe, las herramientas que tiene disponibles y la forma en que se organiza su trabajo. Un buen modelo importa, pero en la recursi\u00f3n de agentes tambi\u00e9n importa el sistema que lo&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/\">Read more<\/a><\/p>\n","protected":false},"author":313,"featured_media":36830,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10610,10598],"tags":[14283],"collections":[14424,12988],"class_list":["post-36826","post","type-post","status-publish","format-standard","has-post-thumbnail","category-aprendizaje-automatico","category-inteligencia-artificial","tag-ai-agents-it-es","collections-agentic-es","collections-ia-es","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.6 (Yoast SEO v28.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Recursi\u00f3n de agentes con Harness\u00b2: Gu\u00eda pr\u00e1ctica de IA<\/title>\n<meta name=\"description\" content=\"Descubre c\u00f3mo aplicar la recursi\u00f3n de agentes con Harness\u00b2 de Google Research para optimizar sistemas de IA sin tocar el LLM.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness\u00b2-y-la-recursion-de-agentes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Harness\u00b2 y la recursi\u00f3n de\u00a0agentes\" \/>\n<meta property=\"og:description\" content=\"Descubre c\u00f3mo aplicar la recursi\u00f3n de agentes con Harness\u00b2 de Google Research para optimizar sistemas de IA sin tocar el LLM.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness\u00b2-y-la-recursion-de-agentes\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-23T10:48:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-23T10:48:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"447\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Orli Dun\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Orli Dun\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/harness%c2%b2-y-la-recursion-de-agentes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/harness%c2%b2-y-la-recursion-de-agentes\\\/\"},\"author\":{\"name\":\"Orli Dun\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/37ca255c359cc54110ac89eb4fa7db42\"},\"headline\":\"Harness\u00b2 y la recursi\u00f3n de\u00a0agentes\",\"datePublished\":\"2026-10-23T10:48:05+00:00\",\"dateModified\":\"2026-10-23T10:48:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/harness%c2%b2-y-la-recursion-de-agentes\\\/\"},\"wordCount\":2044,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/harness%c2%b2-y-la-recursion-de-agentes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg\",\"keywords\":[\"AI Agents\"],\"articleSection\":[\"Aprendizaje autom\u00e1tico\",\"Inteligencia Artificial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/harness%c2%b2-y-la-recursion-de-agentes\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/harness%c2%b2-y-la-recursion-de-agentes\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/harness%c2%b2-y-la-recursion-de-agentes\\\/\",\"name\":\"Recursi\u00f3n de agentes con Harness\u00b2: Gu\u00eda pr\u00e1ctica de IA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/harness%c2%b2-y-la-recursion-de-agentes\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/harness%c2%b2-y-la-recursion-de-agentes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg\",\"datePublished\":\"2026-10-23T10:48:05+00:00\",\"dateModified\":\"2026-10-23T10:48:07+00:00\",\"description\":\"Descubre c\u00f3mo aplicar la recursi\u00f3n de agentes con Harness\u00b2 de Google Research para optimizar sistemas de IA sin tocar el LLM.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/harness%c2%b2-y-la-recursion-de-agentes\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/harness%c2%b2-y-la-recursion-de-agentes\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/harness%c2%b2-y-la-recursion-de-agentes\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg\",\"width\":800,\"height\":447},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/harness%c2%b2-y-la-recursion-de-agentes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Inteligencia Artificial\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Harness\u00b2 y la recursi\u00f3n de\u00a0agentes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Codemotion.Italy\\\/\",\"https:\\\/\\\/x.com\\\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/37ca255c359cc54110ac89eb4fa7db42\",\"name\":\"Orli Dun\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/codemotion-fondo-100x100.png\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/codemotion-fondo-100x100.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/codemotion-fondo-100x100.png\",\"caption\":\"Orli Dun\"},\"description\":\"From finance to the digital revolution! Systems Engineer | Cloud &amp; AI | Tech Creator | Community Community Leader #foramillionfriends\",\"sameAs\":[\"https:\\\/\\\/orlidun.vercel.app\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/orlibetdungonzalez\"],\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/author\\\/orli-dun\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Recursi\u00f3n de agentes con Harness\u00b2: Gu\u00eda pr\u00e1ctica de IA","description":"Descubre c\u00f3mo aplicar la recursi\u00f3n de agentes con Harness\u00b2 de Google Research para optimizar sistemas de IA sin tocar el LLM.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness\u00b2-y-la-recursion-de-agentes\/","og_locale":"en_US","og_type":"article","og_title":"Harness\u00b2 y la recursi\u00f3n de\u00a0agentes","og_description":"Descubre c\u00f3mo aplicar la recursi\u00f3n de agentes con Harness\u00b2 de Google Research para optimizar sistemas de IA sin tocar el LLM.","og_url":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness\u00b2-y-la-recursion-de-agentes\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2026-10-23T10:48:05+00:00","article_modified_time":"2026-10-23T10:48:07+00:00","og_image":[{"width":800,"height":447,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg","type":"image\/jpeg"}],"author":"Orli Dun","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Orli Dun","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/"},"author":{"name":"Orli Dun","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/37ca255c359cc54110ac89eb4fa7db42"},"headline":"Harness\u00b2 y la recursi\u00f3n de\u00a0agentes","datePublished":"2026-10-23T10:48:05+00:00","dateModified":"2026-10-23T10:48:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/"},"wordCount":2044,"commentCount":0,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg","keywords":["AI Agents"],"articleSection":["Aprendizaje autom\u00e1tico","Inteligencia Artificial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/","url":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/","name":"Recursi\u00f3n de agentes con Harness\u00b2: Gu\u00eda pr\u00e1ctica de IA","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg","datePublished":"2026-10-23T10:48:05+00:00","dateModified":"2026-10-23T10:48:07+00:00","description":"Descubre c\u00f3mo aplicar la recursi\u00f3n de agentes con Harness\u00b2 de Google Research para optimizar sistemas de IA sin tocar el LLM.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg","width":800,"height":447},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/harness%c2%b2-y-la-recursion-de-agentes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Inteligencia Artificial","item":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/"},{"@type":"ListItem","position":3,"name":"Harness\u00b2 y la recursi\u00f3n de\u00a0agentes"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/37ca255c359cc54110ac89eb4fa7db42","name":"Orli Dun","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/09\/codemotion-fondo-100x100.png","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/09\/codemotion-fondo-100x100.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/09\/codemotion-fondo-100x100.png","caption":"Orli Dun"},"description":"From finance to the digital revolution! Systems Engineer | Cloud &amp; AI | Tech Creator | Community Community Leader #foramillionfriends","sameAs":["https:\/\/orlidun.vercel.app\/","https:\/\/www.linkedin.com\/in\/orlibetdungonzalez"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/orli-dun\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A-600x400.jpeg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A-600x447.jpeg","author_info":{"display_name":"Orli Dun","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/orli-dun\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg",800,447,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A-150x150.jpeg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A-300x168.jpeg",300,168,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A-768x429.jpeg",768,429,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg",800,447,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg",800,447,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg",800,447,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A-100x100.jpeg",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A-180x128.jpeg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A.jpeg",800,447,false],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A-400x225.jpeg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A-600x400.jpeg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/10\/1FrUbDbK0Tu0Gxl8lIkMZ4A-600x447.jpeg",600,447,true]},"uagb_author_info":{"display_name":"Orli Dun","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/orli-dun\/"},"uagb_comment_info":0,"uagb_excerpt":"Si has trabajado con inteligencia artificial, seguramente has visto que un mismo modelo puede comportarse de manera muy diferente dependiendo de las instrucciones que recibe, las herramientas que tiene disponibles y la forma en que se organiza su trabajo. Un buen modelo importa, pero en la recursi\u00f3n de agentes tambi\u00e9n importa el sistema que lo&#8230;&hellip;","lang":"es","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/36826","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/313"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=36826"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/36826\/revisions"}],"predecessor-version":[{"id":36834,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/36826\/revisions\/36834"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/36830"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=36826"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=36826"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=36826"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=36826"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}