⏱️ Lectura: 17 min
Pi 1.0 salió hoy, 1 de octubre de 2026, con una lista corta de funciones nuevas y una regla todavía más corta detrás: nada entra al agent harness hasta que demuestra que vale la complejidad que suma. Earendil, la empresa que lo mantiene, lleva meses aplicando esa regla para decidir si soporta MCP, Codemode o cualquier otra moda del ecosistema agéntico.
📑 En este artículo
- TL;DR
- ¿Qué es un agent harness?
- Por qué importa la filosofía minimalista
- Cómo funciona un agent harness por dentro
- MCP y Codemode: las dos formas de equipar un agent harness
- Ejemplos prácticos de código
- Cómo empezar con Pi 1.0
- Casos de uso reales
- Errores comunes y buenas prácticas
- Comparativa: harness minimalista contra harness completo
- Profundizando: qué trae Pi 1.0 por dentro
- Preguntas frecuentes
- Referencias
Ese lanzamiento es apenas el gancho. La pregunta real es otra: qué es un agent harness y cuándo conviene elegir uno minimalista en vez de uno que ya trae todo integrado de fábrica. Eso es lo que vamos a desarmar acá.
TL;DR
- Un agent harness es la capa que conecta un modelo de lenguaje con herramientas y memoria para que pueda actuar.
- MCP conecta herramientas ya armadas; Codemode deja que el modelo escriba un script con varios pasos en una ronda.
- La filosofía minimalista de Pi 1.0 espera meses antes de sumar una función al núcleo del harness.
- Deferred tool loading y cache warming muestran cómo Pi 1.0 reduce el costo de cada turno del modelo.
- Instalar Pi toma un solo comando: curl en macOS y Linux, PowerShell en Windows.
¿Qué es un agent harness?
Un agent harness es la capa de software que conecta un modelo de lenguaje con el mundo real. Recibe lo que genera el modelo, decide qué herramienta ejecutar, la corre y devuelve el resultado para que el modelo siga razonando hasta resolver la tarea.
Sin esa capa, un modelo de lenguaje solo produce texto. Con ella, actúa sobre archivos, comandos de terminal o APIs externas. El nombre viene de una metáfora simple: el modelo es el motor, y el harness es el arnés que lo conecta con el resto de la maquinaria.
Claude Code, Codex CLI, Cursor en modo agente y Pi son ejemplos de la misma categoría: programas que envuelven a un modelo y le dan manos. Lo que distingue a un harness de un simple chat es el bucle: un chat termina cuando el modelo responde, un harness sigue iterando hasta que la tarea queda resuelta.
Por qué importa la filosofía minimalista
Cada integración que un harness agrega (un protocolo nuevo, un formato de herramienta, un modo de ejecución) ocupa espacio en el contexto del modelo, abre una superficie de ataque nueva y suma una pieza que alguien tiene que mantener cuando falla. Multiplicado por decenas de integraciones, un harness «completo» termina cargando funciones que casi nadie usa pero que todos pagan en latencia, tokens y riesgo.
Earendil describe el criterio que usa antes de sumar algo a Pi: «We wait until something has proven itself, and only then do we consider adopting it; weighing its true functionality against its inherent added complexity.» No es una postura contra la innovación: es una apuesta a que la mayoría de las novedades del ecosistema agéntico no sobreviven más de unos meses, y que integrarlas de entrada significa mantener código que probablemente se va a descartar.
El propio Pi es el caso de estudio: ya corría los modelos más recientes de cada proveedor, ya era el agente de código diario de cientos de miles de personas por semana, y ya servía de base para construir aplicaciones agénticas antes de que Codemode entrara al núcleo. Earendil compara las dos listas de forma directa, la de funciones descartadas es mucho más larga que la de las que llegaron a producción.
flowchart LR
A["Aparece una tecnologia nueva"] --> B{"Sigue en uso meses despues?"}
B -->|"no"| C["Se descarta"]
B -->|"si"| D{"El beneficio supera la complejidad que agrega?"}
D -->|"no"| C
D -->|"si"| E["Se integra al nucleo del harness"]
Este es, en esencia, el filtro que atravesó Codemode antes de llegar a Pi 1.0: meses de uso real, comparados contra el costo de mantenerlo.
Cómo funciona un agent harness por dentro
Por dentro, casi todo agent harness corre el mismo bucle, más allá de qué modelo use o en qué lenguaje esté escrito. El diagrama siguiente muestra ese ciclo: el harness arma el contexto, se lo pasa al modelo, interpreta la respuesta y, si hay una llamada a herramienta, la ejecuta y vuelve a empezar.
flowchart TD
A["Usuario envia una tarea"] --> B["Harness arma el contexto"]
B --> C["Modelo genera una respuesta"]
C --> D{"Hay una llamada a herramienta?"}
D -->|"si"| E["Harness ejecuta la herramienta"]
E --> F["Resultado vuelve al contexto"]
F --> C
D -->|"no"| G["Harness entrega la respuesta final"]
Cada vuelta del bucle consume tokens: el system prompt, el catálogo de herramientas disponibles y el historial completo de la conversación viajan en cada llamada al modelo. Por eso una decisión como el deferred tool loading de Pi 1.0, cargar solo las herramientas que la tarea necesita, tiene impacto directo en el costo y la latencia de cada turno.
La parte que varía entre un harness y otro es qué pasa en el paso de ejecutar la herramienta: cómo decide cuál usar, con qué permisos, y cuánto contexto consume cada vuelta del ciclo. Ahí es donde entran MCP y Codemode, las dos formas más comunes de resolver ese paso.
MCP y Codemode: las dos formas de equipar un agent harness
MCP (Model Context Protocol) es un protocolo abierto que Anthropic publicó en noviembre de 2024 para estandarizar cómo un modelo descubre y llama herramientas expuestas por un servidor externo: cada servidor publica un catálogo de funciones con su esquema, el modelo elige una, el harness la ejecuta y el resultado vuelve al contexto.
Desde su publicación, MCP lo adoptaron clientes de escritorio, IDEs y frameworks de agentes de distintos proveedores, lo que explica por qué Earendil lo trata como la opción por defecto para conectar herramientas de terceros en vez de inventar un protocolo propio.
Codemode cambia ese paso: en vez de pedir una herramienta a la vez, el modelo escribe un script completo que encadena varias llamadas, y el harness lo corre de punta a punta en un sandbox. Earendil lo ejemplifica con un caso concreto: Pi escribe un script que convierte una semana de commits en un resumen corto, sin pedir permiso herramienta por herramienta.
sequenceDiagram
participant M as Modelo
participant H as Harness
participant T as Herramienta
M->>H: pide listar los commits
H->>T: ejecuta git log
T-->>H: devuelve la lista de commits
H-->>M: resultado parcial
M->>H: pide resumir cada commit
H->>T: ejecuta el resumen por commit
T-->>H: devuelve los resumenes
H-->>M: resultado final
Esa secuencia con MCP necesita dos idas y vueltas completas por el contexto. Con Codemode, el mismo trabajo entra en una sola ronda:
sequenceDiagram
participant M as Modelo
participant H as Harness
M->>H: entrega un script que lista y resume los commits
H->>H: ejecuta el script completo en un sandbox
H-->>M: devuelve el resumen final
Para un agent harness minimalista, sumar un protocolo nuevo no es gratis: significa decidir cómo aislar el código que ejecuta, qué pasa si una herramienta tarda demasiado, y cómo evitar que un servidor MCP malicioso inyecte instrucciones en el contexto. Pi esperó a tener ambas piezas resueltas antes de integrarlas al núcleo.
⚠️ Ojo: un servidor MCP de un tercero puede devolver texto diseñado para manipular al modelo (prompt injection vía resultado de herramienta). Correr Codemode en un sandbox sin red ni filesystem completo reduce ese riesgo, pero no lo elimina.
| Opción | Cuándo usarla | Ventaja | Limitación |
|---|---|---|---|
| MCP | Conectar herramientas ya empaquetadas por terceros (bases de datos, APIs, archivos) | Catálogo de servidores ya construido; el modelo descubre funciones por esquema | Cada llamada ocupa una ronda completa de contexto, el costo crece con tareas de muchos pasos |
| Codemode | Tareas con varios pasos encadenados sobre las mismas herramientas | Una sola ronda de contexto para todo el script | Exige que el harness ejecute código de forma segura, no solo que despache llamadas |
Ejemplos prácticos de código
El bucle de la sección anterior se puede escribir en pocas líneas. Esta versión mínima ilustra la idea sin depender de ningún SDK en particular:
def harness_loop(tarea, modelo, herramientas):
contexto = [{"role": "user", "content": tarea}]
while True:
respuesta = modelo.generar(contexto)
if respuesta.llamada_herramienta is None:
return respuesta.texto
resultado = herramientas[respuesta.llamada_herramienta.nombre](
**respuesta.llamada_herramienta.argumentos
)
contexto.append({"role": "tool", "content": resultado})
Cada vuelta del while es un paso del diagrama de flujo: generar, revisar si hay llamada, ejecutar, anexar el resultado. Para la tarea de resumir commits con MCP, la salida esperada de una corrida típica sería un texto como:
"La semana tuvo 14 commits: 9 en el parser, 4 en tests y 1 fix de CI."
La versión Codemode del mismo trabajo no pide herramientas una por una: el modelo entrega el script completo y el harness lo corre de punta a punta.
const commits = await git.log({ since: "7 days ago" });
const resumen = commits
.map((c) => `${c.hash.slice(0, 7)}: ${c.mensaje}`)
.join("\n");
print(resumen);
Es, en código, el mismo ejemplo que describe Earendil para Pi 1.0: un script que convierte una semana de commits en un resumen corto en una sola ejecución, en vez de una llamada por commit.
Cómo empezar con Pi 1.0
La única dependencia real es tener una terminal con acceso a internet: Pi se distribuye como binario autocontenido, sin runtime previo que instalar. En macOS y Linux, la instalación oficial es un solo comando:
curl -fsSL https://pi.dev/install.sh | sh
En Windows, el instalador equivalente corre desde PowerShell:
powershell -c "irm https://pi.dev/install.ps1 | iex"
Pi Durable, el paquete experimental para aplicaciones de larga duración, se instala aparte y no toca el núcleo de Pi:
npm install @earendil-works/pi-durable @earendil-works/pi-ai @earendil-works/chord
Los tres paquetes y el propio Pi son MIT, y la documentación completa vive en pi.dev. Para confirmar que la instalación quedó activa, correr pi --version en la terminal: si el comando no se reconoce, revisar que la carpeta donde el instalador copió el binario esté en el PATH.
Casos de uso reales
Earendil describe a Pi funcionando como agente de código diario para gente que lo usa cientos de miles de veces por semana, y también como sustrato para construir aplicaciones agénticas propias encima suyo. Con Pi 1.0, ese sustrato suma soporte para «modelos virtuales»: extensiones que el propio usuario arma combinando varios modelos detrás de una sola interfaz.
El ejemplo que da Earendil es concreto: una extensión donde la planificación corre en Claude Opus, la implementación en GPT, y un router llamado Jev decide en qué momento de la tarea conviene pasar de uno a otro. El usuario recarga, arranca una sesión nueva, elige el modelo router/auto, y Jev se encarga de detectar cuándo la tarea pasó de planificar a implementar.
Otro caso de uso que destaca el anuncio es el de observabilidad de costos: el comando /session de Pi desglosa cuánto gastó cada modelo dentro de una sesión y cuánto se ahorró por cache, algo clave cuando una sola tarea reparte trabajo entre dos o tres modelos distintos.
Para equipos LATAM que arman agentes propios, la lección práctica es la misma que aplica Earendil puertas adentro: conviene medir cuánto cuesta cada integración en tokens y en mantenimiento antes de sumarla a producción, en vez de copiar de entrada el stack completo de otro equipo.
Errores comunes y buenas prácticas
Minimalismo mal entendido genera tanto riesgo como maximalismo sin criterio. Estos son los errores más comunes al adoptar, o evitar, protocolos nuevos en un harness propio:
- Confundir minimalismo con pobreza de funciones: un harness minimalista no evita las funciones nuevas, evita las que no probaron su valor. La diferencia es el criterio de entrada, no la cantidad de features.
- Sumar MCP de entrada sin sandbox: conectar un servidor de terceros sin aislar su ejecución expone el contexto del modelo a resultados de herramienta maliciosos.
- Tratar Codemode como una optimización gratis: ejecutar scripts generados por el modelo exige un entorno de ejecución seguro, no solo cambiar el formato de la llamada.
- No medir el costo de contexto de cada integración: cada protocolo que un harness soporta ocupa tokens del system prompt incluso cuando no se usa, salvo que el harness cargue las herramientas de forma diferida.
- Esperar indefinidamente: el minimalismo no es inmovilismo. Earendil tardó meses en sumar Codemode, no años; el criterio es evidencia de uso, no aversión al cambio.
Comparativa: harness minimalista contra harness completo
No hay una respuesta única entre minimalismo e integración completa: depende de cuánta gente mantiene el harness y cuánto cambia el ecosistema alrededor.
| Enfoque | Cuándo conviene | Ventaja | Riesgo |
|---|---|---|---|
| Minimalista | Equipos chicos, tareas bien definidas, alta rotación de herramientas en el ecosistema | Menos superficie de ataque, menos mantenimiento, cada función ya probó su valor | Las funciones nuevas tardan semanas o meses en llegar al núcleo |
| Completo (todo integrado) | Organizaciones que necesitan estandarizar muchas integraciones desde el primer día | Menos piezas sueltas para ensamblar, soporte oficial inmediato | Cada protocolo sin usar sigue ocupando contexto y ciclos de mantenimiento |
💭 Clave: un entorno de agentes minimalista no es uno pobre en funciones, es uno donde cada función ya pagó su lugar con uso real antes de entrar al núcleo.
Profundizando: qué trae Pi 1.0 por dentro
Además de Codemode, Pi 1.0 suma deferred tool loading: las definiciones de herramientas que el modelo no va a necesitar en una tarea puntual no se cargan en el contexto desde el arranque, lo que reduce el costo fijo de cada turno a medida que el catálogo de herramientas crece.
También suma cache warming para modelos de Anthropic: el harness precalienta el cache de prompt antes de que el usuario escriba, para que la primera respuesta de la sesión no pague el costo completo de procesar el contexto desde cero. Y suma mensajes de sistema a mitad de conversación: cambios de prompt o de herramientas disponibles que el harness puede inyectar sin reiniciar la sesión, algo que antes exigía cortar la conversación y perder el historial.
El resto de la lista es más cosmético (un tema nuevo para la interfaz de terminal, modo pantalla completa por defecto) pero confirma el patrón: Earendil prioriza pulir lo que ya existe antes de anunciar algo nuevo. Pi Durable, en cambio, se mantiene fuera del núcleo justamente porque extiende a Pi hacia un terreno distinto (conversaciones y tareas de larga duración fuera de la terminal) que no encaja con la forma en que la mayoría usa el harness hoy.
📖 Resumen en Telegram: Ver resumen
Tu próximo paso: instalá Pi con el comando de arriba, armá un harness de una sola herramienta (por ejemplo, listar los commits de un repo local) y recién después evaluá si necesitás sumar un servidor MCP.
Preguntas frecuentes
¿Qué es exactamente un entorno de agentes?
Es el programa que conecta un modelo de lenguaje con acciones reales: terminal, archivos, APIs. Recibe la salida del modelo, ejecuta lo que pide y le devuelve el resultado para que siga razonando hasta terminar la tarea. La métrica que importa no es qué tan grande es el catálogo de herramientas, sino qué tan bien decide cuál usar en cada paso.
¿En qué se diferencia Codemode de MCP?
MCP expone herramientas como funciones individuales que el modelo llama una por una. Codemode deja que el modelo escriba un script que encadena varias llamadas y lo ejecuta de punta a punta en una sola ronda de contexto. Ambos resuelven el mismo problema con distinto costo de contexto por tarea.
¿Cuándo conviene un framework agéntico minimalista en vez de uno completo?
Cuando el equipo prioriza superficie de ataque chica y bajo mantenimiento por sobre tener cada integración disponible desde el primer día. El costo es esperar semanas o meses a que una función nueva llegue al núcleo. La decisión suele depender del tamaño del equipo de mantenimiento disponible, no solo del presupuesto.
¿Pi 1.0 reemplaza a otros agentes de código como Claude Code o Codex CLI?
No necesariamente: cada harness define sus propios criterios de qué adopta y cuándo. Pi 1.0 se diferencia por esperar a que una capacidad se pruebe en uso real antes de sumarla al núcleo, en vez de integrarla apenas aparece. La comparación real depende de qué tan seguido tu flujo de trabajo necesita una integración que todavía no llegó al núcleo de uno u otro.
¿Qué es Pi Durable y por qué no está dentro del núcleo de Pi?
Es un paquete experimental separado para aplicaciones agénticas de larga duración, pensado para conversaciones y tareas que corren fuera de la terminal. Earendil lo mantuvo aparte para no forzar a Pi a ser algo distinto de lo que es. Compartir ese riesgo con el núcleo habría significado cargar su complejidad en cada sesión de terminal, incluso para quien nunca la usa.
Referencias
- Earendil: Pi 1.0: anuncio oficial del lanzamiento, la filosofía minimalista y la lista completa de funciones nuevas.
- GitHub: earendil-works/pi: código fuente de Pi, licencia MIT.
- Model Context Protocol: especificación abierta del protocolo que estandariza cómo los modelos descubren y llaman herramientas.
- Anthropic: Introducing the Model Context Protocol: anuncio original de MCP en noviembre de 2024.
- pi.dev: documentación oficial de Pi y de Pi Durable.
📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.
Imagen destacada: Foto de Cong Long Vu en Unsplash
¿Te sirvió? ¿Te dio otro error? Contalo abajo: las preguntas se responden y le sirven al siguiente que llegue.
Dejar un comentario
0 Comentarios