OpenClaw и Discord: ИИ-бот для сервера

OpenClaw и Discord — это связка, которая превращает Discord-сервер в рабочее пространство с ИИ-ассистентом. Бот подключается через официальный Discord Gateway, читает сообщения, отвечает в каналах и личных сообщениях, поддерживает голосовые каналы и slash-команды. Настройка занимает 15 минут: создать приложение в Discord Developer Portal, получить токен, прописать его в конфиге OpenClaw и запустить шлюз.

Что такое OpenClaw Discord-бот

OpenClaw — это open-source фреймворк для персональных ИИ-агентов с MIT-лицензией. Discord-интеграция — один из каналов связи: агент подключается к Discord как бот через официальный Gateway API. Поддерживаются личные сообщения (DM), текстовые каналы, форумы, треды и голосовые каналы.

В отличие от обычного Discord-бота, который отвечает по заранее заданным командам, OpenClaw-агент использует LLM-модель (Claude, GPT, Gemini, DeepSeek и другие) для генерации ответов. У него есть память, навыки (skills), доступ к инструментам — браузеру, файловой системе, терминалу, поиску. По сути, это полноценный ИИ-ассистент, который живёт на вашем Discord-сервере.

Подготовка: что нужно перед началом

Для подключения OpenClaw к Discord потребуется три вещи:

  • OpenClaw версии 2026.2.3 или выше, установленный и запущенный на сервере или локальной машине. Если OpenClaw ещё не установлен — есть отдельное руководство по установке на VPS.
  • Discord-сервер, где у вас есть права Manage Server. Discord Nitro или платные функции не нужны — всё работает на бесплатном аккаунте.
  • Текстовый редактор для работы с конфигурационными файлами (VS Code, Cursor, nano — любой, кто умеет работать с JSON).

Для круглосуточной работы бота OpenClaw должен работать на VPS. На домашнем компьютере бот будет доступен только пока машина включена.

Шаг 1: Создание Discord-приложения и бота

Каждый Discord-бот живёт внутри Discord Application — это контейнер, который хранит идентификацию бота, права доступа и настройки событий.

  1. Откройте Discord Developer Portal.
  2. Нажмите New Application и задайте имя (например, «OpenClaw» или «AI Assistant»).
  3. Нажмите Create.
  4. В левом меню выберите Bot.
  5. Установите Username — это имя, которое будут видеть участники сервера.
  6. Нажмите Reset Token и скопируйте токен. Несмотря на название «Reset», это генерация первого токена. Discord покажет его только один раз.

Важно: токен бота — это секрет. Относитесь к нему как к SSH-ключу, а не как к логину. Тот, у кого есть токен, полностью контролирует вашего бота. Не публикуйте его в чатах, не вставляйте в открытые репозитории.

Шаг 2: Настройка Gateway Intents

Gateway Intents — это разрешения, которые говорят Discord, какие события отправлять боту. Без правильных intents бот подключится, но не будет видеть содержимое сообщений.

На странице Bot в Developer Portal прокрутите вниз до раздела Privileged Gateway Intents и включите:

  • Message Content Intent (обязательно) — позволяет боту читать текст сообщений в каналах сервера. Без этого intent бот видит события сообщений, но не знает, что написано. Это главная причина, почему бот подключается, но не отвечает.
  • Server Members Intent (рекомендуется) — нужен для поиска участников по имени, работы с ролями и ограничения доступа по списку пользователей.
  • Presence Intent (опционально) — отслеживание статуса онлайн/офлайн. Включайте только если нужны автоматизации, зависящие от статуса.

Если бот находится более чем в 100 серверах, Discord требует верификацию для Message Content Intent. Для частных серверов это не проблема — верификация не нужна.

Шаг 3: Настройка прав и приглашение бота

Перейдите в OAuth2 → URL Generator в левом меню Developer Portal.

В разделе Scopes отметьте:

  • bot
  • applications.commands

В разделе Bot Permissions отметьте минимум:

  • View Channels — видеть каналы
  • Send Messages — отправлять сообщения
  • Read Message History — читать историю
  • Embed Links — встраивать ссылки
  • Attach Files — прикреплять файлы
  • Add Reactions — ставить реакции (опционально)
  • Send Messages in Threads — если бот будет работать в тредах

Не давайте боту права Administrator. Работать будет, но это даёт боту полный контроль над сервером. Начните с минимума и добавляйте права по мере необходимости.

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

Шаг 4: Подключение токена к OpenClaw

Есть два способа передать токен OpenClaw: через переменную окружения (рекомендуется) или через конфигурационный файл.

Через переменную окружения

На машине, где запущен OpenClaw:

export DISCORD_BOT_TOKEN="ваш-токен-бота"

Затем обновите конфигурацию:

openclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN
openclaw config set channels.discord.enabled true --strict-json

Через конфигурационный файл

Откройте openclaw.json (обычно в ~/.openclaw/) и добавьте:

