#メインエージェントサブエージェント

1 messages · Page 1 of 1 (latest)

fluid dew
#

メインエージェントとそれぞれの運用に合わせたサブエージェントを設定してそれぞれにフォールバックモデルをつけるという設定をしたいです

サブエージェントはどのように分けるべきですか?

steady condorBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

sick narwhalBOT
#

分け方は「モデル別」より先に、責務・権限・データ境界で切るのがおすすめです。

おすすめ構成はこんな感じです:

  1. main / coordinator

    • ユーザーとの会話、方針決定、最終回答の統合だけ担当
    • 強めのモデルを primary、安定した別プロバイダを fallback
    • ここに全部のツール権限を持たせすぎないのが安全です
  2. research / web

    • Web検索、資料読み込み、比較、要約
    • 多少安いモデルでも可。ただし外部入力を読むので、弱すぎるモデルは避ける
    • browser / web 系ツール中心
  3. coding / dev

    • リポジトリ調査、実装案、テスト、差分確認
    • コード用に強いモデル・Codex系などを割り当てる
#
  • file / exec / git 関連を使うなら sandbox や許可範囲を絞るのがおすすめ
  1. ops / automation

    • cron、定期レポート、通知、軽い監視、定型処理
    • コスト重視の primary + 失敗時だけ強い fallback でもよい
    • ただし外部送信や削除系の権限はかなり絞る
  2. private / memory / personal(必要なら)

    • 個人情報・長期記憶・予定・連絡先などを扱う専用
    • 他の作業用エージェントと workspace / session / auth を分ける
    • ここは安さより信頼性・安全性優先

逆に、最初から細かく分けすぎるのはおすすめしません。まずは main + research + coding + automation の4つくらいで始めて、運用で詰まったところだけ増やすのが扱いやすいです。

注意点:

  • 「サブエージェント」は長い作業や並列作業のための子セッションです。デフォルトでは親のモデルを継承しますが、agents.defaults.subagents.model や agent ごとの subagents.model で安いモデルにできます。
  • 複数の常設エージェントを作る場合は openclaw agents add <id> で agent を分けます。agentDir は絶対に使い回さないでください。auth/session が混ざります。
#
  • fallback は基本的に primaryfallbacks の順です。ただし /model でユーザーが明示選択したセッションは strict 扱いで、勝手に fallback しない仕様があります。

関連 docs:
https://docs.openclaw.ai/concepts/multi-agent
https://docs.openclaw.ai/tools/subagents
https://docs.openclaw.ai/concepts/model-failover
https://docs.openclaw.ai/concepts/models

もし「Discord用」「開発用」「定期実行用」みたいな具体的な運用イメージがあるなら、その前提で agent 構成案まで一緒に切れます 🦞

fluid dew
#

どんな時にサブエージェントを使うかはどうやって指示するんですか?

提案の5つのエージェント構成で行きたいです

sick narwhalBOT
#

はい、その5構成でいくなら、サブエージェントを使うタイミングは 設定 + メインエージェントへの運用指示 の2段で決めるのが一番わかりやすいです。

大事なのは、delegationMode は「促し」であって、完全な強制ルールではないことです。なので configでサブエージェント利用を許可し、AGENTS.mdに判断基準を書く のが実運用向きです。

例:メインエージェントにはこう指示します。

## サブエージェント運用方針

あなたは coordinator として動く。
ユーザーとの会話、判断、最終回答の統合を担当する。

次の場合は自分で抱え込まず、サブエージェントに委任する:

- Web検索、比較調査、資料読み込みが必要 → research
- リポジトリ調査、実装、テスト、コードレビュー → coding
#
- cron、定期処理、監視、通知、軽い自動化 → automation
- 個人情報、予定、記憶、連絡先、プライベート文脈 → private
- 10分以上かかりそう、または複数作業を並列に進められる → サブエージェントを使う

短い質問、方針確認、最終判断、外部送信前の確認は main が行う。
サブエージェントの結果はそのまま貼らず、main が要約・検証して返す。

設定側は概念的にはこんな感じです。モデル名は実際に使うものに置き換えてください:

{
  agents: {
    defaults: {
      subagents: {
#
        delegationMode: "prefer",
        allowAgents: ["research", "coding", "automation", "private"],
        requireAgentId: true,
        maxConcurrent: 4,
        runTimeoutSeconds: 900
      }
    },
    list: [
      {
        id: "main",
        workspace: "~/.openclaw/workspace-main",
        model: {
          primary: "provider/main-primary",
          fallbacks: ["provider/main-fallback"]
        },
#
        subagents: {
          delegationMode: "prefer",
          allowAgents: ["research", "coding", "automation", "private"],
          requireAgentId: true
        }
      },
      {
        id: "research",
        workspace: "~/.openclaw/workspace-research",
        model: {
          primary: "provider/research-primary",
          fallbacks: ["provider/research-fallback"]
        }
      },
      {
#
        id: "coding",
        workspace: "~/.openclaw/workspace-coding",
        model: {
          primary: "provider/coding-primary",
          fallbacks: ["provider/coding-fallback"]
        }
      },
      {
        id: "automation",
        workspace: "~/.openclaw/workspace-automation",
        model: {
          primary: "provider/cheap-primary",
          fallbacks: ["provider/strong-fallback"]
        }
      },
#
      {
        id: "private",
        workspace: "~/.openclaw/workspace-private",
        model: {
          primary: "provider/private-primary",
          fallbacks: ["provider/private-fallback"]
        }
      }
    ]
  }
}

ポイント:

  • delegationMode: "prefer" にすると、メインに「重い作業は委任しよう」という方向づけが入ります。
