2026 OpenClaw マルチ Agent スケジューリング実践:`sessions_spawn` runtime=acp vs subagent 決定マトリクス、streamTo 誤設定トリアージと ACP 1008 ハンドシェイク失敗 Runbook

約 18 分 · MACCOME

メイン Agent から sessions_spawn でサブタスクを起動した際、ACP_TURN_FAILED、invalid handshake 1008、または queue owner unavailable が出る一方、同一 Gateway 上の直接チャットは正常——この記事では次を説明します:runtime=acpruntime=subagent の選定タイミング;② streamTo / resumeSessionId が acp パス専用である理由と subagent 誤設定のトリアージ;③ ACP ハンドシェイク失敗時の subagent フォールバックと Windows OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE;④ OpenAI Completions vs Responses における streamTo 自動入力の差異アップグレード護航 ACP トリアージDocker サブエージェント 1008 ペアリングと補完関係にあり——本記事はマルチ Agent スケジューリング runtime 選定に特化します。

マルチ Agent スケジューリングで最も多い六つの誤判断(runtime を変える前に整理)

  1. デフォルト runtime=acp なのに ACP bridge が未整備:メインチャネルは会話できるが spawn すると ACP_TURN_FAILED——原因は acpx 未登録または queue owner オフラインであり、モデルクォータではありません。
  2. runtime=subagentstreamTo / resumeSessionId を入れる:これらは ACP セッション継続専用です。subagent は Gateway 内蔵 RPC を通るため、誤設定はパラメータ無効またはサイレントにフィールド破棄となり、「サブ Agent がコンテキストを受け取っていない」ように見えます。
  3. 1008 をすべて Docker ペアリング問題とみなす:Compose シナリオはtrustedProxies 専記事を参照;ローカル acp パスの 1008 は handshake バージョンまたは bridge 競合が多いです。
  4. アップグレード後 reload せず spawn をテスト:CLI は新版、Gateway は旧プロセスのまま——acp と subagent のスタックが分裂します。先に受け入れラダーを揃えてからスケジューリングを試してください。
  5. Windows で acpx 起動プローブを無視:provider 拡張が起動を遅らせると、bridge 準備前に ACP ハンドシェイクが走り、ログに invalid handshake が出ます。OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE で延長またはリトライしてください。
  6. Completions と Responses API を混在させ streamTo 自動入力を確認しない:2026 ルーティング層は Responses セッションで streamTo 先を推論しますが、Completions パスではしません——spawn 障害と誤認しやすく、実際は API 形態と runtime の不一致です。

2026 上流は sessions_spawn を二つの排他的ランタイムに明確化しました:runtime=acp は ACP bridge 経由で外部 acpx プロセスと通信し、streamTo でサブ Agent 出力をメインセッション UI に戻せます;runtime=subagent は Gateway プロセス内で軽量サブエージェントを起動し、レイテンシが低く acpx 非依存ですが、ACP 専用の継続フィールドは非対応です。runtime 誤選択に誤フィールドを重ねると、on-call で最も時間を消費する「偽の複雑さ」になります——まずパスを揃え、モデルとツール allowlist はその後(tools.profile トリアージ参照)。

実務では各 spawn 呼び出しをスケジューリング契約として記録することをおすすめします。契約には runtime、UI 戻しの要否、メインセッションが Completions か Responses か、失敗時のフォールバック(subagent またはロールバック)を明記してください。この契約がないと、「昨日は spawn できたのに今日は不可」という事象の説明が困難になります——変更は Gateway プロセスよりテンプレートフィールドや API 形態に起きることが多いからです。

サイト内の既存長文 本記事の範囲 本記事で繰り返さない内容
アップグレード護航 ACP トリアージ spawn シナリオでの acp vs subagent 選定とフォールバック backup create、gateway probe 全ラダー
Docker サブエージェント 1008 subagent パスと pairing 1008 の境界 Compose trustedProxies 手順
tools.profile トリアージ spawn 成功後「サブ Agent にツールなし」の二次調査 allowlist 三層の専記事
SSH 常駐 Gateway リモート Mac 上の acpx と subagent 共存トポロジ ポート転送と launchd の詳細

runtime=acp vs runtime=subagent:どちらのスタックをいつ使うか

選定の覚え方:UI 戻し、既存 ACP セッション継続、Cursor/IDE 側 acpx との整合が必要 → acpGateway 内完結、低依存、acp が現時点で使えない → subagent。下表は本番で最も多い四つのタスク形態です(網羅ではありませんが、チケットの 80% をカバーします):

タスク形態 推奨 runtime 主要パラメータ 避けるべきこと
サブ Agent 出力をメインチャットにストリーム戻し acp streamTo をメイン session へ;任意で resumeSessionId subagent + streamTo(無効な組み合わせ)
バックグラウンドバッチ、UI 戻し不要 subagent task 記述 + タイムアウト;streamTo なし 無理に acp で bridge 故障面を増やす
ACP bridge が queue owner unavailable 一時的 subagent チケットにフォールバック記録;並行して acpx 登録を修復 acp を繰り返しリトライして MTTR を押し上げる
マルチコンテナ Docker、RPC healthy だが spawn 1008 ペアリング/ネットワーク修復後に subagent trustedProxies を照合;Docker 専記事参照 bind 未修正のまま runtime 切替

