agentclientprotocol/agent-client-protocol

A protocol for connecting any editor to any agent

Agent Client Protocol (ACP)

무엇인가요 – ACP는 표준화되고 언어에 의존하지 않는 프로토콜로, 코드 에디터코드 에이전트 (생성형 AI를 사용해 소스 코드를 자동으로 읽고 쓰고 리팩터링하는 프로그램)와 통신할 수 있게 해줍니다. 이 프로토콜은 양측 사이를 오가는 JSON-RPC 스타일 메시지(요청, 응답, 알림)를 정의하며, 버전 협상 기능을 포함하여 에디터와 에이전트가 서로를 깨뜨리지 않고 진화할 수 있도록 합니다.

왜 중요한가요 – AI 기반의 '페어 프로그래밍' 도구(예: GitHub Copilot, Cursor, Code Llama 기반 보조자)가 늘어나면서 각 벤더는 과거에 독자적인 임시방편 API를 만들었습니다. ACP는 공통 계약을 제공하여 다음과 같은 가능성을 열어줍니다:

  • 에디터는 단일 통합 레이어로 여러 에이전트를 지원할 수 있습니다.
  • 에이전트는 한 번 작성하면 ACP를 구현한 어떤 에디터에서도 실행할 수 있습니다.
  • 여러 언어의 SDK는 동일한 JSON-Schema 정의에서 타입 안전한 클라이언트/에이전트 코드를 생성할 수 있습니다.

핵심 아티팩트

  • Rust crate agent-client-protocol-schema – 와이어 포맷(메시지, 래퍼, 버전 정보)을 반영한 저수준 Rust 타입입니다. 스키마에 직접 접근하거나 다른 언어용 코드를 생성할 때 사용합니다.
  • Rust crate agent-client-protocol – 클라이언트 및 에이전트 측을 구현하는 고수준 런타임으로, 연결 설정, 메시지 라우팅, 기능 협상 등을 처리합니다.
  • JSON-Schema 파일 – 버전화된 스키마는 schema/v1/schema/v2/에 위치합니다. 각 릴리스는 .json 파일을 GitHub 아티팩트로 포함하며, SDK 생성기(Kotlin, Java, Python, TypeScript 등)가 언어별 라이브러리를 생성할 때 사용합니다.

버전 관리 모델

  • 프로토콜 버전 (현재 1)은 initialize 요청의 protocolVersion 필드를 통해 런타임에서 협상됩니다. 이는 교환 가능한 메시지의 구조를 결정합니다.
  • 크레이트스키마의 릴리스 번호는 와이어 호환성과 독립적입니다. 이들은 Rust API나 JSON-Schema 파일의 레이아웃 변경만을 반영합니다. 호환성은 협상된 프로토콜 버전과 양측이 광고하는 기능에 의해 결정됩니다.

공식 SDK

언어 리포지토리 주요 기능
Kotlin acp-kotlin JVM 지원, 샘플 클라이언트/에이전트 프로젝트
Java java-sdk Maven/Gradle 아티팩트, 예제
Python python-sdk pip 패키지, 빠른 시작 스크립트
Rust agent-client-protocol Crates.io 패키지, 예제 agent.rs / client.rs
TypeScript @agentclientprotocol/sdk npm 패키지, 브라우저 및 Node 예제

일반적인 워크플로우

  1. 에디터 또는 에이전트 구현에 맞는 언어 SDK를 선택합니다.
  2. SDK를 생성하거나 가져옵니다(대부분 crates.io, Maven Central, PyPI, npm 등에 게시됨).
  3. 에디터 측 클라이언트를 구현: codeChange, applyEdits와 같은 알림을 등록하고 generateCode 또는 refactor와 같은 요청을 보냅니다.
  4. 에이전트 측을 구현: 요청을 수신하고 생성형 AI 모델을 호출한 후 편집 내용이나 진단 정보를 응답합니다.
  5. initialize 교환 중 기능을 협상하여 양측이 어떤 선택적 메시지를 지원하는지 파악합니다.

시작하기

  • Rust: cargo add agent-client-protocolrust-sdk/examples/의 예제를 실행하여 stdin/stdout를 통해 최소한의 클라이언트와 에이전트가 통신하는 모습을 확인합니다.
  • Python: pip install agentclientprotocol → Python SDK 리포지토리의 examples/ 폴더를 따라갑니다.
  • Java/Kotlin/TypeScript: 해당 SDK 리포지토리를 클론하고 표준 툴체인으로 빌드한 후 제공된 샘플 프로젝트를 실행합니다.

커뮤니티 및 기여

  • 프로토콜은 의도적으로 오픈되어 있습니다. GitHub 이슈 트래커와 CONTRIBUTING.md에 설명된 공식 기여 프로세스를 통해 확장 제안이 가능합니다.
  • CLA는 필요 없으며, 기여는 Apache 2.0 라이선스 하에 이루어집니다.
  • 커뮤니티 유지 관리 라이브러리 목록은 공식 웹사이트에서 확인할 수 있습니다.

누가 관심을 가져야 할까요

  • AI 코드 어시스턴트를 즉시 추가할 수 있는 에디터 개발자(VS Code, JetBrains, Neovim 등).
  • 여러 개발 환경에서 사용 가능한 서비스를 만들고 싶은 AI 에이전트 개발자.
  • AI 에이전트에 의해 제어되는 코드 분석, 린트, 리팩터링 유틸리티를 만드는 도구 개발자.

TL;DR – ACP는 코드 에디터와 생성형 AI 기반 코드 에이전트가 JSON-RPC 메시지를 교환하는 방식을 표준화하는 크로스 랭귀지 프로토콜입니다. 이 리포지토리는 공식적인 Rust 스키마 크레이트, 버전화된 JSON-Schema 파일, 그리고 Kotlin, Java, Python, Rust, TypeScript의 공식 SDK 링크를 포함하며, AI 지원 프로그래밍을 위한 통합 생태계를 가능하게 합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트