AI AI Assistant Tutorials

IntelliJ IDEA에서 ACP로 AI 에이전트 활용하기

Read this post in other languages:

Agent Client Protocol(ACP)은 IntelliJ IDEA와 같은 클라이언트와 에이전트가 서로 통신하기 위한 공통 규약을 정의합니다. IntelliJ IDEA에는 이미 Codex, Claude Agent, Junie 등 여러 ACP 호환 에이전트가 기본 제공됩니다. 이렇게 번들로 포함된 에이전트 외에도 ACP 레지스트리를 통해 추가 에이전트를 사용할 수 있으며, 내부 에이전트나 번들에 없는 에이전트를 acp.json으로 등록할 수 있습니다.

여기서 핵심 아이디어는 경계입니다. IntelliJ IDEA는 프로젝트를 탐색하고, 코드를 살펴보고, 변경 사항을 검토하는 환경으로 유지됩니다. ACP 연결의 반대편에서는 각 에이전트가 자체 모델, 동작 방식, 인증 체계 및 에이전트 측 도구를 그대로 유지합니다.

따라서 교체 가능한 단위는 LLM보다 더 큽니다. ACP 호환 에이전트에는 계획 로직, 도구, 모델 라우팅 동작 및 관측 가능성 등의 모델 관련 기능이 모두 포함됩니다. ACP가 IDE와 에이전트 사이의 경계를 표준화하므로 IntelliJ IDEA의 에이전트 통합 방식을 변경하지 않고도 한 에이전트에서 다른 에이전트로 원활하게 전환할 수 있습니다.

한눈에 보는 ACP

ACP는 흔히 코딩 에이전트를 위한 언어 서버 프로토콜(LSP)에 비유됩니다. 두 기술이 해결하려는 통합 문제가 비슷하기 때문입니다.

LSP가 등장하기 전에는 언어 하나를 지원할 때마다 별도의 에디터 통합을 구현해야 했습니다. LSP는 이러한 복잡한 조합을 하나의 공통 규약으로 대체했습니다.

ACP는 같은 접근 방식을 에디터 또는 IDE와 코딩 에이전트 간의 연결에 적용합니다. 따라서 ACP 호환 에이전트라면 조합마다 별도의 전용 플러그인이나 비공개 API를 만들지 않아도 연결할 수 있습니다.

ACP는 JetBrains와 Zed의 협업으로 탄생했으며, 처음부터 JetBrains IDE와 Zed 모두를 클라이언트로 삼는 것을 목표로 했습니다.

로컬 에이전트를 사용할 때 IntelliJ IDEA는 하위 프로세스를 실행하고 표준 입출력을 통한 JSON-RPC로 에이전트와 통신합니다. 초기화 과정에서 IDE와 에이전트는 프로토콜 버전과 기능을 협의합니다. 연결이 완료되면 프롬프트가 에이전트로 전달되고, 진행 상황 업데이트, 파일 작업, 권한 요청은 다시 IDE로 전달됩니다.

물론 동일한 공통 규약을 사용하더라도 에이전트마다 동작 방식은 다를 수 있습니다. 각 에이전트는 초기화 과정에서 자신이 지원하는 선택적 기능을 선언합니다. 계획, 모드, 슬래시 명령어, 세션 불러오기, 터미널 작업 및 기타 기능은 에이전트마다 다를 수 있습니다.

ACP는 IntelliJ IDEA와 에이전트 사이의 상호 작용을 전달합니다. 한편 사용자가 구성한 서버와 통합 IntelliJ MCP 서버를 비롯한 추가 도구와 컨텍스트는 모델 컨텍스트 프로토콜(MCP)을 통해 에이전트에 제공할 수 있습니다.

사용 가능한 에이전트로 시작하기

IntelliJ IDEA에는 Codex, Claude Agent, Junie를 비롯해 별도의 ACP 구성 없이 바로 사용할 수 있는 여러 에이전트가 기본 제공됩니다. 에이전트를 하나 선택하고 처리할 작업을 설명하세요.

에이전트마다 고유한 워크플로 스타일이 있으며, 여기에는 계획 모드나 슬래시 명령어, 특정 인증 절차 등이 포함될 수 있습니다. ACP를 사용하면 이러한 차이를 유지하면서 IntelliJ IDEA가 공통 규약을 통해 에이전트와의 상호 작용을 호스팅할 수 있습니다.

에이전트에게 간단한 변경 작업을 요청해 보세요. 그러면 에이전트가 파일 편집을 완료하면 AI Chat 대화에 변경된 파일이 표시됩니다. 파일을 클릭하면 채팅 옆 에디터에서 diff가 열려 정확히 어떤 부분이 변경되었는지 바로 검토할 수 있습니다.

여기서 중요한 부분은 바로 이 편집과 검토의 반복 과정입니다. 나중에 다른 에이전트로 전환하더라도 이 과정이 IDE 안에서 이루어지므로 프로젝트를 다른 곳으로 옮기거나 별도 도구에서 변경 사항을 검토할 필요가 없습니다.

