AI Briefing

spawn-agent: 로컬 코딩 에이전트를 Vercel AI SDK 모델처럼 다루는 어댑터

·2026.04.30 17:05

핵심 내용

로컬 코딩 에이전트를 Vercel AI SDK 모델처럼 다루는 ACP 어댑터다.

자세히 보기

여러 로컬 코딩 에이전트(Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Factory Droid, Pi)를 자식 프로세스로 띄워, Vercel AI SDK의 LanguageModelV3 인터페이스 뒤에 숨기는 어댑터다.

통신은 ACP(Agent Client Protocol)를 그대로 쓰고, stdin/stdout 위에서 NDJSON JSON-RPC 메시지를 주고받는다. pnpm 모노레포로 구성됐으며, 라이브러리 본체와 데모·테스트용 워크스페이스가 분리돼 있다.

  • 호환 범위: Cursor, Copilot, Gemini, OpenCode, Droid, Pi처럼 ACP를 직접 말하는 CLI는 그대로 붙는다. Claude Code와 Codex는 각각의 변환 패키지를 거쳐 같은 인터페이스로 흡수된다.
  • 세션 모드: 매 호출마다 새 프로세스를 띄우는 일회성 모드와, 자식 프로세스와 ACP 세션을 유지해 대화 메모리를 보존하는 세션 모드를 함께 제공한다. 세션 객체는 AsyncDisposable을 구현한다.
  • 프로세스 운영: stderr의 마지막 구간만 남기고, stdout에 섞여 나온 비-NDJSON 라인은 stderr로 옮긴다. 종료는 SIGTERM 후 2초 유예, 이후 SIGKILL 순서로 정리하며, 3분 비활동 워치독과 인증 실패·사용량 한도 패턴 인식도 포함한다.
  • 권한/기능 협상: auto-allow, auto-allow-once, auto-reject, stream 프리셋과 사용자 정의 권한 핸들러를 지원한다. 파일시스템, 터미널, 추가 작업 디렉터리는 호스트가 제공할 때만 능력으로 광고된다.
  • 오류/테스트: 16종 오류를 상위 클래스 아래 태그 기반으로 분류하고, 비정상 종료 시 종료 코드·시그널·stderr 일부를 함께 담는다. 초기화, 권한, 취소, 동시 세션, 와이어 퍼즈, 워치독 등 27개 테스트 영역으로 나눴다.
  • 현재 상태: 루트와 패키지 버전이 모두 0.0.1이고, ai@^6.0.0, Node 22+, pnpm 8+를 요구한다.

정리하면 기존 코딩 CLI와 ACP를 묶어, AI SDK 사용자에게 익숙한 모델 인터페이스로 노출하는 실무형 어댑터다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.