Этот функционал уже встроена в OpenClaw, но мало кто знает об этом.
Что это дает?
🎥Изоляция памяти по топикам.
🎥Отдельные systemPrompt/skills/policy на каждый топик.
Ниже будет гайд, скопируй и дай агенту самому настроить.
Если тема интересна, расскажем, как сделать полную изоляцию по топикам, чтобы у каждого агента, был отдельный workspace.
1. Установите OpenClaw и проверьте, что gateway запущен:
openclaw gateway status
openclaw logs --follow
2. Создайте Telegram-бота через @BotFather (/newbot) и сохраните BOT_TOKEN.
3. Подготовьте Telegram-чат:
- включены Topics
- добавьте бота в группу
- если нужны ответы без упоминания: в BotFather отключите privacy (/setprivacy -> Disable), затем удалите и снова добавьте бота в группу
4. Откройте конфиг ~/.openclaw/openclaw.json и задайте базовую конфигурацию:
{
channels: {
telegram: {
enabled: true,
botToken: "BOT_TOKEN",
dmPolicy: "pairing",
groups: {
"-1001234567890": {
groupPolicy: "open",
requireMention: false,
systemPrompt: "Базовое поведение в группе",
topics: {
"14": {
systemPrompt: "Поведение для topic 14",
skills: ["skill-a"],
requireMention: false,
enabled: true
},
"27": {
systemPrompt: "Поведение для topic 27",
skills: ["skill-b"],
requireMention: false,
enabled: true
}
}
}
}
}
}
}5. Узнайте реальные ID:
- chatId группы: chat.id
- threadId топика: message_thread_id
- способы:
openclaw logs --follow
# или
curl -s "https://api.telegram.org/bot<BOT_TOKEN>/getUpdates"
6. Перезапустите gateway:
openclaw gateway restart
7. Проверка изоляции:
- отправьте разные сообщения в topic A и topic B
- убедитесь, что контекст не смешивается
Важно
- topics.<threadId> наследует настройки группы, если не переопределено.
- threadId=1 (General topic) обрабатывается как special-case Telegram.
Чат | Канал