#
  • allowAgents で main が呼び出せるサブエージェントを制限します。
  • requireAgentId: true にすると、曖昧に同じ agent へ spawn するのを避けやすいです。
  • 各 agent の model.primary / model.fallbacks で、その役割ごとの fallback を持たせます。
  • agentDir は使い回さないでください。auth/session が混ざります。

手動で使う場合は、ユーザー側からも例えば:

research サブエージェントで調べて
coding サブエージェントに実装案を見させて
private エージェントで予定と記憶を確認して

みたいに指示できます。

docs はここです:
https://docs.openclaw.ai/tools/subagents

fluid dew
sick narwhalBOT
#

まず念のため、実際に設定を詰める前に openclaw --version は確認してください。バージョン差で config キーや挙動が変わることがあります。

記述場所は主に3つです。

  1. 全体設定
    ~/.openclaw/openclaw.json

    ここに以下を書きます:

    • agents.defaults
    • agents.list[]
    • 各 agent の model.primary / model.fallbacks
    • subagents.allowAgents
    • subagents.delegationMode
    • bindings
    • channel 設定

    直接編集してもいいですし、openclaw config set ... や Control UI の Config からでもOKです。

#
  1. 各エージェントの運用ルール
    各 workspace の AGENTS.md / SOUL.md など

    例:

    • ~/.openclaw/workspace-main/AGENTS.md
    • ~/.openclaw/workspace-research/AGENTS.md
    • ~/.openclaw/workspace-coding/AGENTS.md

    「どんな時に research を呼ぶか」「coding に何を任せるか」みたいな判断基準は、config だけでなく main の AGENTS.md に書く のが実用的です。

  2. 認証情報 / モデルレジストリ
    これは基本的に手で触らず、wizard/CLIに任せるのが安全です。

    • auth: ~/.openclaw/agents/<agentId>/agent/auth-profiles.json
    • custom provider/model registry: ~/.openclaw/agents/<agentId>/agent/models.json

    ここは直接編集より openclaw configure / openclaw models ... 推奨です。

#

流れとしては、私はこの順番をおすすめします:

openclaw --version
openclaw configure --section model
openclaw agents add research
openclaw agents add coding
openclaw agents add automation
openclaw agents add private
openclaw agents list --bindings
openclaw models status

その後に ~/.openclaw/openclaw.json で main / research / coding / automation / private の model と fallback、subagents 許可を整える感じです。

openclaw configure でモデル追加は事前に済ませるべきか?への答えは:はい、先に済ませるのがおすすめです。

#

理由は:

  • primaryfallbacks に書く provider/model が実際に使えるか確認できる
  • API key / OAuth が入っていない provider を fallback にしても実行時に失敗する
  • agents.defaults.models を使っている場合、allowlist にないモデルは /model や picker から選べない
  • openclaw models status で missing auth を先に潰せる

ただし、全部のモデルを手作業で登録する必要があるとは限りません。Anthropic/OpenAI/OpenRouter などの既知 provider は catalog/discovery が効くので、最低限必要なのは 使う provider の認証使いたいモデルが allowlist に入っていること です。

関連 docs:
https://docs.openclaw.ai/gateway/configuration
https://docs.openclaw.ai/concepts/models
https://docs.openclaw.ai/concepts/multi-agent
https://docs.openclaw.ai/tools/subagents

fluid dew
#

OpenAI Codex OAuthは

◻ openai-codex/gpt-5.1 (GPT-5.1 · ctx 266k · reasoning · ChatGPT OAuth route)
│ ◻ openai-codex/gpt-5.1-codex-max
│ ◻ openai-codex/gpt-5.1-codex-mini
│ ◻ openai-codex/gpt-5.2
│ ◻ openai-codex/gpt-5.2-codex
│ ◼ openai-codex/gpt-5.3-codex
│ ◻ openai-codex/gpt-5.4
│ ◻ openai-codex/gpt-5.4-mini
│ ◻ openai-codex/gpt-5.4-pro
│ ◼ openai-codex/gpt-5.5
│ ◻ openai-codex/gpt-5.5-pro

どれを選ぶのがおすすめですか?

sick narwhalBOT
#

この中なら、まずは 「最新の通常版」+「軽量版」+必要時だけ「pro/max」 で考えるのが安全です。

おすすめの使い分けは:

  • main / coordinator

    • 最新の通常版を primary
    • ひとつ前の安定版 or 別providerを fallback
    • pro は常用しなくてOK。高コストになりがちです
  • coding

    • codex と付く強めのものを primary
    • 通常版 or ひとつ前の codex 系を fallback
    • 実装・レビュー・リポジトリ調査をここに寄せる
  • research

    • 通常版で十分なことが多いです
    • コストを抑えたいなら mini 系でも可。ただし雑な調査になるなら通常版へ
#
  • automation

    • mini / 軽量版 primary
    • 通常版 fallback
    • 定期実行・通知・軽い要約はここで節約
  • private

    • 安さより安定性重視
    • main と同じ通常版、または信頼している別providerを fallback にするのがおすすめ

つまり、いきなり pro/max を全部に割り当てるより、main/coding は強め、automation は安め、pro/max は必要時だけ が良いです。

リアルタイムのモデル品質や制限は変わるので、最新の体感は #models も見てください。docs はこちら:
https://docs.openclaw.ai/concepts/models
https://docs.openclaw.ai/concepts/models#model-discussions-community-notes

fluid dew
#

どこを見ればセットアップ済みのモデルを見ることができますか?

sick narwhalBOT
#

見る場所はこのへんです:

  1. 今使える/設定済みモデルを見る
