Harness agentico avanzado: las 7 primitivas clave

En pocas palabras: Un harness agéntico avanzado es el andamiaje de software que envuelve a un LLM para hacerlo confiable en producción. Suma 7 primitivas: proveedor intercambiable, herramientas tipadas con Pydantic, un DAG de dependencias, ejecución paralela, memoria en 3 capas, verificación jerárquica y roles especializados (planificador, trabajador, crítico).

Un harness agéntico avanzado es la estructura de software que envuelve a un LLM para que sea confiable en producción: le suma memoria, verificación por capas, ejecución paralela y manejo de errores. Sin eso, un agente ingenuo se rompe apenas sale del demo.

Un harness agéntico es un marco de orquestación que rodea a un modelo de lenguaje con primitivas de ejecución: proveedores intercambiables, herramientas tipadas, un grafo de dependencias, memoria en capas y verificación jerárquica. A diferencia de un simple loop LLM-herramienta, coordina roles especializados (planificador, trabajador, crítico) y vigila presupuestos de tokens, tiempo y dinero para no descarrilarse.

En 30 segundos

  • Qué es: el andamiaje que hace confiable a un agente LLM en producción, no el modelo en sí.
  • Las 7 primitivas: proveedor abstracto, herramientas tipadas con Pydantic, DAG, ejecución paralela, memoria en 3 capas, verificación jerárquica y roles especializados.
  • Memoria: de trabajo, episódica (embeddings all-MiniLM-L6-v2 de 384 dimensiones) y semántica.
  • Presupuesto: presión P = max(tokens/máx, llamadas/máx, tiempo/máx, USD/máx) que degrada el pipeline de forma elegante.
  • Errores: transitorios, de validación, de información faltante y de política, cada uno con su respuesta distinta.

¿Qué es un harness agéntico y por qué lo necesitás en producción?

Un harness agéntico es la capa de control que convierte un modelo de lenguaje en un sistema que podés poner a trabajar solo. La diferencia con un agente ingenuo es concreta: el agente básico es un loop de “llamo al LLM, ejecuto una herramienta, repito”. Anda bárbaro en el demo.

¿Y qué pasa cuando ese agente llega a producción? Se rompe al primer rate limit.

Le pedís que compare tres ciudades, hace nueve búsquedas de forma secuencial, una API devuelve un 429 y el loop entero se cae sin reintentar. No tiene memoria de lo que ya buscó, no verifica si el resultado tiene sentido, y cuando algo falla no distingue entre “esperá y reintentá” y “pará todo”. Según el análisis técnico de Data4Sci, la diferencia entre una prueba de concepto y un harness extensible es la componibilidad: cada pieza se enchufa y se reemplaza sin tocar el resto.

AspectoAgente ingenuoHarness agéntico avanzado
EjecuciónLoop secuencialDAG con paralelismo (asyncio)
MemoriaNinguna3 capas: trabajo, episódica, semántica
VerificaciónConfía en el LLMJerárquica: determinística → LLM
ErroresFalla y muereClasifica y recupera según el tipo
PresupuestoSin controlPresión multidimensional
ObservabilidadLogs sueltosTrazas por paso, rol y costo
harness agentico avanzado diagrama explicativo

¿Cuáles son las 7 primitivas técnicas de un harness agéntico?

Las 7 primitivas son los bloques que sostienen un harness confiable, y cada una tapa un agujero puntual de los agentes simples. Estas son:

  • Abstracción de proveedor (LLMProvider): backends intercambiables, así cambiás de modelo sin reescribir el agente.
  • Herramientas tipadas con Pydantic: validación automática de entradas y salidas, gratis en tiempo de ejecución.
  • DAG (grafo acíclico dirigido): las tareas son nodos y las dependencias son aristas, no una lista rígida.
  • Ejecución paralela: asyncio.gather más un semáforo que limita la concurrencia.
  • Memoria multiuso: de trabajo, episódica y semántica (lo vemos en detalle abajo).
  • Jerarquía de verificación: de chequeos determinísticos baratos a jueces LLM caros.
  • Roles especializados: Planificador, Trabajador y Crítico, cada uno con su prompt y su tarea.

Fijate que ninguna de estas primitivas es sobre “hacer más inteligente” al modelo. Son sobre hacerlo predecible. Ese es el cambio de mentalidad.

