En esta guía, aprenderás a crear un agente de SlackBot. Este bot te permite hacer preguntas sobre tus datos de ClickHouse directamente desde Slack usando lenguaje natural. Utiliza ClickHouse MCP server y PydanticAI.
Prerrequisitos
- Necesitarás tener
uvinstalado - Necesitarás acceso a un espacio de trabajo de Slack
- Necesitarás una clave de API de Anthropic o una clave de API de otro proveedor de LLM
Crear una aplicación de Slack
- Ve a slack.com/apps y haz clic en
Create New App. - Elige la opción
From scratchy asígnale un nombre a tu aplicación. - Selecciona tu espacio de trabajo de Slack.
Instala la aplicación en tu espacio de trabajo
A continuación, tendrás que añadir a tu espacio de trabajo la aplicación que creaste en el paso anterior. Puedes seguir las instrucciones de "Add apps to your Slack workspace" en la documentación de Slack.
Configura los ajustes de la aplicación de Slack
- Ve a
App Home- En
Show Tabs→Messages Tab: habilitaAllow users to send Slash commands and messages from the messages tab - Ve a
Socket Mode- Habilita
Socket Mode - Anota el
Socket Mode Handlerpara la variable de entornoSLACK_APP_TOKEN
- Habilita
- Ve a
OAuth & Permissions- Añade los siguientes
Bot Token Scopes:app_mentions:readassistant:writechat:writeim:historyim:readim:writechannels:history
- Instala la aplicación en tu espacio de trabajo y anota el
Bot User OAuth Tokenpara la variable de entornoSLACK_BOT_TOKEN.
- Añade los siguientes
- Ve a
Event Subscriptions- Habilita
Events - En
Subscribe to bot events, añade:app_mentionassistant_thread_startedmessage:im
- Save Changes
- Habilita
- En
[object Object]
Crea un archivo .env en la raíz del proyecto con las siguientes variables de entorno
que permitirán que tu aplicación se conecte al Playground de SQL de ClickHouse.
SLACK_BOT_TOKEN=your-slack-bot-token
SLACK_APP_TOKEN=your-slack-app-level-token
ANTHROPIC_API_KEY=your-anthropic-api-key
CLICKHOUSE_HOST=sql-clickhouse.clickhouse.com
CLICKHOUSE_PORT=8443
CLICKHOUSE_USER=demo
CLICKHOUSE_PASSWORD=
CLICKHOUSE_SECURE=truePuedes adaptar las variables de ClickHouse para usar tu propio servidor de ClickHouse o una instancia de Cloud, si lo prefieres.
Uso del bot
-
Inicia el bot:
uv run main.py -
En Slack:
- Menciona al bot en un canal:
@yourbot Who are the top contributors to the ClickHouse git repo? - Responde en el hilo mencionándolo:
@yourbot how many contributions did these users make last week? - Envía un mensaje directo al bot:
Show me all tables in the demo database.
- Menciona al bot en un canal:
El bot responderá en el hilo, usando como contexto todos los mensajes anteriores del hilo cuando corresponda.
Contexto del hilo: Al responder en un hilo, el bot carga todos los mensajes anteriores (excepto el actual) y los incluye como contexto para la IA.
Uso de herramientas: El bot usa únicamente las herramientas disponibles a través de MCP (por ejemplo, descubrimiento de esquemas y ejecución de SQL) y siempre mostrará el SQL utilizado y un resumen de cómo encontró la respuesta.