들어가며: 왜 이 통합이 화제인가

LLM 기반 에이전트를 실서비스에 올리려고 하면 늘 같은 벽에 부딪혀요. "에이전트 루프는 누가 돌리지?", "세션 상태는 어디에 저장하지?", "코드 실행은 어디서 시키지?" 이 세 가지를 각각 직접 구현하다 보면 인프라 코드가 본 로직보다 커지는 상황이 생기죠.

이번에 Vercel이 공개한 OpenAI Agents API + Vercel Sandbox 통합은 이 세 가지를 역할 분담으로 정리한 사례예요.

  • OpenAI: 에이전트 루프와 세션 상태 관리
  • Vercel: 애플리케이션 호스팅 + 세션별 샌드박스 연결
  • Vercel Sandbox: 코드 실행 및 파일 접근을 위한 격리 환경

핵심은 **"always-on 워커가 필요 없다"**는 점이에요. 세션이 없으면 0으로 내려가고, 요청이 오면 다시 뜨는 구조라 개인 프로젝트나 사이드 프로젝트에서도 부담 없이 굴릴 수 있습니다.

근거자료: Vercel Changelog - Build with OpenAI Agents API on Vercel

국내에서도 최근 사내 챗봇이나 업무 자동화 에이전트를 붙이는 시도가 많은데, "무한정 떠 있는 워커 비용"이 늘 걸림돌이었죠. 이 아키텍처는 그 지점을 정면으로 건드립니다.

Developer configuring OpenAI Agents API session state on a dashboard for long-running AI agent workflows Programming Illustration

아키텍처 해부: 무엇이 어디로 나뉘었나

1. 에이전트 루프와 세션 상태 (OpenAI 담당)

기존에는 에이전트의 tool-calling 루프를 서버에서 직접 돌리고, 대화 상태를 Redis나 DB에 저장했어요. 이번 통합에서는 이 부분을 OpenAI가 관리합니다. 개발자는 "어떤 툴을 쓸 수 있는지"만 정의하면 되고, 반복 호출·상태 유지·재시도는 플랫폼이 처리하는 구조예요.

2. 샌드박스 생성과 재연결 (Vercel 담당)

여기가 실무적으로 가장 흥미로운 부분입니다.

  • signed OpenAI webhook: OpenAI가 세션 이벤트를 Vercel로 안전하게 전달
  • Vercel Queues: 이벤트를 큐에 쌓아 안정적으로 처리 (유실/중복 방지)
  • Vercel Sandbox: 세션마다 격리된 실행 환경을 띄움
// 예시: 에이전트 세션에서 샌드박스로 코드 실행 요청을 넘기는 흐름 (개념 설명용)
import { Sandbox } from "@vercel/sandbox";

export async function handleAgentToolCall(sessionId: string, code: string) {
  // 세션 ID 기준으로 샌드박스 생성 또는 재연결
  const sandbox = await Sandbox.create({ id: sessionId });

  // 격리된 환경에서 코드 실행
  const result = await sandbox.run(code);

  // 후속 지시에서도 동일 파일 유지 (persistent workspace)
  return result.stdout;
}

3. Persistent Workspace

샌드박스가 세션 단위로 유지되기 때문에, 사용자가 "아까 만든 파일에 이어서 작업해줘"라고 하면 이전 산출물이 그대로 살아 있어요. 이건 데이터 분석 에이전트나 리팩터링 에이전트를 만들 때 체감이 큰 부분입니다.

4. Scale-to-Zero

세션이 없으면 워커가 0으로 내려가요. 즉, 트래픽이 뜸한 개인 봇이나 사내 도구에서도 고정 비용이 거의 발생하지 않는 구조입니다.

Vercel cloud dashboard showing scale-to-zero agent deployment with OpenAI webhook integration Developer Related Image

장단점 비교: 언제 쓰고 언제 피해야 하나

항목OpenAI Agents API + Vercel Sandbox직접 구현 (자체 워커 + Redis + 컨테이너)
에이전트 루프플랫폼 관리직접 구현 및 유지보수
세션 상태OpenAI 관리Redis/DB 직접 설계
코드 실행 격리Vercel Sandbox 기본 제공Firecracker/gVisor 등 직접 구성
비용 구조Scale-to-zero, 사용량 기반always-on 워커 비용 발생
벤더 종속성OpenAI + Vercel 양쪽에 결합상대적으로 자유로움
커스터마이징플랫폼 제약 내에서만무한 자유
적합한 팀빠르게 프로토타입~실서비스 전환인프라 팀이 있는 대규모 조직

주의사항 (비판적 시각)

  • 벤더 락인: 에이전트 루프가 OpenAI에, 실행이 Vercel에 묶여요. 나중에 다른 LLM으로 갈아타거나 온프레미스로 옮길 때 재작업이 필요할 수 있습니다.
  • 관찰 가능성(Observability): 루프가 블랙박스에 가까워지면 디버깅이 어려워져요. 로그·트레이스 설계를 처음부터 잡아두는 게 좋습니다.
  • 보안 경계: 샌드박스가 격리돼 있다고 해도, 에이전트가 접근 가능한 파일/네트워크 범위는 명시적으로 제한해야 해요.

다음 단계 학습 방향

  1. Vercel Sandbox의 격리 모델(파일시스템, 네트워크 정책) 문서를 먼저 읽어보세요.
  2. OpenAI Agents API의 tool 정의 스키마를 익히면, 지금 쓰는 사내 봇에 얹기 쉬워요.
  3. 관찰 가능성 도구(OpenTelemetry 등)와의 결합 방법을 미리 실험해두면 실서비스 전환이 편합니다.

Isolated Vercel Sandbox environment executing code for an autonomous AI agent session Software Concept Art

정리: 지금 시도해볼 만한 이유

이번 통합의 진짜 가치는 "에이전트 인프라를 직접 만들지 않아도 된다"는 선언에 가까워요. 특히 사이드 프로젝트나 소규모 팀에서는 이 차이가 결정적입니다.

다만 프로덕션에 바로 넣기 전에, 벤더 종속성과 관찰 가능성 두 축은 반드시 점검하세요. 이 두 가지가 나중에 발목을 잡는 경우가 정말 많습니다.

함께 보면 좋은 글

에이전트 UX를 설계할 때도 결국 "모달로 띄울까, 별도 화면으로 뺄까" 같은 결정을 계속 하게 되는데, 위 글과 같이 보면 관점이 잡힐 거예요.

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