Урок 3. Несколько ассистентов#
Зачем это нужно#
Представьте, что у вас один секретарь, который отвечает и на рабочие, и на личные вопросы, и общается с вашей семьёй. Неудобно. Лучше разделить обязанности: один ассистент для работы, другой для дома, третий для публичного бота. В OpenClaw это называется multi-agent — несколько изолированных «мозгов» в одной системе.
Что такое «агент»#
Агент — это полностью самостоятельный ассистент со своим:
- Рабочим пространством (workspace) — файлы, AGENTS.md, настройки личности
- Хранилищем состояния (agentDir) — авторизация, история
- Историей разговоров (sessions) — каждый агент помнит только свои чаты
- Навыками (skills) — свой набор умений
По умолчанию OpenClaw работает с одним агентом — main. Но можно добавить сколько угодно.
Как добавить нового агента#
Шаг 1. Создание агента#
openclaw agents add work
openclaw agents add familyКаждый агент получает свою папку с файлами и настройками.
Шаг 2. Привязка каналов (bindings)#
Привязки — это правила, которые говорят: «сообщения из этого канала отправляй этому агенту».
Пример конфигурации в ~/.openclaw/openclaw.json:
{
agents: {
list: [
{ id: "main", workspace: "~/.openclaw/workspace-main" },
{ id: "work", workspace: "~/.openclaw/workspace-work" }
]
},
bindings: [
{ agentId: "main", match: { channel: "whatsapp" } },
{ agentId: "work", match: { channel: "telegram" } }
]
}В этом примере: WhatsApp → основной агент, Telegram → рабочий агент.
Шаг 3. Перезапуск и проверка#
openclaw gateway restart
openclaw agents list --bindingsПравила маршрутизации#
Как OpenClaw решает, какому агенту отправить сообщение:
- Конкретный чат (peer) — самый точный: «этот номер → этот агент»
- Аккаунт канала (accountId) — «все из этого аккаунта WhatsApp → этот агент»
- Канал — «все из Telegram → этот агент»
- По умолчанию — агент с
default: trueили первый в списке
Более точные правила всегда побеждают общие.
Примеры конфигураций#
Разные боты в Telegram для разных задач#
{
agents: {
list: [
{ id: "main", workspace: "~/.openclaw/workspace-main" },
{ id: "alerts", workspace: "~/.openclaw/workspace-alerts" }
]
},
bindings: [
{ agentId: "main", match: { channel: "telegram", accountId: "default" } },
{ agentId: "alerts", match: { channel: "telegram", accountId: "alerts" } }
],
channels: {
telegram: {
accounts: {
default: { botToken: "123456:ABC..." },
alerts: { botToken: "987654:XYZ..." }
}
}
}
}Один WhatsApp, разные люди — разные агенты#
{
bindings: [
{
agentId: "alex",
match: { channel: "whatsapp", peer: { kind: "direct", id: "+15551230001" } }
},
{
agentId: "mia",
match: { channel: "whatsapp", peer: { kind: "direct", id: "+15551230002" } }
}
]
}Быстрый чат + глубокая работа#
{
agents: {
list: [
{ id: "chat", model: "anthropic/claude-sonnet-4-5" },
{ id: "opus", model: "anthropic/claude-opus-4-6" }
]
},
bindings: [
{ agentId: "chat", match: { channel: "whatsapp" } },
{ agentId: "opus", match: { channel: "telegram" } }
]
}Суб-агенты (Sub-agents)#
Суб-агент — это фоновый помощник, которого основной агент создаёт для выполнения отдельной задачи. Как если бы ваш ассистент сказал стажёру: «Разберись с этим, а я пока займусь другим».
Суб-агенты:
- Работают в отдельной сессии (не мешают основному разговору)
- По завершении сообщают результат обратно в ваш чат
- Могут использовать другую модель (более дешёвую для простых задач)
Управление суб-агентами#
/subagents list — посмотреть активных
/subagents kill all — остановить всех
/subagents log 1 — посмотреть лог первого
/subagents spawn work "Найди информацию о..." — запустить вручнуюНастройка#
{
agents: {
defaults: {
subagents: {
maxConcurrent: 8, // максимум одновременно
maxSpawnDepth: 2, // разрешить вложенность
archiveAfterMinutes: 60 // удалить через час
}
}
}
}Вложенные суб-агенты#
По умолчанию суб-агенты не могут создавать своих суб-агентов. Но если поставить maxSpawnDepth: 2, получится цепочка:
Вы → Основной агент → Суб-агент (оркестратор) → Суб-суб-агент (работник)Максимальная глубина: 5 уровней (но 2 рекомендуется).
Изоляция и безопасность#
Каждый агент:
- Имеет свои файлы авторизации (не делит пароли с другими)
- Может иметь свою песочницу и ограничения инструментов
- Не видит историю разговоров других агентов
Пример — публичный агент с ограничениями:
{
agents: {
list: [
{
id: "public",
sandbox: { mode: "all" },
tools: {
allow: ["read"],
deny: ["write", "exec", "browser"]
}
}
]
}
}Итоги урока#
- Агент — это изолированный «мозг» со своими файлами, историей и настройками
- Привязки (bindings) направляют сообщения из каналов к нужному агенту
- Более точные правила маршрутизации побеждают общие
- Суб-агенты — фоновые помощники для параллельных задач
- Каждый агент может иметь свою песочницу и набор инструментов
- Используйте
openclaw agents list --bindingsдля проверки настроек