El lock-in de runtime es el nuevo lock-in de proveedor

Todos los que hemos construido herramientas de agente para código pasamos por lo mismo: arrancas con un solo runtime (Claude Code, Codex, o un loop casero), funciona bien… hasta que cambia el precio del proveedor, sale un runtime nuevo con mejores herramientas de shell, o tus usuarios te piden un agente específico. Reescribir la capa de orquestación cada vez que se mueve el ecosistema es caro y aburrido.

El AI SDK Harness apuesta a otra cosa: tratar el runtime como un adapter enchufable. Escribes contra una sola interfaz (HarnessAgent) y el harness se encarga del cableado específico de cada runtime: sesiones, aprobaciones de herramientas, streaming, attach/resume.

Hoy entran dos adapters nuevos: Deep Agents y OpenCode, ambos corriendo dentro de un Vercel Sandbox. Es el mismo movimiento de composición que ya se ve en otras stacks — checa Beyond the Framework Hype: Key Takeaways from a 2025 Dev Summit para el contexto más amplio.

Developer switching between AI coding agent runtimes via unified AI SDK Harness interface on laptop Developer Related Image

Los dos adapters nuevos

Deep Agents (@ai-sdk/harness-deepagents)

Este adapter envuelve el runtime deepagents de LangChain. O sea: heredas herramientas de archivo y shell, skills, host tools, sesiones multi-turn, attach/resume y aprobaciones de herramientas ya incluidas — todo expuesto por el contrato del harness.

// Adapter Deep Agents: envuelve el runtime deepagents de LangChain
import { HarnessAgent } from '@ai-sdk/harness/agent';
import { deepAgents } from '@ai-sdk/harness-deepagents';

const agent = new HarnessAgent({
  harness: deepAgents,
});

OpenCode (@ai-sdk/harness-opencode)

Este es más interesante en arquitectura: levanta un servidor OpenCode real dentro del sandbox vía @opencode-ai/sdk y hace stream de los eventos de sesión a través del harness. Te llevas las herramientas nativas de OpenCode, soporte para aprobaciones built-in y host, y puedes elegir modelo, proveedor y variante de razonamiento.

// Adapter OpenCode: levanta un servidor OpenCode real dentro del sandbox
import { HarnessAgent } from '@ai-sdk/harness/agent';
import { openCode } from '@ai-sdk/harness-opencode';

const agent = new HarnessAgent({
  harness: openCode,
});

La lista completa hoy es: Claude Code, Codex, Deep Agents, OpenCode, Pi — y vienen más. 🚀

Vercel Sandbox running OpenCode server streaming session events to a harness adapter IT Technology Image

Qué ganas de verdad (y qué no)

DimensiónSin HarnessCon Harness
Cambiar runtimeReescribes la orquestaciónCambias un import
UX de aprobaciónEspecífico por runtimeContrato unificado
Streaming de sesiónCustom por runtimeEventos normalizados
Ciclo de vida del sandboxTú lo manejasVercel Sandbox se encarga
DebugLogs específicosAún específicos (se filtra)
Modelo de costoDepende del proveedorDepende del proveedor (sin cambio)

Los peros honestos:

  • La abstracción no es gratis. Cada adapter expone superficies de herramientas distintas. Si tu app depende de una skill específica de Deep Agents, sigues acoplado — el harness esconde el cableado, no la semántica.
  • Asume Vercel Sandbox. Eso es restricción real si tu infra está en AWS o GCP y no puedes mover la frontera de ejecución.
  • Los schemas de eventos divergen. "Normalizado" no es "idéntico". Vas a tener branches por runtime en las orillas.
  • Los modelos de aprobación divergen. Built-in y host se soportan en los dos, pero la UX que construyas alrededor igual va a necesitar branches.

Por cierto, este patrón de composición se está viendo en otras áreas también — mira cómo la trazabilidad de algodón tokenizado usa primitivas parecidas en How Blockchain is Revolutionizing Agricultural Traceability.

Cloud architecture diagram of AI SDK Harness adapters for Deep Agents and OpenCode runtimes Coding Session Visual

¿Te conviene adoptarlo?

Si construyes producto de agente y ya sentiste el dolor de cambiar runtime, el Harness merece una prueba seria. El valor no está en un adapter solo — está en la opción de cambiar sin reescribir.

Próximos pasos para aprenderlo en serio:

  1. Lee la doc del Deep Agents harness y la del OpenCode harness de principio a fin antes de codear.
  2. Arma un agente desechable que haga una cosa (leer archivo, correr shell) contra dos harnesses. La fricción que sientas es el costo real de la abstracción.
  3. Instrumenta el flujo de aprobación de herramientas temprano. Es lo que más se rompe cuando cambias de runtime.
  4. Mantente al tanto de la lista de harnesses — la abstracción solo paga si el ecosistema sigue creciendo.

Fuente: Vercel changelog — Deep Agents and OpenCode harness adapters.

Este contenido fue redactado con la asistencia de herramientas de IA, basándose en fuentes confiables, y fue revisado por nuestro equipo editorial antes de su publicación. No reemplaza el asesoramiento de un profesional especializado.