openclaw acp — це ACP-міст на базі Gateway, а не повноцінне редакторське
середовище виконання, нативне для ACP. Він зосереджений на маршрутизації сесій,
доставці промптів і базових потокових оновленнях.
Якщо ви хочете, щоб зовнішній MCP-клієнт напряму взаємодіяв із розмовами
каналів OpenClaw, а не розміщував сесію ACP-харнеса, натомість використовуйте
openclaw mcp serve.
Чим це не є
Цю сторінку часто плутають із сесіями ACP-харнеса.openclaw acp означає:
- OpenClaw працює як ACP-сервер
- IDE або ACP-клієнт підключається до OpenClaw
- OpenClaw пересилає цю роботу в сесію Gateway
acpx.
Коротке правило:
- редактор/клієнт хоче спілкуватися з OpenClaw через ACP: використовуйте
openclaw acp - OpenClaw має запускати Codex/Claude/Gemini як ACP-харнес: використовуйте
/acp spawnі ACP Agents
Матриця сумісності
| Область ACP | Стан | Примітки |
|---|---|---|
initialize, newSession, prompt, cancel | Реалізовано | Основний потік моста через stdio до Gateway chat/send + abort. |
listSessions, slash-команди | Реалізовано | Список сесій працює зі станом сесій Gateway із обмеженою курсорною пагінацією та фільтруванням за cwd, коли рядки сесій Gateway містять метадані робочого простору; команди оголошуються через available_commands_update. |
| Метадані походження сесії | Реалізовано | Списки сесій і знімки інформації про сесію містять батьківське й дочірнє походження OpenClaw у _meta, щоб ACP-клієнти могли відображати графи субагентів без приватних побічних каналів Gateway. |
resumeSession, closeSession | Реалізовано | Відновлення повторно прив’язує ACP-сесію до наявної сесії Gateway без повторного відтворення історії. Закриття скасовує активну роботу моста, завершує очікувані промпти як скасовані та звільняє стан сесії моста. |
loadSession | Частково | Повторно прив’язує ACP-сесію до ключа сесії Gateway і відтворює історію журналу ACP-подій для сесій, створених мостом. Старі сесії або сесії без журналу повертаються до збереженого тексту користувача/асистента. |
Вміст промпта (text, вбудований resource, зображення) | Частково | Текст/ресурси сплющуються у вхід чату; зображення стають вкладеннями Gateway. |
| Режими сесії | Частково | session/set_mode підтримується, а міст надає початкові елементи керування сесією на базі Gateway для рівня думок, докладності інструментів, міркування, деталізації використання та підвищених дій. Ширші нативні для ACP поверхні режимів/конфігурації поки що поза межами scope. |
| Інформація про сесію та оновлення використання | Частково | Міст надсилає сповіщення session_info_update і best-effort usage_update зі збережених у кеші знімків сесій Gateway. Використання приблизне й надсилається лише тоді, коли загальні дані токенів Gateway позначені як свіжі. |
| Потокове передавання інструментів | Частково | Події tool_call / tool_call_update містять raw I/O, текстовий вміст і best-effort розташування файлів, коли аргументи/результати інструментів Gateway їх надають. Вбудовані термінали та багатший diff-нативний вивід досі не надаються. |
| Схвалення exec | Частково | Запити на схвалення Gateway exec під час активних ACP-ходів промпта передаються ACP-клієнту через session/request_permission. |
MCP-сервери для окремої сесії (mcpServers) | Не підтримується | Режим моста відхиляє запити MCP-сервера для окремої сесії. Налаштуйте MCP на шлюзі OpenClaw або агенті натомість. |
Методи файлової системи клієнта (fs/read_text_file, fs/write_text_file) | Не підтримується | Міст не викликає методи файлової системи ACP-клієнта. |
Методи термінала клієнта (terminal/*) | Не підтримується | Міст не створює термінали ACP-клієнта й не передає ідентифікатори терміналів через виклики інструментів. |
| Плани сесій / потокове передавання думок | Не підтримується | Наразі міст надсилає текст виводу та стан інструментів, а не ACP-плани чи оновлення думок. |
Відомі обмеження
loadSessionможе відтворити повну історію журналу ACP-подій лише для сесій, створених мостом. Старі сесії або сесії без журналу й далі використовують резервний transcript і не відновлюють історичні виклики інструментів чи системні повідомлення.- Якщо кілька ACP-клієнтів використовують той самий ключ сесії Gateway, маршрутизація
подій і скасувань є best-effort, а не суворо ізольованою для кожного клієнта.
Віддавайте перевагу типовим ізольованим сесіям
acp-bridge:<uuid>, коли потрібні чисті локальні для редактора ходи. - Стани зупинки Gateway перекладаються в причини зупинки ACP, але це зіставлення менш виразне, ніж у повністю нативному для ACP середовищі виконання.
- Початкові елементи керування сесією наразі показують сфокусовану підмножину налаштувань Gateway: рівень думок, докладність інструментів, міркування, деталізацію використання та підвищені дії. Вибір моделі й елементи керування exec-хостом ще не надаються як параметри конфігурації ACP.
session_info_updateіusage_updateотримуються зі знімків сесій Gateway, а не з live-обліку нативного для ACP середовища виконання. Використання є приблизним, не містить даних про вартість і надсилається лише тоді, коли Gateway позначає загальні дані токенів як свіжі.- Дані супроводу інструментів є best-effort. Міст може показувати шляхи файлів, які з’являються у відомих аргументах/результатах інструментів, але він ще не надсилає ACP-термінали або структуровані file diff.
- Ретрансляція схвалення exec обмежена активним ACP-ходом промпта; схвалення з інших сесій Gateway ігноруються.
Використання
ACP-клієнт (debug)
Використовуйте вбудований ACP-клієнт, щоб перевірити справність моста без IDE. Він запускає ACP-міст і дає змогу вводити промпти інтерактивно.- Автосхвалення базується на allowlist і застосовується лише до довірених ідентифікаторів основних інструментів.
- Автосхвалення
readобмежене поточним робочим каталогом (--cwd, якщо задано). - ACP автоматично схвалює лише вузькі readonly-класи: scoped-виклики
readу межах активного cwd плюс readonly-інструменти пошуку (search,web_search,memory_search). Невідомі/неосновні інструменти, читання поза scope, інструменти з можливістю exec, інструменти control-plane, інструменти, що змінюють стан, і інтерактивні потоки завжди потребують явного схвалення промпта. - Наданий сервером
toolCall.kindвважається недовіреними метаданими (не джерелом авторизації). - Ця політика ACP-моста відокремлена від дозволів ACPX-харнеса. Якщо ви запускаєте OpenClaw через backend
acpx,plugins.entries.acpx.config.permissionMode=approve-allє аварійним перемикачем “yolo” для цієї сесії харнеса.
Smoke-тестування протоколу
Для debug на рівні протоколу запустіть Gateway з ізольованим станом і керуйтеopenclaw acp через stdio за допомогою ACP JSON-RPC-клієнта. Покрийте initialize,
session/new, session/list з абсолютним cwd, session/resume,
session/close, повторне закриття та відсутнє відновлення.
Доказ має містити оголошені lifecycle-можливості, рядок сесії на базі Gateway,
сповіщення про оновлення та журнал Gateway sessions.list:
openclaw gateway call sessions.list як єдиного доказу ACP.
Цей CLI-шлях може запитати підвищення operator scope для fresh-token; коректність
ACP-моста доводиться кадрами ACP stdio плюс журналом Gateway sessions.list.
Як це використовувати
Використовуйте ACP, коли IDE (або інший клієнт) підтримує Agent Client Protocol, і ви хочете, щоб він керував сесією OpenClaw Gateway.- Переконайтеся, що Gateway запущено (локально або віддалено).
- Налаштуйте ціль Gateway (конфігурацією або прапорцями).
- Спрямуйте вашу IDE на запуск
openclaw acpчерез stdio.
Вибір агентів
ACP не вибирає агентів напряму. Він маршрутизує за ключем сесії Gateway. Використовуйте ключі сесій із scope агента, щоб націлитися на конкретного агента:acp-bridge:<uuid>, якщо ви не перевизначите
ключ або мітку.
Посеансові mcpServers не підтримуються в режимі мосту. Якщо клієнт ACP
надсилає їх під час newSession або loadSession, міст повертає чітку
помилку замість того, щоб мовчки їх ігнорувати.
Якщо ви хочете, щоб сеанси на базі ACPX бачили інструменти Plugin OpenClaw або вибрані
вбудовані інструменти, як-от cron, увімкніть ACPX MCP-мости на боці Gateway замість
спроб передавати посеансові mcpServers. Див.
Агенти ACP і
MCP-міст інструментів OpenClaw.
Використання з acpx (Codex, Claude, інші клієнти ACP)
Якщо ви хочете, щоб агент для програмування, як-от Codex або Claude Code, спілкувався з вашим
ботом OpenClaw через ACP, використовуйте acpx із його вбудованою ціллю openclaw.
Типовий процес:
- Запустіть Gateway і переконайтеся, що ACP-міст може до нього підключитися.
- Спрямуйте
acpx openclawнаopenclaw acp. - Укажіть ключ сеансу OpenClaw, який має використовувати агент для програмування.
acpx openclaw щоразу був спрямований на конкретний Gateway і ключ сеансу,
перевизначте команду агента openclaw у ~/.acpx/config.json:
Налаштування редактора Zed
Додайте власний агент ACP у~/.config/zed/settings.json (або скористайтеся UI налаштувань Zed):
Зіставлення сеансів
За замовчуванням сеанси ACP-мосту отримують ізольований ключ сеансу Gateway з префіксомacp-bridge:. Ці сеанси мосту звичайної моделі є синтетичними та
підпадають під очищення застарілих записів і обмеження кількості записів. Щоб повторно використати відомий сеанс,
передайте ключ або мітку сеансу:
--session <key>: використати конкретний ключ сеансу Gateway.--session-label <label>: знайти наявний сеанс за міткою.--reset-session: створити новий ідентифікатор сеансу для цього ключа (той самий ключ, нова стенограма).
Параметри
--url <url>: URL WebSocket Gateway (за замовчуваннямgateway.remote.url, якщо налаштовано).--token <token>: токен автентифікації Gateway.--token-file <path>: прочитати токен автентифікації Gateway з файлу.--password <password>: пароль автентифікації Gateway.--password-file <path>: прочитати пароль автентифікації Gateway з файлу.--session <key>: стандартний ключ сеансу.--session-label <label>: стандартна мітка сеансу для пошуку.--require-existing: завершитися помилкою, якщо ключ/мітка сеансу не існує.--reset-session: скинути ключ сеансу перед першим використанням.--no-prefix-cwd: не додавати робочий каталог як префікс до prompt.--provenance <off|meta|meta+receipt>: включати метадані або квитанції походження ACP.--verbose, -v: докладне логування до stderr.
--tokenі--passwordможуть бути видимі в локальних списках процесів у деяких системах.- Надавайте перевагу
--token-file/--password-fileабо змінним середовища (OPENCLAW_GATEWAY_TOKEN,OPENCLAW_GATEWAY_PASSWORD). - Розв’язання автентифікації Gateway дотримується спільного контракту, який використовують інші клієнти Gateway:
- локальний режим: env (
OPENCLAW_GATEWAY_*) ->gateway.auth.*-> fallback доgateway.remote.*лише колиgateway.auth.*не задано (налаштовані, але нерозв’язані локальні SecretRefs завершуються закритою помилкою) - віддалений режим:
gateway.remote.*із fallback env/config відповідно до правил пріоритету віддаленого режиму --urlбезпечно перевизначає значення й не повторно використовує неявні облікові дані config/env; передайте явні--token/--password(або файлові варіанти)
- локальний режим: env (
- Дочірні процеси backend ACP runtime отримують
OPENCLAW_SHELL=acp, що можна використовувати для правил shell/profile, специфічних для контексту. openclaw acp clientзадаєOPENCLAW_SHELL=acp-clientдля створеного процесу мосту.
Параметри acp client
--cwd <dir>: робочий каталог для сеансу ACP.--server <command>: команда сервера ACP (за замовчуванням:openclaw).--server-args <args...>: додаткові аргументи, передані серверу ACP.--server-verbose: увімкнути докладне логування на сервері ACP.--verbose, -v: докладне логування клієнта.