ACP — это путь для внешних сред, а не путь Codex по умолчанию. Нативный
плагин сервера приложений Codex отвечает за элементы управления
/codex ... и встроенную среду выполнения
openai/gpt-* по умолчанию для ходов агента; ACP отвечает за элементы управления /acp ...
и сеансы sessions_spawn({ runtime: "acp" }).Чтобы Codex или Claude Code могли подключаться как внешний клиент MCP напрямую к
существующим обсуждениям каналов OpenClaw, используйте
openclaw mcp serve вместо ACP.Какая страница мне нужна?
Работает ли это сразу после установки?
Да, после установки официального плагина среды выполнения ACP:extensions/acpx после
pnpm install. Выполните /acp doctor, чтобы проверить готовность.
OpenClaw сообщает агентам о запуске ACP, только когда ACP действительно можно использовать:
ACP должен быть включён, диспетчеризация не должна быть отключена, текущий сеанс не должен
блокироваться песочницей, а серверная часть среды выполнения должна быть загружена и исправна. Если
какое-либо условие не выполнено, Skills ACP и руководство по ACP для sessions_spawn остаются скрытыми,
чтобы агент не предлагал недоступную серверную часть.
Особенности первого запуска
Особенности первого запуска
- Если задан
plugins.allow, он представляет собой ограничительный перечень плагинов и должен включатьacpx, иначе установленная серверная часть ACP намеренно блокируется (/acp doctorсообщает об отсутствующей записи в списке разрешённых). - Адаптер Codex ACP поставляется с плагином
acpxи по возможности запускается локально. - Codex ACP работает с изолированным
CODEX_HOME. OpenClaw копирует доверенные записи о доверии к проектам и безопасную конфигурацию маршрутизации моделей и поставщиков (model,model_provider,model_reasoning_effort,sandbox_modeи безопасные поляmodel_providers.<name>) из конфигурации Codex на хосте; аутентификация, уведомления и перехватчики остаются только в конфигурации хоста. - Адаптеры других целевых сред могут загружаться по требованию с помощью
npxпри первом использовании. - Аутентификация поставщика для этой среды уже должна быть настроена на хосте.
- Если на хосте нет npm или доступа к сети, загрузка адаптеров при первом запуске завершается с ошибкой, пока кэши не будут предварительно заполнены или адаптер не будет установлен другим способом.
Требования к среде выполнения
Требования к среде выполнения
ACP запускает реальный процесс внешней среды. OpenClaw отвечает за маршрутизацию,
состояние фоновых задач, доставку, привязки и политики; внешняя среда отвечает
за вход в систему поставщика, каталог моделей, работу с файловой системой и нативные инструменты.Прежде чем считать причиной OpenClaw, проверьте:
/acp doctorсообщает о включённой и исправной серверной части.- Целевой идентификатор разрешён параметром
acp.allowedAgents, если этот список разрешённых задан. - Команда внешней среды может запускаться на хосте Gateway.
- Для этой среды настроена аутентификация поставщика (
claude,codex,gemini,opencode,droidи т. д.). - Выбранная модель существует для этой среды — идентификаторы моделей нельзя переносить между средами.
- Запрошенный
cwdсуществует и доступен; иначе опуститеcwd, чтобы серверная часть использовала значение по умолчанию. - Режим разрешений соответствует работе. Неинтерактивные сеансы не могут нажимать кнопки в нативных запросах разрешений, поэтому для запусков программирования с интенсивной записью и выполнением обычно требуется профиль разрешений ACPX, позволяющий продолжать работу без интерфейса.
Поддерживаемые целевые среды
С серверной частьюacpx используйте эти идентификаторы как цели /acp spawn <id> или
sessions_spawn({ runtime: "acp", agentId: "<id>" }):
pi (pi-acp) также зарегистрирован в серверной части acpx, но не является средой
для программирования в том же смысле, что и перечисленные выше.
Пользовательские псевдонимы агентов acpx можно настроить в самом acpx, но политика OpenClaw
всё равно проверяет acp.allowedAgents и все сопоставления
agents.list[].runtime.acp.agent перед диспетчеризацией.
Инструкция оператора
Быстрый сценарий/acp из чата:
1
Запуск
/acp spawn claude --bind here,
/acp spawn gemini --mode persistent --thread auto или явно
/acp spawn codex --bind here.2
Работа
Продолжайте в привязанном обсуждении или ветке (либо укажите ключ сеанса
явно).
3
Проверка состояния
/acp status4
Настройка
/acp model <provider/model>, /acp permissions <profile>,
/acp timeout <seconds>.5
Корректировка
Без замены контекста:
/acp steer tighten logging and continue.6
Остановка
/acp cancel (текущий ход) или /acp close (сеанс и привязки).Сведения о жизненном цикле
Сведения о жизненном цикле
- Создание запускает или возобновляет сеанс среды выполнения ACP, записывает метаданные ACP в хранилище сеансов OpenClaw и может создать фоновую задачу, если запуск принадлежит родительской задаче.
- Сеансы ACP, принадлежащие родительской задаче, считаются фоновой работой, даже если сеанс среды выполнения постоянный; завершение и доставка между интерфейсами выполняются через механизм уведомлений родительской задачи, а не как в обычном пользовательском сеансе чата.
- Обслуживание задач закрывает завершённые или оставшиеся без родительской задачи одноразовые сеансы ACP, принадлежащие родительской задаче. Постоянные сеансы ACP сохраняются, пока действует активная привязка к беседе; устаревшие постоянные сеансы без активной привязки закрываются, чтобы их нельзя было незаметно возобновить после завершения владеющей ими задачи или удаления записи о ней.
- Последующие сообщения из привязанной беседы направляются непосредственно в сеанс ACP, пока привязка не будет закрыта, снята с фокуса, сброшена или не истечёт.
- Команды Gateway остаются локальными.
/acp ...,/statusи/unfocusникогда не отправляются привязанной управляющей среде ACP как обычный текст запроса. cancelпрерывает активный ход, если серверная часть поддерживает отмену; эта команда не удаляет привязку или метаданные сеанса.closeзавершает сеанс ACP с точки зрения OpenClaw и удаляет привязку. Управляющая среда может по-прежнему хранить собственную историю на вышестоящей стороне, если поддерживает возобновление.- Плагин acpx очищает принадлежащие OpenClaw деревья процессов оболочки и адаптера после
close, а также удаляет устаревшие осиротевшие процессы ACPX, принадлежащие OpenClaw, при запуске Gateway. - Неактивные рабочие процессы среды выполнения могут быть очищены после
acp.runtime.ttlMinutes; сохранённые метаданные сеанса остаются доступными для/acp sessions.
Правила маршрутизации нативного Codex
Правила маршрутизации нативного Codex
Триггеры на естественном языке, которые должны направляться в нативный плагин Codex,
когда он включён:
- «Привяжи этот канал Discord к Codex».
- «Подключи этот чат к ветке Codex
<id>». - «Покажи ветки Codex, а затем привяжи эту».
before_tool_call, отслеживать
after_tool_call и направлять события Codex PermissionRequest через механизм
подтверждений OpenClaw. Хуки Codex Stop ретранслируются в
before_agent_finalize OpenClaw, где плагины могут запросить ещё один проход модели,
прежде чем Codex завершит свой ответ. Ретранслятор намеренно действует консервативно:
он не изменяет аргументы нативных инструментов Codex и не перезаписывает записи веток
Codex. Используйте ACP явно, только если вам нужна модель среды выполнения и сеансов
ACP. Граница поддержки встроенного Codex описана в
контракте поддержки управляющей среды Codex v1.Краткая памятка по выбору модели, провайдера и среды выполнения
Краткая памятка по выбору модели, провайдера и среды выполнения
- устаревшие ссылки на модели Codex — устаревший маршрут модели Codex OAuth/подписки, исправляемый командой doctor.
openai/*— встроенная нативная среда выполнения app-server Codex для ходов агента OpenAI./codex ...— нативное управление беседой Codex./acp ...илиruntime: "acp"— явное управление ACP/acpx.
Триггеры маршрутизации ACP на естественном языке
Триггеры маршрутизации ACP на естественном языке
Триггеры, которые должны направляться в среду выполнения ACP:
- «Запусти это как одноразовый сеанс Claude Code ACP и кратко изложи результат».
- «Используй Gemini CLI для этой задачи в ветке, а последующие сообщения оставляй в той же ветке».
- «Запусти Codex через ACP в фоновой ветке».
runtime: "acp", определяет управляющую среду
agentId, привязывается к текущей беседе или ветке, если это поддерживается,
и направляет последующие сообщения в этот сеанс до закрытия или истечения срока.
Codex следует этим путём, только если ACP/acpx указан явно или нативный плагин Codex
недоступен для запрошенной операции.Для sessions_spawn инструмент runtime: "acp" объявляется доступным, только
когда ACP включён, инициатор запроса не находится в песочнице и загружена серверная
часть среды выполнения ACP. acp.dispatch.enabled=false приостанавливает автоматическую
диспетчеризацию веток ACP, но не скрывает и не блокирует явные вызовы
sessions_spawn({ runtime: "acp" }). Параметр указывает идентификаторы управляющих сред ACP, такие как
codex, claude, droid, gemini или
opencode. Не передавайте обычный идентификатор агента из конфигурации
OpenClaw agents_list, если эта запись не настроена явно с
agents.list[].runtime.type="acp"; в противном случае используйте стандартную среду выполнения
субагента. Когда агент OpenClaw настроен с runtime.type="acp", OpenClaw использует
runtime.acp.agent как идентификатор базовой управляющей среды.ACP и субагенты
Используйте ACP, когда нужна внешняя среда выполнения управляющей среды. Используйте нативный app-server Codex для привязки беседы Codex и управления ею, когда включён плагинcodex. Используйте субагентов, когда нужны делегированные запуски
в среде OpenClaw.
См. также Субагенты.
Как ACP запускает Claude Code
Для Claude Code через ACP стек выглядит так:- Плоскость управления сеансами ACP OpenClaw.
- Официальный плагин среды выполнения
@openclaw/acpx. - Адаптер Claude ACP.
- Механизмы среды выполнения и сеансов на стороне Claude.
- Нужны
/acp spawn, привязываемые сеансы, управление средой выполнения или постоянная работа управляющей среды? Используйте ACP. - Нужен простой локальный текстовый резервный вариант через необработанный CLI? Используйте серверные части CLI.
Привязанные сеансы
Ментальная модель
- Интерфейс чата — место, где люди продолжают общение (канал Discord, тема Telegram, чат iMessage).
- Сеанс ACP — устойчивое состояние среды выполнения Codex/Claude/Gemini, в которое OpenClaw направляет сообщения.
- Дочерняя ветка или тема — необязательный дополнительный интерфейс обмена сообщениями, создаваемый только параметром
--thread .... - Рабочая область среды выполнения — расположение в файловой системе (
cwd, рабочая копия репозитория, рабочая область серверной части), где работает управляющая среда. Не зависит от интерфейса чата.
Привязки к текущей беседе
/acp spawn <harness> --bind here закрепляет текущую беседу за созданным сеансом ACP — без дочерней
ветки, в том же интерфейсе чата. OpenClaw продолжает управлять транспортом,
аутентификацией, безопасностью и доставкой. Последующие сообщения в этой беседе
направляются в тот же сеанс; /new и /reset сбрасывают сеанс
на месте; /acp close удаляет привязку.
Примеры:
Правила привязки и взаимоисключение
Правила привязки и взаимоисключение
--bind hereи--thread ...взаимоисключающие.--bind hereработает только в каналах, которые объявляют поддержку привязки к текущей беседе; в противном случае OpenClaw возвращает понятное сообщение об отсутствии поддержки. Привязки сохраняются после перезапуска Gateway.- В Discord параметр
spawnSessionsуправляет созданием дочерних веток для--thread auto|here, но не для--bind here. - Если создать сеанс для другого агента ACP без
--cwd, OpenClaw по умолчанию наследует рабочую область целевого агента. Отсутствующие унаследованные пути (ENOENT/ENOTDIR) заменяются стандартным значением серверной части; другие ошибки доступа (например,EACCES) возвращаются как ошибки создания. - Команды управления Gateway остаются локальными в привязанных беседах: команды
/acp ...обрабатываются OpenClaw, даже когда обычный текст последующих сообщений направляется в привязанный сеанс ACP;/statusи/unfocusтакже остаются локальными, когда обработка команд включена для этого интерфейса.
Сеансы, привязанные к веткам
Сеансы, привязанные к веткам
Когда для адаптера канала включены привязки к веткам:
- OpenClaw привязывает ветку к целевому сеансу ACP.
- Последующие сообщения в этой ветке направляются в привязанный сеанс ACP.
- Вывод ACP доставляется обратно в ту же ветку.
- Снятие фокуса, закрытие, архивирование, тайм-аут бездействия или истечение максимального срока удаляет привязку.
/acp close,/acp cancel,/acp status,/statusи/unfocus— команды Gateway, а не запросы к управляющей среде ACP.
acp.enabled=trueacp.dispatch.enabledвключён по умолчанию (задайтеfalse, чтобы приостановить автоматическую диспетчеризацию веток ACP; явные вызовыsessions_spawn({ runtime: "acp" })продолжат работать).- Создание сеансов веток адаптером канала включено (по умолчанию:
true):- Discord:
channels.discord.threadBindings.spawnSessions=true - Telegram:
channels.telegram.threadBindings.spawnSessions=true
- Discord:
Каналы с поддержкой веток
Каналы с поддержкой веток
- Любой адаптер канала, предоставляющий возможность привязки сеансов или веток.
- Текущая встроенная поддержка: ветки и каналы Discord, темы Telegram (темы форумов в группах и супергруппах, а также темы личных сообщений).
- Плагины каналов могут добавить поддержку через тот же интерфейс привязки.
Постоянные привязки каналов
Для неэфемерных рабочих процессов настройте постоянные привязки ACP в записях верхнего уровняbindings[].
Модель привязки
"acp"
Обозначает постоянную привязку беседы ACP.
object
Определяет целевую беседу. Форматы для отдельных каналов:
- Канал/ветка Discord:
match.channel="discord"+match.peer.id="<channelOrThreadId>" - Канал/личные сообщения Slack:
match.channel="slack"+match.peer.id="<channelId|channel:<channelId>|#<channelId>|userId|user:<userId>|slack:<userId>|<@userId>>". Предпочтительно использовать стабильные идентификаторы Slack; привязки каналов также сопоставляются с ответами внутри веток этого канала. - Тема форума Telegram:
match.channel="telegram"+match.peer.id="<chatId>:topic:<topicId>" - Личные сообщения/группа WhatsApp:
match.channel="whatsapp"+match.peer.id="<E.164|group JID>". Для личных чатов используйте номера в формате E.164, например+15555550123, а для групп — JID групп WhatsApp, например120363424282127706@g.us. - Личные сообщения/группа iMessage:
match.channel="imessage"+match.peer.id="<handle|chat_id:*|chat_guid:*|chat_identifier:*>". Для стабильных привязок групп предпочтительно использоватьchat_id:*.
string
Идентификатор агента OpenClaw, которому принадлежит привязка.
"persistent" | "oneshot"
Необязательное переопределение ACP.
string
Необязательная метка для оператора.
string
Необязательный рабочий каталог среды выполнения.
string
Необязательное переопределение бэкенда.
Значения среды выполнения по умолчанию для каждого агента
Используйтеagents.list[].runtime, чтобы однократно определить значения ACP по умолчанию для каждого агента:
agents.list[].runtime.type="acp"agents.list[].runtime.acp.agent(идентификатор среды, напримерcodexилиclaude)agents.list[].runtime.acp.backendagents.list[].runtime.acp.modeagents.list[].runtime.acp.cwd
bindings[].acp.*agents.list[].runtime.acp.*- Глобальные значения ACP по умолчанию (например,
acp.backend)
Пример
Поведение
- OpenClaw обеспечивает существование настроенного сеанса ACP после проверки допуска для конкретного канала и до его использования.
- Сообщения из этого канала, темы или чата направляются в настроенный сеанс ACP.
- Настроенные привязки ACP управляют маршрутом своего сеанса. Веерная рассылка канала не заменяет настроенный сеанс ACP для совпавшей привязки.
- В привязанных беседах
/newи/resetсбрасывают тот же ключ сеанса ACP без его замены. - Временные привязки среды выполнения (например, созданные процессами фокусировки на ветке) по-прежнему применяются там, где они присутствуют.
- При создании межагентных сеансов ACP без явного
cwdOpenClaw наследует рабочее пространство целевого агента из конфигурации агента. - Если унаследованный путь к рабочему пространству отсутствует, используется рабочий каталог бэкенда по умолчанию; ошибки доступа к существующему пути возвращаются как ошибки создания сеанса.
Запуск сеансов ACP
Сеанс ACP можно запустить двумя способами:- Из sessions_spawn
- Из команды /acp
Используйте
runtime: "acp", чтобы запустить сеанс ACP из хода агента или
вызова инструмента.Значением
runtime по умолчанию является subagent, поэтому для
сеансов ACP задавайте runtime: "acp" явно. Если agentId опущен,
OpenClaw использует acp.defaultAgent, когда он настроен. Для сохранения
постоянной привязанной беседы mode: "session" требует thread: true.Параметры sessions_spawn
string
обязательно
Исходный запрос, отправляемый в сеанс ACP.
"acp"
обязательно
Для сеансов ACP должно быть указано
"acp".string
Идентификатор целевой среды ACP. Если задан
acp.defaultAgent, используется он.boolean
по умолчанию:"false"
Запрашивает процесс привязки к ветке там, где он поддерживается.
"run" | "session"
по умолчанию:"run"
"run" выполняется однократно, а "session" является постоянным. Если указан thread: true,
а mode опущен, OpenClaw может по умолчанию использовать постоянный режим в зависимости от
пути среды выполнения. Для mode: "session" требуется thread: true.string
Запрошенный рабочий каталог среды выполнения (проверяется политикой бэкенда/среды выполнения).
Если он опущен, создаваемый сеанс ACP наследует рабочее пространство целевого агента, когда оно настроено;
при отсутствии унаследованного пути используются значения бэкенда по умолчанию, а фактические ошибки
доступа возвращаются вызывающей стороне.
string
Метка для оператора, используемая в тексте сеанса/баннера.
string
Возобновляет существующий сеанс ACP вместо создания нового. Агент
повторно воспроизводит историю беседы через
session/load. Требуется
runtime: "acp"."parent"
"parent" передаёт сводки о ходе первоначального запуска ACP обратно в запрашивающий
сеанс в виде системных событий. Принятые ответы включают streamLogPath,
указывающий на журнал JSONL в области сеанса (<sessionId>.acp-stream.jsonl), который
можно отслеживать для просмотра полной истории ретрансляции. По умолчанию потоки хода выполнения
для родительского сеанса показывают комментарии ассистента и состояние ACP, если не задано
streaming.progress.commentary=false. В Discord для родительских
предпросмотров также по умолчанию используется режим хода выполнения, если режим потока не настроен. Ход
выполнения состояния по-прежнему учитывает acp.stream.tagVisibility, поэтому такие теги, как plan,
остаются скрытыми, если их явно не включить.sessions_spawn используют agents.defaults.subagents.runTimeoutSeconds
как ограничение числа дочерних ходов по умолчанию. Инструмент не принимает переопределения
тайм-аута для отдельных вызовов (runTimeoutSeconds/timeoutSeconds отклоняются с ошибкой,
предписывающей настроить значение по умолчанию).
string
Явное переопределение модели для дочернего сеанса ACP. При создании сеансов Codex ACP
ссылки OpenAI, такие как
openai/gpt-5.4, нормализуются в конфигурацию запуска Codex ACP
до session/new; формы с косой чертой, такие как openai/gpt-5.4/high, также задают
интенсивность рассуждений Codex ACP. Если параметр опущен, sessions_spawn({ runtime: "acp" })
использует существующие значения модели субагента по умолчанию (agents.defaults.subagents.model или
agents.list[].subagents.model), когда они настроены; в противном случае среда ACP
использует собственную модель по умолчанию. Другие среды должны объявлять ACP
models и поддерживать session/set_model; иначе OpenClaw/acpx возвращает
понятную ошибку вместо неявного перехода к модели целевого агента по умолчанию.string
Явная интенсивность обдумывания/рассуждений. Для Codex ACP
minimal соответствует низкой
интенсивности, low/medium/high/xhigh сопоставляются напрямую, а off исключает
переопределение интенсивности рассуждений при запуске. Если параметр опущен, создаваемые сеансы ACP используют существующие
значения обдумывания субагента по умолчанию и заданное для каждой модели
agents.defaults.models["provider/model"].params.thinking для выбранной
модели.Режимы привязки и веток при создании сеанса
- --bind here|off
- --thread auto|here|off
Примечания:
--bind here— самый простой путь для оператора, чтобы «подключить Codex к этому каналу или чату».--bind hereне создаёт дочернюю ветку.--bind hereдоступен только в каналах, поддерживающих привязку текущей беседы.--bindи--threadнельзя сочетать в одном вызове/acp spawn.
Модель доставки
Сеансы ACP могут быть интерактивными рабочими пространствами или фоновой работой под управлением родительского сеанса. Путь доставки зависит от этого вида.Интерактивные сеансы ACP
Интерактивные сеансы ACP
Интерактивные сеансы предназначены для продолжения общения в видимом интерфейсе чата:
/acp spawn ... --bind hereпривязывает текущую беседу к сеансу ACP./acp spawn ... --thread ...привязывает ветку/тему канала к сеансу ACP.- Постоянно настроенные
bindings[].type="acp"направляют совпадающие беседы в один и тот же сеанс ACP.
- Обычные связанные последующие сообщения отправляются как текст запроса, а вложения — только если они поддерживаются средой выполнения или бэкендом.
- Команды управления
/acpи локальные команды Gateway перехватываются до передачи в ACP. - События завершения, создаваемые средой выполнения, материализуются отдельно для каждой цели. Агенты OpenClaw получают внутренний конверт контекста среды выполнения OpenClaw; внешние среды выполнения ACP получают обычный запрос с результатом дочернего процесса и инструкцией. Необработанный конверт
<<<BEGIN_OPENCLAW_INTERNAL_CONTEXT>>>никогда не должен отправляться во внешние среды выполнения или сохраняться в тексте пользовательской расшифровки ACP. - Записи расшифровки ACP используют видимый пользователю текст триггера или обычный запрос о завершении. Метаданные внутренних событий по возможности остаются структурированными в OpenClaw и не считаются содержимым чата, созданным пользователем.
Одноразовые сеансы ACP, принадлежащие родителю
Одноразовые сеансы ACP, принадлежащие родителю
Одноразовые сеансы ACP, запущенные другим выполнением агента, являются фоновыми
дочерними процессами, подобными субагентам:
- Родитель запрашивает выполнение работы с помощью
sessions_spawn({ runtime: "acp", mode: "run" }). - Дочерний процесс выполняется в собственном сеансе среды выполнения ACP.
- Ходы дочернего процесса выполняются в той же фоновой очереди, что и запуски нативных субагентов, поэтому медленная среда выполнения ACP не блокирует несвязанную работу основного сеанса.
- Отчёт о завершении возвращается через путь уведомления о завершении задачи. Перед отправкой во внешнюю среду выполнения OpenClaw преобразует внутренние метаданные завершения в обычный запрос ACP, поэтому среды выполнения не видят маркеры контекста среды выполнения, предназначенные только для OpenClaw.
- Родитель переформулирует результат дочернего процесса обычным голосом ассистента, если требуется ответ для пользователя.
sessions_send и доставка A2A
sessions_send и доставка A2A
sessions_send может обращаться к другому сеансу после запуска. Для обычных одноранговых
сеансов OpenClaw использует путь последующего взаимодействия между агентами (A2A) после
внедрения сообщения:- Дождаться ответа целевого сеанса.
- При необходимости разрешить запрашивающей и целевой сторонам обменяться ограниченным числом последующих ходов.
- Попросить целевую сторону сформировать сообщение-уведомление.
- Доставить это уведомление в видимый канал или ветку.
tools.sessions.visibility.OpenClaw пропускает последующее взаимодействие A2A только тогда, когда запрашивающая сторона является родителем
собственного одноразового дочернего процесса ACP, принадлежащего родителю. В этом случае запуск A2A поверх
механизма завершения задачи может активировать родителя с результатом дочернего процесса, переслать
ответ родителя обратно дочернему процессу и создать цикл эха между родителем и дочерним
процессом. Результат sessions_send сообщает delivery.status="skipped" для
такого принадлежащего родителю дочернего процесса, поскольку за результат уже отвечает путь завершения.Возобновление существующего сеанса
Возобновление существующего сеанса
Используйте Распространённые варианты использования:
resumeSessionId, чтобы продолжить предыдущий сеанс ACP вместо
запуска нового. Агент воспроизводит историю диалога через
session/load, поэтому продолжает работу с полным контекстом предыдущих действий.- Передайте сеанс Codex с ноутбука на телефон — попросите агента продолжить с того места, где вы остановились.
- Продолжите сеанс программирования, начатый интерактивно в CLI, теперь в безголовом режиме через агента.
- Возобновите работу, прерванную перезапуском Gateway или тайм-аутом бездействия.
resumeSessionIdприменяется только приruntime: "acp"; среда выполнения субагентов по умолчанию игнорирует это поле, предназначенное только для ACP.streamToприменяется только приruntime: "acp"; среда выполнения субагентов по умолчанию игнорирует это поле, предназначенное только для ACP.resumeSessionId— это локальный для хоста идентификатор возобновления ACP/среды выполнения, а не ключ сеанса канала OpenClaw; перед передачей OpenClaw по-прежнему проверяет политику запуска ACP и политику целевого агента, а за авторизацию загрузки этого вышестоящего идентификатора отвечает бэкенд ACP или среда выполнения.resumeSessionIdвосстанавливает историю вышестоящего диалога ACP;threadиmodeпо-прежнему обычным образом применяются к создаваемому новому сеансу OpenClaw, поэтому дляmode: "session"всё ещё требуетсяthread: true.- Целевой агент должен поддерживать
session/load(Codex и Claude Code поддерживают). - Если идентификатор сеанса не найден, запуск завершается с понятной ошибкой — без неявного перехода к новому сеансу.
Проверка работоспособности после развёртывания
Проверка работоспособности после развёртывания
После развёртывания Gateway выполните реальную сквозную проверку, а не полагайтесь
на модульные тесты:
- Проверьте версию и коммит развёрнутого Gateway на целевом хосте.
- Откройте временный сеанс моста ACPX с действующим агентом.
- Попросите этого агента вызвать
sessions_spawnсruntime: "acp",agentId: "codex",mode: "run"и задачейReply with exactly LIVE-ACP-SPAWN-OK. - Проверьте
accepted=yes, реальныйchildSessionKeyи отсутствие ошибки валидатора. - Удалите временный сеанс моста.
mode: "run" и пропустите streamTo: "parent" —
привязанные к ветке пути mode: "session" и ретрансляции потока являются отдельными, более полными
этапами интеграционной проверки.Совместимость с песочницей
В настоящее время сеансы ACP выполняются в среде выполнения хоста, а не внутри песочницы OpenClaw. Текущие ограничения:- Если запрашивающий сеанс изолирован в песочнице, запуск ACP блокируется как для
sessions_spawn({ runtime: "acp" }), так и для/acp spawn. sessions_spawnсruntime: "acp"не поддерживаетsandbox: "require".
Разрешение целевого сеанса
Большинство действий/acp принимают необязательную цель сеанса (session-key,
session-id или session-label).
Порядок разрешения:
- Явный аргумент цели (или
--sessionдля/acp steer)- сначала проверяется ключ
- затем идентификатор сеанса в формате UUID
- затем метка
- Текущая привязка ветки (если этот диалог или ветка привязаны к сеансу ACP).
- Резервный текущий запрашивающий сеанс.
Unable to resolve session target: ...).
Элементы управления ACP
Для элементов управления средой выполнения (
spawn, cancel, steer, close, status, set-mode,
set, cwd, permissions, timeout, model и reset-options) требуется
идентификация владельца для внешних каналов и operator.admin для внутренних
клиентов Gateway. Авторизованные отправители, не являющиеся владельцами, по-прежнему могут использовать sessions,
doctor, install и help.
/acp status показывает действующие параметры среды выполнения, а также идентификаторы сеанса
на уровне среды выполнения и бэкенда. Ошибки неподдерживаемых элементов управления отображаются
явно, если бэкенд не обладает соответствующей возможностью. /acp sessions читает хранилище
для текущего привязанного или запрашивающего сеанса; токены цели (session-key,
session-id или session-label) разрешаются через обнаружение сеансов Gateway,
включая пользовательские корни session.store для отдельных агентов.
Сопоставление параметров среды выполнения
/acp содержит команды быстрого доступа и универсальную команду установки. Эквивалентные операции:
Обвязка acpx, настройка плагина и разрешения
Сведения о настройке обвязки acpx (псевдонимы Claude Code / Codex / Gemini CLI), MCP-мостах plugin-tools и OpenClaw-tools, а также режимах разрешений ACP см. в разделе Настройка агентов ACP.Устранение неполадок
Command blocked by PreToolUse hook: Native hook relay unavailable относится к
нативной ретрансляции хуков Codex, а не к ACP/acpx. В привязанном чате Codex запустите
новый сеанс с помощью /new или /reset; если это срабатывает один раз, а затем ошибка возвращается при
следующем вызове нативного инструмента, перезапустите сервер приложения Codex или Gateway OpenClaw
вместо повторного выполнения /new. См.
Устранение неполадок обвязки Codex.