¿Cómo organizar la memoria de un agente en tres capas?

La memoria de un agente se divide en tres capas con propósitos distintos: de trabajo, episódica y semántica. La de trabajo es el contexto inmediato de la tarea actual, lo que el agente tiene “en la cabeza” ahora. La episódica guarda tareas pasadas parecidas. La semántica almacena hechos generales, políticas y guardrails.

El caso concreto: un agente que compara ciudades ya buscó la población de Buenos Aires la semana pasada. En vez de gastar una llamada de nuevo, consulta su memoria episódica, recupera resultados similares por búsqueda de embeddings y decide qué reusar. Data4Sci usa el modelo all-MiniLM-L6-v2, que genera vectores de 384 dimensiones, para medir esa similitud.

La lógica de recuperación es directa: convertís la tarea nueva en un embedding, la comparás por similitud coseno contra los recuerdos guardados, y si alguno supera el umbral, lo traés. Ahí está la “inteligencia” real del agente, no en el modelo sino en saber qué olvidar y qué recordar. Tema relacionado: integrar con ChatGPT en tu harness.

¿Cómo paralelizar tareas y controlar el presupuesto de un agente?

El paralelismo se logra modelando las tareas como un DAG y ejecutando los nodos independientes a la vez con asyncio.gather y un semáforo que limita cuántas corren en simultáneo. En el agente de comparación de ciudades, las nueve búsquedas (población, clima y zona horaria de tres ciudades) no dependen entre sí, así que corren juntas. Después viene la agregación, que sí depende de todas, y al final el resumen.

El resultado según el ejemplo: hasta 80% menos de latencia frente a la versión secuencial.

Ahora bien, correr todo en paralelo sin freno te funda el presupuesto. Acá entra la presión multidimensional, que se calcula así:

  • Fórmula: P = max(tokens/máx, llamadas/máx, tiempo/máx, USD/máx).
  • P menor a 0,7: corre el pipeline completo, con todas las verificaciones.
  • P entre 0,7 y 0,9: saltea las verificaciones caras (degradación elegante).
  • P mayor o igual a 0,9: detiene la ejecución antes de reventar el límite.

El punto es que el agente mide el recurso más apretado, no el promedio. Si te quedan tokens de sobra pero estás por pasarte de plata, la presión sube igual. Y si vas a correr esto en producción, necesitás infraestructura que aguante los picos de concurrencia sin caerse: un VPS o hosting serio como el de donweb.com te evita el dolor de cabeza de escalar a mano.

¿Cómo funciona la jerarquía de verificación de un harness?

La jerarquía de verificación escala de lo gratis a lo caro en tres niveles, y solo sube si el anterior no alcanza. Primero, validaciones Pydantic (nivel 1), que son gratis. Después, chequeos programáticos (nivel 2): por ejemplo, confirmar que las tres ciudades aparezcan en el reporte final y que no falte ningún campo obligatorio. Recién si eso sobrevive, entra el juez LLM (nivel 3). Esto se conecta con lo que analizamos en capacidades de razonamiento avanzado.

¿Por qué tanto cuidado? Porque verificar con un LLM todo el tiempo cuesta unas 10 veces más. Data4Sci maneja “cost hints” diferenciales para decidir: lookups 0,1, summarize 1,0, aggregate 2,0. El agregado es 20 veces más caro que una búsqueda simple, así que no tiene sentido gastar un juez LLM para validar algo que un if resuelve gratis.

¿Cómo clasificar y recuperar errores en un agente autónomo?

Los errores se clasifican en cuatro tipos, y cada uno pide una respuesta opuesta. Tratarlos a todos igual es el error clásico que rompe los agentes “autónomos” en producción:

  • Transitorios (rate limit 429): backoff exponencial y reintentos. El recurso vuelve solo.
  • De validación (schema inválido): retroalimentación estructurada al LLM para que corrija el formato.
  • Información faltante: replanificación informada, no reintento a ciegas. Buscás el dato que falta.
  • Violación de política: stop inmediato, sin recuperación posible.

La diferencia se ve clarísima con dos casos. Si la API de clima se cae, reintentar tiene todo el sentido del mundo. Si el usuario pide una acción prohibida, reintentar es lo último que querés hacer. Un agente que reintenta una violación de política no es resiliente, es peligroso.

¿Qué observabilidad necesita un agente en producción?

