O lock-in de runtime é o novo lock-in de fornecedor

Quem já construiu ferramentas de agente para código sabe: você começa com um runtime só (Claude Code, Codex, ou um loop caseiro), funciona bem… até o preço do provedor mudar, um runtime novo aparecer com ferramentas de shell melhores, ou seus usuários exigirem um agente específico. Reescrever a camada de orquestração toda vez que o ecossistema muda é caro e chato.

O AI SDK Harness aposta em outra coisa: tratar o runtime como um adapter plugável. Você escreve contra uma interface única (HarnessAgent), e o harness cuida do encanamento específico de cada runtime — sessões, aprovações de ferramentas, streaming, attach/resume.

Hoje entram dois adapters novos: Deep Agents e OpenCode, ambos rodando dentro de um Vercel Sandbox. É o mesmo movimento de composição que a gente tem visto em outras stacks — dá uma olhada no que rolou na Beyond the Framework Hype: Key Takeaways from a 2025 Dev Summit pra entender o contexto maior.

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

Os dois adapters novos

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

Esse adapter embrulha o runtime deepagents do LangChain. Traduzindo: você herda ferramentas de arquivo e shell, skills, host tools, sessões multi-turn, attach/resume e aprovações de ferramentas já embutidas — tudo exposto pelo contrato do harness.

// Adapter Deep Agents: embrulha o runtime deepagents do 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)

Esse aqui é mais interessante na arquitetura: ele sobe um servidor OpenCode de verdade dentro do sandbox via @opencode-ai/sdk e faz stream dos eventos da sessão pelo harness. Você ganha as ferramentas nativas do OpenCode, suporte a aprovações built-in e host, e pode escolher modelo, provedor e variante de raciocínio.

// Adapter OpenCode: sobe um servidor OpenCode real dentro do sandbox
import { HarnessAgent } from '@ai-sdk/harness/agent';
import { openCode } from '@ai-sdk/harness-opencode';

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

A lista completa hoje é: Claude Code, Codex, Deep Agents, OpenCode, Pi — e vêm mais por aí. 🚀

Vercel Sandbox running OpenCode server streaming session events to a harness adapter Developer Related Image

O que você ganha de verdade (e o que não ganha)

DimensãoSem HarnessCom Harness
Trocar runtimeReescreve a orquestraçãoTroca um import
UX de aprovaçãoEspecífico por runtimeContrato unificado
Streaming de sessãoCustom por runtimeEventos normalizados
Ciclo de vida do sandboxVocê gerenciaVercel Sandbox cuida
DebugLogs específicosAinda específicos (vaza)
Modelo de custoDepende do provedorDepende do provedor (sem mudança)

Os poréns honestos:

  • A abstração não é de graça. Cada adapter expõe superfícies de ferramentas diferentes. Se seu app depende de uma skill específica do Deep Agents, você continua acoplado — o harness esconde a fiação, não a semântica.
  • Assume Vercel Sandbox. Isso é restrição real se sua infra tá na AWS ou GCP e você não pode mover a fronteira de execução.
  • Schemas de evento divergem. "Normalizado" não é "idêntico". Vai ter branch por runtime nas bordas.
  • Modelos de aprovação divergem. Built-in e host são suportados nos dois, mas a UX que você constrói em volta ainda vai precisar de branches.

Aliás, esse padrão de composição tá aparecendo em outras áreas também — olha como a rastreabilidade de algodão tokenizado usa primitivas parecidas em How Blockchain is Revolutionizing Agricultural Traceability.

Cloud architecture diagram of AI SDK Harness adapters for Deep Agents and OpenCode runtimes System Abstract Visual

Vale adotar?

Se você constrói produto de agente e já sentiu na pele o custo de trocar runtime, o Harness merece um teste sério. O valor não tá em um adapter isolado — tá na opção de trocar sem reescrever.

Próximos passos pra aprender de verdade:

  1. Lê a doc do Deep Agents harness e a do OpenCode harness do começo ao fim antes de codar.
  2. Monta um agente descartável que faz uma coisa (ler arquivo, rodar shell) contra dois harnesses. A fricção que você sentir é o custo real da abstração.
  3. Instrumenta o fluxo de aprovação de ferramentas cedo. É o que mais quebra quando você troca de runtime.
  4. Fica de olho na lista de harnesses — a abstração só compensa se o ecossistema continuar crescendo.

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

Este conteúdo foi elaborado com o auxílio de ferramentas de IA, com base em fontes confiáveis, e revisado pela nossa equipe editorial antes da publicação. Não substitui o aconselhamento de um profissional especializado.