エージェント調整
ACP エージェント
エージェントクライアントプロトコル (ACP) セッションにより、OpenClaw は ACP バックエンドプラグインを通じて外部コーディングハーネス(例: Pi、Claude Code、Codex、OpenCode、Gemini CLI)を実行できます。OpenClaw に対して「これを Codex で実行して」や「スレッドで Claude Code を開始して」と平文で依頼すると、OpenClaw はそのリクエストを ACP ランタイム(ネイ ティブのサブエージェントランタイムではなく)にルーティングするはずです。
オペレーター向け高速フロー
実用的な /acp 実行手順が必要な場合はこちらを使用してください:
- セッションを生成:
/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 with runtime:"acp" | sessions_spawn (デフォルトランタイム) |
サブエージェントも参照してください。
スレッドバインドセッション (チャネル非依存)
チャネルアダプターでスレッドバインディングが有効になっている場合、ACP セッションをスレッドにバインドできます:
- OpenClaw はスレッドをターゲット ACP セッションにバインドします。
- そのスレッド内のフォローアップメッセージはバインドされた ACP セッションにルーティングされます。
- ACP 出力は同じスレッドに返送されます。
- フォーカス解除/閉じる/アーカイブ/アイドルタイムアウトまたは最大経過時間によりバインディングが削除されます。
スレッドバインディングのサポートはアダプター固有です。アクティブなチャネルアダプターがスレッドバインディングをサポートしていない場合、OpenClaw は明確な未サポート/利用不可メッセージを返します。スレッドバインド ACP に必要な機能フラグ:
acp.enabled=trueacp.dispatch.enabledはデフォルトでオ ン (ACP ディスパッチを一時停止するにはfalseに設定)- チャネルアダプターの ACP スレッド生成フラグが有効 (アダプター固有)
- Discord:
channels.discord.threadBindings.spawnAcpSessions=true - Telegram:
channels.telegram.threadBindings.spawnAcpSessions=true
- Discord:
スレッドをサポートするチャネル
- セッション/スレッドバインディング機能を公開する任意のチャネルアダプター。
- 現在の組み込みサポート:
- Discord スレッド/チャネル
- Telegram トピック (グループ/スーパーグループ内のフォーラムトピックおよび DM トピック)
- プラグインチャネルは同じバインディングインターフェースを通じてサポートを追加できます。
チャネル固有の設定
非一時的なワークフローの場合、トップレベルの bindings[] エントリで永続的な ACP バインディングを構成します。
バインディングモデル
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 エージェント ID です。- オプションの ACP オーバーライドは
bindings[].acpの下に配置:mode(persistentまたはoneshot)labelcwdbackend
エージェントごとのランタイムデフォルト
agents.list[].runtime を使用してエージェントごとに ACP デフォルトを定義:
agents.list[].runtime.type="acp"agents.list[].runtime.acp.agent(ハーネス ID、例:codexまたはclaude)agents.list[].runtime.acp.backendagents.list[].runtime.acp.modeagents.list[].runtime.acp.cwd
ACP バインドセッションのオーバーライド優先順位:
bindings[].acp.*agents.list[].runtime.acp.*- グローバル ACP デフォルト (例:
acp.backend)
例:
{
agents: {
list: [
{
id: "codex",
runtime: {
type: "acp",
acp: {
agent: "codex",
backend: "acpx",
mode: "persistent",
cwd: "/workspace/openclaw",
},
},
},
{
id: "claude",
runtime: {
type: "acp",
acp: { agent: "claude", backend: "acpx", mode: "persistent" },
},
},
],
},
bindings: [
{
type: "acp",
agentId: "codex",
match: {
channel: "discord",
accountId: "default",
peer: { kind: "channel", id: "222222222222222222" },
},
acp: { label: "codex-main" },
},
{
type: "acp",
agentId: "claude",
match: {
channel: "telegram",
accountId: "default",
peer: { kind: "group", id: "-1001234567890:topic:42" },
},
acp: { cwd: "/workspace/repo-b" },
},
{
type: "route",
agentId: "main",
match: { channel: "discord", accountId: "default" },
},
{
type: "route",
agentId: "main",
match: { channel: "telegram", accountId: "default" },
},
],
channels: {
discord: {
guilds: {
"111111111111111111": {
channels: {
"222222222222222222": { requireMention: false },
},
},
},
},
telegram: {
groups: {
"-1001234567890": {
topics: { "42": { requireMention: false } },
},
},
},
},
}
動作:
- OpenClaw は使用前に構成された ACP セッションが存在することを保証します。
- そのチャネルまたはトピック内のメッセージは構成された ACP セッションにルーティングされます。
- バインドされた会話では、
/newと/resetは同じ ACP セッションキーをその場でリセットします。 - 一時的なランタイムバインディング (例: スレッドフォーカスフローによって作成されたもの) は、存在する場合に引き続き適用されます。