El 27 de octubre de 2026, en el minuto 30:22 de un taller de 32 minutos, un ingeniero partner de Meta dijo una frase que resume todo lo que este blog viene sosteniendo desde la Tesis del Harness. No la presentó como tesis. La dijo como definición técnica, al pasar, explicando por qué su herramienta guarda el historial de la conversación:

«The model is stateless, but because you're using a harness, there is some state, because it's recording the conversation so far.» — Saraj, Partner Engineer de Meta · Workshop «Building Multimodal AI Agents», 27-oct-2026, min 30:22

Hay que leerla dos veces, porque tiene dos mitades y la segunda es la que importa. El modelo es stateless. No recuerda, no acumula, no sabe qué pasó hace dos turnos: cada llamada entra limpia y sale limpia. El harness es el que tiene estado, porque es el que graba la conversación. Todo lo que en la industria se vende como «memoria del agente», «contexto persistente» o «que se acuerde de lo que hicimos ayer» no está en el modelo. Está en la capa que alguien construyó alrededor.

Eso, dicho por el equipo que construye el harness oficial del vendor que esta semana nos evalúa, no es una postura editorial. Es una descripción de arquitectura. Y es la primera vez en este blog que la tesis no la sostenemos nosotros contra la industria: la sostiene la industria, describiendo su propio producto.

Hubo una segunda frase, dos minutos antes, que es todavía más incómoda. El agente de demostración —un agente legal que investiga dos empresas ficticias— acababa de terminar su trabajo en 21 turnos y de archivar su memo. Y el ingeniero dijo:

«The memo has been filed, but it is also unverified. And that's important, because the output you see here is entirely AI generated. While it might be true, there's also the chance that it might have some inaccuracies, some misunderstandings, even some hallucinations. No model is immune to that. So we are required or obligated to implement some kind of guard railing, some kind of defensive checks. […] It's as important as building the agentic loop.» — Saraj, Partner Engineer de Meta · 27-oct-2026, min 25:57–26:53

Fijate en la secuencia, porque ahí está todo el artículo. Primero entregan el memo con la palabra «unverified» impresa encima. Segundo admiten que la salida es enteramente generada por IA y que ningún modelo es inmune. Tercero dicen que implementar las verificaciones defensivas «es tan importante como construir el agentic loop». Cuarto —y esto es lo que hay que medir— la verificación quedó explícitamente para el taller de mañana.

Los cuatro pasos son correctos, honestos y profesionales. Y los cuatro pasos, juntos, describen la asimetría estructural de toda esta industria.

🔴 LA TESIS DE ESTE ARTÍCULO

El harness no es la capa que envuelve al modelo. El harness es el producto. Y la prueba no es nuestra: es un taller público de 32 minutos en el que el equipo de partner engineering de Meta construyó cuatro carpetas de infraestructura alrededor de una sola llamada al modelo, dijo en voz alta que el modelo no tiene estado, y explicó que la memoria vive en el harness.

Pero hay un segundo hallazgo, y es el que nadie va a poner en un slide. Cronometré los 32 minutos: unos 14 se fueron en construir el loop en vivo y unos 5 en la verificación —de los cuales la mayor parte fue una advertencia, no una demostración—. No es negligencia: el loop se ve en pantalla y el gate no. Eso es exactamente por qué el harness es el foso y por qué casi nadie lo construye.

La consecuencia práctica: si tu agente falla en producción, la probabilidad de que el problema esté en el modelo es baja. Está en las cuatro carpetas que nadie te enseñó a construir.

Antes de seguir, la advertencia de siempre en este blog: Meta no nos validó a nosotros. No hay endorsamiento, no hay mención, no hay relación. Lo que hay es más interesante y más útil: un equipo de ingeniería de primer nivel describió, desde adentro, el mismo principio que sostenemos desde afuera. Que dos observadores independientes lleguen a la misma arquitectura es evidencia de la arquitectura, no del observador.

Este artículo hace tres cosas. Primero, desarma el taller como lo que fue: una clase magistral de anatomía de harness, con nombres y carpetas. Segundo, mide la asimetría entre lo que se construye en vivo y lo que se posterga, y explica por qué esa asimetría es un incentivo y no un descuido. Tercero, traduce todo eso a lo único que importa si estás construyendo en LATAM: qué piezas necesitás, en qué orden, y cuál de ellas no se puede comprar.

1. Cuatro carpetas alrededor de una llamada

