🦞
チュートリアル

マルチエージェントルーティング

仕事とプライベートの分離、家族での共有、異なるAIパーソナリティのために、単一のGateway上で複数の分離されたエージェントを実行します。

中級20分で読める2026年1月

1.マルチエージェントルーティングとは?

マルチエージェントルーティングにより、単一のOpenClaw Gateway上で複数の分離されたAIエージェントを実行できます。各エージェントは独自のアイデンティティ、メモリ、設定を持ちながら、同じインフラストラクチャを共有します。

各エージェントが持つもの:

独自のアイデンティティ

個別の名前、パーソナリティ、システムプロンプト

分離されたメモリ

独立した会話履歴とコンテキスト

カスタムツール

エージェントごとに異なるツール権限

チャンネルバインディング

特定のチャンネルを特定のエージェントにルーティング

一般的なユースケース

💼

仕事/プライベートの分離

仕事用Slackと個人用Telegramを分離。異なるパーソナリティ、異なるメモリ。

👨‍👩‍👧

家族での共有

家族メンバーごとに、パーソナライズされた応答とプライベートメモリを持つ専用エージェント。

🎭

異なるパーソナリティ

メール用のプロフェッショナルアシスタント、Discord用のカジュアルな友人、ブレインストーミング用のクリエイティブライター。

📱

マルチアカウント

複数のWhatsApp番号やTelegramアカウントを分離されたエージェントで処理。

2.主要コンセプト

ワークスペース

各エージェントは「ワークスペース」に存在します。これは設定、メモリ、ファイルを含むディレクトリです。

~/openclaw/agents/work/
├── AGENTS.md    # Define sub-agents and their specialties
├── SOUL.md      # Agent personality and communication style
├── USER.md      # Information about the user
└── skills/      # Agent-specific skills
  • soul.mdエージェントのパーソナリティとシステムプロンプト
  • user.mdユーザーの設定とコンテキスト
  • memory/会話履歴とファクト
  • skills/このエージェント用のカスタムスキル

重要

エージェントは同じGatewayプロセスとAPIキーを共有します。完全な分離(別のAPIキー、別のプロセス)には、複数のGatewayインスタンスを実行してください。

  • - レート制限はすべてのエージェント間で共有
  • - APIコストは合算
  • - クラッシュはすべてのエージェントに影響
チャンネルバインディング

バインディングは、チャンネル、ユーザー、またはグループに基づいて受信メッセージを適切なエージェントにルーティングします。

// Example: Route WhatsApp business account to work agent
{
  "bindings": [{
    "agent": "work",
    "channel": "whatsapp",
    "accountId": "business-account-id"
  }]
}

3.ステップバイステップ設定

1

新しいエージェントを作成

新しいエージェント用のワークスペースディレクトリを作成:

$
openclaw agents add work

これにより、独自のワークスペースディレクトリを持つ新しいエージェントが作成されます。

2

ワークスペースを設定

エージェントのパーソナリティとユーザーファイルを作成:

soul.md - エージェントのパーソナリティ:

# Work Assistant Soul

You are a professional work assistant. Be formal, concise,
and focused on productivity. Avoid casual language.

## Communication Style
- Use professional language
- Be direct and efficient
- Focus on actionable items
- Respect work-life boundaries

user.md - ユーザーコンテキスト:

# User Profile - Work Context

- Role: Software Engineer at Acme Corp
- Working hours: 9 AM - 6 PM PST
- Key projects: Project Alpha, Customer Portal
- Slack workspace: acme-corp.slack.com
3

チャンネルバインディングを設定

openclaw.jsonでチャンネルを新しいエージェントにルーティング:

{
  "agents": {
    "default": {
      "workspace": "~/openclaw/agents/default",
      "agentDir": "~/openclaw/state/default"
    },
    "work": {
      "workspace": "~/openclaw/agents/work",
      "agentDir": "~/openclaw/state/work"
    }
  },
  "bindings": [
    {
      "agent": "work",
      "channel": "whatsapp",
      "accountId": "work-phone-id"
    },
    {
      "agent": "work",
      "channel": "slack",
      "teamId": "T123ACMECORP"
    }
  ],
  "defaultAgent": "default"
}

バインディングは、各チャンネルからのメッセージをどのエージェントが処理すべきかをOpenClawに伝えます。

4

セキュリティを設定(オプション)

エージェントのサンドボックスモードとツール制限を設定:

{
  "agents": {
    "work": {
      "workspace": "~/openclaw/agents/work",
      "agentDir": "~/openclaw/state/work",
      "sandbox": "all",
      "tools": {
        "allow": ["calendar", "email", "notes"],
        "deny": ["shell", "browser"]
      }
    },
    "home": {
      "workspace": "~/openclaw/agents/home",
      "agentDir": "~/openclaw/state/home",
      "sandbox": "non-main",
      "tools": {
        "allow": ["*"],
        "deny": []
      }
    }
  }
}
5

