1 つの Gateway で複数アシスタント: Bindings で正しいメッセージを正しい Agent へ
4 min read
仕事用グループも個人チャットも同じアシスタントに任せると、すぐに混線します。
それを解決するのが 複数 Agent + Bindings です。場面ごとに適切なアシスタントを出せます。
このページで学べること
- 複数 Agent が必要になる場面
- Config で複数 Agent を定義する方法
- Bindings ルールでメッセージを振り分ける方法
- Telegram グループ ID の調べ方
なぜ複数 Agent が必要?
| シナリオ | 必要なもの |
|---|---|
| 仕事グループと個人会話 | Workspace 分離とデータ分離 |
| 速い返答と深い分析 | 別モデル |
| 複数プロジェクトの独立運用 | プロジェクトごとの Workspace |
設定方法
手順 1: agents.list に Agent を定義する
{
"agents": {
"list": [
{ "id": "main", "name": "Main Assistant", "workspace": "~/.openclaw/workspace-main", "default": true },
{ "id": "project-a", "name": "Project A", "workspace": "~/.openclaw/workspace-project-a" },
{ "id": "project-b", "name": "Project B", "workspace": "~/.openclaw/workspace-project-b" }
]
}
}手順 2: bindings に振り分けルールを入れる
受付係のように考えると分かりやすいです。
「グループ A から来たら Agent A。グループ B なら Agent B。その他はデフォルトへ」
{
"bindings": [
{ "agentId": "project-a", "match": { "channel": "telegram", "peer": { "kind": "group", "id": "-1001234567890" } } },
{ "agentId": "project-b", "match": { "channel": "telegram", "peer": { "kind": "group", "id": "-1009876543210" } } },
{ "agentId": "main", "match": { "channel": "telegram" } }
]
}⚠️ Bindings の順番は重要です。 より具体的なルールを前に置いてください。マッチングは「先に当たったもの勝ち」です。
グループ ID はどうやって調べる?
方法 1: グループに適当なメッセージを送ってから次を実行します。
openclaw logs --follow
# ログ中の chat.id を探す。多くの場合は -1001234567890 のような負の数方法 2: そのグループのメッセージを @userinfobot に転送します。
発展編: Bot アカウントごとに別 Agent を使う
複数の Bot Token がある場合:
{
"channels": {
"telegram": {
"accounts": {
"default": { "botToken": "Bot A の Token" },
"alerts": { "botToken": "Bot B の Token" }
}
}
},
"bindings": [
{ "agentId": "main", "match": { "channel": "telegram", "accountId": "default" } },
{ "agentId": "alerts", "match": { "channel": "telegram", "accountId": "alerts" } }
]
}編集後は保存を忘れずに
Config を変更したら Save / Apply を押します。baseHash conflict が出た場合は、どこかで別変更が入った状態です。Config を再読み込みして、もう一度編集してください。
次へ
これで複数アシスタントを使えるようになりました。次はそのうちの 1 つを VPS に移して 24 時間待機させます。