ACP 레지스트리에서 에이전트 설치하기

ACP 레지스트리에는 추가 ACP 호환 에이전트와 IntelliJ IDEA에서 해당 에이전트를 설치하는 데 필요한 메타데이터가 포함되어 있습니다.

IntelliJ IDEA에서 Settings(설정) | Tools(도구) | AI Assistant | Agents(에이전트)를 연 다음 레지스트리에서 에이전트를 선택합니다. 전체 설치 절차는 현재 ACP 문서에 설명되어 있습니다.

에이전트 구성 화면에서는 AI Assistant에 구성된 MCP 서버, 통합 IntelliJ MCP 서버 또는 둘 모두를 제공할 수도 있습니다.

사용자가 설정을 적용하면 IntelliJ IDEA가 에이전트 파일을 다운로드합니다. 첫 번째 세션에서는 해당 에이전트가 지원하는 방법을 사용하여 인증하라는 메시지가 표시될 수 있습니다.

레지스트리는 업데이트 및 제거에 사용되는 메타데이터도 제공합니다. 이러한 작업은 Agents(에이전트) 설정에서 계속 처리되므로 에이전트를 추가하기 위해 별도의 IDE 플러그인을 관리할 필요가 없습니다.

각 레지스트리 에이전트에는 자체 라이선스, 서비스, 자격 증명 및 개인정보 보호 약관이 그대로 적용됩니다. 저장소 액세스 권한을 부여하기 전에 이러한 세부 정보를 확인하세요.

acp.json으로 사용자 지정 에이전트 연결하기

레지스트리 에이전트는 광범위한 배포를 목적으로 합니다. 반면 사내 에이전트는 역할이 더 제한적인 경우가 많으며 회사 내부에서만 사용해야 합니다.

사내 에이전트가 ACP를 구현하는 경우, 에이전트를 ~/.jetbrains/acp.json에 등록합니다. IntelliJ IDEA에서 이 파일을 생성하고 여는 Add Custom Agent(사용자 지정 에이전트 추가) 액션을 이용할 수도 있지만, 파일을 직접 편집할 수도 있습니다.

아래 구성은 가상의 사내 마이그레이션 에이전트를 등록합니다.

{
  "agent_servers": {
    "Company Migration Agent": {
      "command": "/opt/company/bin/migration-agent",
      "args": ["acp"]
    }
  }
}

agent_servers 아래의 각 키가 에이전트의 표시 이름이 됩니다. command 값에는 IntelliJ IDEA가 실행할 실행 파일의 전체 경로가 포함되어야 합니다. 해당 에이전트의 ACP 모드를 활성화하는 데 필요한 인수를 args에 지정합니다. 정확한 값은 해당 에이전트의 문서에서 확인할 수 있습니다.

프로세스에 환경 변수가 필요한 경우 env를 사용합니다. 대부분의 에이전트는 먼저 자체 CLI를 통해 인증한 후 에이전트의 사용자 구성에 저장된 자격 증명을 재사용해야 합니다. 에이전트가 env를 통해 API 키를 받는 경우 해당 문서를 따르고, 파일이나 비밀 정보를 저장소에 커밋하지 않도록 하세요.

acp.json을 저장한 후 IntelliJ IDEA에서 구성한 에이전트를 선택합니다.

컴퓨터에 이미 설치된 ACP 호환 에이전트가 있다면 IDE가 이를 자동으로 탐지하여 구성에 추가하는 방법을 제공합니다.

여러 에이전트를 사용하는 이유

팀에서는 작업의 성격에 따라 각기 다른 에이전트를 활용할 수 있습니다. ACP는 이러한 에이전트가 IntelliJ IDEA에 연결할 수 있는 공통 방식을 제공합니다.

  • ACP 호환 에이전트를 `acp.json`으로 연결하면 별도의 IntelliJ IDEA 플러그인을 개발하고 유지 관리할 필요가 없습니다.
  • 탐색, 편집, diff 검토는 IntelliJ IDEA에서 그대로 이루어지며, 개발자는 작업에 사용할 에이전트를 선택할 수 있습니다.
  • 특정 에이전트의 서비스나 모델 공급자를 사용할 수 없더라도, 개발자는 구성해 둔 다른 에이전트로 전환해 동일한 IntelliJ IDEA 프로젝트에서 작업을 이어갈 수 있습니다.

IDE는 그대로, 에이전트는 선택

IntelliJ IDEA에서 이미 사용할 수 있는 에이전트를 사용하거나, ACP 레지스트리의 에이전트를 설치하거나, acp.json을 통해 사내 에이전트를 등록할 수 있습니다.

ACP를 사용하면 특정 IDE에 종속되는 일 없이 코딩 에이전트를 언제든지 교체할 수 있습니다.

게시물 원문 작성자

Anton Arhipov

Anton Arhipov

Discover more