AI VIDEO BRIEFING
VS Code 에이전트 호스트 프로토콜 정리: 세션 지속·다중 클라이언트 동기화
VS Code 팀이 만든 에이전트 호스트 프로토콜은 AI 코딩 에이전트 세션을 창이나 버전에 묶이지 않게 하고 여러 기기에서 상태를 동기화한다. 배경과 구조, 향후 방향을 정리했다.

핵심 메시지
쉽게 이해하기
이 영상은 VS Code 인사이더스 팟캐스트에서 진행자 제임스 몬테마그노가 VS Code 팀에서 7년간 일한 코너 피트(Connor Peet)와 '에이전트 호스트 프로토콜'을 주제로 나눈 대화다. 지난 1년간 MCP 작업을 거쳐 올해 이 프로토콜 개발에 참여한 코너가 배경과 구조를 설명한다.
예전 방식에서는 이른바 '로컬 에이전트 루프'가 VS Code 창의 확장 실행 프로세스 안에서 돌아갔다. 창을 닫으면 세션이 사라지고, 다른 작업 공간에서 쓰려면 그 폴더로 새 창을 열어야 했다. 모델이 스스로 1~2분 이상 자율적으로 일하기 어렵던 시절에는 괜찮았지만, 올해 들어 상황이 달라졌다. 깃 워크트리 안에서 에이전트를 띄우는 방식도 있었으나, VS Code가 '한 창·한 폴더' 전제로 만들어진 탓에 구조적으로 어색한 부분이 많았다.
올해 초 등장한 '에이전트 창(agent window)'은 모든 에이전트 세션이 모여 사는 상위 허브 역할을 한다. 폴더를 고르고 에이전트를 띄운 뒤 한곳에서 모니터링할 수 있다. 여기에 더해 창을 닫아도, 몇 시간에서 며칠씩 이어지는 다단계 작업이라도 에이전트가 계속 돌아가게 하려면 서버가 필요했다. 기존 VS Code 서버가 있었지만 사용 중인 VS Code 커밋 버전에 묶여 있었고, 인사이더스는 매일 업데이트되다 보니 버전 불일치로 오래된 세션을 끊어야 하는 문제가 생겼다.
그 해법이 에이전트 호스트 프로토콜이다. 클라이언트와 서버가 기존 IPC 버전 규칙과 독립적으로 버전 협상을 할 수 있는 별도 프로토콜을 두어, 서버가 며칠씩 세션을 유지해도 다양한 버전의 클라이언트가 접속할 수 있게 한다. 나아가 데스크톱과 노트북에서 동시에 접속하는 상황의 상태 동기화, 연결 끊김 처리, 그리고 세션이 헤드리스 머신에서 돌더라도 브라우저 도구를 제공하는 클라이언트를 붙이는 것 같은 문제까지 다룬다. 공식 웹사이트는 이를 'AI 에이전트 세션을 위한 다중 클라이언트 상태 동기화'라고 소개한다.
VS Code는 기본으로 로컬 에이전트 호스트를 내장해 제공하며, 에이전트 창은 SSH·WSL 접속과 웹소켓 호스트 설정을 지원한다. 프로토콜을 말하는 어떤 서버에도 VS Code를 연결할 수 있어, 팀 내부에서는 모바일 앱이나 스트림덱으로 세션을 모니터링하는 사례도 나왔다. vscode.dev/agents 역시 이 프로토콜과 터널 연결을 사용하며, 스위프트(Swift) SDK도 제공된다.
주요 인사이트
- 핵심 발상은 에이전트 세션을 '창 프로세스'에서 떼어내 서버로 올리는 것이다. 창이 닫혀도, 원격이어도, 여러 기기에서 접속해도 세션이 유지된다.
- 버전 종속성이 큰 걸림돌이었다. 매일 갱신되는 인사이더스 환경에서 오래 사는 세션을 지키려면 클라이언트와 서버가 버전과 무관하게 대화할 수 있어야 했다.
- 설계 지향점은 VS Code 전용이 아닌 범용 표준이다. DAP·LSP처럼 여러 IDE가 공유하는 표준이 되기를 목표로 하며, 다른 서버·클라이언트도 자유롭게 구현해 붙일 수 있다.
- 비슷한 이름의 '에이전트 클라이언트 프로토콜(ACP)'은 하네스를 제어하는 프로토콜로 결이 다르다. ACP는 상태 동기화·재연결 같은 분산 문제를 다루지 않는 반면, 에이전트 호스트 프로토콜은 그 상위 문제를 풀고 Copilot·Claude Code SDK·Codex SDK 등 여러 하네스와 연동한다.
- 다음 단계는 오케스트레이션이다. 세션당 여러 채팅을 두고 채팅끼리 메시지를 주고받게 하거나, 크론 작업과 사용자 정의 훅(예: PR 실패 시 에이전트 실행) 같은 확장이 구상되고 있다.
자주 묻는 질문
에이전트 호스트 프로토콜은 어떤 문제를 해결하나요?
기존에는 AI 에이전트 세션이 하나의 VS Code 창 프로세스에 묶여 창을 닫으면 사라졌습니다. 이 프로토콜은 세션을 서버로 분리해 창이 닫혀도 지속되게 하고, 여러 기기에서 접속해 상태를 동기화하며 연결 끊김을 처리합니다.
왜 별도의 프로토콜이 필요했나요?
기존 VS Code 서버는 사용 중인 VS Code 커밋 버전에 묶여 있었는데, 인사이더스가 매일 업데이트되면서 버전 불일치가 생겼습니다. 오래 사는 세션을 끊지 않으려면 클라이언트와 서버가 버전과 무관하게 대화할 수 있는 별도 프로토콜이 필요했습니다.
이 프로토콜은 개방형인가요?
네. 오픈소스로 공개돼 있고 명세가 있으며, 디버그 어댑터 프로토콜(DAP)과 언어 서버 프로토콜(LSP)의 계보를 잇는 범용 표준을 지향합니다. 영상 시점 기준 버전 0.5로 아직 초기 단계이며 안정화를 앞두고 있습니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