Empecemos por lo más concreto, porque es lo que casi nadie mira: la forma del repositorio. Antes de escribir una sola línea de código de agente, los asistentes clonaron un repo llamado legal-agent-workshop. Y el instructor dijo esto, en el minuto 4:45:

«We have a short session today, and so we've pre-built some of the plumbing that your agent will be needing.» — Saraj, min 4:45. La palabra que usó fue plumbing: cañería.

«Cañería». No «el agente», no «la IA». La cañería que el agente va a necesitar. Y cuando uno abre el repo, la cañería tiene una forma muy específica:

Carpeta Qué contiene Qué rol cumple en el harness
cases/ Las tareas que el agente va a resolver hoy Entrada del sistema. El caso, no el prompt: qué hay que resolver y con qué evidencia
agentkit/ Las primitivas: progress.py, case_record.py, document_text.py, client.py, tools/ El harness propiamente tal. Reanudación, registro de evidencia, procesamiento de documentos, cliente de API y herramientas
legal_agent/ loop.py, system_instructions.md, objective.md La política. El bucle de razonamiento y las instrucciones de comportamiento
ui/ Una consola visual liviana Observabilidad. Ver qué decidió el modelo, con qué contexto y qué devolvió cada tool

Fijate en la proporción. El modelo no tiene carpeta. Está dentro de client.py, que es —en palabras del propio instructor— «el SDK de OpenAI apuntado a nuestra API». Una llamada HTTP. Una función.

🟡 EL DATO QUE ORDENA TODO LO DEMÁS

En el repositorio del taller, la IA que hace el trabajo es un archivo de 30 líneas. La cañería alrededor —entrada, reanudación, evidencia, herramientas, observabilidad— son cuatro carpetas.

Si eso es cierto en un demo de 32 minutos construido por el equipo del vendor, en un sistema que tiene que sobrevivir un lunes real la proporción no se corrige: se agrava. Cada cosa que el agente toca en el mundo real agrega una capa que el modelo no resuelve — y que alguien tiene que construir.

Y hay un detalle de honestidad técnica que vale más que toda la parafernalia: Meta hizo su API compatible con el SDK de OpenAI. El instructor lo dijo sin ningún rodeo en el minuto 24:03:

«Client basically is the SDK, the OpenAI SDK, that's pointed at our API. Our API is fully compatible with the OpenAI SDK. So if you have an existing application that uses the OpenAI SDK, you can just switch the API host to Meta API.» — Saraj, min 24:03–24:12

Leélo con cuidado, porque es una confesión arquitectónica enorme. Si cambiar de proveedor de modelos es cambiar una URL, entonces el proveedor de modelos es una commodity. Y si el proveedor de modelos es una commodity, el valor no está ahí. Está en todo lo que no se puede cambiar con una línea de configuración: el registro de evidencia, la política de reanudación, las herramientas, la observabilidad, la verificación.

De paso, deja una pregunta incómoda para el discurso de la soberanía del vendor: si tu capa de valor es el modelo y tu API es un conector intercambiable con el SDK de tu competidor, tu foso declarado es un conector. Volveremos sobre esto.

2. Las cinco piezas del harness, con el nombre que les puso Meta

Acá está la parte que convierte «harness» de abstracción en checklist. El instructor describió las primitivas de agentkit/ mientras el agente corría, y cada una tiene un nombre, una función y un problema que resuelve. Esta es la tabla que me hubiera ahorrado dos años de blog:

Pieza Palabras de Meta El problema que resuelve
Agent loop
loop.py
«You're actually seeing the agentic loop in action» — plan, act, observe, repetir Convertir un modelo de un turno en un proceso que persigue un objetivo hasta terminarlo o agotar presupuesto
Progress
progress.py
«If the agent's execution pauses or fails before it completes its assignment, you can use progress to resume» Que un fallo a mitad de camino no te obligue a empezar de cero — ni a pagar de nuevo por lo ya hecho
Case record
case_record.py
«Recording evidence as the agent proceeds through its investigations» Que cada paso deje rastro auditable: no qué dijo el modelo, sino qué encontró y de dónde
Tools
agentkit/tools/
«As the scope of your agent grows, it might need more tools. And this is where you will want to implement some of those» Que el agente pueda hacer cosas en el mundo en vez de solo describirlas — y que esas cosas sean funciones explícitas, no improvisación
Sandbox «It actually has its own sandbox environment where it can execute code» Ejecutar sin darle la máquina: si el agente puede correr código, tiene que poder correrlo en un lugar del que se pueda salir