openclaw models status
openclaw models list
  1. OpenAI Codex OAuth の候補を選ぶ画面
openclaw configure --section model

または Control UI の Config / Models まわり。

  1. モデル選びの考え方
    docs:
    https://docs.openclaw.ai/concepts/models
#
  1. 最新の体感・おすすめ
    Discord の #models チャンネルを見るのが一番新しいです。モデル性能や制限はすぐ変わるので、私は固定のモデル名を断言しすぎないようにしています。

まずは openclaw models status を貼ってくれたら、今の認証・allowlist・default/fallback の状態を見て「この5エージェント構成ならこう割り当てる」ができます。

#

セットアップ済み/認証済みのモデルを見るなら、まずこれです:

openclaw models status

モデル一覧を見たい場合:

openclaw models list

全部のカタログ候補まで見たい場合:

openclaw models list --all
#

設定ファイル上ではここにあります:

openclaw config get agents.defaults.model
openclaw config get agents.defaults.models

直接見るなら:

cat ~/.openclaw/openclaw.json

見るポイントは:

  • agents.defaults.model.primary = デフォルトのメインモデル
  • agents.defaults.model.fallbacks = fallback モデル
  • agents.defaults.models = 使用許可/表示されるモデル allowlist
#
  • openclaw models status の Missing auth = 認証未設定の provider

迷ったら openclaw models status の出力を貼ってくれれば、どれが使える状態か一緒に見られます。

fluid dew
#

mfbc@mfbc-server:~$ openclaw models status

🦞 OpenClaw 2026.5.7 (eeef486) — One CLI to rule them all, and one more restart because you changed the port.

Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : google/gemini-3.1-flash-lite-preview
Fallbacks (3) : google/gemini-2.5-flash, google/gemini-3-flash-preview, google/gemma-4-31b-it
Image model : -
Image fallbacks (0): -
Aliases (3) : gemini-flash-lite -> google/gemini-3.1-flash-lite-preview, OpenRouter -> openrouter/auto, gemini-flash -> google/gemini-3-flash-preview
Configured models (17): google/gemini-3.1-flash-lite-preview, openai/gemini, openai-codex/gpt-5.5, openai-codex/gpt-5.3-codex, openai-codex/gpt-5.5-pro, openai-codex/gpt-5.4-mini, cerebras/llama3.1-8b, cerebras/qwen-3-235b-a22b-instruct-2507, openrouter/auto, openrouter/free, openrouter/openai/gpt-oss-120b:free, openrouter/qwen/qwen3-coder:free, openrouter/inclusionai/ling-2.6-1t:free, openrouter/google/gemma-4-31b-it:free, google/gemini-2.5-flash, google/gemini-3-flash-preview, google/gemma-4-31b-it

Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (1): openai-codex (1)

  • cerebras effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | cerebras:default=csk-vepc...vxm5fped
  • google effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | google:default=AIzaSyAa...NMV7Xkow
  • openai-codex effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=1, token=0, api_key=0) | openai-codex:=OAuth
  • openrouter effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | openrouter:default=sk-or-v1...c47a5419

OAuth/token status

  • openai-codex usage: 168h 75% left ⏱2d 23h
    • openai-
sick narwhalBOT
#

見た感じ、今の状態はかなり良いです。

今わかること:

  • OpenClaw: 2026.5.7
  • config: ~/.openclaw/openclaw.json
  • 現在の default は Google の flash-lite 系
  • fallback も今は Google 系 3つ
  • Configured models (17) に OpenAI Codex / Google / Cerebras / OpenRouter が入っている
  • auth は google / openai-codex / cerebras / openrouter が有効
  • OpenAI Codex OAuth も使える状態で、使用枠もまだ残っています

つまり、モデル追加と認証は main agent では済んでいます。

ただし重要なのはここです:

今表示されているのは

#
Agent dir : ~/.openclaw/agents/main/agent

なので、これは main agent の状態 です。

これから research, coding, automation, private を追加する場合、各 agent は別の agentDir を持ちます。OpenClaw は main の auth を参照できる場合がありますが、確実に運用したいなら、追加後にそれぞれで openclaw models status 相当を確認した方がいいです。

次にやることはこの流れがおすすめです:

openclaw agents add research
openclaw agents add coding
openclaw agents add automation
openclaw agents add private
openclaw agents list --bindings
#
openclaw models status

その後、~/.openclaw/openclaw.json で 5 agent の model を割り当てます。

この手持ちモデルなら、方針としては:

  • main: Google の軽め default でも可。ただし最終回答品質を重視するなら Codex/GPT系を primary にする
  • research: Google / OpenRouter 系でコスト重視
  • coding: OpenAI Codex 系を primary にするのが自然
  • automation: Google flash-lite / Cerebras / OpenRouter free 系など軽量寄り
  • private: 安定重視。Google or OpenAI Codex の信頼できる組み合わせ

今の config は「main の default/fallback が Google 寄り」なので、coding agent だけ Codex 系に切り出すのが一番効果が出そうです。

次に貼ってほしいのはこれです:

#
openclaw config get agents

それを見れば、5エージェント用の agents.listsubagents.allowAgents をどう足すか、かなり具体的に案内できます。

fluid dew
#

◆ Copy portable auth profiles from "main"?
│ ○ Yes / ● No

これにYesで回答すればAuth情報のコピー不要ですか?

sick narwhalBOT
#

はい、基本は Yes で大丈夫です。

その質問は「main から portable な auth profile を新しい agent にコピーする?」という意味です。

