Настройка каналов

Обновлено: 2026-04-05

Настройка каналов связи

OpenClaw поддерживает множество каналов связи. В этом руководстве вы узнаете, как настроить каждый из них.

Общая структура конфигурации каналов

{
  "channels": {
    // Общие настройки для всех каналов
    "defaults": {
      "dmPolicy": "pairing",
      "groupPolicy": "allowlist",
      "configWrites": false,
      "historyLimit": 100
    },

    // Конкретные каналы
    "telegram": { /* настройки Telegram */ },
    "whatsapp": { /* настройки WhatsApp */ },
    "discord": { /* настройки Discord */ },
    "slack": { /* настройки Slack */ }
  }
}

Telegram

Базовая конфигурация

{
  "telegram": {
    "enabled": true,
    "botToken": "${TELEGRAM_BOT_TOKEN}",
    "dmPolicy": "pairing",
    "allowFrom": ["tg:336940264"]
  }
}

Расширенная конфигурация с группами

{
  "telegram": {
    "enabled": true,
    "botToken": "${TELEGRAM_BOT_TOKEN}",
    "dmPolicy": "allowlist",
    "allowFrom": ["tg:336940264", "tg:987654321"],
    "groups": {
      "-1001234567890": {
        "requireMention": true,
        "allowFrom": ["@admin1", "@admin2"],
        "systemPrompt": "Ты помощник в технической группе."
      },
      "*": {
        "requireMention": true,
        "allowFrom": ["@admin"]
      }
    },
    "configWrites": false,
    "historyLimit": 50,
    "mediaMaxMb": 100
  }
}

WhatsApp

Требования

  • WhatsApp Business Account
  • Access Token от Meta
  • Phone Number ID

Конфигурация

{
  "whatsapp": {
    "enabled": true,
    "phoneNumberId": "${WHATSAPP_PHONE_NUMBER_ID}",
    "businessAccountId": "${WHATSAPP_BUSINESS_ID}",
    "accessToken": "${WHATSAPP_ACCESS_TOKEN}",
    "webhookVerifyToken": "${WHATSAPP_WEBHOOK_TOKEN}",
    "dmPolicy": "pairing",
    "allowFrom": ["whatsapp:1234567890"],
    "templates": {
      "welcome": "welcome_template_name",
      "notification": "notification_template_name"
    }
  }
}

Discord

Создание бота

  1. Перейдите на Discord Developer Portal
  2. Создайте New Application
  3. Перейдите в раздел Bot → Add Bot
  4. Скопируйте токен

Конфигурация

{
  "discord": {
    "enabled": true,
    "botToken": "${DISCORD_BOT_TOKEN}",
    "guildId": "ВАШ_GUILD_ID",
    "dmPolicy": "pairing",
    "channels": {
      "general": {
        "channelId": "123456789012345678",
        "requireMention": true,
        "allowFrom": ["@admin"]
      }
    },
    "intents": ["GUILDS", "GUILD_MESSAGES", "DIRECT_MESSAGES"],
    "presence": {
      "status": "online",
      "activity": {
        "name": "OpenClaw Assistant",
        "type": "PLAYING"
      }
    }
  }
}

Slack

Создание приложения

  1. Перейдите на api.slack.com/apps
  2. Create New App → From scratch
  3. Установите OAuth Scopes: chat:write, im:history, groups:history
  4. Установите приложение в workspace
  5. Скопируйте Bot User OAuth Token

Конфигурация

{
  "slack": {
    "enabled": true,
    "botToken": "${SLACK_BOT_TOKEN}",
    "signingSecret": "${SLACK_SIGNING_SECRET}",
    "appToken": "${SLACK_APP_TOKEN}",
    "dmPolicy": "pairing",
    "channels": {
      "general": {
        "channelId": "C1234567890",
        "requireMention": true
      }
    },
    "events": ["message.im", "message.channels", "message.groups"]
  }
}

Signal

Требования

  • Установленный signal-cli
  • Зарегистрированный номер телефона

Конфигурация

{
  "signal": {
    "enabled": true,
    "phoneNumber": "+1234567890",
    "dataDir": "/path/to/signal/data",
    "dmPolicy": "allowlist",
    "allowFrom": ["signal:+1234567890", "signal:+0987654321"],
    "groups": {
      "group1": {
        "groupId": "base64_group_id",
        "allowFrom": ["signal:+1234567890"]
      }
    }
  }
}

iMessage (macOS only)

Конфигурация

{
  "imessage": {
    "enabled": true,
    "account": "iCloud",
    "dmPolicy": "allowlist",
    "allowFrom": ["imessage:someone@icloud.com"],
    "syncInterval": 5000,
    "maxHistory": 1000
  }
}

Google Chat

Требования

  • Google Workspace аккаунт
  • Созданный Chat bot в Google Cloud Console

Конфигурация

{
  "googlechat": {
    "enabled": true,
    "projectId": "ваш-project-id",
    "serviceAccountKey": "${GOOGLE_SERVICE_ACCOUNT_KEY}",
    "dmPolicy": "pairing",
    "spaces": {
      "general": {
        "spaceId": "spaces/AAAA...",
        "requireMention": true
      }
    }
  }
}

Политики доступа

dmPolicy (политика личных сообщений)