streamTo / resumeSessionId:acp 専用の誤設定トリアージ

コミュニティで多い「spawn パラメータは正しそうだがサブ Agent が空返答」は、フィールドと runtime の交差汚染が原因です。Gateway は subagent パスで ACP 専用フィールドを剥離または拒否します。メイン Agent テンプレートが Completions 例から streamTo: "main" をコピーし、実際の呼び出しが runtime=subagent だと、ログは汎用 RPC error のみで「フィールド無効」とは出ません——呼び出し JSON を照合してください。

runtime=acp では resumeSessionId が既存 acpx セッション継続に使われ(同一スレッドで複数 spawn など)、streamTo がサブ Agent トークンストリームをメイン Control UI または指定 channel 描画先へ向けます。2026 Responses API ルーティングは一部設定で streamTo自動推論します(メインセッションが Responses 形態にバインドされ未明示入力の場合);Completions 形態では自動入力されません——Responses 環境から Completions へ移行し spawn テンプレートを変えないと、「以前は戻せたのに今はサブ Agent が裏で完走する」回帰が起きます。これは upgrade 無関係で、API 形態 + runtime の組み合わせ問題です。

トリアージではフィールド剥離実験が有効です:失敗した呼び出し JSON を複製し、streamToresumeSessionId を除いて runtime=subagent で再試行してください。subagent が即成功すれば、元の障害は ACP パスまたは誤設定とほぼ断定でき、task 内容やモデル能力の問題ではありません。失敗が続く場合は pairing、Token、またはツール面へ。本実験は Runbook 第 4 步に記載し、on-call が acp ログで空転しないようにしてください。

json
// ✅ acp:UI 戻し + 任意で継続
{
  "tool": "sessions_spawn",
  "runtime": "acp",
  "task": "競合他社の価格を調査し表を出力",
  "streamTo": "main",
  "resumeSessionId": "acp-sess-abc123"
}

// ✅ subagent:Gateway 内完結、streamTo 不要
{
  "tool": "sessions_spawn",
  "runtime": "subagent",
  "task": "logs ディレクトリ内ファイルの一括リネーム"
}

// ❌ よくある誤設定:subagent に ACP フィールド
{
  "runtime": "subagent",
  "streamTo": "main"
}

ACP ハンドシェイク失敗トリアージ:ACP_TURN_FAILED、1008、queue owner

runtime=acp が失敗しメインチャットは正常な場合、ログ指紋で分流してください——「Gateway が完全無応答」と混同しないでください(後者はチャネル/モデル専記事へ)。

ログ / 症状 優先疑い 第一アクション
ACP_TURN_FAILED acpx プロセス未就绪;turn タイムアウト Windows で OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE=1;bridge 登録確認
invalid handshake / WebSocket 1008 CLI/Gateway/acpx バージョン分裂;ハンドシェイクヘッダ不一致 同一バージョンに揃える;単回 reload;ピン留めマトリクス参照
queue owner unavailable ACP bridge 登録喪失(2026.3.x 回帰ウィンドウ) host acpx 確認;一時 runtime=subagent で SLA 維持
subagent も 1008 ペアリング/Token/ネットワーク(ACP 専用ではない) Docker 1008 Runbook
spawn 成功だがサブ Agent にツールなし tools.profile / agent 上書き tools.profile トリアージ
warning

フォールバック戦略:acp パスが変更ウィンドウ内で連続二回失敗(reload 後再試含む)し、subagent 単独パスが最小タスクプローブを通過する場合、チケットに「一時 runtime=subagent」を明記し、UI 戻しが必要なタスクを制限してください——acpx 修復後に acp へ戻します。これは不良バージョン digest ロールバックと直交します:フォールバックは SLA 維持、ロールバックは既知 regression の修復です。

Windows と OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE

Windows では provider 拡張と Defender スキャンが acpx コールドスタートを数秒以上遅らせることがあります。bridge 準備前に spawn すると ACP_TURN_FAILED または invalid handshake に見えます。環境変数 OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE=1(意味はインストール版ドキュメント準拠)を設定すると、Gateway が初回 spawn 前に acpx ヘルスプローブを追加で待ち、競合による偽失敗率を下げられます。それでも失敗する場合は、同一マシン subagent 最小タスクで Gateway スケジューリングスタック自体が健全か確認し、acpx インストール/権限問題を切り分けてください——Windows 起動遅延を「OpenClaw バージョンをロールバック必須」と誤判断しないためです。

アップグレード護航との分担:護航記事は「バージョン移行後の probe/ACP 全サイト回帰」;本記事は「バージョン安定後、spawn スケジューリング層の誤選択または handshake 偶発失敗」。連携時は upgrade ラダー通過を先に確認し、本記事の runtime マトリクスへ——さもないと split-brain を streamTo 誤設定と誤判断します。

