openclaw acp obsługuje ACP przez standardowe wejście i wyjście dla środowisk IDE oraz przekazuje monity do Gateway przez WebSocket, zachowując mapowanie sesji ACP na klucze sesji Gateway. Jest to most ACP oparty na Gateway, a nie kompletne środowisko wykonawcze edytora natywnie obsługujące ACP: koncentruje się na trasowaniu sesji, dostarczaniu monitów i strumieniowym przesyłaniu aktualizacji.
Jeśli chcesz, aby zewnętrzny klient MCP komunikował się bezpośrednio z konwersacjami w kanałach OpenClaw, zamiast hostować sesję środowiska ACP, użyj openclaw mcp serve.
Czym to nie jest
openclaw acp oznacza, że OpenClaw działa jako serwer ACP: środowisko IDE lub klient ACP łączy się z OpenClaw, a OpenClaw przekazuje zadania do sesji Gateway.
Różni się to od agentów ACP, gdzie OpenClaw uruchamia zewnętrzne środowisko, takie jak Codex lub Claude Code, za pośrednictwem acpx.
Prosta zasada:
- edytor lub klient chce komunikować się z OpenClaw przez ACP: użyj
openclaw acp - OpenClaw ma uruchamiać Codex/Claude/Gemini jako środowisko ACP: użyj
/acp spawnoraz agentów ACP
Macierz zgodności
Znane ograniczenia
loadSessionodtwarza pełną historię dziennika zdarzeń ACP tylko dla sesji utworzonych przez most. Starsze sesje lub sesje bez dziennika korzystają z awaryjnego zapisu transkrypcji i nie odtwarzają historycznych wywołań narzędzi ani komunikatów systemowych.- Jeśli wiele klientów ACP współdzieli ten sam klucz sesji Gateway, trasowanie zdarzeń i anulowań działa w miarę możliwości, zamiast zapewniać ścisłą izolację poszczególnych klientów. Gdy potrzebujesz czystych tur lokalnych dla edytora, preferuj domyślne izolowane sesje
acp-bridge:<uuid>. - Stany zatrzymania Gateway są przekształcane w przyczyny zatrzymania ACP, ale to mapowanie jest mniej szczegółowe niż w przypadku w pełni natywnego środowiska ACP.
- Opcje sterowania sesją udostępniają ograniczony podzbiór ustawień Gateway: poziom namysłu, szczegółowość narzędzi, rozumowanie, szczegóły użycia i działania z podwyższonymi uprawnieniami. Wybór modelu i sterowanie hostem wykonawczym nie są udostępniane jako opcje konfiguracji ACP.
session_info_updateiusage_updatesą wyprowadzane z migawek sesji Gateway, a nie z bieżących danych rozliczeniowych natywnego środowiska ACP. Dane o użyciu są przybliżone, nie zawierają informacji o kosztach i są emitowane tylko wtedy, gdy Gateway oznaczy łączne dane o tokenach jako aktualne.- Dane towarzyszące działaniu narzędzi są udostępniane w miarę możliwości: most ujawnia ścieżki plików występujące w znanych argumentach lub wynikach narzędzi, ale nie emituje terminali ACP ani ustrukturyzowanych różnic w plikach.
- Przekazywanie zatwierdzeń wykonywania poleceń jest ograniczone do aktywnej tury monitu ACP; zatwierdzenia z innych sesji Gateway są ignorowane.
Użycie
Klient ACP (diagnostyka)
Użyj wbudowanego klienta ACP, aby przeprowadzić podstawową kontrolę mostu bez środowiska IDE. Uruchamia on most ACP i umożliwia interaktywne wpisywanie monitów.- Automatyczne zatwierdzanie opiera się na liście dozwolonych elementów i dotyczy wyłącznie zaufanych identyfikatorów podstawowych narzędzi.
- Automatyczne zatwierdzanie
readjest ograniczone do bieżącego katalogu roboczego (--cwd, jeśli ustawiono). - ACP automatycznie zatwierdza tylko wąskie klasy operacji wyłącznie do odczytu: ograniczone wywołania
readw aktywnym katalogu roboczym oraz narzędzia wyszukiwania wyłącznie do odczytu (search,web_search,memory_search). Nieznane lub niepodstawowe narzędzia, odczyty spoza zakresu, narzędzia umożliwiające wykonywanie poleceń, narzędzia płaszczyzny sterowania, narzędzia modyfikujące oraz interaktywne przepływy zawsze wymagają jawnego zatwierdzenia monitu. - Wartość
toolCall.kinddostarczana przez serwer jest traktowana jako niezaufane metadane, a nie jako źródło autoryzacji. - Ta polityka mostu ACP jest niezależna od uprawnień środowiska ACPX. Jeśli uruchamiasz OpenClaw za pośrednictwem mechanizmu
acpx, ustawienieplugins.entries.acpx.config.permissionMode=approve-alljest awaryjnym przełącznikiem „zatwierdź wszystko” dla tej sesji środowiska.
Test dymny protokołu
Aby diagnozować problemy na poziomie protokołu, uruchom Gateway z izolowanym stanem i sterujopenclaw acp przez standardowe wejście i wyjście za pomocą klienta ACP JSON-RPC. Uwzględnij initialize, session/new, session/list z bezwzględną ścieżką cwd, session/resume, session/close, ponowne zamknięcie oraz wznowienie nieistniejącej sesji.
Dowód powinien obejmować ogłoszone możliwości cyklu życia, rekord sesji oparty na Gateway, powiadomienia o aktualizacjach oraz dziennik sessions.list Gateway:
openclaw gateway call sessions.list jako jedynego dowodu działania ACP. Ta ścieżka CLI może zażądać rozszerzenia zakresu operatora za pomocą nowego tokenu; poprawność mostu ACP potwierdzają ramki ACP przesyłane przez standardowe wejście i wyjście oraz dziennik sessions.list Gateway.
Jak tego używać
Użyj ACP, gdy środowisko IDE lub inny klient obsługuje Agent Client Protocol i chcesz, aby sterował sesją Gateway OpenClaw.- Upewnij się, że Gateway działa lokalnie lub zdalnie.
- Skonfiguruj docelowy Gateway za pomocą konfiguracji lub flag.
- Skonfiguruj środowisko IDE tak, aby uruchamiało
openclaw acpprzez standardowe wejście i wyjście.
Wybieranie agentów
ACP nie wybiera agentów bezpośrednio. Trasuje dane na podstawie klucza sesji Gateway. Aby wskazać konkretnego agenta, użyj kluczy sesji powiązanych z agentem:acp-bridge:<uuid>, chyba że zastąpisz klucz lub etykietę.
mcpServers dla poszczególnych sesji nie są obsługiwane w trybie mostu. Jeśli klient ACP wyśle je podczas newSession lub loadSession, most zwróci jednoznaczny błąd, zamiast po cichu je ignorować.
Jeśli chcesz, aby sesje oparte na ACPX miały dostęp do narzędzi pluginów OpenClaw lub wybranych narzędzi wbudowanych, takich jak cron, włącz mosty ACPX MCP po stronie Gateway, zamiast próbować przekazywać mcpServers dla poszczególnych sesji. Zobacz Agenci ACP oraz Most MCP narzędzi OpenClaw.
Używanie z poziomu acpx (Codex, Claude i inni klienci ACP)
Jeśli chcesz, aby agent programistyczny, taki jak Codex lub Claude Code, komunikował się z Twoim botem OpenClaw przez ACP, użyj acpx z wbudowanym celem openclaw.
Typowy przebieg:
- Uruchom Gateway i upewnij się, że most ACP może się z nim połączyć.
- Skieruj
acpx openclawdoopenclaw acp. - Wskaż klucz sesji OpenClaw, którego ma używać agent programistyczny.
acpx openclaw za każdym razem korzystał z określonego Gateway i klucza sesji, zastąp polecenie agenta openclaw w pliku ~/.acpx/config.json:
Konfiguracja edytora Zed
Dodaj niestandardowego agenta ACP w pliku~/.config/zed/settings.json (lub użyj interfejsu Settings w Zed):
Mapowanie sesji
Domyślnie sesje mostu ACP otrzymują izolowany klucz sesji Gateway z prefiksemacp-bridge:. Te sesje mostu korzystające ze zwykłego modelu są syntetyczne i jednorazowe: podlegają usuwaniu nieaktualnych wpisów i nie są traktowane jako chronione miejsca rozmów z użytkownikami. Aby ponownie użyć znanej sesji, przekaż klucz lub etykietę sesji:
--session <key>: użyj określonego klucza sesji Gateway.--session-label <label>: znajdź istniejącą sesję według etykiety.--reset-session: wygeneruj nowy identyfikator sesji dla tego klucza (ten sam klucz, nowy zapis rozmowy).
Opcje
--url <url>: adres URL WebSocket Gateway (domyślniegateway.remote.url, jeśli jest skonfigurowany).--token <token>: token uwierzytelniający Gateway.--token-file <path>: odczytaj token uwierzytelniający Gateway z pliku.--password <password>: hasło uwierzytelniające Gateway.--password-file <path>: odczytaj hasło uwierzytelniające Gateway z pliku.--session <key>: domyślny klucz sesji.--session-label <label>: domyślna etykieta sesji do wyszukania.--require-existing: zakończ niepowodzeniem, jeśli klucz lub etykieta sesji nie istnieją.--reset-session: zresetuj klucz sesji przed pierwszym użyciem.--no-prefix-cwd: nie poprzedzaj monitów katalogiem roboczym.--provenance <off|meta|meta+receipt>: dołącz metadane pochodzenia ACP lub potwierdzenia.--verbose, -v: szczegółowe rejestrowanie do stderr.
--tokeni--passwordmogą być widoczne na lokalnych listach procesów w niektórych systemach. Preferuj--token-file/--password-filelub zmienne środowiskowe (OPENCLAW_GATEWAY_TOKEN,OPENCLAW_GATEWAY_PASSWORD).- Ustalanie danych uwierzytelniających Gateway odbywa się zgodnie ze wspólną umową używaną przez innych klientów Gateway:
- tryb lokalny: zmienne środowiskowe (
OPENCLAW_GATEWAY_*), następniegateway.auth.*, z przejściem awaryjnym dogateway.remote.*tylko wtedy, gdygateway.auth.*nie jest ustawione (skonfigurowany, ale nierozwiązany lokalny SecretRef powoduje bezpieczne niepowodzenie zamiast cichego przejścia awaryjnego) - tryb zdalny:
gateway.remote.*z przejściem awaryjnym do zmiennych środowiskowych lub konfiguracji zgodnie z regułami pierwszeństwa trybu zdalnego --urlmożna bezpiecznie zastąpić i nie powoduje ponownego użycia niejawnych danych uwierzytelniających z konfiguracji ani zmiennych środowiskowych; przekaż jawne--token/--password(lub ich warianty plikowe)
- tryb lokalny: zmienne środowiskowe (
Opcje acp client
--cwd <dir>: katalog roboczy sesji ACP.--server <command>: polecenie serwera ACP (domyślnie:openclaw).--server-args <args...>: dodatkowe argumenty przekazywane do serwera ACP.--server-verbose: włącz szczegółowe rejestrowanie na serwerze ACP.--verbose, -v: szczegółowe rejestrowanie klienta.openclaw acp clientustawiaOPENCLAW_SHELL=acp-clientw uruchomionym procesie mostu, co można wykorzystać w regułach powłoki lub profilu zależnych od kontekstu.