ACP ist der Pfad für externe Harnesses, nicht der standardmäßige Codex-Pfad. Das native
Codex-App-Server-Plugin verwaltet
/codex ...-Steuerelemente und die standardmäßige
eingebettete openai/gpt-*-Runtime für Agentenrunden; ACP verwaltet /acp ...-Steuerelemente
und sessions_spawn({ runtime: "acp" })-Sitzungen.Damit Codex oder Claude Code als externer MCP-Client eine direkte Verbindung zu
bestehenden OpenClaw-Kanalunterhaltungen herstellen kann, verwenden Sie
openclaw mcp serve anstelle von ACP.Welche Seite benötige ich?
Funktioniert dies sofort?
Ja, nach der Installation des offiziellen ACP-Runtime-Plugins:pnpm install das lokale extensions/acpx-Workspace-Plugin verwenden. Führen Sie /acp doctor für eine Bereitschaftsprüfung aus.
OpenClaw informiert Agenten nur dann über das Starten per ACP, wenn ACP tatsächlich verwendbar ist:
ACP muss aktiviert sein, der Dispatch darf nicht deaktiviert sein, die aktuelle Sitzung darf
nicht durch die Sandbox blockiert sein und ein Runtime-Backend muss geladen und funktionsfähig sein. Wenn
eine dieser Bedingungen nicht erfüllt ist, bleiben ACP-Skills und die sessions_spawn-ACP-Anleitung ausgeblendet,
damit der Agent kein nicht verfügbares Backend vorschlägt.
Fallstricke beim ersten Start
Fallstricke beim ersten Start
- Wenn
plugins.allowfestgelegt ist, handelt es sich um ein restriktives Plugin-Inventar, dasacpxenthalten muss. Andernfalls wird das installierte ACP-Backend absichtlich blockiert (/acp doctormeldet den fehlenden Eintrag in der Zulassungsliste). - Der Codex-ACP-Adapter wird mit dem
acpx-Plugin ausgeliefert und nach Möglichkeit lokal gestartet. - Codex ACP wird mit einem isolierten
CODEX_HOMEausgeführt. OpenClaw kopiert vertrauenswürdige Projekt-Vertrauenseinträge sowie sichere Modell-/Provider-Routing-Konfigurationen (model,model_provider,model_reasoning_effort,sandbox_modeund sicheremodel_providers.<name>-Felder) aus der Codex-Konfiguration des Hosts; Authentifizierung, Benachrichtigungen und Hooks verbleiben ausschließlich in der Hostkonfiguration. - Andere Ziel-Harness-Adapter können bei der ersten Verwendung bei Bedarf mit
npxabgerufen werden. - Die Authentifizierung beim Hersteller muss für dieses Harness bereits auf dem Host vorhanden sein.
- Wenn der Host weder über npm noch über Netzwerkzugriff verfügt, schlagen Adapterabrufe beim ersten Start fehl, bis die Caches vorab gefüllt wurden oder der Adapter auf andere Weise installiert wurde.
Runtime-Voraussetzungen
Runtime-Voraussetzungen
ACP startet einen echten externen Harness-Prozess. OpenClaw verwaltet Routing,
den Zustand von Hintergrundaufgaben, Zustellung, Bindungen und Richtlinien; das Harness verwaltet
seine Provider-Anmeldung, seinen Modellkatalog, sein Dateisystemverhalten und seine nativen Tools.Bevor Sie OpenClaw als Ursache ansehen, überprüfen Sie Folgendes:
/acp doctormeldet ein aktiviertes, funktionsfähiges Backend.- Die Ziel-ID ist durch
acp.allowedAgentszugelassen, wenn diese Zulassungsliste festgelegt ist. - Der Harness-Befehl kann auf dem Gateway-Host gestartet werden.
- Für dieses Harness ist eine Provider-Authentifizierung vorhanden (
claude,codex,gemini,opencode,droidusw.). - Das ausgewählte Modell ist für dieses Harness verfügbar – Modell-IDs sind nicht zwischen Harnesses übertragbar.
- Das angeforderte
cwdist vorhanden und zugänglich; lassen Sie andernfallscwdweg, damit das Backend seinen Standardwert verwendet. - Der Berechtigungsmodus passt zur Aufgabe. Nicht interaktive Sitzungen können nicht auf native Berechtigungsaufforderungen klicken. Daher benötigen Coding-Ausführungen mit vielen Schreib- oder Ausführungsvorgängen normalerweise ein ACPX-Berechtigungsprofil, das ohne Benutzerinteraktion fortfahren kann.
Unterstützte Harness-Ziele
Verwenden Sie mit demacpx-Backend diese IDs als /acp spawn <id>- oder
sessions_spawn({ runtime: "acp", agentId: "<id>" })-Ziele:
pi (pi-acp) ist ebenfalls im acpx-Backend registriert, jedoch kein Coding-
Harness im gleichen Sinne wie die oben aufgeführten.
Benutzerdefinierte acpx-Agenten-Aliasse können in acpx selbst konfiguriert werden, die OpenClaw-
Richtlinie prüft jedoch vor dem Dispatch weiterhin acp.allowedAgents und jede
agents.entries.*.runtime.acp.agent-Zuordnung.
Betriebshandbuch
Schneller/acp-Ablauf aus dem Chat:
1
Starten
/acp spawn claude --bind here,
/acp spawn gemini --mode persistent --thread auto oder explizit
/acp spawn codex --bind here.2
Arbeiten
Fahren Sie in der gebundenen Unterhaltung oder im gebundenen Thread fort (oder geben Sie den Sitzungsschlüssel
explizit als Ziel an).
3
Status prüfen
/acp status4
Anpassen
/acp model <provider/model>, /acp permissions <profile>,
/acp timeout <seconds>.5
Steuern
Ohne den Kontext zu ersetzen:
/acp steer tighten logging and continue.6
Stoppen
/acp cancel (aktuelle Runde) oder /acp close (Sitzung und Bindungen).Details zum Lebenszyklus
Details zum Lebenszyklus
- Beim Starten wird eine ACP-Laufzeitsitzung erstellt oder fortgesetzt, ACP-Metadaten werden im OpenClaw-Sitzungsspeicher erfasst und es kann eine Hintergrundaufgabe erstellt werden, wenn der Lauf einer übergeordneten Aufgabe gehört.
- ACP-Sitzungen, die einer übergeordneten Aufgabe gehören, werden auch dann als Hintergrundarbeit behandelt, wenn die Laufzeitsitzung persistent ist; Abschluss und oberflächenübergreifende Zustellung erfolgen über die Benachrichtigungsfunktion der übergeordneten Aufgabe, statt sich wie eine normale benutzerseitige Chatsitzung zu verhalten.
- Die Aufgabenverwaltung schließt beendete oder verwaiste, einer übergeordneten Aufgabe gehörende einmalige ACP-Sitzungen. Persistente ACP-Sitzungen bleiben erhalten, solange eine aktive Konversationsbindung besteht; veraltete persistente Sitzungen ohne aktive Bindung werden geschlossen, damit sie nicht unbemerkt fortgesetzt werden können, nachdem die zugehörige Aufgabe abgeschlossen wurde oder ihr Aufgabeneintrag nicht mehr vorhanden ist.
- Gebundene Folgenachrichten werden direkt an die ACP-Sitzung gesendet, bis die Bindung geschlossen, der Fokus aufgehoben, sie zurückgesetzt oder abgelaufen ist.
- Gateway-Befehle bleiben lokal.
/acp ...,/statusund/unfocuswerden niemals als normaler Prompt-Text an ein gebundenes ACP-Harness gesendet. cancelbricht den aktiven Durchlauf ab, wenn das Backend den Abbruch unterstützt; die Bindung oder die Sitzungsmetadaten werden dadurch nicht gelöscht.closebeendet die ACP-Sitzung aus Sicht von OpenClaw und entfernt die Bindung. Ein Harness kann seinen eigenen vorgelagerten Verlauf weiterhin beibehalten, wenn es die Fortsetzung unterstützt.- Das acpx-Plugin bereinigt nach
closedie OpenClaw-eigenen Wrapper- und Adapter-Prozessbäume und beendet beim Start des Gateways veraltete verwaiste OpenClaw-eigene ACPX-Prozesse. - Inaktive Laufzeit-Worker können nach dem integrierten Inaktivitätszeitraum bereinigt werden; gespeicherte Sitzungsmetadaten bleiben für
/acp sessionsverfügbar.
Routingregeln für natives Codex
Routingregeln für natives Codex
Auslöser in natürlicher Sprache, die an das native Codex-Plugin weitergeleitet
werden sollten, wenn es aktiviert ist:
- „Binden Sie diesen Discord-Kanal an Codex.“
- „Verknüpfen Sie diesen Chat mit dem Codex-Thread
<id>.“ - „Zeigen Sie Codex-Threads an und binden Sie dann diesen.“
before_tool_call blockieren, after_tool_call beobachten und Codex-
PermissionRequest-Ereignisse über OpenClaw-Genehmigungen weiterleiten können. Codex-
Stop-Hooks werden an OpenClaw before_agent_finalize weitergeleitet, wo Plugins
einen weiteren Modelldurchlauf anfordern können, bevor Codex seine Antwort abschließt.
Das Relay bleibt bewusst konservativ: Es verändert weder Argumente Codex-nativer Tools
noch schreibt es Codex-Thread-Datensätze um. Verwenden Sie explizites ACP nur, wenn Sie
das ACP-Laufzeit-/Sitzungsmodell verwenden möchten. Die Grenze der eingebetteten
Codex-Unterstützung ist im
Supportvertrag für Codex Harness v1
dokumentiert.Kurzübersicht zur Modell-, Provider- und Laufzeitauswahl
Kurzübersicht zur Modell-, Provider- und Laufzeitauswahl
- Veraltete Codex-Modellreferenzen – veraltete Codex-OAuth-/Abonnement-Modellroute, die durch doctor repariert wird.
openai/*– eingebettete native Codex-App-Server-Laufzeit für OpenAI-Agentendurchläufe./codex ...– native Codex-Konversationssteuerung./acp ...oderruntime: "acp"– explizite ACP-/acpx-Steuerung.
Natürlichsprachliche Auslöser für ACP-Routing
Natürlichsprachliche Auslöser für ACP-Routing
Auslöser, die an die ACP-Laufzeit weitergeleitet werden sollten:
- „Führen Sie dies als einmalige Claude-Code-ACP-Sitzung aus und fassen Sie das Ergebnis zusammen.“
- „Verwenden Sie Gemini CLI für diese Aufgabe in einem Thread und führen Sie Folgenachrichten anschließend im selben Thread fort.“
- „Führen Sie Codex über ACP in einem Hintergrund-Thread aus.“
runtime: "acp", löst das Harness agentId auf, bindet es,
sofern unterstützt, an die aktuelle Konversation oder den aktuellen Thread und leitet
Folgenachrichten bis zum Schließen oder Ablaufen an diese Sitzung weiter. Codex folgt
diesem Pfad nur, wenn ACP/acpx explizit angegeben wurde oder das native Codex-Plugin
für den angeforderten Vorgang nicht verfügbar ist.Für sessions_spawn wird runtime: "acp" nur angeboten, wenn ACP
aktiviert ist, die anfragende Instanz nicht in einer Sandbox ausgeführt wird und
ein ACP-Laufzeit-Backend geladen ist. acp.dispatch.enabled=false pausiert die automatische
ACP-Thread-Weiterleitung, blendet explizite sessions_spawn({ runtime: "acp" })-Aufrufe jedoch weder
aus noch blockiert es sie. Das Ziel sind ACP-Harness-IDs wie codex,
claude, droid, gemini oder opencode.
Übergeben Sie keine normale OpenClaw-Konfigurations-Agenten-ID aus agents_list,
sofern dieser Eintrag nicht ausdrücklich mit agents.entries.*.runtime.type="acp" konfiguriert ist;
verwenden Sie andernfalls die standardmäßige Sub-Agent-Laufzeit. Wenn ein
OpenClaw-Agent mit runtime.type="acp" konfiguriert ist, verwendet OpenClaw
runtime.acp.agent als zugrunde liegende Harness-ID.ACP im Vergleich zu Sub-Agents
Verwenden Sie ACP, wenn Sie eine externe Harness-Laufzeit benötigen. Verwenden Sie den nativen Codex-App-Server für die Bindung und Steuerung von Codex-Konversationen, wenn das Plugincodex aktiviert ist. Verwenden Sie Sub-Agents, wenn Sie
OpenClaw-native delegierte Läufe benötigen.
Siehe auch Sub-Agents.
So führt ACP Claude Code aus
Für Claude Code über ACP besteht der Stack aus:- OpenClaw-Steuerungsebene für ACP-Sitzungen.
- Offizielles Laufzeit-Plugin
@openclaw/acpx. - Claude-ACP-Adapter.
- Claude-seitige Laufzeit-/Sitzungsmechanik.
- Benötigen Sie
/acp spawn, bindbare Sitzungen, Laufzeitsteuerungen oder persistente Harness-Arbeit? Verwenden Sie ACP. - Benötigen Sie einen einfachen lokalen Text-Fallback über die unverarbeitete CLI? Verwenden Sie CLI-Backends.
Gebundene Sitzungen
Mentales Modell
- Chat-Oberfläche – der Ort, an dem Personen weiter kommunizieren (Discord-Kanal, Telegram-Thema, iMessage-Chat).
- ACP-Sitzung – der dauerhafte Codex-/Claude-/Gemini-Laufzeitzustand, an den OpenClaw weiterleitet.
- Untergeordneter Thread/untergeordnetes Thema – eine optionale zusätzliche Nachrichtenoberfläche, die nur von
--thread ...erstellt wird. - Laufzeit-Arbeitsbereich – der Dateisystemspeicherort (
cwd, Repository-Checkout, Backend-Arbeitsbereich), an dem das Harness ausgeführt wird. Unabhängig von der Chat-Oberfläche.
Bindungen an die aktuelle Konversation
/acp spawn <harness> --bind here bindet die aktuelle Konversation an die
gestartete ACP-Sitzung – kein untergeordneter Thread, dieselbe Chat-Oberfläche. OpenClaw
behält die Kontrolle über Transport, Authentifizierung, Sicherheit und Zustellung.
Folgenachrichten in dieser Konversation werden an dieselbe Sitzung weitergeleitet;
/new und /reset setzen die Sitzung direkt zurück;
/acp close entfernt die Bindung.
Beispiele:
Bindungsregeln und Exklusivität
Bindungsregeln und Exklusivität
--bind hereund--thread ...schließen sich gegenseitig aus.--bind herefunktioniert nur auf Kanälen, die eine Bindung an die aktuelle Konversation anbieten; andernfalls gibt OpenClaw eine eindeutige Meldung aus, dass dies nicht unterstützt wird. Bindungen bleiben über Gateway-Neustarts hinweg bestehen.- Bei Discord steuert
spawnSessionsdie Erstellung untergeordneter Threads für--thread auto|here– nicht für--bind here. - Wenn Sie ohne
--cwdeinen anderen ACP-Agenten starten, übernimmt OpenClaw standardmäßig den Arbeitsbereich des Ziel-Agenten. Fehlende übernommene Pfade (ENOENT/ENOTDIR) greifen auf den Backend-Standard zurück; andere Zugriffsfehler (z. B.EACCES) werden als Startfehler ausgegeben. - Gateway-Verwaltungsbefehle bleiben in gebundenen Konversationen lokal –
/acp ...-Befehle werden von OpenClaw verarbeitet, auch wenn normaler Folgenachrichtentext an die gebundene ACP-Sitzung weitergeleitet wird;/statusund/unfocusbleiben ebenfalls lokal, sofern die Befehlsverarbeitung für diese Oberfläche aktiviert ist.
An Threads gebundene Sitzungen
An Threads gebundene Sitzungen
Wenn Thread-Bindungen für einen Kanaladapter aktiviert sind:
- OpenClaw bindet einen Thread an eine Ziel-ACP-Sitzung.
- Folgenachrichten in diesem Thread werden an die gebundene ACP-Sitzung weitergeleitet.
- ACP-Ausgaben werden an denselben Thread zurückgesendet.
- Aufheben des Fokus, Schließen, Archivieren, eine Inaktivitätsüberschreitung oder das Ablaufen des Höchstalters entfernt die Bindung.
/acp close,/acp cancel,/acp status,/statusund/unfocussind Gateway-Befehle und keine Prompts für das ACP-Harness.
acp.enabled=trueacp.dispatch.enabledist standardmäßig aktiviert (setzen Siefalse, um die automatische ACP-Thread-Weiterleitung zu pausieren; explizitesessions_spawn({ runtime: "acp" })-Aufrufe funktionieren weiterhin).- Das Starten von Thread-Sitzungen durch Kanaladapter ist aktiviert (Standard:
true):- Discord/Telegram:
session.threadBindings.spawnSessions=true
- Discord/Telegram:
Kanäle mit Thread-Unterstützung
Kanäle mit Thread-Unterstützung
- Jeder Kanaladapter, der Funktionen zur Sitzungs-/Thread-Bindung bereitstellt.
- Aktuelle integrierte Unterstützung: Discord-Threads/-Kanäle, Telegram-Themen (Forenthemen in Gruppen/Supergruppen und DM-Themen).
- Plugin-Kanäle können Unterstützung über dieselbe Bindungsschnittstelle hinzufügen.
Persistente Kanalbindungen
Konfigurieren Sie für nicht kurzlebige Workflows persistente ACP-Bindungen inbindings[]-Einträgen der obersten Ebene.
Bindungsmodell
"acp"
Kennzeichnet eine persistente ACP-Konversationsbindung.
object
Identifiziert die Zielkonversation. Kanalspezifische Strukturen:
- Discord-Kanal/-Thread:
match.channel="discord"+match.peer.id="<channelOrThreadId>" - Slack-Kanal/DM:
match.channel="slack"+match.peer.id="<channelId|channel:<channelId>|#<channelId>|userId|user:<userId>|slack:<userId>|<@userId>>". Bevorzugen Sie stabile Slack-IDs; Kanalbindungen erfassen auch Antworten innerhalb der Threads dieses Kanals. - Telegram-Forumsthema:
match.channel="telegram"+match.peer.id="<chatId>:topic:<topicId>" - WhatsApp-DM/-Gruppe:
match.channel="whatsapp"+match.peer.id="<E.164|group JID>". Verwenden Sie für direkte Chats E.164-Nummern wie+15555550123und für Gruppen WhatsApp-Gruppen-JIDs wie120363424282127706@g.us. - iMessage-DM/-Gruppe:
match.channel="imessage"+match.peer.id="<handle|chat_id:*|chat_guid:*|chat_identifier:*>". Bevorzugen Siechat_id:*für stabile Gruppenbindungen.
string
Die ID des zuständigen OpenClaw-Agenten.
"persistent" | "oneshot"
Optionale ACP-Überschreibung.
string
Optionale, für Bediener sichtbare Bezeichnung.
string
Optionales Laufzeit-Arbeitsverzeichnis.
string
Optionale Backend-Überschreibung.
Laufzeitstandardwerte pro Agent
Verwenden Sieagents.entries.*.runtime, um ACP-Standardwerte einmal pro Agent zu definieren:
agents.entries.*.runtime.type="acp"agents.entries.*.runtime.acp.agent(Harness-ID, z. B.codexoderclaude)agents.entries.*.runtime.acp.backendagents.entries.*.runtime.acp.modeagents.entries.*.runtime.acp.cwd
bindings[].acp.*agents.entries.*.runtime.acp.*- Globale ACP-Standardwerte (z. B.
acp.backend)
Beispiel
Verhalten
- OpenClaw stellt nach der kanalspezifischen Zulassung und vor der Verwendung sicher, dass die konfigurierte ACP-Sitzung vorhanden ist.
- Nachrichten in diesem Kanal, Thema oder Chat werden an die konfigurierte ACP-Sitzung weitergeleitet.
- Konfigurierte ACP-Bindungen sind für ihre Sitzungsroute zuständig. Die Broadcast-Auffächerung des Kanals ersetzt bei einer übereinstimmenden Bindung nicht die konfigurierte ACP-Sitzung.
- In gebundenen Unterhaltungen setzen
/newund/resetdenselben ACP-Sitzungsschlüssel direkt zurück. - Temporäre Laufzeitbindungen (beispielsweise durch Thread-Fokus-Abläufe erstellte) gelten weiterhin, sofern vorhanden.
- Bei agentenübergreifenden ACP-Starts ohne explizites
cwdübernimmt OpenClaw den Arbeitsbereich des Zielagenten aus der Agentenkonfiguration. - Fehlende übernommene Arbeitsbereichspfade greifen auf das standardmäßige Backend-cwd zurück; Zugriffsfehler bei vorhandenen Pfaden werden als Startfehler ausgegeben.
ACP-Sitzungen starten
Es gibt zwei Möglichkeiten, eine ACP-Sitzung zu starten:- Über sessions_spawn
- Über den Befehl /acp
Verwenden Sie
runtime: "acp", um eine ACP-Sitzung aus einem Agentendurchlauf oder
Tool-Aufruf zu starten.runtime verwendet standardmäßig subagent; setzen Sie daher runtime: "acp" für
ACP-Sitzungen explizit. Wenn agentId weggelassen wird, verwendet OpenClaw acp.defaultAgent,
sofern konfiguriert. mode: "session" erfordert thread: true, um eine
dauerhaft gebundene Unterhaltung beizubehalten.Parameter von sessions_spawn
string
erforderlich
An die ACP-Sitzung gesendete initiale Anweisung.
"acp"
erforderlich
Muss für ACP-Sitzungen
"acp" sein.string
ID des ACP-Ziel-Harnesses. Greift auf
acp.defaultAgent zurück, sofern festgelegt.boolean
Standard:"false"
Fordert den Thread-Bindungsablauf an, sofern unterstützt.
"run" | "session"
Standard:"run"
"run" ist einmalig; "session" ist dauerhaft. Wenn thread: true und
mode weggelassen werden, kann OpenClaw abhängig vom
Laufzeitpfad standardmäßig dauerhaftes Verhalten verwenden. mode: "session" erfordert thread: true.string
Angefordertes Laufzeit-Arbeitsverzeichnis (durch die Backend-/Laufzeitrichtlinie validiert).
Wenn es weggelassen wird, übernimmt der ACP-Start den Arbeitsbereich des Zielagenten, sofern konfiguriert;
fehlende übernommene Pfade greifen auf die Backend-Standardwerte zurück, während tatsächliche
Zugriffsfehler zurückgegeben werden.
string
Für Bediener sichtbare Bezeichnung, die im Sitzungs-/Bannertext verwendet wird.
string
Setzt eine vorhandene ACP-Sitzung fort, anstatt eine neue zu erstellen. Der Agent
spielt den Unterhaltungsverlauf über
session/load erneut ab. Erfordert
runtime: "acp"."parent"
"parent" überträgt Zusammenfassungen des Fortschritts des initialen ACP-Durchlaufs als Systemereignisse
an die anfragende Sitzung zurück. OpenClaw zeichnet den vollständigen Weiterleitungsverlauf im
SQLite-Zustand des untergeordneten Agenten auf und entfernt ihn zusammen mit der untergeordneten Sitzung. Übergeordnete
Fortschrittsstreams zeigen standardmäßig Assistentenkommentare und ACP-Statusfortschritte an, sofern nicht
streaming.progress.commentary=false. Discord verwendet für übergeordnete
Vorschauen ebenfalls standardmäßig den Fortschrittsmodus, wenn kein Streammodus konfiguriert ist. Der
Statusfortschritt berücksichtigt weiterhin acp.stream.tagVisibility, sodass Tags wie plan
verborgen bleiben, sofern sie nicht ausdrücklich aktiviert werden.sessions_spawn-Durchläufe verwenden agents.defaults.subagents.runTimeoutSeconds
als standardmäßiges Limit für untergeordnete Durchläufe. Das Tool akzeptiert keine
Zeitüberschreibungen pro Aufruf (runTimeoutSeconds/timeoutSeconds werden mit einem
Fehler zurückgewiesen, der zum Konfigurieren des Standardwerts auffordert).
string
Explizite Modellüberschreibung für die untergeordnete ACP-Sitzung. Codex-ACP-Starts
normalisieren OpenAI-Referenzen wie
openai/gpt-5.4 vor session/new in die
Codex-ACP-Startkonfiguration; Slash-Formen wie openai/gpt-5.4/high legen außerdem
den Codex-ACP-Reasoning-Aufwand fest. Wenn der Wert weggelassen wird, verwendet sessions_spawn({ runtime: "acp" })
vorhandene Standardmodelle für Subagenten (agents.defaults.subagents.model oder
agents.entries.*.subagents.model), sofern konfiguriert; andernfalls verwendet das ACP-
Harness sein eigenes Standardmodell. Andere Harnesses müssen ACP-
models bekannt geben und session/set_model unterstützen; andernfalls schlägt OpenClaw/acpx
eindeutig fehl, anstatt stillschweigend auf den Standardwert des Zielagenten zurückzugreifen.string
Expliziter Denk-/Reasoning-Aufwand. Für Codex ACP wird
minimal einem niedrigen
Aufwand zugeordnet, low/medium/high/xhigh werden direkt zugeordnet und bei off wird die
Startüberschreibung für den Reasoning-Aufwand weggelassen. Wenn der Wert weggelassen wird, verwenden ACP-Starts vorhandene
Standardwerte für das Denken von Subagenten sowie das modellspezifische
agents.defaults.models["provider/model"].params.thinking für das ausgewählte
Modell.Bindungs- und Thread-Modi beim Start
- --bind here|off
- --thread auto|here|off
Hinweise:
--bind hereist der einfachste Bedienerpfad, um „diesen Kanal oder Chat mit Codex zu betreiben“.--bind hereerstellt keinen untergeordneten Thread.--bind hereist nur auf Kanälen verfügbar, die Bindungen für aktuelle Unterhaltungen unterstützen.--bindund--threadkönnen nicht im selben/acp spawn-Aufruf kombiniert werden.
Zustellungsmodell
ACP-Sitzungen können entweder interaktive Arbeitsbereiche oder vom übergeordneten Prozess verwaltete Hintergrundarbeit sein. Der Zustellungspfad hängt von dieser Ausprägung ab.Interaktive ACP-Sitzungen
Interaktive ACP-Sitzungen
Interaktive Sitzungen sind dafür vorgesehen, die Unterhaltung auf einer sichtbaren Chatoberfläche fortzusetzen:
/acp spawn ... --bind herebindet die aktuelle Unterhaltung an die ACP-Sitzung./acp spawn ... --thread ...bindet einen Kanal-Thread/ein Kanalthema an die ACP-Sitzung.- Dauerhaft konfigurierte
bindings[].type="acp"leiten übereinstimmende Unterhaltungen an dieselbe ACP-Sitzung weiter.
- Normale gebundene Folgeanfragen werden als Prompt-Text gesendet, mit Anhängen nur dann, wenn die Harness-/Backend-Unterstützung dafür vorhanden ist.
/acp-Verwaltungsbefehle und lokale Gateway-Befehle werden vor der ACP-Weiterleitung abgefangen.- Zur Laufzeit erzeugte Abschlussereignisse werden für jedes Ziel materialisiert. OpenClaw-Agenten erhalten den internen Laufzeitkontext-Umschlag von OpenClaw; externe ACP-Harnesses erhalten einen einfachen Prompt mit dem Ergebnis des untergeordneten Prozesses und einer Anweisung. Der unverarbeitete
<<<BEGIN_OPENCLAW_INTERNAL_CONTEXT>>>-Umschlag darf niemals an externe Harnesses gesendet oder als Text eines ACP-Benutzertranskripts gespeichert werden. - ACP-Transkripteinträge verwenden den für Benutzer sichtbaren Auslösetext oder den einfachen Abschlussprompt. Interne Ereignismetadaten bleiben in OpenClaw nach Möglichkeit strukturiert und werden nicht als vom Benutzer verfasster Chat-Inhalt behandelt.
Übergeordnete einmalige ACP-Sitzungen
Übergeordnete einmalige ACP-Sitzungen
Einmalige ACP-Sitzungen, die von einem anderen Agentenlauf erzeugt werden, sind
untergeordnete Hintergrundprozesse, ähnlich wie Unteragenten:
- Der übergeordnete Prozess fordert mit
sessions_spawn({ runtime: "acp", mode: "run" })Arbeit an. - Der untergeordnete Prozess wird in seiner eigenen ACP-Harness-Sitzung ausgeführt.
- Untergeordnete Durchläufe werden auf derselben Hintergrundspur wie native Unteragentenstarts ausgeführt, sodass ein langsames ACP-Harness nicht die Arbeit anderer Hauptsitzungen blockiert.
- Der Abschluss wird über den Ankündigungspfad für Aufgabenabschlüsse zurückgemeldet. OpenClaw wandelt interne Abschlussmetadaten in einen einfachen ACP-Prompt um, bevor dieser an ein externes Harness gesendet wird, sodass Harnesses keine OpenClaw-spezifischen Laufzeitkontextmarkierungen sehen.
- Der übergeordnete Prozess formuliert das Ergebnis des untergeordneten Prozesses in normaler Assistentensprache neu, wenn eine für Benutzer sichtbare Antwort sinnvoll ist.
sessions_send und A2A-Zustellung
sessions_send und A2A-Zustellung
sessions_send kann nach dem Start auf eine andere Sitzung zielen. Für normale Peer-
Sitzungen verwendet OpenClaw nach dem Einspeisen der Nachricht einen
Agent-zu-Agent-Folgepfad (A2A):- Auf die Antwort der Zielsitzung warten.
- Optional eine begrenzte Anzahl von Folgedurchläufen zwischen anfragender und Zielinstanz zulassen.
- Das Ziel auffordern, eine Ankündigungsnachricht zu erstellen.
- Diese Ankündigung an den sichtbaren Kanal oder Thread zustellen.
tools.sessions.visibility-Einstellungen.OpenClaw überspringt die A2A-Folgeaktion nur, wenn die anfragende Instanz der übergeordnete Prozess
ihres eigenen, übergeordneten einmaligen ACP-Kinds ist. In diesem Fall kann die Ausführung von A2A zusätzlich
zum Aufgabenabschluss den übergeordneten Prozess mit dem Ergebnis des untergeordneten Prozesses aktivieren, die
Antwort des übergeordneten Prozesses zurück an den untergeordneten Prozess weiterleiten und eine
Echo-Schleife zwischen übergeordnetem und untergeordnetem Prozess erzeugen. Das Ergebnis von sessions_send meldet
für diesen Fall eines eigenen untergeordneten Prozesses delivery.status="skipped", da der Abschlusspfad bereits
für das Ergebnis zuständig ist.Vorhandene Sitzung fortsetzen
Vorhandene Sitzung fortsetzen
Verwenden Sie Häufige Anwendungsfälle:
resumeSessionId, um eine frühere ACP-Sitzung fortzusetzen, anstatt
neu zu beginnen. Der Agent spielt seinen Gesprächsverlauf über
session/load erneut ab und setzt somit mit dem vollständigen bisherigen Kontext fort.- Eine Codex-Sitzung vom Laptop auf das Smartphone übergeben – weisen Sie Ihren Agenten an, dort fortzufahren, wo Sie aufgehört haben.
- Eine Programmiersitzung fortsetzen, die Sie interaktiv in der CLI begonnen haben, nun ohne Benutzeroberfläche über Ihren Agenten.
- Arbeit wiederaufnehmen, die durch einen Neustart des Gateway oder ein Inaktivitätszeitlimit unterbrochen wurde.
resumeSessionIdgilt nur, wennruntime: "acp"; die standardmäßige Unteragenten-Laufzeit ignoriert dieses ausschließlich für ACP bestimmte Feld.streamTogilt nur, wennruntime: "acp"; die standardmäßige Unteragenten-Laufzeit ignoriert dieses ausschließlich für ACP bestimmte Feld.resumeSessionIdist eine hostlokale ACP-/Harness-Fortsetzungs-ID und kein OpenClaw-Kanalsitzungsschlüssel; OpenClaw prüft vor der Weiterleitung weiterhin die ACP-Startrichtlinie und die Richtlinie des Zielagenten, während das ACP-Backend oder Harness für die Autorisierung zum Laden dieser vorgelagerten ID zuständig ist.resumeSessionIdstellt den vorgelagerten ACP-Gesprächsverlauf wieder her;threadundmodegelten weiterhin wie gewohnt für die neue OpenClaw-Sitzung, die Sie erstellen, daher erfordertmode: "session"weiterhinthread: true.- Der Zielagent muss
session/loadunterstützen (Codex und Claude Code tun dies). - Wenn die Sitzungs-ID nicht gefunden wird, schlägt der Start mit einer eindeutigen Fehlermeldung fehl – es erfolgt kein stiller Rückfall auf eine neue Sitzung.
Smoke-Test nach der Bereitstellung
Smoke-Test nach der Bereitstellung
Führen Sie nach einer Gateway-Bereitstellung eine aktive End-to-End-Prüfung durch, anstatt sich auf
Unit-Tests zu verlassen:
- Die bereitgestellte Gateway-Version und den Commit auf dem Zielhost überprüfen.
- Eine temporäre ACPX-Bridge-Sitzung zu einem aktiven Agenten öffnen.
- Diesen Agenten auffordern,
sessions_spawnmitruntime: "acp",agentId: "codex",mode: "run"und der AufgabeReply with exactly LIVE-ACP-SPAWN-OKaufzurufen. accepted=yes, einen echtenchildSessionKeyund das Ausbleiben eines Validierungsfehlers überprüfen.- Die temporäre Bridge-Sitzung bereinigen.
mode: "run" bei und überspringen Sie streamTo: "parent" –
Thread-gebundene mode: "session"- und Stream-Relay-Pfade sind separate, umfangreichere
Integrationsdurchläufe.Sandbox-Kompatibilität
ACP-Sitzungen werden derzeit in der Host-Laufzeit ausgeführt, nicht innerhalb der OpenClaw- Sandbox. Aktuelle Einschränkungen:- Wenn die anfragende Sitzung in einer Sandbox ausgeführt wird, werden ACP-Starts sowohl für
sessions_spawn({ runtime: "acp" })als auch für/acp spawnblockiert. sessions_spawnmitruntime: "acp"unterstütztsandbox: "require"nicht.
Auflösung des Sitzungsziels
Die meisten/acp-Aktionen akzeptieren ein optionales Sitzungsziel (session-key,
session-id oder session-label).
Auflösungsreihenfolge:
- Explizites Zielargument (oder
--sessionfür/acp steer)- versucht zuerst den Schlüssel
- dann eine UUID-förmige Sitzungs-ID
- dann die Bezeichnung
- Aktuelle Thread-Bindung (wenn diese Unterhaltung/dieser Thread an eine ACP-Sitzung gebunden ist).
- Rückfall auf die aktuelle anfragende Sitzung.
Unable to resolve session target: ...).
ACP-Steuerung
Laufzeitsteuerungen (
spawn, cancel, steer, close, status, set-mode,
set, cwd, permissions, timeout, model und reset-options) erfordern
bei externen Kanälen die Eigentümeridentität und bei internen
Gateway-Clients operator.admin. Autorisierte Absender ohne Eigentümerstatus können weiterhin sessions,
doctor, install und help verwenden. Für Absender ohne Eigentümerstatus listet /acp sessions
nur die aktuell gebundene oder anfragende Sitzung auf; Eigentümeridentitäten und
operator.admin-Clients sehen alle kürzlich verwendeten Sitzungen.
/acp status zeigt die effektiven Laufzeitoptionen sowie Sitzungskennungen auf Laufzeit-
und Backend-Ebene. Fehler bei nicht unterstützten Steuerungen werden
eindeutig angezeigt, wenn einem Backend eine Fähigkeit fehlt. Befehle, die Zieltokens akzeptieren
(session-key, session-id oder session-label), lösen diese über die Gateway-
Sitzungserkennung auf, einschließlich benutzerdefinierter agentenspezifischer session.store-Stammverzeichnisse. /acp sessions
akzeptiert kein Zieltoken.
Zuordnung der Laufzeitoptionen
/acp verfügt über Komfortbefehle und einen generischen Setter. Gleichwertige Vorgänge:
acpx-Harness, Plugin-Einrichtung und Berechtigungen
Informationen zur Konfiguration des acpx-Harness (Aliasse für Claude Code / Codex / Gemini CLI), zu den MCP-Bridges für Plugin-Tools und OpenClaw-Tools sowie zu den ACP-Berechtigungsmodi finden Sie unter ACP-Agenten – Einrichtung.Fehlerbehebung
Command blocked by PreToolUse hook: Native hook relay unavailable gehört zum
nativen Codex-Hook-Relay, nicht zu ACP/acpx. Starten Sie in einem gebundenen Codex-Chat eine
neue Sitzung mit /new oder /reset; wenn es einmal funktioniert und dann beim
nächsten nativen Tool-Aufruf erneut auftritt, starten Sie den Codex-App-Server oder das OpenClaw Gateway neu,
anstatt /new zu wiederholen. Siehe
Fehlerbehebung für das Codex-Harness.