powershell
# Windows:acpx 起動プローブ延長(例)
$env:OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE = "1"
openclaw gateway status
openclaw gateway probe

# 最小 subagent プローブ(streamTo なし)
# Control UI または CLI から同等 sessions_spawn、runtime=subagent

acp 障害時は先に subagent:修復継続 vs ピン留め vs フォールバックの決定マトリクス

影響範囲 acp 修復継続(設定/bridge) 一時 runtime=subagent ピン留め/ロールバック
spawn/acp のみ赤、メインチャネルと subagent プローブは正常 acpx 登録、startup probe 調査 推奨:UI 戻し不要タスクは subagent 優先 既知 regression ウィンドウ内で検討
acp + subagent 両方失敗、probe も赤 backup 復元後のみ単步試行 第一選択ではない 優先 backup または digest ロールバック
UI 戻し必須、acp 利用不可 bridge 修復前に業務損害 streamTo シナリオは代替不可 ロールバック評価またはリモート Mac 常駐 Gateway

七步「選定—プローブ—spawn—トリアージ—フォールバック—記録」Runbook

  1. 呼び出し JSON を固定runtimestreamTo / resumeSessionId の有無、メインセッション API 形態(Completions vs Responses)を記録。
  2. Gateway ベースラインopenclaw gateway status + gateway probe;アップグレード後は必ず単回 reload(アップグレード護航参照)。
  3. 選定セルフチェック:UI 戻し必要 → acp + streamTo;バックグラウンド → subagent、ACP フィールド除去。
  4. 最小 spawn プローブ:先に subagent で読み取り専用一文;通過すればスケジューリングスタック正常、失敗なら pairing/Token。
  5. acp 专项:acpx プロセスと bridge 確認;Windows で OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE;1008 / queue owner ログ取得。
  6. フォールバックまたはロールバック:acp 二回連続失敗 → チケットに subagent フォールバック;両パス全断 → digest ロールバック。
  7. クローズ指標:spawn 成功率、フォールバック比率、MTTR を記録;内部 runtime 選定メモ更新。

変更チケットに書く三つの定量指標

  • spawn 成功率(runtime 別):単位時間の sessions_spawn 成功回数 / 総呼び出し;acp 桶が 95% 未満で subagent 桶が正常なら、モデル変更より bridge 修復を優先。
  • acp→subagent フォールバック比率:UI 戻し必須タスクを長期フォールバック依存すべきではありません;一週間連続で >30% のチケットが subagent 代替なら、バージョンピンまたはトポロジ移行を推進。
  • streamTo 誤設定イベント数runtime=subagent 呼び出しに streamTo/resumeSessionId が残る監査カウント;本番目標 0(アプリ層 lint またはテンプレートレビュー)。

ノート PC Gateway で acpx、蓋閉じスリープ、複数 provider プラグインを混在させると、spawn 失敗が「OpenClaw 不安定」と誤記録されがちです。より安定した方法は、権威 Gateway と acpx を常時電源のリモート Macに同居させ、ローカルは SSH で Control UI を転送のみ——spawn と probe を同一ノードで受け入れ、ログタイムラインを揃えます。

まとめ:runtime 選定はスケジューリング契約であり、調参の玄学ではない

メイン Agent の prompt だけを繰り返し変更し、runtimestreamTo の整合を確認しないと、ACP ハンドシェイク問題が「マルチ Agent 不可用」の錯覚に拡大します。逆に acp/subagent 決定マトリクス、誤設定トリアージ、subagent フォールバックを runbook に書けば、on-call を一晩の盲試から、プローブ・フォールバック・指標のある分単位インシデントに圧縮できます。

Windows ノートまたは Docker 分離コンテナトポロジで acp bridge を無理に維持する場合、三つの隐性コストを受け入れてください:起動競合による偽 1008、Completions/Responses と streamTo 自動入力の不一致、subagent と acp 故障面の重なりによる調査半径の拡大。7×24、spawn をチケット化、acp と subagent を切替可能な本番 Gateway には、MACCOME Mac mini(M4 / M4 Pro)と六地域柔軟リースが、蓋閉じノートで queue owner と格闘するより総コストが低いことが多いです。公開プランは多地域ノード・リースガイドを参照し、SSH 常駐 Runbookでトポロジを連結してください。

よくある質問

streamToresumeSessionIdruntime=subagent で使えますか?

使えません。いずれも runtime=acp の ACP 継続と UI 戻し専用です。subagent パスでは task 等の Gateway 内蔵フィールドのみ渡してください。テンプレートレビューはレンタル料金の本番ノードチケット化実践を参照できます。

ACP が 1008 または queue owner unavailable を返したら必ずバージョンをロールバックしますか?

必ずしもそうではありません。症状表で bridge 登録と Docker ペアリング 1008 を区別してください。メインチャネル正常なら一時 runtime=subagent と Windows startup probe を使用。両パス連続失敗時はdigest ロールバック;接続問題はヘルプセンターをご参照ください。