Cinco piezas. Ninguna es un modelo. Ninguna se resuelve comprando tokens. Y las cinco aparecen en cualquier sistema agéntico que funcione en producción, con estos nombres o con otros.

La pieza que más me interesa es el registro de evidencia, porque es donde la coincidencia se vuelve incómoda. «Recording evidence as the agent proceeds through its investigations» es, palabra por palabra, la definición de lo que construimos en Expediente esta semana: un grafo donde cada afirmación está anclada a la arista que la acredita y a la página que la contiene. No lo copiamos de Meta —el workshop fue hoy— y Meta no lo copió de nosotros. Es la forma que aparece cuando dos ingenieros resuelven el mismo problema en serio.

🟢 LA COINCIDENCIA QUE VALE COMO EVIDENCIA

Nosotros llegamos a tres verbos: navegar, relacionar, documentar. Meta llegó a cinco primitivas: loop, progreso, evidencia, herramientas, sandbox.

No son la misma lista porque son el mismo problema desde distinto ángulo: ellos construyen el proceso de un agente que investiga; nosotros construimos el expediente que ese proceso produce. La intersección —el registro de evidencia— es el punto donde ambos sistemas se vuelven auditables. Cuando dos equipos independientes convergen en la misma pieza, esa pieza no es un detalle: es estructural.

3. El plan no es una feature: es un interlock

Hay un momento en el taller que un ojo entrenado no puede dejar pasar, porque no es una función del producto: es un mecanismo de control entre el humano y la máquina.

El instructor le pidió al agente que propusiera un plan antes de escribir código —y le prohibió explícitamente ejecutar los tests—. El agente propuso su plan. Entonces el instructor lo corrigió en vivo: «This looks fine, build it. But don't run the helper turns test after you build it.» Y después miró el resultado:

«It's basically followed the spec that we asked it to do. It's only changed loop.py. And it did not run the helper run. So it did obey the little tweak I made to its plan.» — Saraj, min 17:21–17:35

«Did obey.» Obedeció. Pensá en lo que se acaba de demostrar: el humano introdujo una restricción en el plan, y el sistema respetó esa restricción en la ejecución, y el humano pudo verificar que la respetó —solo un archivo modificado, ningún test corrido—. Eso no es «el agente es inteligente». Eso es un interlock: un punto donde la intención de un humano se convierte en una restricción ejecutable y verificable.

Y el instructor explicó por qué lo hizo así, con una frase que debería estar en el README de todo sistema agéntico:

«When you are actually using Muse Code to write code, or any agentic harness for that matter, I think it's a good practice to have it come up with a plan and be very explicit about what it's going to do. So that gives you a chance to align its actions with your vision — and so that you're not surprised later.» — Saraj, min 13:54–14:14. El subrayado es mío.

«Para que no te sorprendas después.» Ahí está el propósito real del plan, y no es la calidad del output: es la ausencia de sorpresa. Un plan que podés leer es un punto de control. Un agente que actúa sin plan es un agente cuyo comportamiento solo conocés por el resultado — y si el resultado está mal, ya es tarde.

El harness tiene dos mecanismos más de la misma familia, y los dos son observabilidad pura:

Mecanismo Cómo funciona Qué te da que el resultado final no te da
Turn budget Se fija un máximo de turnos plan-act-observe. En el demo: 30 de presupuesto, consumió ~21 Costo acotado de antemano. No descubrís el gasto en la factura: lo decidís antes de arrancar
Step-through El agente pausa después de cada turno para que veas qué hizo La decisión, no el resultado. Ves el contexto exacto que tuvo el modelo, la acción que eligió y la observación que recibió
El plan explícito Propone y espera aprobación antes de tocar código Un punto de veto. Podés corregir el rumbo cuando corregirlo cuesta cero

Los números del turno final son, en sí mismos, un argumento sobre por qué estas piezas existen. Al terminar, el run tenía: 1 mensaje de usuario, 20 notas de razonamiento, 20 llamadas a herramientas, 20 resultados de herramientas y 5 mensajes intercalados. Es decir: veinte decisiones, cada una con su contexto, su acción y su observación.

Ahí está la pregunta que separa un demo de un sistema: ¿podés explicar las veinte? Si la respuesta es no, no tenés un agente: tenés un generador de resultados con suerte variable. Y cuando uno de esos veinte turnos esté mal, sin los veinte vas a tener que adivinar cuál fue.