設定を確認

OpenClawを再起動してマルチエージェント設定をテスト:

$
openclaw agents list
$
openclaw agents test --channel whatsapp --from +1234567890

4.設定例

📱2つのWhatsApp番号

異なるWhatsApp番号を異なるエージェントにルーティング:

{
  "agents": {
    "personal": { "workspace": "~/.openclaw/personal" },
    "business": { "workspace": "~/.openclaw/business" }
  },
  "bindings": [
    { "channel": "whatsapp:+1234567890", "agent": "personal" },
    { "channel": "whatsapp:+0987654321", "agent": "business" }
  ]
}
🤖チャンネルごとに異なるモデル

仕事にはGPT-4、プライベートにはClaudeを使用:

{
  "agents": {
    "work": {
      "workspace": "~/.openclaw/work",
      "model": "gpt-4o"
    },
    "personal": {
      "workspace": "~/.openclaw/personal",
      "model": "claude-3-5-sonnet-20241022"
    }
  }
}
👥グループ専用エージェント

異なるDiscordサーバーやSlackワークスペース用に異なるエージェント:

{
  "bindings": [
    { "channel": "discord", "guild": "gaming-server-id", "agent": "gaming-buddy" },
    { "channel": "discord", "guild": "work-server-id", "agent": "work-assistant" },
    { "channel": "slack", "workspace": "company-workspace", "agent": "work-assistant" }
  ]
}
👨‍👩‍👧‍👦家族での共有

TelegramユーザーIDで家族メンバーごとに専用エージェント:

{
  "agents": {
    "dad": { "workspace": "~/.openclaw/dad" },
    "mom": { "workspace": "~/.openclaw/mom" },
    "kids": { "workspace": "~/.openclaw/kids", "sandbox": "all" }
  },
  "bindings": [
    { "channel": "telegram", "userId": "123456", "agent": "dad" },
    { "channel": "telegram", "userId": "789012", "agent": "mom" },
    { "channel": "telegram", "userId": "345678", "agent": "kids" }
  ]
}

5.バインディング優先順位

複数のバインディングがマッチする可能性がある場合、OpenClawは最も具体的なものを使用します:

  1. 1

    ユーザー固有

    userIdを持つバインディングが最初にマッチ

    { "channel": "telegram", "userId": "123", "agent": "personal" }
  2. 2

    グループ固有

    group/guild/workspaceを持つバインディングが2番目にマッチ

    { "channel": "discord", "guild": "abc", "agent": "gaming" }
  3. 3

    チャンネル固有

    チャンネルのみのバインディングが最後にマッチ

    { "channel": "telegram", "agent": "default" }

'telegram'(デフォルト)と'telegram + userId:123'(個人)のバインディングがある場合、ユーザー123からのメッセージは'personal'に、その他は'default'に送られます。

6.セキュリティとサンドボックス

サンドボックスモードとツールポリシーで各エージェントができることを制御します。

サンドボックスモード

信頼レベルに基づいてエージェントの機能を制限:

"sandbox": "off"フルアクセス

エージェントはすべてのツールを使用可能。信頼できる個人エージェント用。

"sandbox": "non-main"制限付き

ファイル/シェルアクセスをワークスペースディレクトリのみに制限。

"sandbox": "all"厳格

ファイルシステムやシェルへのアクセスなし。チャットとウェブのみ。

ツールポリシー

エージェントが使用できるツールをきめ細かく制御:

{
  "agents": {
    "restricted": {
      "workspace": "~/openclaw/agents/restricted",
      "agentDir": "~/openclaw/state/restricted",
      "tools": {
        // Only allow these specific tools
        "allow": ["calendar", "notes", "reminders"],
        // Explicitly block dangerous tools
        "deny": ["shell", "filesystem", "browser", "email"]
      }
    },
    "trusted": {
      "workspace": "~/openclaw/agents/trusted",
      "agentDir": "~/openclaw/state/trusted",
      "tools": {
        // Allow everything except...
        "allow": ["*"],
        "deny": ["shell"]  // Still block shell for safety
      }
    }
  }
}
ワークスペースアクセス

デフォルトでは、エージェントはワークスペースディレクトリ内のファイルにのみアクセスできます。これにより、あるエージェントが別のエージェントのメモリやファイルを読み取ることを防ぎます。

{
  "agents": {
    "work": {
      "workspace": "~/openclaw/agents/work",
      "agentDir": "~/openclaw/state/work",
      "filesystem": {
        // Only allow access to these directories
        "allowedPaths": [
          "~/Documents/Work",
          "~/Projects",
          "/tmp"
        ],
        // Block access to sensitive areas
        "blockedPaths": [
          "~/.ssh",
          "~/.aws",
          "~/Documents/Personal"
        ]
      }
    }
  }
}

マルチエージェント準備完了!

異なるユースケース用の分離されたエージェントができました。

質問がありますか? Discordに参加 または GitHub Issueを開く