Значение Описание Безопасность
pairing Требуется подтверждение кода 🔒 Высокая
allowlist Только разрешенные пользователи 🔒 Средняя
open Любой может писать ⚠️ Низкая

groupPolicy (политика групп)

Значение Описание
allowlist Только разрешенные группы
open Любая группа
requireMention Только при упоминании

Примеры использования

Пример 1: Мульти-канальная конфигурация

{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "${TELEGRAM_BOT_TOKEN}",
      "dmPolicy": "allowlist",
      "allowFrom": ["tg:336940264"],
      "groups": {
        "*": { "requireMention": true }
      }
    },
    "discord": {
      "enabled": true,
      "botToken": "${DISCORD_BOT_TOKEN}",
      "guildId": "123456789012345678",
      "dmPolicy": "pairing",
      "channels": {
        "general": {
          "channelId": "123456789012345678",
          "requireMention": true
        }
      }
    }
  }
}

Пример 2: Production конфигурация с безопасностью

{
  "channels": {
    "defaults": {
      "dmPolicy": "allowlist",
      "configWrites": false,
      "historyLimit": 100,
      "mediaMaxMb": 50
    },
    "telegram": {
      "enabled": true,
      "botToken": "${TELEGRAM_BOT_TOKEN}",
      "allowFrom": ["tg:336940264", "tg:987654321"],
      "groups": {
        "*": {
          "requireMention": true,
          "allowFrom": ["@admin"]
        }
      }
    },
    "whatsapp": {
      "enabled": true,
      "phoneNumberId": "${WHATSAPP_PHONE_NUMBER_ID}",
      "accessToken": "${WHATSAPP_ACCESS_TOKEN}",
      "allowFrom": ["whatsapp:+1234567890"],
      "templates": {
        "welcome": "welcome_message"
      }
    }
  }
}

Пример 3: Командный бот с разными правами

{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "${TELEGRAM_BOT_TOKEN}",
      "dmPolicy": "allowlist",
      "allowFrom": ["tg:team_lead"],
      "groups": {
        "-1001234567890": {  // Группа разработчиков
          "requireMention": false,
          "allowFrom": ["@dev1", "@dev2", "@dev3"],
          "systemPrompt": "Ты помощник команды разработки.",
          "skills": ["github", "terminal", "docker"]
        },
        "-1000987654321": {  // Группа менеджеров
          "requireMention": true,
          "allowFrom": ["@manager1", "@manager2"],
          "systemPrompt": "Ты помощник для управления проектами.",
          "skills": ["calendar", "notion", "jira"]
        }
      }
    }
  }
}

Устранение неполадок

Общие проблемы

❌ Канал не отвечает

  1. Проверьте токен/ключи доступа
  2. Проверьте статус шлюза: openclaw gateway status
  3. Проверьте логи: tail -f ~/.openclaw/logs/gateway.log

❌ "Pairing required"

  1. Отправьте /start или начальное сообщение
  2. Подтвердите код в терминале
  3. Проверьте dmPolicy в конфигурации

❌ Ошибки вебхука

  1. Проверьте URL вебхука
  2. Проверьте Verify Token
  3. Проверьте доступность сервера

Специфичные проблемы

Telegram

# Проверьте токен
curl -s "https://api.telegram.org/botТОКЕН/getMe"

# Проверьте вебхук
curl -s "https://api.telegram.org/botТОКЕН/getWebhookInfo"

Discord

# Проверьте токен
curl -H "Authorization: Bot ТОКЕН" https://discord.com/api/v10/users/@me

WhatsApp

# Проверьте статус бизнес-аккаунта
curl -X GET "https://graph.facebook.com/v17.0/ВАШ_PHONE_NUMBER_ID" \
  -H "Authorization: Bearer ВАШ_ACCESS_TOKEN"

Лучшие практики

Безопасность

  1. Никогда не храните токены в коде - используйте переменные окружения
  2. Используйте dmPolicy: "allowlist" для production
  3. Отключайте configWrites: false если не нужно
  4. Ограничивайте historyLimit для экономии памяти

Производительность

  1. Настройте retry политику для надежности
  2. Используйте кэширование для медиа файлов
  3. Мониторьте использование памяти при большом количестве каналов
  4. Используйте асинхронную обработку для тяжелых операций

Масштабирование

  1. Разделяйте каналы по назначению (личные, командные, публичные)
  2. Используйте разные systemPrompt для разных каналов
  3. Настройте привязку к агентам для специализированных задач
  4. Реализуйте очередь сообщений для высокой нагрузки

Мониторинг

Ключевые метрики

# Количество активных каналов
openclaw channels list --status

# Статистика сообщений
grep -c "Message received" ~/.openclaw/logs/gateway.log

# Ошибки по каналам
grep -i "error\|failed" ~/.openclaw/logs/*.log | grep -i "telegram\|discord"

Health checks

# Проверка здоровья каналов
curl http://127.0.0.1:18789/health

# Проверка подключения к API
for channel in telegram discord whatsapp; do
  echo "Checking $channel..."
  # channel-specific checks
done

Дополнительные ресурсы


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

Помогла ли вам эта статья?

Оставьте отзыв или предложите улучшения

🐛 Сообщить об ошибке

Комментарии и обсуждение

Пока нет комментариев. Будьте первым!

Добавить комментарий

Комментарии проходят модерацию