/* DeathScore CTA Styles */ .deathscore-cta { background: linear-gradient(135deg, #f43f5e, #ec4899); border-radius: 16px; padding: 2rem; margin: 3rem 0; color: white; position: relative; overflow: hidden; } .deathscore-cta::before { content: ''; position: absolute; top: -50%; right: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255,255,255,0.1) 1px, transparent 1px); background-size: 20px 20px; opacity: 0.3; z-index: 0; } .deathscore-cta-content { position: relative; z-index: 1; } .deathscore-cta h3 { font-size: 1.5rem; margin-top: 0; margin-bottom: 1rem; font-weight: 700; } .deathscore-cta p { font-size: 1.125rem; margin-bottom: 1.5rem; opacity: 0.9; } .deathscore-cta-button { display: inline-block; background: white; color: #f43f5e; padding: 0.875rem 2rem; border-radius: 50px; text-decoration: none; font-weight: 600; font-size: 1rem; transition: all 0.2s; border: 2px solid white; } .deathscore-cta-button:hover { background: transparent; color: white; transform: translateY(-2px); box-shadow: 0 10px 25px rgba(0,0,0,0.2); } .deathscore-cta-secondary { background: linear-gradient(135deg, #6366f1, #8b5cf6); } .deathscore-cta-minimal { background: var(--bg-secondary); border: 2px solid var(--border); color: var(--text-primary); } .deathscore-cta-minimal::before { display: none; } .deathscore-cta-minimal .deathscore-cta-button { background: linear-gradient(135deg, #f43f5e, #ec4899); color: white; border: none; } .deathscore-cta-minimal .deathscore-cta-button:hover { background: linear-gradient(135deg, #e11d48, #db2777); } /* Читайте также */ .read-also { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: 12px; padding: 1.5rem; margin: 2rem 0; } .read-also h3 { font-size: 1.1rem; margin-top: 0; margin-bottom: 1rem; color: var(--text-primary); } .read-also ul { list-style: none; padding: 0; margin: 0; } .read-also li { margin-bottom: 0.75rem; } .read-also li:last-child { margin-bottom: 0; } .read-also a { color: var(--accent); text-decoration: none; font-weight: 500; } .read-also a:hover { text-decoration: underline; }
Глубокое исследование 18 мин чтения

Мультиагентная архитектура OpenClaw: лучшие практики из Reddit, YouTube и документации

Мультиагентная архитектура OpenClaw

OpenClaw — это не фреймворк для воркфлоу, а операционная система для ИИ-агентов. Мы исследовали все его мультиагентные возможности через официальную документацию, обсуждения на Reddit, GitHub-issues и реальные боевые внедрения. Вот что мы нашли.

Чем OpenClaw отличается от остальных

Большинство мультиагентных фреймворков (CrewAI, Swarm, AutoGen) собирают агентов под задачу. Агенты OpenClaw живут постоянно — со своим рабочим пространством, памятью, профилями авторизации и привязками к каналам. Думайте об этом как о «найме сотрудников» vs «построении воркфлоу».

Цитата с Reddit: «CrewAI = построить воркфлоу. OpenClaw = нанять сотрудника.» — r/AI_Agents

Каждый агент получает:

Маршрутизация и привязки: как сообщения находят своего агента

OpenClaw использует детерминированную маршрутизацию «побеждает самый конкретный». Сообщения сопоставляются с привязками в порядке приоритета:

  1. peer — точное совпадение ЛС/группы/канала
  2. guildId — сервер Discord
  3. teamId — воркспейс Slack
  4. accountId — какой аккаунт канала
  5. Совпадение на уровне канала — accountId: "*"
  6. Фолбэк на агента по умолчанию
// Один WhatsApp, два агента по контакту
{ agentId: "alex", match: { channel: "whatsapp", peer: { kind: "direct", id: "+1555..." } } }
{ agentId: "mia",  match: { channel: "whatsapp", peer: { kind: "direct", id: "+1556..." } } }

// Разный канал = разный агент
{ agentId: "chat", match: { channel: "whatsapp" } }   // Sonnet — быстрый
{ agentId: "deep", match: { channel: "telegram" } }    // Opus — глубокий

Субагенты: неблокирующая параллельная работа

Субагенты — изолированные сессии, порождаемые для фоновых задач. Они — рабочая лошадка любой грамотно спроектированной системы на OpenClaw.

Ключевые свойства

// Глобальные дешёвые субагенты
agents: {
  defaults: {
    subagents: {
      model: "kimi/k2.5",      // $0.60/M токенов
      thinking: "low",
      maxConcurrent: 8,
      archiveAfterMinutes: 60,
    }
  }
}
⚠️ Ограничение: Субагенты не могут порождать субагентов (без вложенности). См. GitHub issues #11741 и #17511. Обходной путь: использовать агента-оркестратора с allowAgents.

Межагентные сообщения

Прямая коммуникация между агентами через sessions_send. По умолчанию отключена — нужно явно активировать.

{
  tools: {
    agentToAgent: {
      enabled: true,         // ВЫКЛЮЧЕНО по умолчанию
      allow: ["home", "work"],
    }
  }
}

// Поток: Агент A → sessions_send → Агент B отвечает
// Пинг-понг: до 5 раундов (настраивается)
// REPLY_SKIP для досрочного завершения

Безопасность по агентам: разрешения и запреты инструментов

Гранулярный контроль инструментов с 8 уровнями фильтрации. Каждый уровень может только ужесточить доступ, но не ослабить.

// Семейный бот: только чтение, без изменения файлов, без браузера
{
  id: "family",
  tools: {
    allow: ["read", "sessions_list", "session_status"],
    deny: ["write", "edit", "browser", "canvas", "nodes", "cron"],
  }
}

// Группы инструментов для удобства:
// group:runtime → exec, bash, process
// group:fs → read, write, edit
// group:sessions → sessions_list/history/send/spawn
// group:ui → browser, canvas

Docker-песочница для каждого агента

Начиная с v2026.1.6, каждый агент может иметь собственную конфигурацию песочницы — возможность, уникальная для OpenClaw.

ПараметрЗначенияОписание
sandbox.modeoff, non-main, allКогда включать песочницу
sandbox.scopesession, agent, sharedУровень изоляции контейнера
sandbox.docker.setupCommandstringКоманда настройки при создании контейнера

OpenClaw vs все остальные

ВозможностьOpenClawCrewAISwarmAutoGen
Постоянно активные агенты
Управление физическими устройствами
Нативная мультиканальность
Docker-песочница по агентам
Своя модель на агента⚠️
Субагенты (неблокирующие)⚠️
Cron и heartbeat по агентам
Персистентная память⚠️
Управление браузером

Архитектурные паттерны

Звезда (Hub-and-Spoke) — самый распространённый

       Человек (Telegram)
            │
     ┌──────▼──────┐
     │  MAIN (Opus) │ ◄── cron/heartbeat
     │  Оркестратор  │
     └──┬───┬───┬──┘
        │   │   │
    Агент A  B  Субагенты

Один главный агент взаимодействует с человеком и делегирует задачи. Просто, но главный агент становится узким горлышком.

Разделение по каналам (оптимизация затрат)

WhatsApp ──► Чат-агент (Sonnet)    — быстрые ответы
Telegram ──► Глубокий агент (Opus) — сложные задачи
Discord  ──► Командный агент (Pro) — совместная работа

Разная модель на канал. Экономит деньги, подбирая мощность модели под сложность задач.

Флот специалистов (для масштаба)

Main (Opus) ──spawn──► Исследователь (Sonnet)
             ──spawn──► Кодер (Opus)
             ──spawn──► Писатель (Pro)
             ──send───► Монитор (K2.5, всегда активен)

Известные подводные камни

⚠️ Узкое горлышко очереди (#16055): Все сообщения проходят через общую очередь последовательно. При 5+ Telegram-ботах ожидайте задержки 1–2 минуты на одновременных сообщениях. Решение: минимизировать количество агентов с TG-ботами.
⚠️ Коллизия авторизации: Никогда не переиспользуйте agentDir между агентами. У каждого агента должна быть уникальная директория состояния, чтобы избежать хаоса с сессиями и учётными данными.
⚠️ Переполнение контекста: Интенсивное использование tool_use в основных сессиях → pruning → потеря памяти. Ревью кода и операции с большими файлами — в субагентах, а не в основной сессии.

Инсайты сообщества

С Reddit

Из GitHub Issues

Итого: лучшие практики

  1. 3–7 агентов — оптимум. Больше — не значит лучше.
  2. Подбирайте модель под задачу. Opus для оркестрации/кодинга. Дешёвые модели для мониторинга/парсинга.
  3. Субагенты для разовых задач. Статьи, исследования, аудиты — порождайте, а не создавайте постоянных агентов.
  4. Межагентные сообщения включайте явно. По умолчанию они отключены из соображений безопасности.
  5. Никогда не шарьте agentDir. Уникальное рабочее пространство для каждого агента.
  6. Используйте deny-списки инструментов. Ограничивайте, что может делать каждый агент.
  7. Следите за узким горлышком очереди. Меньше TG-ботов = быстрее ответы.
  8. Держите контекст лёгким. Тяжёлые операции → субагенты. Основная сессия остаётся налегке.
🔑 Суть: Сила OpenClaw не в том, сколько агентов вы можете создать, а в том, насколько грамотно вы спроектируете их роли, границы и паттерны коммуникации. Думайте «маленькая команда экспертов», а не «армия универсалов».

🤖 Изучаете OpenClaw для своего стартапа? Сначала проверьте идею

Прежде чем разворачивать сложную мультиагентную инфраструктуру, убедитесь, что сама бизнес-идея жизнеспособна. DeathScore за 2 минуты.

Check your startup idea →

📖 Читайте также