{
  "channels": {
    "discord": {
      "enabled": true,
      "token": {
        "source": "env",
        "provider": "default",
        "id": "DISCORD_BOT_TOKEN"
      }
    }
  }
}

Или через openclaw config patch:

cat > discord.patch.json5 <<'JSON5'
{
  channels: {
    discord: {
      enabled: true,
      token: { source: "env", provider: "default", id: "DISCORD_BOT_TOKEN" },
    },
  },
}
JSON5
openclaw config patch --file ./discord.patch.json5 --dry-run
openclaw config patch --file ./discord.patch.json5

Не вставляйте токен в конфиг в открытом виде. Переменные окружения держат секрет вне файлов, которые агент может прочитать в контекст, и упрощают ротацию токена.

Шаг 5: Запуск и привязка (pairing)

Запустите (или перезапустите) OpenClaw gateway:

openclaw gateway

Проверьте логи на наличие подключения к Discord:

openclaw logs --follow

После запуска откройте Discord и отправьте личное сообщение боту. OpenClaw ответит кодом привязки. Чтобы подтвердить:

openclaw pairing approve discord КОД_ПРИВЯЗКИ

Коды привязки действуют 1 час. После подтверждения бот начнёт отвечать в личных сообщениях.

Настройка доступа: кто и где может общаться с ботом

По умолчанию бот отвечает только в личных сообщениях. Чтобы он работал в каналах сервера, нужно настроить политику доступа. Без настройки вы рискуете получить бота, который отвечает на каждое сообщение в #general и сжигает бюджет API за дни.

Режим mention-only (рекомендуется)

Бот читает все сообщения (для контекста), но отвечает только когда кто-то упоминает его через @. Это безопасный режим по умолчанию.

{
  "channels": {
    "discord": {
      "groupPolicy": "allowlist",
      "guilds": {
        "ID_ВАШЕГО_СЕРВЕРА": {
          "requireMention": true,
          "users": ["ID_ВАШЕГО_ПОЛЬЗОВАТЕЛЯ"]
        }
      }
    }
  }
}

Используйте ID серверов и пользователей, а не имена. Имена меняются — ID нет. Чтобы узнать ID: включите Developer Mode в настройках Discord (User Settings → Advanced), затем правый клик на сервере/пользователе → Copy ID.

Ответы без @упоминания

На приватном сервере, где только вы и бот, можно разрешить отвечать на каждое сообщение:

{
  "channels": {
    "discord": {
      "groupPolicy": "allowlist",
      "guilds": {
        "ID_СЕРВЕРА": {
          "requireMention": false,
          "users": ["ID_ПОЛЬЗОВАТЕЛЯ"]
        }
      }
    }
  }
}

Ограничение по каналам

Можно разрешить боту работать только в определённых каналах:

{
  "channels": {
    "discord": {
      "guilds": {
        "ID_СЕРВЕРА": {
          "channels": {
            "ID_КАНАЛА_SUPPORT": { "allow": true, "requireMention": true },
            "ID_КАНАЛА_GENERAL": { "allow": true, "requireMention": true }
          }
        }
      }
    }
  }
}

Политика личных сообщений

Настройка dmPolicy определяет, кто может писать боту в личку:

  • pairing (по умолчанию) — пользователь отправляет боту сообщение, получает код, админ подтверждает. Хорошо для контролируемого запуска.
  • allowlist — только пользователи из списка ID могут писать в личку.
  • open — любой может писать. Нужно явно указать allowFrom: "*". Используйте для публичных ботов.
  • disabled — личные сообщения отключены, бот работает только в каналах.

Разделение по каналам: один бот — разные специалисты

OpenClaw поддерживает настройку поведения бота для каждого канала отдельно. Это главная сила интеграции с Discord: один и тот же агент может быть техподдержкой в одном канале, разработчиком в другом и модератором в третьем.

{
  "channels": {
    "discord": {
      "channels": {
        "ID_КАНАЛА_SUPPORT": {
          "requireMention": true,
          "skills": ["support", "faq"],
          "systemPrompt": "Ты — агент техподдержки. Отвечай кратко и по делу."
        },
        "ID_КАНАЛА_API": {
          "requireMention": true,
          "skills": ["engineering", "docs-search"],
          "systemPrompt": "Ты — технический ассистент для разработчиков."
        },
        "ID_КАНАЛА_INTERNAL": {
          "requireMention": false,
          "skills": ["deployment", "monitoring"],
          "systemPrompt": "Ты — ассистент для внутренних операций команды."
        }
      }
    }
  }
}

Каждый канал — изолированная сессия со своим контекстом. Агент видит имя канала, и каждый канал работает независимо. Можно настроить каналы #coding, #research, #home — под любую задачу.

Slash-команды

OpenClaw поддерживает нативные Discord slash-команды. Они дают пользователям удобный способ взаимодействия: вместо того чтобы формулировать вопрос, пользователь нажимает / и видит доступные команды.

