EnglishРусский中文

Урок 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 решает, какому агенту отправить сообщение:

  1. Конкретный чат (peer) — самый точный: «этот номер → этот агент»
  2. Аккаунт канала (accountId) — «все из этого аккаунта WhatsApp → этот агент»
  3. Канал — «все из Telegram → этот агент»
  4. По умолчанию — агент с 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 для проверки настроек