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 예제 |
일반적인 워크플로우
- 에디터 또는 에이전트 구현에 맞는 언어 SDK를 선택합니다.
- SDK를 생성하거나 가져옵니다(대부분 crates.io, Maven Central, PyPI, npm 등에 게시됨).
- 에디터 측 클라이언트를 구현:
codeChange,applyEdits와 같은 알림을 등록하고generateCode또는refactor와 같은 요청을 보냅니다. - 에이전트 측을 구현: 요청을 수신하고 생성형 AI 모델을 호출한 후 편집 내용이나 진단 정보를 응답합니다.
initialize교환 중 기능을 협상하여 양측이 어떤 선택적 메시지를 지원하는지 파악합니다.
시작하기
- Rust:
cargo add agent-client-protocol→rust-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 지원 프로그래밍을 위한 통합 생태계를 가능하게 합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트