Как создать SlackBot агент с использованием ClickHouse MCP Server
В этом руководстве вы узнаете, как создать SlackBot агент. Этот бот позволяет задавать вопросы о ваших данных ClickHouse прямо из Slack, используя естественный язык. Он использует ClickHouse MCP Server и PydanticAI.
Код для этого примера можно найти в репозитории примеров.
Предварительные требования
- Вам необходимо установить
uv - У вас должен быть доступ к рабочему пространству Slack
- Вам нужен ключ API от Anthropic или другого поставщика LLM
Создать Slack приложение
- Перейдите на slack.com/apps и нажмите
Создать новое приложение. - Выберите опцию
С нуляи дайте вашему приложению имя. - Выберите ваше рабочее пространство Slack.
Установить приложение в ваше рабочее пространство
Далее вам нужно добавить приложение, созданное на предыдущем шаге, в ваше рабочее пространство. Вы можете следовать инструкциям по теме "Добавление приложений в ваше рабочее пространство Slack" в документации Slack.
Настроить параметры приложения Slack
- Перейдите в
Домашняя страница приложения- В разделе
Показать вкладки→Вкладка сообщений: ВключитеРазрешить пользователям отправлять команды Slash и сообщения с вкладки сообщений - Перейдите в
Режим сокетов- Включите
Режим сокетов - Запомните
Обработчик режима сокетовдля переменной средыSLACK_APP_TOKEN
- Включите
- Перейдите в
OAuth и разрешения- Добавьте следующие
Областя токенов бота:app_mentions:readassistant:writechat:writeim:historyim:readim:writechannels:history
- Установите приложение в ваше рабочее пространство и запомните
OAuth токен пользователя ботадля переменной средыSLACK_BOT_TOKEN.
- Добавьте следующие
- Перейдите в
Подписки на события- Включите
События - В разделе
Подписаться на события ботадобавьте:app_mentionassistant_thread_startedmessage:im
- Сохранить изменения
- Включите
- В разделе
Добавить переменные окружения (.env)
Создайте файл .env в корне проекта с следующими переменными окружения,
которые позволят вашему приложению подключиться к SQL песочнице ClickHouse.
Вы можете адаптировать переменные ClickHouse для использования с вашим собственным сервером ClickHouse или облачным экземпляром, если предпочитаете.
Использование бота
- Запустите бота:
- В Slack:
- Упомяните бота в канале:
@yourbot Кто основные контрибьюторы репозитория ClickHouse? - Ответьте в треде, упомянув:
@yourbot сколько вкладов сделали эти пользователи на прошлой неделе? - Напишите боту в личные сообщения:
Покажи все таблицы в демонстрационной базе данных.
- Упомяните бота в канале:
Бот ответит в треде, используя все предыдущие сообщения треда как контекст, если это применимо.
Контекст треда: При ответах в треде бот загружает все предыдущие сообщения (кроме текущего) и включает их как контекст для ИИ.
Использование инструмента: Бот использует только инструменты, доступные через MCP (например, выявление схем, выполнение SQL) и всегда показывает используемый SQL и краткое описание того, как был найден ответ.