ただし重要な注意点があります:

  • API key / token 系

    • Google API key
    • OpenRouter API key
    • Cerebras API key
      などは portable なので、Yes でコピーされます。
  • OAuth 系

    • OpenAI Codex OAuth など
      これは “portable” ではない扱いになることがあります。つまり Yes にしても完全コピーされない/別 agent で再ログインが必要 な場合があります。

なので答えとしては:

#

Yes にしてOK。ただし OpenAI Codex OAuth だけは後で各 agent で使えるか models status で確認してください。

追加後に確認:

openclaw models status

もし coding agent で Codex が missing auth になるなら、その agent 側で Codex OAuth をログインし直すか、main の auth を参照する構成にする必要があります。

安全な運用としては、まず Yes で進めて、agent 作成後に:

openclaw agents list --bindings
openclaw models status
#

を確認、でOKです。

fluid dew
#

◆ Configure chat channels now?
│ ● Yes / ○ No

これはどうゆうことですか?
Mainとしかチャットしない(サブえーじゃんとはメインんからのみの呼び出し)の場合は設定不要ですか?

sick narwhalBOT
#

はい、その理解で合っています。

Main とだけチャットして、research/coding/automation/private は main からサブエージェントとして呼び出すだけなら、ここは No でOK です。

これは「この agent に Discord / Telegram / WhatsApp などのチャット経路を直接紐づけますか?」という意味です。

  • Yes: その agent に直接メッセージが届くように channel/binding を設定する
  • No: チャット経路は設定しない。main から sessions_spawn / subagent として呼ぶ用途にする

今回の構成なら:

ユーザー ↔ main
          ├─ research
          ├─ coding
          ├─ automation
#
          └─ private

なので、research / coding / automation / private 作成時の Configure chat channels now? は No で大丈夫です。

後で必要になったら bindings を追加すれば直接チャット可能にできます。

ただし、main から呼べるようにするには後で ~/.openclaw/openclaw.json 側で main の subagents.allowAgents にその agent id を入れる必要があります。

fluid dew
#

🦞 OpenClaw 2026.5.7 (eeef486) — I read logs so you can keep pretending you don't have to.

Agents:

  • main (default)
    Identity: 🐸 天翔える(あまがえる) (IDENTITY.md)
    Workspace: ~/.openclaw/workspace
    Agent dir: ~/.openclaw/agents/main/agent
    Model: google/gemini-3.1-flash-lite-preview
    Routing rules: 0
    Routing: default (no explicit rules)
  • research
    Workspace: ~/.openclaw/workspace/research
    Agent dir: ~/.openclaw/agents/research/agent
    Model: google/gemini-3.1-flash-lite-preview
    Routing rules: 0
  • coding
    Workspace: ~/.openclaw/workspace/coding
    Agent dir: ~/.openclaw/agents/coding/agent
    Model: google/gemini-3.1-flash-lite-preview
    Routing rules: 0
  • automation
    Workspace: ~/.openclaw/workspace/automation
    Agent dir: ~/.openclaw/agents/automation/agent
    Model: google/gemini-3.1-flash-lite-preview
    Routing rules: 0
  • private
    Workspace: ~/.openclaw/workspace/private
    Agent dir: ~/.openclaw/agents/private/agent
    Model: google/gemini-3.1-flash-lite-preview
    Routing rules: 0
    Routing rules map channel/account/peer to an agent. Use --bindings for full rules.
    Channel status reflects local config/creds. For live health: openclaw channels status --probe.
sick narwhalBOT
#

いい感じです。5 agent は作成できています 👍

今の状態は:

  • main
  • research
  • coding
  • automation
  • private

が存在していて、全員まだ同じ default model を使っています。

Routing rules: 0 は、今回の「ユーザーは main とだけ話す」構成なら問題ありません。research/coding/automation/private に直接 Discord や Telegram を割り当てないなら routing は不要です。

次にやることは2つです。

  1. main から呼べる subagent を許可する
#
  1. 各 agent の model / fallback を役割ごとに変える

設定場所は ~/.openclaw/openclaw.json です。

まず agents 部分を確認してください:

openclaw config get agents

そのうえで、概念的にはこういう形にします:

{
  agents: {
    defaults: {
#
      subagents: {
        delegationMode: "prefer",
        allowAgents: ["research", "coding", "automation", "private"],
        requireAgentId: true,
        maxConcurrent: 4,
        runTimeoutSeconds: 900
      }
    },
    list: [
      {
        id: "main",
        subagents: {
          delegationMode: "prefer",
          allowAgents: ["research", "coding", "automation", "private"],
          requireAgentId: true
#
        }
      },
      {
        id: "research",
        model: {
          primary: "あなたが使う research 用モデル",
          fallbacks: ["research 用 fallback"]
        }
      },
      {
        id: "coding",
        model: {
          primary: "あなたが使う coding 用モデル",
          fallbacks: ["coding 用 fallback"]
        }
#
      },
      {
        id: "automation",
        model: {
          primary: "軽量/安価なモデル",
          fallbacks: ["安定した fallback"]
        }
      },
      {
        id: "private",
        model: {
          primary: "安定重視のモデル",
          fallbacks: ["private 用 fallback"]
        }
      }
#
    ]
  }
}

注意:既存の workspace / agentDir は消さずに、各 agent に modelsubagents を足す形にしてください。

あと、main が実際に subagent を呼べるには tool 側で sessions_spawn が使える必要があります。もし main から呼ぼうとして tool が出ない場合は、config にこれも必要です:

{
  tools: {
    alsoAllow: ["sessions_spawn", "sessions_yield", "subagents"]
  }
}
#

確認はチャットで:

/tools

openclaw.json を編集したら:

openclaw config validate
openclaw agents list
openclaw models status

で確認すると安全です。