La observabilidad de un agente arranca con un tracer que registra cada evento con su ID de paso, rol (Planificador, Trabajador o Crítico), latencia, tokens usados, costo en USD y la presión presupuestaria del momento. Sin eso, debuggear un agente es adivinar. Complementá con conectar con las herramientas de Google.

Con esa traza podés armar un gráfico de tiempo por rol para encontrar el cuello de botella, un heatmap de tokens por sección, y un log de decisiones que te dice por qué el sistema escaló al juez LLM en tal paso. Subís el cambio, lo probás en local, funciona perfecto, lo mandás a producción y de golpe el costo se dispara porque un rol está reintentando en silencio y nadie lo ve, y sin trazabilidad tardás dos días en darte cuenta de algo que la traza te mostraba en dos minutos. Se puede reproducir una traza vieja para entender una falla, o integrarla al CI para bloquear un deploy si una métrica clave empeora.

Errores comunes al construir un harness agéntico

  • Verificar todo con un LLM: sale 10 veces más caro y encima es más lento. Usá chequeos determinísticos primero y dejá el juez LLM para lo que realmente lo necesita.
  • Ejecutar en secuencia lo que es paralelo: si nueve búsquedas no dependen entre sí, correrlas una por una te tira la latencia por el techo. Modelá un DAG.
  • Tratar todos los errores igual: reintentar una violación de política o replanificar ante un simple 429 es mezclar respuestas que deberían ser opuestas.
  • Agente sin presupuesto: sin la presión multidimensional, un loop mal planteado te vacía la cuenta de la API antes del mediodía (sí, en serio).
  • Cero memoria: repetir búsquedas idénticas quema tokens y plata. La capa episódica existe justo para eso.

Preguntas Frecuentes

¿Qué diferencia hay entre un harness agéntico y un agente básico?

Un agente básico es un loop de LLM más herramienta, sin memoria ni verificación. Un harness agéntico avanzado le agrega siete primitivas (proveedor abstracto, herramientas tipadas, DAG, paralelismo, memoria en capas, verificación jerárquica y roles) para que sea confiable en producción y no se caiga al primer error.

¿Cuál es la diferencia entre un harness y la orquestación de agentes?

La orquestación coordina varios agentes o pasos entre sí; el harness es la infraestructura de bajo nivel que hace que cada agente sea robusto de forma individual. El harness incluye la orquestación (vía DAG y roles), pero también memoria, verificación, manejo de errores y control de presupuesto que la orquestación sola no cubre.

¿Qué modelo de embeddings se usa para la memoria episódica?

El ejemplo de Data4Sci usa all-MiniLM-L6-v2, que genera vectores de 384 dimensiones. Con esos embeddings el agente compara la tarea actual contra tareas pasadas por similitud y decide qué resultados reusar, ahorrando llamadas repetidas al LLM.

¿Cómo se evita que un agente gaste de más?

Con presión presupuestaria multidimensional: P = max(tokens/máx, llamadas/máx, tiempo/máx, USD/máx). Por debajo de 0,7 corre el pipeline completo, entre 0,7 y 0,9 saltea las verificaciones caras, y en 0,9 o más se detiene. Así el agente frena antes de reventar el recurso más apretado.

¿Qué frameworks existen para construir un harness agéntico en 2026?

Podés armarlo con SDKs de agentes como el Claude Agent SDK, o combinar bibliotecas de orquestación con Pydantic para tipado y asyncio para paralelismo. Muchos equipos construyen su propio harness sobre estas piezas porque las necesidades de memoria, verificación y presupuesto suelen ser específicas de cada caso de uso.

Conclusión

Lo que cambió es dónde está el valor. Ya no alcanza con elegir el mejor modelo: la diferencia entre un demo que impresiona y un agente que aguanta producción está en el harness que lo rodea. Las siete primitivas (proveedor abstracto, herramientas tipadas, DAG, paralelismo, memoria en capas, verificación jerárquica y roles) no son opcionales si vas en serio.

Si estás por construir uno, empezá por lo barato: chequeos determinísticos antes que jueces LLM, presupuesto multidimensional desde el día uno, y clasificación de errores por tipo. La observabilidad no la dejes para el final, porque sin trazas por paso vas a debuggear a ciegas. Armá primero el andamiaje, después sumale la magia.

Fuentes

Desplazarse hacia arriba