🔵 LO QUE ESTE BLOG CONSTRUYE, EN EL MISMO VOCABULARIO

Nuestro harness hace las cinco piezas y agrega dos que Meta dejó para mañana:

Reanudación por hash, no por turno — mismo documento, mismo nodo. Si un proceso muere y vuelve, no reescribe lo que ya existe ni paga dos veces por lo mismo. Es la misma idea de progress.py, con una garantía más fuerte: idempotencia, no solo reanudación.

Gate determinista, no verificación probabilística — el paso que ellos anunciaron para el día siguiente y que acá se ejecuta con código: siete razones de rechazo, y lo que no se puede citar no se exporta. Volvemos sobre esto en la sección 6, porque es la diferencia que importa.

4. La asimetría: 14 minutos de loop, 5 de verificación

Acá está el hallazgo central del artículo, y es una medición, no una opinión. Transcribí el taller completo —411 segmentos, 32 minutos con 3 segundos— y marqué los límites de cada bloque. Esto es lo que salió:

Tramo Minutos Qué se vio en pantalla
Intro, setup del repo, tour de carpetas ~4,5 «We've pre-built some of the plumbing»
System prompt, ground rules, presentación de Muse Code ~5 Definición del comportamiento del agente
Construir el agent loop en vivo ~14 Plan → aprobación → código → step-through turno por turno
El memo «unverified» + «tan importante como el loop» ~2 Una advertencia, no una demostración
Q&A sobre verificación, citas y alucinaciones (diferido a mañana) ~3 Conceptos, sin código
Cierre y logística ~2,5 Office hours, grabación

La medición es mía y los límites entre bloques son un juicio: el taller no viene con capítulos. Pero el orden de magnitud no admite discusión.

≈14 minutos construyendo el bucle contra ≈5 minutos de verificación —y de esos 5, la mayor parte fue explicar por qué hace falta, no mostrarla funcionando. La proporción es de casi 3 a 1, y el denominador incluye la parte que se postergó.

Ahora, la parte importante: esto no es una crítica a Meta. Es una serie de dos partes y está honestamente declarada así desde el minuto 1:51 —«tomorrow we're going to focus on verification»—. Lo que estoy midiendo no es la conducta de un equipo, es la forma de un incentivo. Y el incentivo es este:

🔴 POR QUÉ EL LOOP SIEMPRE VA PRIMERO

El loop se puede demostrar en vivo. El gate no. Un bucle que lee documentos y archiva un memo produce un momento teatral: ves al agente «trabajando», ves el plan, ves los turnos, ves el memo aparecer. Es contenido. Es demo. Es lo que se graba.

La verificación, en cambio, produce lo contrario: una resta. El momento en que el sistema funciona bien es el momento en que no pasa algo. No hay memo que aplaudir; hay un reclamo que se borró. El éxito del gate es invisible por diseño.

Por eso el loop va primero en todos lados: en los talleres, en los lanzamientos, en los pitches, en las ofertas de trabajo, en los hackatones. No porque sea más importante —ellos mismos dijeron que no lo es— sino porque es lo único que se puede filmar. Y lo que no se filma, no se financia.

Y hay un detalle que remata el argumento, y es el uso del verbo. Escuchá otra vez la construcción de la frase: «It's as important as building the agentic loop». Cuando algo es tan importante como otra cosa, en la práctica ya quedó en segundo lugar. Nadie dice «la fundación es tan importante como el techo» y después construye el techo primero. La frase es un acto de reconocimiento —y de jerarquía—.

Por eso el artículo no pide que dejemos de construir loops. Pide algo más simple y más difícil: que el gate deje de ser la segunda sesión. Que la verificación no sea el capítulo que se graba cuando ya todos se fueron, sino una parte del sistema que se construye desde el primer commit, porque —como veremos— hay dominios donde no es opcional.

5. El multiplicador de nicho: por qué en LATAM el gate pesa más

Hay una frase en el Q&A final que, si estás construyendo para un mercado como el chileno, deberías imprimir y pegar en el monitor. El instructor estaba explicando por qué las alucinaciones han bajado en general, y de pronto puso la excepción:

