코딩 에이전트, 이제 '런타임'을 선택하는 시대

AI 코딩 에이전트를 실무에 붙이다 보면 금방 벽에 부딪혀요. Claude Code로 잘 돌아가던 워크플로를 Codex로 옮기려면 코드를 다시 짜야 하고, OpenCode를 써보고 싶으면 또 별도 통합 작업이 필요하죠. 에이전트 런타임마다 API, 세션 관리, 도구 승인 방식이 다 다르니까요.

Vercel의 AI SDK Harness는 이 문제를 정면으로 다룹니다. 이미 자리잡은 코딩 에이전트 런타임들을 하나의 통합 인터페이스로 감싸서, 애플리케이션 코드를 건드리지 않고도 런타임을 교체할 수 있게 해주는 레이어예요. 이번 업데이트로 Deep Agents와 OpenCode 두 어댑터가 추가되면서, 지원 목록은 Claude Code, Codex, Deep Agents, OpenCode, Pi까지 총 5종으로 늘었습니다.

근거자료: Vercel Changelog — Deep Agents and OpenCode harness adapters

Developer configuring AI coding agent runtime adapters through unified SDK interface on laptop screen Development Concept Image

새로 추가된 두 어댑터, 코드로 바로 보기

1. Deep Agents 어댑터 — LangChain 생태계 연결

@ai-sdk/harness-deepagents는 LangChain의 deepagents 런타임을 Harness 위에서 돌립니다. 파일·셸 도구, 스킬, 호스트 도구, 멀티턴 세션, attach/resume, 도구 승인 기능이 기본으로 포함돼 있어요.

// Deep Agents를 HarnessAgent로 감싸는 최소 예제
import { HarnessAgent } from '@ai-sdk/harness/agent';
import { deepAgents } from '@ai-sdk/harness-deepagents';

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

딱 이 정도면 런타임이 바뀝니다. 애플리케이션 쪽에서 harness 값만 교체하면 되니까, 나머지 비즈니스 로직은 그대로 유지돼요.

2. OpenCode 어댑터 — 샌드박스 안에서 실제 서버 구동

@ai-sdk/harness-opencode는 조금 다른 접근이에요. @opencode-ai/sdk를 통해 샌드박스 안에 실제 OpenCode 서버를 부팅하고, 세션 이벤트를 Harness로 스트리밍합니다. OpenCode 내장 도구, 내장/호스트 도구 승인, 모델·프로바이더·reasoning variant 선택까지 지원해요.

// OpenCode 서버를 샌드박스에서 부팅해 Harness로 스트리밍
import { HarnessAgent } from '@ai-sdk/harness/agent';
import { openCode } from '@ai-sdk/harness-opencode';

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

둘 다 Vercel Sandbox 안에서 동작한다는 점이 핵심이에요. 로컬 환경 오염 없이 격리된 실행 계층을 확보할 수 있습니다.

Vercel Sandbox running OpenCode server streaming session events for coding agent Programming Illustration

지원 런타임 한눈에 비교

런타임어댑터 패키지특징적합한 상황
Claude Code@ai-sdk/harness-claudecodeAnthropic 생태계, 안정적 도구 세트이미 Claude Code 워크플로가 있는 팀
Codex@ai-sdk/harness-codexOpenAI 계열 추론 강점GPT 계열 모델 선호 팀
Deep Agents@ai-sdk/harness-deepagentsLangChain deepagents, 파일·셸·스킬·멀티턴·승인LangChain 기반 에이전트 자산 재활용
OpenCode@ai-sdk/harness-opencode샌드박스 내 실제 서버 부팅, 모델·프로바이더 선택 자유OSS 런타임, 멀티 프로바이더 실험
Pi@ai-sdk/harness-pi경량 런타임최소 오버헤드 원하는 경우

이 기술의 한계와 주의사항

  • 샌드박스 의존성: OpenCode 어댑터는 Vercel Sandbox 안에서 서버를 부팅하는 구조라, 로컬 개발 환경에서 그대로 재현하기 어려울 수 있어요. 로컬 테스트 전략을 별도로 세워야 합니다.
  • 버전 드리프트: 각 런타임이 독립적으로 릴리스되기 때문에, 어댑터가 특정 버전의 런타임만 지원하는 경우가 생깁니다. CI에서 어댑터-런타임 버전 조합을 고정해두는 걸 권장해요.
  • 추상화 누수: 통합 인터페이스가 편하다고 해서 런타임 고유 기능이 100% 노출되는 건 아닙니다. 특정 런타임의 특수 기능이 필요하면 그때는 직접 붙이는 게 나아요.

한국 개발 생태계에서의 적용 맥락

국내 SI·스타트업 환경에서는 아직 Claude Code나 Codex 단일 런타임에 묶여 있는 팀이 많아요. 이 Harness 레이어를 도입하면 모델 단가가 바뀌거나 벤더 정책이 바뀔 때 런타임만 교체하면 되니, 벤더 락인 리스크를 크게 줄일 수 있습니다. 특히 사내 보안 정책상 외부 런타임을 샌드박스로 격리해야 하는 조직이라면 Vercel Sandbox 기반이라는 점이 실무적으로 유리해요.

Cloud architecture diagram showing unified harness interface connecting multiple coding agent runtimes System Abstract Visual

정리: 런타임은 갈아끼우는 것

AI SDK Harness의 메시지는 명확해요. 에이전트 런타임은 애플리케이션의 부품이지, 애플리케이션 그 자체가 아니라는 거죠. Deep Agents와 OpenCode가 합류하면서 선택지가 넓어졌으니, 이제는 "어떤 런타임을 쓸까"보다 "어떤 런타임을 언제 교체할까"를 설계하는 게 더 중요해집니다.

다음 단계 학습 방향

  1. @ai-sdk/harness/agent의 HarnessAgent 인터페이스 문서를 먼저 훑어보세요.
  2. 기존에 쓰던 런타임 하나를 골라 Harness로 감싸는 리팩터링을 작은 프로젝트에서 시도해보세요.
  3. 샌드박스 격리·도구 승인 정책을 사내 보안 요구사항과 매핑해보면 도입 판단이 훨씬 쉬워집니다.

함께 보면 좋은 글

본 콘텐츠는 신뢰할 수 있는 출처를 바탕으로 AI 도구를 활용하여 초안이 작성되었으며, 편집자의 검토를 거쳐 발행되었습니다. 전문가의 조언을 대체하지 않습니다.