次に openclaw config get agents の出力を貼ってくれたら、今の配列を壊さない形で「どこに何を足すか」まで具体的に書けます。

fluid dew
#

{
"defaults": {
"model": {
"primary": "google/gemini-3.1-flash-lite-preview",
"fallbacks": [
"google/gemini-2.5-flash",
"google/gemini-3-flash-preview",
"google/gemma-4-31b-it"
]
},
"models": {
"google/gemini-3.1-flash-lite-preview": {
"alias": "gemini-flash-lite"
},
"openai/gemini": {},
"openai-codex/gpt-5.5": {},
"openai-codex/gpt-5.3-codex": {},
"openai-codex/gpt-5.5-pro": {},
"openai-codex/gpt-5.4-mini": {},
"cerebras/llama3.1-8b": {},
"cerebras/qwen-3-235b-a22b-instruct-2507": {},
"openrouter/auto": {
"alias": "OpenRouter"
},
"openrouter/free": {},
"openrouter/openai/gpt-oss-120b:free": {},
"openrouter/qwen/qwen3-coder:free": {},
"openrouter/inclusionai/ling-2.6-1t:free": {},
"openrouter/google/gemma-4-31b-it:free": {},
"google/gemini-2.5-flash": {},
"google/gemini-3-flash-preview": {
"alias": "gemini-flash"
},
"google/gemma-4-31b-it": {}
},
"workspace": "/home/mfbc/.openclaw/workspace",
"maxConcurrent": 4,
"subagents": {
"maxConcurrent": 8
}
},
"list": [
{
"id": "main"
},
{
"id": "research",
"name": "research",
"workspace": "/home/mfbc/.openclaw/workspace/research",
"agentDir": "/home/mfbc/.openclaw/agents/research/agent"
},
{
"id": "coding",
"name": "coding",
"workspace": "/home/mfbc/.openclaw/workspace/coding",
"agentDir": "/home/mfbc/.openclaw/agents/coding/agent"
},
{
"id": "automation",
"name": "automation",
"workspace": "/home/mfbc/.openclaw/workspace/automation",
"agentDir": "/home/mfbc/.openclaw/agents/automation/agent"
},
{
"id": "private",
"name": "private",
"workspace": "/home/mfbc/.openclaw/workspace/private",
"agentDir": "/home/mfbc/.openclaw/agents/private/agent"
}
]
}

sick narwhalBOT
#

ありがとうございます。今の agents はきれいです。ここに subagent許可各agentのmodel/fallback を足せばOKです。

この内容なら、agents 全体をだいたいこういう形にすると良いです:

{
  defaults: {
    model: {
      primary: "google/gemini-3.1-flash-lite-preview",
      fallbacks: [
        "google/gemini-2.5-flash",
        "google/gemini-3-flash-preview",
        "google/gemma-4-31b-it"
      ]
    },
    models: {
#
      // ここは今のまま維持
    },
    workspace: "/home/mfbc/.openclaw/workspace",
    maxConcurrent: 4,
    subagents: {
      delegationMode: "prefer",
      allowAgents: ["research", "coding", "automation", "private"],
      requireAgentId: true,
      maxConcurrent: 8,
      runTimeoutSeconds: 900
    }
  },
  list: [
    {
      id: "main",
#
      subagents: {
        delegationMode: "prefer",
        allowAgents: ["research", "coding", "automation", "private"],
        requireAgentId: true
      }
    },
    {
      id: "research",
      name: "research",
      workspace: "/home/mfbc/.openclaw/workspace/research",
      agentDir: "/home/mfbc/.openclaw/agents/research/agent",
      model: {
        primary: "google/gemini-3-flash-preview",
        fallbacks: [
          "google/gemini-2.5-flash",
#
          "openrouter/auto"
        ]
      }
    },
    {
      id: "coding",
      name: "coding",
      workspace: "/home/mfbc/.openclaw/workspace/coding",
      agentDir: "/home/mfbc/.openclaw/agents/coding/agent",
      model: {
        primary: "openai-codex/gpt-5.5",
        fallbacks: [
          "openai-codex/gpt-5.3-codex",
          "openai-codex/gpt-5.4-mini",
          "google/gemini-3-flash-preview"
#
        ]
      }
    },
    {
      id: "automation",
      name: "automation",
      workspace: "/home/mfbc/.openclaw/workspace/automation",
      agentDir: "/home/mfbc/.openclaw/agents/automation/agent",
      model: {
        primary: "google/gemini-3.1-flash-lite-preview",
        fallbacks: [
          "cerebras/llama3.1-8b",
          "google/gemini-2.5-flash"
        ]
      }
#
    },
    {
      id: "private",
      name: "private",
      workspace: "/home/mfbc/.openclaw/workspace/private",
      agentDir: "/home/mfbc/.openclaw/agents/private/agent",
      model: {
        primary: "google/gemini-3-flash-preview",
        fallbacks: [
          "google/gemini-2.5-flash",
          "openai-codex/gpt-5.5"
        ]
      }
    }
  ]
#
}

注意点:models の中身は今の17個を消さずにそのまま残してください。上の // ここは今のまま維持 は説明用です。

編集方法は2択です。

簡単:直接編集

nano ~/.openclaw/openclaw.json
openclaw config validate
openclaw agents list

CLIで一部だけ足す場合 例えば subagents 設定だけなら:

#
openclaw config set agents.defaults.subagents '{"delegationMode":"prefer","allowAgents":["research","coding","automation","private"],"requireAgentId":true,"maxConcurrent":8,"runTimeoutSeconds":900}' --strict-json --merge

さらに main が sessions_spawn を使えない場合に備えて、必要ならこれも:

openclaw config set tools.alsoAllow '["sessions_spawn","sessions_yield","subagents"]' --strict-json --merge

最後に確認:

openclaw config validate
openclaw agents list
openclaw models status
#

その後、main に「research/coding/automation/private を必要に応じてサブエージェントとして使う」と AGENTS.md に書くと、運用がかなり安定します。

fluid dew
#

サブエージェントを使用可能にする設定をメインのエージェントがするように頼めないの?

(モデル・フォールバック設定は自分で考えたいけど)

sick narwhalBOT
#

頼めます。むしろ 自分の環境の main エージェントにやらせる のはかなり自然です。

ただし条件があります:

  • main エージェントに read/write/edit/exec など config を編集・検証できるツール権限があること
  • ~/.openclaw/openclaw.json を編集できる実行環境であること
  • 変更後に openclaw config validate で検証させること

頼むなら、main にこう投げるのが安全です:

~/.openclaw/openclaw.json を読んで、モデル設定は変更せずに、main が research / coding / automation / private を subagent として呼べるように設定してください。

やってほしいこと:
- agents.defaults.subagents に delegationMode: "prefer" を追加
- allowAgents に ["research", "coding", "automation", "private"] を設定
#
- requireAgentId: true を設定
- maxConcurrent と runTimeoutSeconds は既存値があれば尊重。なければ maxConcurrent: 8, runTimeoutSeconds: 900
- agents.list の main にも同じ subagents 設定を追加
- 既存の agents.defaults.model / agents.defaults.models / 各 agent の model は一切変更しない
- workspace / agentDir も変更しない
- 変更前にバックアップを作る
- 変更後に openclaw config validate と openclaw agents list を実行して結果を報告する

もし main が sessions_spawn などを使えない場合は、追加でこう頼めます:

必要なら tools.alsoAllow に sessions_spawn / sessions_yield / subagents を追加してください。ただし既存の tools 設定を壊さず merge してください。

要するに、モデル・fallback は自分で考える、subagent を使えるようにする配線だけ main に任せる でOKです。

#

変更後は main に /toolssessions_spawn が見えるか確認すると安心です。

fluid dew
#

Choose compact or verbose for /tools.
compact verbose

しかない

sick narwhalBOT
#

それで正常です。/tools はまず表示形式を選ぶ画面なので、そこで verbose を選んでください。

  • compact: ざっくり一覧
  • verbose: どの tool が許可されているか詳しく表示

確認したいのは、verbose の結果にこのあたりが出るかです:

sessions_spawn
sessions_yield
subagents

もし出てこなければ、main がサブエージェントを呼べない状態なので、config に追加します:

#
openclaw config set tools.alsoAllow '["sessions_spawn","sessions_yield","subagents"]' --strict-json --merge
openclaw config validate

その後もう一度 /toolsverbose で確認してください。

出ていれば、main に「research/coding/automation/private を必要に応じて使って」と指示できます。

fluid dew
#

sessions are rejected; target the parent channel session for inter-agent coordination. Use this to delegate follow-up work to an existing session; waits for the target run and returns the updated assistant reply when available.
Session Status - Show a /status-equivalent session status card for the current or another visible session, including usage, time, cost when available, and linked background task context. Use sessionKey="current" for the current session; do not use UI/client labels such as openclaw-tui as session keys. Optional model sets a...
Sessions (sessions_list) - List visible sessions with optional filters for kind, label, agentId, search, recent activity, derived titles, and last-message previews. Use this to discover a target session before calling sessions_history or sessions_send.
Sessions (sessions_spawn) - Spawn a clean isolated session by default with the native subagent runtime. mode="run" is one-shot and mode="session" is persistent and thread-bound. Subagents inherit the parent workspace directory automatically. For native subagents only, set context="fork" when the child needs the current transcript...
Subagents - List, kill, or steer spawned sub-agents for this requester session. Use this for sub-agent orchestration.
Update Plan - Update the current structured work plan for this run. Use this for non-trivial multi-step work so the plan stays current while execution continues. Keep steps short, mark at most one step as in_progress, and skip this tool for simple one-step tasks.
Web Fetch - Fetch and extract readable content from a URL (HTML → markdown/text). Use for lightweight page access without browser automation.
Web Search - Search the web. Returns provider-normalized results for current information lookup.
Write - Write content to a file. Creates the file if it doesn't exist, overwrites if it does. Automatically creates parent directories.
Yield - End your current turn. Use after spawning subagents to

sick narwhalBOT
#

見えてます。sessions_spawnsubagents が出ているので、main はサブエージェントを起動できる状態です。

次は main にこう頼めばOKです:

~/.openclaw/openclaw.json を読んで、モデル設定は変更せずに、main が research / coding / automation / private を subagent として呼べるように設定してください。

既存の agents.defaults.model / agents.defaults.models / 各 agent の model は変更しないでください。
バックアップを作ってから編集し、変更後に openclaw config validate と openclaw agents list を実行して結果を報告してください。

すでに tool はあるので、tools.alsoAllow の追加は必須ではなさそうです。

もし main に「どの時に使うか」まで覚えさせたいなら、追加で:

#
main の AGENTS.md に、research/coding/automation/private をどんな時に使うかの運用方針も追記してください。

で大丈夫です。

fluid dew
#

設定を確認しましたが、私が試みた subagents 構成(delegationMode 等のプロパティ)は現在のバージョンの OpenClaw の設定スキーマでは「認識されないキー」として弾かれてしまいました。そのため、安全のために設定を元に戻し、構成の妥当性を検証しました。