«In general, as an industry, I think all AI models have improved a lot from how they used to hallucinate even a year ago. Having harnesses, the right skills and the instructions, and even the tools to enable them to fact check themselves has definitely helped in reducing the rate of hallucinations. But in my experience, the more niche a domain is and the more esoteric the area of work is, the likelihood of hallucinations or misrepresentations can slightly increase.» — Saraj, min 29:03–29:43

Leélo de nuevo, porque hay dos afirmaciones ahí y la segunda es la que decide arquitecturas. Primera: la mejora de los modelos no es lo único que bajó las alucinaciones — los harnesses, las skills, las instrucciones y las herramientas para auto-verificarse contribuyeron. Segunda: cuanto más nicho y más esotérico el dominio, más sube la probabilidad de alucinación o de tergiversación.

Ahora aplicá eso a lo que hacemos en esta parte del mundo. Los dominios donde una empresa latinoamericana realmente necesita IA son, casi por definición, nicho y esotérico:

Dominio Por qué es nicho Qué significa para el harness
Compras públicas chilenas Mercado Público, Compra Ágil, umbrales de fraccionamiento, tratos directos: normativa local, vocabulario propio, sin corpus público de entrenamiento comparable El modelo no sabe qué es una «orden de compra fraccionada» en Chile. O lo aprende de tus documentos, o lo inventa
Cumplimiento Ley 21.719 Reglamento en despliegue gradual, criterios que todavía se están fijando El modelo no tiene jurisprudence que citar: tiene que citar el texto legal, o no tiene nada
Procesos internos de una pyme Ningún modelo vio jamás el Excel de esa empresa, ni su organigrama, ni sus excepciones Todo el conocimiento vive en documentos de la empresa: si no hay cita, hay confabulación
Normativa sectorial (agro, pesca, minería) Regulación específica por rubro, con criterios de servicio que no están en inglés El dominio de mayor riesgo de tergiversación es exactamente el de mayor valor

La conclusión se escribe sola y es incómoda para todo el discurso del «adoptá IA y listo»: en LATAM el harness de verificación no es un lujo de empresa grande. Es la condición de entrada. Si el dominio es nicho, la probabilidad de error sube. Si la probabilidad de error sube, un sistema sin gate no es un sistema más barato: es un sistema que todavía no sabés si funciona.

🟡 LA CUENTA QUE NADIE HACE

Un agente sin gate tiene un costo visible (los tokens) y un costo invisible (el error que alguien tiene que detectar a mano). En un dominio masivo, el error se diluye: si el 2% falla, alguien lo nota y lo corrige.

En un dominio nicho, el error no se diluye: se hereda. Un dato mal citado en un expediente de compras públicas no lo corrige nadie — se convierte en la base del siguiente análisis, y del siguiente. El costo real del agente no es lo que gasta: es lo que contamina.

Y hay una asimetría adicional, que es local: en estos dominios el revisor humano también es escaso. La promesa del agente es apalancar a un equipo chico. Si el agente alucina un 3% de las veces y no hay cien revisores, sino uno, el 3% se vuelve el 100% de lo que ese revisor no alcanzó a mirar. Ahí el gate no reemplaza al humano: es lo que hace que el humano alcance.

6. Citar no es verificar: detectar vs. no poder exportar

Acá llegamos al punto técnico más fino del taller, y al que más se malinterpreta. Un asistente preguntó por patrones para reducir alucinaciones —forzar plan-execute-verify, usar tool output grounding, o un crítico incorporado—. La respuesta incluyó una frase que hay que leer con precisión quirúrgica:

«Just having it source citations can enable it to autonomously identify if it has misrepresented something in the source documents or source truth.» — Saraj, min 28:42–28:54

La frase es correcta y es un avance real. Pero fijate en el verbo: identify. Identificar. Es decir: el propio sistema, mirando sus citas, puede detectar que se tergiversó. Es autoconciencia operativa —y es la mejor respuesta posible dentro del paradigma de «un modelo que se revisa a sí mismo».

El problema es que detectar no es lo mismo que impedir. Si el mecanismo de detección vive dentro del mismo modelo que alucina, entonces:

Nuestro diseño invierte el orden, y no por gusto: por una razón de ingeniería que se puede enunciar en una línea. Un modelo puede afirmar cualquier cosa; un gate determinista solo puede hacer siete cosas.

