Как создать 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:read
assistant:write
chat:write
im:history
im:read
im:write
channels:history
- Установите приложение в ваше рабочее пространство и запомните
OAuth токен пользователя бота
для переменной средыSLACK_BOT_TOKEN
.
- Добавьте следующие
- Перейдите в
Подписки на события
- Включите
События
- В разделе
Подписаться на события бота
добавьте:app_mention
assistant_thread_started
message:im
- Сохранить изменения
- Включите
- В разделе
Добавить переменные окружения (.env
)
Создайте файл .env
в корне проекта с следующими переменными окружения,
которые позволят вашему приложению подключиться к SQL песочнице ClickHouse.
Вы можете адаптировать переменные ClickHouse для использования с вашим собственным сервером ClickHouse или облачным экземпляром, если предпочитаете.
Использование бота
- Запустите бота:
- В Slack:
- Упомяните бота в канале:
@yourbot Кто основные контрибьюторы репозитория ClickHouse?
- Ответьте в треде, упомянув:
@yourbot сколько вкладов сделали эти пользователи на прошлой неделе?
- Напишите боту в личные сообщения:
Покажи все таблицы в демонстрационной базе данных.
- Упомяните бота в канале:
Бот ответит в треде, используя все предыдущие сообщения треда как контекст, если это применимо.
Контекст треда: При ответах в треде бот загружает все предыдущие сообщения (кроме текущего) и включает их как контекст для ИИ.
Использование инструмента: Бот использует только инструменты, доступные через MCP (например, выявление схем, выполнение SQL) и всегда показывает используемый SQL и краткое описание того, как был найден ответ.