現状、main エージェントからサブエージェントを直接呼び出す仕組みを openclaw.json で完結させるためには、異なる設定方法が必要かもしれません。

検証結果:
openclaw config validate: Config valid: ~/.openclaw/openclaw.json (正常),
openclaw agents list: 各エージェントが正常に読み込まれていることを確認しました。,

サブエージェント機能の有効化方法について、別途ドキュメントを確認して改めてご案内します。また、HTMLのコーディング自体は、今すぐ私自身 (main) が代行して実行可能です。HTMLページ作成をご希望であれば、いつでもお申し付けください。

と返ってきました

sick narwhalBOT
#

あ、これは私の案内が少し先走っていました。ごめんなさい。

結論:その main の返答どおり、スキーマで弾かれるキーは入れないでOKです。/toolssessions_spawnsubagents が見えているので、少なくとも「サブエージェント機能そのもの」は有効です。

まず確認すべきは config ではなく、main が実際に agentId 指定で spawn できるかです。

main にこう頼んでください:

agents_list を実行して、sessions_spawn で指定可能な agentId を確認してください。research / coding / automation / private が候補に出るかだけ教えてください。設定ファイルは変更しないでください。

もし agents_list で4つが見えるなら、openclaw.json に subagents 設定を足さなくても、main から呼べます。

次にテスト:

#
research agent を sessions_spawn で起動して、「これは接続テストです。現在のagentIdと使えるモデルだけ短く報告してください」と依頼してください。設定ファイルは変更しないでください。

これが成功すれば、やるべきことは config ではなく main の AGENTS.md に運用方針を書くことです。

例:

## サブエージェント運用

必要に応じて sessions_spawn で以下の agentId を明示して使う:
- research: Web調査、比較、資料読み込み
- coding: コード調査、実装、テスト、レビュー
- automation: cron、定期処理、通知、軽作業
- private: 個人情報、予定、記憶、プライベート文脈
#

短い質問や最終判断は main が行う。
サブエージェントの結果はそのまま貼らず、main が確認して要約する。

もし agents_list に4つが出ない、または sessions_spawn agentId=research が拒否される場合だけ、今のバージョンの実スキーマを確認します:

openclaw config schema > /tmp/openclaw-schema.json
grep -n 'subagents' /tmp/openclaw-schema.json | head -20

今回の状態だと、まずは 設定追加より spawn 実動作テスト が正解です。

fluid dew
#

確認いたしました。openclaw agents list の結果、以下の通りエージェントが登録されており、sessions_spawn 等で指定可能な agentId の候補として存在しています。

research
coding
automation
private

設定ファイルは一切変更しておりません。

sick narwhalBOT
#

OKです。それなら config で subagents 設定を無理に追加する必要はありません

今の状態では:

  • agent は登録済み
  • main から指定できる候補として見えている
  • sessions_spawn / subagents tool も見えている

なので、次は 実際に spawn できるかの接続テスト です。

main にこう頼んでください:

research を sessions_spawn で起動して、接続テストをしてください。
タスク内容は「これは接続テストです。あなたのagentId、現在の役割、使えるモデルを短く報告してください」です。
設定ファイルは変更しないでください。
#
完了したら結果を要約してください。

これが成功したら、あとは main の AGENTS.md に「どの時にどの agent を使うか」を書くだけで運用できます。

モデル・fallback は後で各 agent に自分で設定すればOKです。今はまず main → research/coding/automation/private を呼べることの確認 が先です。

fluid dew
#

誠に残念ながら、sessions_spawn を用いて research エージェントを起動しようとしましたが、システムより「agentId が許可されていない(許可されているのは main のみ)」という拒否応答がありました。

agents list ではエージェントが存在していることが確認できましたが、現時点のセキュリティ設定(または権限設定)では、main 以外のサブエージェントを動的に起動・操作することが制限されているようです。

これ以上の無理な起動試行はシステムに負荷をかける可能性があるため、現在は main エージェント内での作業に集中させていただきます。何か他にお手伝いできることはありますか

sick narwhalBOT
#

これは原因がかなり絞れました。

agentId が許可されていない / 許可されているのは main のみ なら、agent 登録はできているけど、main から他 agent を spawn する allowlist が未設定です。

デフォルトでは安全側に倒して、同じ agent(main)しか起動できない挙動です。

まずは delegationMode などを入れず、最小設定だけ試すのが良いです:

{
  id: "main",
  subagents: {
    allowAgents: ["research", "coding", "automation", "private"]
  }
}
#

つまり ~/.openclaw/openclaw.jsonagents.listmain をこうします:

list: [
  {
    id: "main",
    subagents: {
      allowAgents: ["research", "coding", "automation", "private"]
    }
  },
  {
    id: "research",
    ...
  }
]
#

delegationMode / requireAgentId / runTimeoutSeconds はいったん入れないでください。まず spawn 許可だけ通すのが安全です。

編集後:

openclaw config validate
openclaw agents list

そのあと main にもう一度:

research を sessions_spawn で起動して接続テストしてください。設定ファイルは変更しないでください。

もしこれでも subagentsallowAgents が schema で弾かれる場合は、その環境のスキーマ確認が必要です:

#
openclaw config schema | grep -n "allowAgents\|subagents\|delegationMode" | head -40

ただ、今回のエラー文的には「機能が無い」ではなく allowAgents 未設定の可能性が高いです。まず最小の main.subagents.allowAgents だけ入れるのが正解だと思います。

fluid dew
#

