acp

OpenClaw Gateway와 통신하는 ACP (Agent Client Protocol) 브리지를 실행합니다.

이 명령은 IDE를 위해 stdio를 통해 ACP를 처리하고, WebSocket을 통해 Gateway로 프롬프트를 전달합니다. ACP 세션을 Gateway 세션 키에 매핑합니다.

사용법

openclaw acp

# 원격 Gateway
openclaw acp --url wss://gateway-host:18789 --token <token>

# 기존 세션 키에 연결
openclaw acp --session agent:main:main

# 레이블로 연결 (이미 존재해야 함)
openclaw acp --session-label "support inbox"

# 첫 프롬프트 전에 세션 키 리셋
openclaw acp --session agent:main:main --reset-session

ACP 클라이언트 (디버그)

IDE 없이 브리지를 테스트하려면 내장 ACP 클라이언트를 사용하세요. ACP 브리지를 실행하고 대화형으로 프롬프트를 입력할 수 있습니다.

openclaw acp client

# 생성된 브리지를 원격 Gateway로 지정
openclaw acp client --server-args --url wss://gateway-host:18789 --token <token>

# 서버 명령 재정의 (기본값: openclaw)
openclaw acp client --server "node" --server-args openclaw.mjs acp --url ws://127.0.0.1:19001

사용 방법

IDE(또는 다른 클라이언트)가 Agent Client Protocol을 사용하고 OpenClaw Gateway 세션을 구동하려는 경우 ACP를 사용합니다.

  1. Gateway가 실행 중인지 확인합니다 (로컬 또는 원격).
  2. Gateway 대상을 구성합니다 (config 또는 플래그).
  3. IDE가 stdio를 통해 openclaw acp를 실행하도록 설정합니다.

예시 구성 (영구 저장):

openclaw config set gateway.remote.url wss://gateway-host:18789
openclaw config set gateway.remote.token <token>

예시 직접 실행 (config 기록 없음):

openclaw acp --url wss://gateway-host:18789 --token <token>

에이전트 선택

ACP는 에이전트를 직접 선택하지 않습니다. Gateway 세션 키로 라우팅합니다.

특정 에이전트를 대상으로 하려면 에이전트 범위 세션 키를 사용하세요:

openclaw acp --session agent:main:main
openclaw acp --session agent:design:main
openclaw acp --session agent:qa:bug-123

각 ACP 세션은 단일 Gateway 세션 키에 매핑됩니다. 하나의 에이전트가 여러 세션을 가질 수 있습니다. ACP는 키나 레이블을 재정의하지 않는 한 격리된 acp:<uuid> 세션을 기본으로 사용합니다.

Zed 편집기 설정

~/.config/zed/settings.json에 커스텀 ACP 에이전트를 추가하거나 Zed의 Settings UI를 사용하세요:

{
  "agent_servers": {
    "OpenClaw ACP": {
      "type": "custom",
      "command": "openclaw",
      "args": ["acp"],
      "env": {}
    }
  }
}

특정 Gateway 또는 에이전트를 대상으로 하려면:

{
  "agent_servers": {
    "OpenClaw ACP": {
      "type": "custom",
      "command": "openclaw",
      "args": [
        "acp",
        "--url", "wss://gateway-host:18789",
        "--token", "<token>",
        "--session", "agent:design:main"
      ],
      "env": {}
    }
  }
}

Zed에서 Agent 패널을 열고 "OpenClaw ACP"를 선택하여 스레드를 시작합니다.

세션 매핑

기본적으로 ACP 세션은 acp: 접두사가 있는 격리된 Gateway 세션 키를 얻습니다. 알려진 세션을 재사용하려면 세션 키 또는 레이블을 전달하세요:

  • --session <key>: 특정 Gateway 세션 키 사용.
  • --session-label <label>: 기존 세션을 레이블로 찾기.
  • --reset-session: 해당 키에 대한 새 세션 id 생성 (같은 키, 새 대화 기록).

ACP 클라이언트가 메타데이터를 지원하는 경우 세션별로 재정의할 수 있습니다:

{
  "_meta": {
    "sessionKey": "agent:main:main",
    "sessionLabel": "support inbox",
    "resetSession": true
  }
}

세션 키에 대한 자세한 내용은 /concepts/session을 참조하세요.

옵션

  • --url <url>: Gateway WebSocket URL (구성된 경우 gateway.remote.url이 기본값).
  • --token <token>: Gateway 인증 토큰.
  • --password <password>: Gateway 인증 비밀번호.
  • --session <key>: 기본 세션 키.
  • --session-label <label>: 찾을 기본 세션 레이블.
  • --require-existing: 세션 키/레이블이 존재하지 않으면 실패.
  • --reset-session: 첫 사용 전에 세션 키 리셋.
  • --no-prefix-cwd: 프롬프트에 작업 디렉토리 접두사를 붙이지 않음.
  • --verbose, -v: stderr로 상세 로깅.

acp client 옵션

  • --cwd <dir>: ACP 세션의 작업 디렉토리.
  • --server <command>: ACP 서버 명령 (기본값: openclaw).
  • --server-args <args...>: ACP 서버에 전달할 추가 인수.
  • --server-verbose: ACP 서버에서 상세 로깅 활성화.
  • --verbose, -v: 클라이언트 상세 로깅.