🟢 LA DIFERENCIA, EN UNA TABLA
Citar (el paso que Meta anunció) Gate determinista (el paso que construimos)
Quién decide El modelo, sobre sí mismo Código, sobre la salida del modelo
Cómo falla Probabilísticamente, con el mismo modo de error que el output No falla en silencio: rechaza o permite, y queda registro
Qué garantiza Que el sistema puede notar una tergiversación Que una afirmación sin fuente no puede salir del sistema
Resultado Un memo con una advertencia encima Un expediente con cada línea anclada, o nada

Y esto no es teoría en este blog. Es el estado de un repositorio. El gate de Expediente tiene siete razones de rechazo explícitas y una regla que gobierna todas: si una afirmación no se puede trazar a un documento y una página, se borra. No se marca con asterisco. No se pone en gris. No se entrega «con la advertencia de que es generado por IA». Se borra, y el dossier queda con lo que sobrevivió.

El paso siguiente es chico y es enorme: el identificador del expediente se deriva del contenido (sha256 canónico). Eso significa que dos ejecuciones sobre la misma evidencia producen el mismo expediente, y que si cambia una cita, cambia el id. Un documento que se puede firmar tiene que ser reproducible, no solo convincente.

El memo de Meta salió con la palabra «unverified» impresa encima, y eso fue un acto de honestidad admirable. Nuestro expediente sale sin esa palabra porque no puede contener lo que la merecería. No es más inteligente: es más restrictivo. Y en un dominio nicho, restrictivo gana. — La diferencia entre un memo y un expediente firmable

7. La superficie MCP: dónde se muda el foso

En el minuto 24:34, alguien del chat preguntó si Muse Code soporta servidores MCP personalizados. La respuesta fue corta:

«Does Muse Code support custom MCP servers? — I would say so, yes. You can have your Muse Code plug into custom servers, custom skills, yeah, you can.» — Saraj, min 24:34–24:52

Dos palabras que reordenan el mapa: «I would say so». Traducido: el harness del vendor es extensible por fuera. No estás limitado a las herramientas que vienen en agentkit/tools/; podés conectarle las tuyas, y con eso el agente del vendor usa tu conocimiento.

Pensá en la implicación, porque es simétrica a la del SDK de OpenAI y apunta en la dirección opuesta. Si el modelo es intercambiable (cambiás una URL) pero el harness es extensible (le enchufás tus herramientas), entonces la ecuación de valor queda así:

Capa ¿Es reemplazable? Dónde queda el valor
El modelo Sí, trivialmente — misma interfaz, otro host 🔻 Commodity. Se compite por precio
El harness (loop, progreso, evidencia, sandbox, observabilidad) No — es donde vive el estado y la política 🔺 El foso real, y el que casi nadie construye
Las herramientas MCP y el conocimiento que exponen No, si son tuyas — son tu dominio, tu grafo, tus datos 🔺🔺 El foso compuesto: harness propio + herramientas propias

Ahí está el movimiento estratégico que esta industria todavía no internaliza. La discusión pública es sobre modelos —quién tiene el mejor benchmark, quién bajó el precio—. Pero el punto de apalancamiento es la intersección entre un harness que controlás y herramientas que solo vos tenés. Un modelo frontier conectado a tu grafo de dominio vale más que un modelo frontier conectado a la nada —y ese delta no lo puede replicar el vendor, porque el grafo no es suyo.

🔵 LO QUE NOS DEJÓ PENDIENTE EL TALLER (Y LO DECIMOS)

Seamos precisos, porque en este blog la precisión es el producto: todavía no hemos expuesto nuestras herramientas como servidor MCP contra Muse Code. Tenemos las tres funciones de navegación del grafo —vecinos, caminos, rastro de citas— con su esquema definido; lo que falta es el transporte.

Y decirlo así tiene un motivo editorial: si el artículo dijera «lo hicimos» sin haberlo hecho, sería exactamente el tipo de afirmación que este blog existe para desmontar. El claim débil con evidencia fuerte vale más que el claim fuerte con evidencia floja. La brecha entre esas dos frases es todo el #129.

Y hay una razón de fondo para que esa integración importe más de lo que parece: un agente con tus herramientas deja de ser un agente que opina y se convierte en un agente que consulta. La diferencia entre decir «esta municipalidad parece concentrar compras» y decir «estas siete órdenes, en estas fechas, con estos montos, y aquí está el camino en el grafo que las conecta» no es de tono. Es de arquitectura de herramientas: en el primer caso el modelo improvisa; en el segundo, ejecuta una operación determinista sobre datos que no puede inventar.

