Мультиагентная маршрутизация
Запускайте несколько изолированных агентов на одном Gateway для разделения работы и дома, семейного доступа или разных ИИ-персонажей.
1.Что такое мультиагентная маршрутизация?
Мультиагентная маршрутизация позволяет запускать несколько изолированных ИИ-агентов на одном OpenClaw Gateway. У каждого агента своя идентичность, память и конфигурация, но они используют общую инфраструктуру.
Каждый агент имеет:
Собственную идентичность
Отдельное имя, личность и системный промпт
Изолированную память
Независимая история разговоров и контекст
Настраиваемые инструменты
Разные разрешения на инструменты для каждого агента
Привязки каналов
Направление определённых каналов к определённым агентам
Типичные сценарии использования
Разделение работы и дома
Держите рабочий 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.Пошаговая настройка
Создайте нового агента
Создайте директорию рабочего пространства для нового агента:
openclaw agents add work
Это создаст нового агента с собственной директорией рабочего пространства.
Настройте рабочее пространство
Создайте файлы личности и пользователя для агента:
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
Настройте привязки каналов
Направьте каналы к новому агенту в 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, какой агент должен обрабатывать сообщения из каждого канала.
Настройте безопасность (необязательно)
Установите режим песочницы и ограничения инструментов для агента:
{
"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": []
}
}
}
}Проверьте настройку
Перезапустите OpenClaw и протестируйте мультиагентную настройку:
openclaw agents list
openclaw agents test --channel whatsapp --from +1234567890
4.Примеры конфигурации
Направление разных номеров 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 user 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
По пользователю
Привязки с userId совпадают первыми
{ "channel": "telegram", "userId": "123", "agent": "personal" } - 2
По группе
Привязки с group/guild/workspace совпадают вторыми
{ "channel": "discord", "guild": "abc", "agent": "gaming" } - 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 или Открыть Issue на GitHub