{
"defaults": {
"model": {
"primary": "google/gemini-3.1-flash-lite-preview",
"fallbacks": [
"google/gemini-2.5-flash",
"google/gemini-3-flash-preview",
"google/gemma-4-31b-it"
]
},
"models": {
"google/gemini-3.1-flash-lite-preview": {
"alias": "gemini-flash-lite"
},
"openai/gemini": {},
"openai-codex/gpt-5.5": {},
"openai-codex/gpt-5.3-codex": {},
"openai-codex/gpt-5.5-pro": {},
"openai-codex/gpt-5.4-mini": {},
"cerebras/llama3.1-8b": {},
"cerebras/qwen-3-235b-a22b-instruct-2507": {},
"openrouter/auto": {
"alias": "OpenRouter"
},
"openrouter/free": {},
"openrouter/openai/gpt-oss-120b:free": {},
"openrouter/qwen/qwen3-coder:free": {},
"openrouter/inclusionai/ling-2.6-1t:free": {},
"openrouter/google/gemma-4-31b-it:free": {},
"google/gemini-2.5-flash": {},
"google/gemini-3-flash-preview": {
"alias": "gemini-flash"
},
"google/gemma-4-31b-it": {}
},
"workspace": "/home/mfbc/.openclaw/workspace",
"maxConcurrent": 4,
"subagents": {
"maxConcurrent": 8
}
},
"list": [
{
"id": "main"
},
{
"id": "research",
"name": "research",
"workspace": "/home/mfbc/.openclaw/workspace/research",
"agentDir": "/home/mfbc/.openclaw/agents/research/agent"
},
{
"id": "coding",
"name": "coding",
"workspace": "/home/mfbc/.openclaw/workspace/coding",
"agentDir": "/home/mfbc/.openclaw/agents/coding/agent"
},
{
"id": "automation",
"name": "automation",
"workspace": "/home/mfbc/.openclaw/workspace/automation",
"agentDir": "/home/mfbc/.openclaw/agents/automation/agent"
},
{
"id": "private",
"name": "private",
"workspace": "/home/mfbc/.openclaw/workspace/private",
"agentDir": "/home/mfbc/.openclaw/agents/private/agent"

この現在の状況を治すコマンドを教えて

sick narwhalBOT
#

はい。今の状態なら、main に allowAgents だけ足すのが最小修正です。

まずバックアップ:

cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak.$(date +%Y%m%d-%H%M%S)

次に dry-run で確認:

openclaw config set agents.list[0].subagents.allowAgents '["research","coding","automation","private"]' --strict-json --dry-run

問題なければ適用:

#
openclaw config set agents.list[0].subagents.allowAgents '["research","coding","automation","private"]' --strict-json

確認:

openclaw config validate
openclaw config get agents.list[0]
openclaw agents list

期待される agents.list[0] はこうです:

{
#
  "id": "main",
  "subagents": {
    "allowAgents": ["research", "coding", "automation", "private"]
  }
}

これで main から research などを sessions_spawnagentId として指定できるはずです。

もしまだ拒否される場合は、念のため defaults 側にも同じ allowlist を入れます:

openclaw config set agents.defaults.subagents.allowAgents '["research","coding","automation","private"]' --strict-json
openclaw config validate
#

delegationModerequireAgentId は今は入れなくてOKです。まず allowAgents だけ通しましょう。

fluid dew
#

research を sessions_spawn で起動して、接続テストをしてください。
タスク内容は「これは接続テストです。あなたのagentId、現在の役割、使えるモデルを短く報告してください」です。
設定ファイルは変更しないでください。
完了したら結果を要約してください。
天翔える
アプリ
— 12:48
Agent ID: agent:research:subagent:44f8ba4a-8bf3-49ae-88e9-80238156caa2
Role: Executing connection test and reporting identity/capability status.
Available Model: google/gemini-3.1-flash-lite-preview

sick narwhalBOT
#

成功です 🎉

これで確認できたこと:

  • main から researchsessions_spawn で起動できている
  • allowAgents の設定は効いている
  • research は subagent session として動作している
  • 現在の research のモデルは google/gemini-3.1-flash-lite-preview

次は同じ要領で coding / automation / private も接続テストすると安心です:

coding を sessions_spawn で起動して、接続テストをしてください。
タスク内容は「これは接続テストです。あなたのagentId、現在の役割、使えるモデルを短く報告してください」です。
設定ファイルは変更しないでください。
#

4つ全部通ったら、あとは:

  1. 各 agent の model / fallback を自分好みに設定
  2. main の AGENTS.md に「どの時にどの agent を使うか」を追記

で完成です。ここまで来たら構成としてはかなり良い状態です。

fluid dew
#

coding を sessions_spawn で起動して、接続テストをしてください。
タスク内容は「これは接続テストです。あなたのagentId、現在の役割、使えるモデルを短く報告してください」です。
設定ファイルは変更しないでください。
天翔える
アプリ
— 12:51
<p>接続テスト用サブエージェント「coding」を起動しました。こちらも結果の返信を待機します。</p>

<p>※ 先に起動した「research」からの結果とあわせて、報告が届き次第まとめます。</p>

<media>
{"action": "sessions_spawn", "agentId": "coding", "mode": "run", "task": "これは接続テストです。あなたのagentId、現在の役割、使えるモデルを短く報告してください"}
</media>

sick narwhalBOT
#

これは spawn 自体は成功していて、completion を待っている状態に見えます。

<media>{"action":"sessions_spawn"...}</media> が出ているので、main は coding を起動できています。次に見るべきは「coding の完了通知が返ってくるか」です。

少し待っても返らない場合は、main にこう頼んでください:

今起動中の subagents を確認して、coding の状態とログを要約してください。設定ファイルは変更しないでください。

または:

/subagents list

成功なら、coding から Agent ID: agent:coding:subagent:... のような返答が来るはずです。