8. Qué nos llevamos (y los recibos que podemos mostrar)

Si el harness es el producto, la pregunta que sigue es la única que un cliente serio hace: ¿y cómo sé que el tuyo funciona? No con adjetivos. Con números medidos contra la factura. Estos son los nuestros, del último ciclo auditado de nuestra propia operación:

Métrica Valor medido Por qué importa
Prompt-cache hit rate 98,99% sobre 12.471 requests Es la métrica que demuestra si el harness está bien diseñado: el prefijo del prompt es estable, así que el proveedor no re-cobra lo que ya procesó. La referencia pública más fuerte que encontramos es ~92% (Claude Code)
Costo mezclado $0,0149 por millón de tokens Un orden de magnitud por debajo de lo que cuesta operar un agente «de juguete» con el mismo modelo
Tokens por turno ~142.000 Contexto grande y cache alto a la vez. Eso no es suerte: es estabilidad de prefijo como requisito de diseño
Verificación Medida contra la factura de la API, no el dashboard Porque los dashboards mienten sobre caching, y lo hemos visto

Y en el proyecto que estamos construyendo esta semana, el estado medible es este: 4.950.443 órdenes de compra agregadas desde 13.368.668 filas de 43 archivos (12 semestres, 5 años, 2,0 GB comprimidos), procesadas en 460 segundos. 117 tests sin motor, 124 con el motor de grafo. Y un hallazgo de calidad de datos que solo aparece si mirás en serio: 48 órdenes con dos montos totales distintos en el mismo archivo.

Ese último número merece un párrafo, porque es el tipo de cosa que un agente sin gate se come sin masticar. Si el sistema hubiera sumado esas 48 órdenes dos veces y hubiera construido un «hallazgo de fraccionamiento» sobre la suma inflada, el expediente habría sido impecable en su forma y falso en su fondo. Los datos públicos no son limpios, y el harness es el que tiene que saberlo.

La honestidad que hace que lo anterior valga

Cuatro cosas que este artículo no va a decir, porque no son verdad:

«No model is immune to that.» Lo dijo Meta, y es verdad. La pregunta que sigue —la que el taller dejó abierta y la que define qué construís— es otra: ¿qué hace tu sistema cuando el modelo falla? Si la respuesta es «lo intenta de nuevo», tenés un loop. Si la respuesta es «se niega a entregar», tenés un producto. — La única pregunta que separa un demo de un sistema

El cierre: lo que el workshop dijo en voz alta

Resumamos los 32 minutos en tres frases que no son nuestras y en un número que sí lo es.

Uno. «El modelo es stateless; el harness tiene estado porque graba la conversación.» La memoria no está donde te dijeron que estaba.

Segundo. «Si tenés una aplicación que usa el SDK de OpenAI, solo cambiá el host de la API.» El modelo es un conector.

Tercero. «La verificación es tan importante como construir el agentic loop.» Y el número: 14 minutos de loop contra 5 de verificación en un taller de 32, con la verificación programada para el día siguiente.

Juntá las tres y el mapa queda claro. Lo único que no es intercambiable es la capa que nadie te enseña a construir, y esa capa es la que decide si tu agente sirve el lunes o solo sirve en el demo. El modelo lo vas a poder cambiar el mes que viene por otro más barato y mejor. El harness es lo que tu empresa va a seguir usando en cinco años —o lo que nunca tuvo.

Y hay una última cosa, que es la razón por la que este blog insiste con esto todas las semanas. La frase «el modelo es stateless» suena técnica, pero tiene una consecuencia política: si el estado vive en el harness, entonces quien controla el harness controla la continuidad del sistema. Podés tener el mejor modelo del mundo y, si el harness es de otro, tu operación es alquilada. Podés tener un modelo mediocre y, si el harness es tuyo, tu operación es tuya —y el modelo, cuando salga uno mejor, se cambia en una línea.

Ese es todo el argumento de la soberanía, y no hace falta invocar geopolítica: está en la arquitectura de un repositorio de taller. Cuatro carpetas alrededor de una llamada, y la decisión de quién las escribe.

¿Tu agente tiene un gate o tiene una advertencia?

Si tu sistema entrega resultados que un humano tiene que revisar antes de confiar, tenés un problema de arquitectura, no de modelo. Lo diagnosticamos y lo construimos: harness propio, verificación determinista, memoria en tu infraestructura y cada afirmación trazable hasta su fuente.

Conversemos →