Slash-команды работают в изолированных сессиях (agent:discord:slash:userId), но несут контекст целевой беседы. Для агентов с конкретными возможностями (поиск, создание тикетов, отчёты) slash-команды удобнее чистого natural language.

Работа с тредами и форумами

Когда кто-то упоминает бота в канале, OpenClaw может ответить в том же канале или создать тред. Для busy-каналов треды предпочтительнее — они не засоряют общий поток.

После создания треда бот продолжает отвечать в нём без повторного @упоминания. Это правильное поведение для рабочих диалогов, но следите за тредами, которые уходят в офф-топик: бот будет продолжать отвечать, пока считает, что разговор с ним.

Память в Discord-каналах

Долгосрочная память (MEMORY.md) автоматически загружается только в DM-сессиях. В каналах сервера она не подгружается.

Для общего контекста во всех каналах используйте файлы AGENTS.md и USER.md — они инжектируются в каждую сессию. Долгосрочные заметки храните в MEMORY.md и обращайтесь к ним по запросу через memory tools.

Интерактивные ответы и форматирование

Discord поддерживает богатое форматирование сообщений, и OpenClaw это использует. Можно включить интерактивные ответы с кнопками:

{
  "channels": {
    "discord": {
      "capabilities": {
        "interactiveReplies": true
      }
    }
  }
}

Вместо того чтобы просить пользователя написать «да» или «нет», агент покажет кнопки. Это снижает количество недопониманий и делает взаимодействие более гладким.

Discord-эмбеды позволяют агенту возвращать структурированные ответы с заголовками, полями, цветами и миниатюрами. Это полезно для агентов, которые возвращают данные: результаты поиска, статусы, сводки тикетов.

Несколько Discord-ботов одновременно

OpenClaw поддерживает несколько Discord-аккаунтов. Каждый бот с отдельным токеном и application ID:

{
  "channels": {
    "discord": {
      "enabled": true,
      "accounts": {
        "personal": {
          "token": { "source": "env", "provider": "default", "id": "DISCORD_PERSONAL_TOKEN" },
          "applicationId": "111111111111111111"
        },
        "work": {
          "token": { "source": "env", "provider": "default", "id": "DISCORD_WORK_TOKEN" },
          "applicationId": "222222222222222222"
        }
      }
    }
  }
}

Если два аккаунта используют один и тот же токен, OpenClaw запустит только один gateway-монитор. Побеждает токен из конфига перед env-переменной.

Запуск через Neirohost

Если не хотите настраивать VPS и конфигурацию вручную, можно использовать Neirohost — платформу AI-ассистентов на базе OpenClaw. Это managed-решение: регистрируетесь, подключаете Discord-токен и получаете работающего бота. Под капотом — LXC-контейнер с Ubuntu и предустановленным OpenClaw. Тарифы от 390 рублей в неделю, нейросети (MiMo V2.5 Pro, DeepSeek V4 Flash) включены.

Решение проблем

Бот подключился, но не отвечает на сообщения

Проверьте, что включён Message Content Intent в Developer Portal. Это самая частая причина. Без этого intent бот видит события, но не читает текст сообщений.

Бот не отвечает в канале сервера

  • Проверьте, что канал указан в guildschannels с allow: true.
  • Проверьте, что groupPolicy не установлен в disabled.
  • Если requireMention: true — убедитесь, что вы упоминаете бота через @.

Бот отвечает слишком медленно

Discord имеет rate limits. Если сервер большой и сообщений много, бот может задерживаться. Ограничьте количество каналов, в которых бот работает, или увеличьте интервалы между ответами.

Код привязки не приходит

  • Проверьте, что gateway запущен: openclaw logs --follow.
  • Убедитесь, что в настройках сервера включены Direct Messages от участников.
  • Код действует 1 час — если истёк, отправьте новое сообщение боту.

Часто задаваемые вопросы

Можно ли использовать OpenClaw с Discord бесплатно?

Да. OpenClaw — open-source с MIT-лицензией. Discord-боты бесплатны. Платить нужно только за API нейросети (если используете облачные модели) или за хостинг VPS. С локальными моделями через Ollama — бесплатно полностью.

Нужен ли Discord Nitro для работы бота?

Нет. Все необходимые функции — токены, intents, OAuth2, permissions — работают на бесплатном Discord-аккаунте.

Может ли бот работать в нескольких серверах одновременно?

Да. Бот приглашается на каждый сервер отдельно через OAuth2-ссылку. В конфигурации OpenClaw можно указать несколько серверов в guilds.

Как обновить токен бота?

В Developer Portal нажмите Reset Token на странице Bot. Скопируйте новый токен, обновите переменную окружения и перезапустите gateway. Ротация токена не требует пересоздания бота или приглашения.

Поддерживает ли OpenClaw голосовые каналы Discord?

Да. OpenClaw поддерживает голосовые каналы Discord. Для работы с голосом требуется настройка TTS/STT — об этом есть отдельная статья о навыках OpenClaw.

Полезные ссылки