Skip to content

Agent Client Protocol

에이전트 클라이언트 프로토콜(ACP)

About

  • Agent Client Protocol(ACP) 은 코드 에디터와 AI 코딩 에이전트 간의 통신을 표준화하기 위한 프로토콜
  • 기존에는 각 에디터가 특정 에이전트와 연결되려면 별도의 커스텀 통합 작업이 필요했고, 이는 호환성 제한과 개발자 락인 문제를 초래했음
  • ACP는 언어 서버 프로토콜(LSP) 처럼 표준화된 통신 방식을 제공해, 한 번 구현하면 모든 호환 에디터·에이전트 간에 자유롭게 연결 가능하도록 함
  • 에디터에서 에이전트를 서브 프로세스로 실행하고, JSON-RPC over stdio로 통신하며, UI 요소에는 diff 표시와 Markdown 기반 출력을 지원함
  • 현재 Zed, neovim(CodeCompanion 플러그인) 등이 ACP를 지원하고, 에이전트 측에서는 Gemini CLI가 호환되며 앞으로 지원 범위가 확대될 예정임

소개

  • Agent Client Protocol(ACP) 은 원격 개발, 포트 포워딩, 명령 실행 등과 같은 서버-클라이언트 간 상호작용을 표준화하는 목적으로 설계된 개방형 프로토콜임
  • 기존 문제점: AI 코딩 에이전트와 에디터는 긴밀히 연결되어 있지만, 상호 운용성이 기본적으로 보장되지 않음
    • 각 에디터는 지원하려는 에이전트마다 커스텀 통합을 구축해야 함
    • 에이전트는 특정 에디터 API를 구현해야 사용자에게 도달 가능
    • 이는 통합 오버헤드, 제한된 호환성, 개발자 종속성 문제를 초래
  • ACP의 해결책: ACP는 에이전트와 에디터 간 표준화된 프로토콜을 제공
    • ACP를 구현한 에이전트는 모든 호환 에디터에서 동작
    • ACP를 지원하는 에디터는 ACP 호환 에이전트 생태계 전체에 접근 가능
    • 독립적 혁신을 가능하게 하며, 개발자가 워크플로우에 최적화된 도구 선택 가능

ACP 개요

  • 운영 방식: 사용자가 주로 코드 에디터에서 작업하며, 특정 작업을 위해 에이전트를 호출
    • 에이전트는 에디터의 서브프로세스로 실행
    • JSON-RPC를 stdio를 통해 사용해 통신
  • 데이터 형식: MCP의 JSON 형식을 재사용하며, diff 표시와 같은 에이전트 코딩 UX 요소를 위한 커스텀 타입 포함
  • 텍스트 포맷: 사용자 가독성을 위해 마크다운 형식을 기본으로 사용
    • HTML 렌더링 없이도 풍부한 포맷팅 가능
  • 현재 프로토콜은 개발 중이나, 흥미로운 사용자 경험을 구축하기에 충분한 완성도 보유

현재 지원 현황

  • 에디터
    • Zed: 공식 문서를 통해 ACP 지원
    • Neovim: CodeCompanion 플러그인을 통해 ACP 통합
    • 추가 에디터 지원 예정
  • 에이전트
    • Gemini: Gemini CLI를 통해 ACP 지원
    • 추가 에이전트 지원 예정

결론

  • ACP는 LSP의 성공 사례를 본떠, AI 코딩 에이전트와 에디터 간의 상호 운용성을 혁신적으로 개선
  • 개발자는 특정 에이전트나 에디터에 종속되지 않고, 최적의 도구 조합을 자유롭게 선택 가능
  • 프로토콜의 확장은 생태계 확장성을 높이며, 개발자 워크플로우의 효율성과 유연성을 증대 가능

See also

Favorite site