Координация агентов
ACP Агенты
Сессии Протокола Агент-Клиент (ACP) позволяют OpenClaw запускать внешние среды выполнения кода (например, Pi, Claude Code, Codex, OpenCode и Gemini CLI) через плагин бэкенда ACP. Если вы попросите OpenClaw простым языком «запустить это в Codex» или «запустить Claude Code в ветке», OpenClaw должен перенаправить этот запрос в среду выполнения ACP (а не в нативную среду выполнения суб-агентов).
Быстрый рабочий процесс для оператора
Используйте это, когда вам нужен практический /acp runbook:
- Создать сессию:
/acp spawn codex --mode persistent --thread auto
- Работайте в связанной ветке (или явно указывайте ключ этой сессии).
- Проверьте состояние среды выполнения:
/acp status
- При необходимости настройте параметры ср еды выполнения:
/acp model <provider/model>/acp permissions/acp timeout
- Подтолкните активную сессию без замены контекста:
/acp steer tighten logging and continue
- Остановите работу:
/acp cancel(остановить текущий ход), или/acp close(закрыть сессию + удалить привязки)
Быстрый старт для пользователей
Примеры естественных запросов:
- «Запустите постоянную сессию Codex в ветке здесь и держите её в фокусе».
- «Запустите это как одноразовую сессию Claude Code ACP и суммируйте результат».
- «Используйте Gemini CLI для этой задачи в ветке, а затем продолжайте обсуждение в той же ветке».
Что должен сделать OpenClaw:
- Выбрать
runtime: "acp". - Определить запрошенную цель среды выполнения (
agentId, напримерcodex). - Если запрошена привязка к ветке и текущий канал поддерживает это, привязать сессию ACP к ветке.
- Перенаправлять последующие сообщения в этой ветке в ту же сессию ACP, пока фокус не будет снят/сессия не закрыта/не истекла.
ACP против суб-агентов
Используйте ACP, когда вам нужна внешняя среда выполнения. Используйте суб-агентов, когда вам нужны нативные делегированные запуски OpenClaw.
| Область | Сессия ACP | Запуск суб-агента |
|---|---|---|
| Среда выполнения | Плагин бэкенда ACP (например, acpx) | Нативная среда выполнения суб-агентов OpenClaw |
| Ключ сессии | agent::acp: | agent::subagent: |
| Основные команды | /acp ... | /subagents ... |
| Инструмент создания | sessions_spawn с runtime:"acp" | sessions_spawn (среда выполнения по умолчанию) |
См. также Суб-агенты.
Сессии, привязанные к веткам (независимо от канала)
Когда привязка к веткам включена для адаптера канала, сессии ACP могут быть привязаны к веткам:
- OpenClaw привязывает ветку к целевой сессии ACP.
- Последующие сообщения в этой ветке перенаправляются в привязанную сессию ACP.
- Вывод ACP доставляется обратно в ту же ветку.
- Снятие фокуса/закрытие/архивирование/истечение времени простоя или максимального срока действия удаляет привязку.
Поддержка привязки к веткам зависит от адаптера. Если активный адаптер канала не поддерживает привязку к веткам, OpenClaw возвращает понятное сообщение о неподдержке/недоступности. Необходимые флаги функций для ACP с привязкой к веткам:
acp.enabled=trueacp.dispatch.enabledвключен по умолчанию (установитеfalseдля приостановки диспетчеризации ACP)- Флаг создания ACP в ветках для адаптера канала включен (зависит от адаптера)
- Discord:
channels.discord.threadBindings.spawnAcpSessions=true - Telegram:
channels.telegram.threadBindings.spawnAcpSessions=true
- Discord:
Каналы, поддерживающие ветки
- Любой адаптер канала, предоставляющий возможность привязки сессии/ветки.
- Текущая встроенная поддержка:
- Ветки/каналы Discord
- Темы Telegram (темы форума в группах/супергруппах и темы в ЛС)
- Плагины каналов могут добавить поддержку через тот же интерфейс привязки.
Настройки для конкретных каналов
Для неэфемерных рабочих процессов настройте постоянные привязки ACP в записях верхнего уровня bindings[].
Модель привязки
bindings[].type="acp"отмечает постоянную привязку беседы ACP.bindings[].matchидентифицирует целевую беседу:- Канал или ветка Discord:
match.channel="discord"+match.peer.id="" - Тема форума Telegram:
match.channel="telegram"+match.peer.id=":topic:"
- Канал или ветка Discord:
bindings[].agentId— это идентификатор агента OpenClaw, которому принадлежит привязка.- Дополнительные переопределения ACP находятся в
bindings[].acp:mode(persistentилиoneshot)labelcwdbackend