Integración con Telegram — configuración y uso
Un bot por proyecto. Cada AI worker recibe su propio topic en una Supergroup de Telegram — los mensajes se enrutan automáticamente al worker correcto y la respuesta vuelve al mismo topic.
Cómo se ve en la práctica
Supergroup "My Project"
├── 📌 General ← chat general (sin vinculación)
├── 🔵 Developer ← mensajes → worker Developer
└── 🟢 Consultant ← mensajes → worker Consultant
Escribes en el topic Developer → Arc OS lo procesa con Claude → la respuesta aparece en el mismo topic.
Telegram y el CRM Dashboard son dos canales hacia el mismo worker. Puedes empezar el diálogo en Telegram y continuarlo en el CRM — el contexto se conserva.
Configuración
Paso 1 — Crear el bot en BotFather
- Abre @BotFather en Telegram
- Envía
/newbot - Introduce el nombre del bot (por ejemplo:
My Project) - Introduce el username — debe terminar en
bot(por ejemplo:my_project_arc_bot) - BotFather devolverá un token con el formato
123456789:AABBccDDee...
⚠️ Guarda el token — lo necesitarás al configurar el CRM.
Paso 2 — Crear una Supergroup con Topics
2.1 Crear el grupo
Telegram Desktop / Mobile:
- Pulsa el icono del lápiz → New Group
- Añade a cualquier participante (puedes eliminarlo después)
- Da un nombre al grupo → Create
2.2 Activar los Topics
- Abre la configuración del grupo (pulsa el nombre arriba)
- Edit → busca la sección Topics
- Activa el interruptor — Telegram convertirá automáticamente el grupo en una Supergroup
2.3 Averiguar el Supergroup ID
El Supergroup ID siempre empieza por -100.
Opción A — vía @userinfobot:
- Reenvía cualquier mensaje del grupo al bot @userinfobot
- El bot devolverá el ID con el formato
-1001234567890
Opción B — vía Telegram Web:
- Abre el grupo en web.telegram.org
- En la barra de direcciones verás una URL del tipo
#-1001234567890 - Copia el número junto con el signo menos
Paso 3 — Añadir el bot como administrador
- Abre la configuración del grupo → Administrators
- Add Admin → en el buscador escribe
@username_de_tu_bot(el username completo con@) - Elige el bot de la lista → OK
- Los permisos por defecto son suficientes — déjalos como están
⚠️ El bot no aparecerá en la búsqueda si escribes un username incompleto o sin
@. Introduce el@usernameexacto.
Paso 4 — Crear topics para los workers
En el grupo pulsa + → New Topic:
- Nombra los topics según los workers:
Developer,Consultant, o nombres personalizados - Puedes elegir colores/iconos para mayor comodidad
Paso 5 — Conectar en el CRM
- Abre arc-os.co → elige el proyecto → Project Settings
- Busca la sección Channels → pulsa Connect Telegram
5.1 Introducir los datos del bot
| Campo | Qué introducir |
|---|---|
| Bot Token | El token de BotFather (123456789:AABBcc...) |
| Supergroup ID | El ID del grupo (-1001234567890) |
Pulsa Verify & get topics.
5.2 Verificación
El CRM comprobará:
- ✅ El token es válido
- ✅ El bot es administrador del grupo
- ✅ La lista de topics se ha cargado
5.3 Vincular topics a workers
Para cada topic elige un worker del desplegable:
Developer → [developer ▾]
Consultant → [consultant ▾]
General → [(sin vincular)]
Pulsa Save bindings.
Paso 6 — Prueba
- Escribe cualquier mensaje en el topic Developer
- El bot responderá en el mismo topic desde el worker Developer
- Repite con Consultant
Uso diario
Trabajar mediante topics (recomendado)
Simplemente escribe el texto de la tarea en el topic adecuado — no hacen falta prefijos:
[Topic Developer]
Corrige el bug del formulario de login — el campo email no se valida
[Topic Consultant]
Analiza la arquitectura del módulo auth, ¿qué se puede mejorar?
Si un topic no está vinculado a un worker — responde el worker por defecto.
Comandos en el chat privado con el bot
En el chat privado con el bot está disponible el cambio manual de workers mediante prefijos:
| Prefijo | Worker | Propósito |
|---|---|---|
/c <texto> |
Consultant | Análisis, estrategia, solo lectura |
/d <texto> |
Developer | Código, archivos, terminal |
/w:<worker_id> <texto> |
Personalizado | Cualquier worker del registry |
| (sin prefijo) | Activo | El último utilizado |
Ejemplos:
/c Analiza la arquitectura del módulo auth
/d Corrige el bug en el formulario de login
/w:sentinel Realiza una auditoría de seguridad de los últimos cambios
Un mensaje sin prefijo va al worker activo actual — después de /d Corrige el bug, los mensajes siguientes sin prefijo también irán al Developer.
Botones inline bajo la respuesta
Después de cada respuesta del AI worker aparecen botones de control:
Control del proceso:
| Botón | Acción |
|---|---|
| 🛑 STOP | Detener Claude (si se desvió o se quedó colgado) |
| ⏸️ PAUSE | Pausar — útil para esperar algo antes de continuar |
| ▶️ RESUME | Reanudar el proceso pausado |
Contexto y feedback:
| Botón | Acción |
|---|---|
| 💡 BTW | Añadir contexto — el siguiente mensaje se añadirá como contexto a la próxima petición |
| 🛠️ Fix It | Repetir la tarea con correcciones automáticas |
| 👍 | Feedback positivo — se registra en las métricas |
| 👎 | Feedback negativo — crea automáticamente una regla de corrección que se tendrá en cuenta en las próximas peticiones |
Navegación:
| Botón | Acción |
|---|---|
| 🏷️ Skills | Mostrar los skills que se usaron para la respuesta |
| 📊 View Log | Abrir el log de la sesión en el CRM |
Contexto y memoria
- Cada worker tiene una memoria separada (hasta 50 mensajes)
- Reply a un mensaje → su texto se añade como contexto a la petición
- El Context Router selecciona automáticamente los top-5 skills relevantes para tu mensaje
- El feedback 👎 → el sistema memoriza el error y lo tiene en cuenta en las próximas peticiones
Comandos de control del bot
| Comando | Descripción |
|---|---|
/ping |
Comprobar si el bot está vivo + uptime |
/thread |
Tamaño del contexto actual (número de mensajes) |
/quality |
Métricas de calidad: llamadas, feedback, tiempo medio de respuesta |
/issue list |
Lista de issues abiertos del proyecto |
/issue create <título> |
Crear una nueva tarea |
/issue switch <id> |
Cambiar la tarea activa |
/continue |
Continuar la sesión en el contenedor Cloud |
/specs |
Lista de especificaciones (draft / review / approved) |
/approve <id> |
Aprobar una especificación |
/reject <id> [motivo] |
Rechazar una especificación |
Conexión con el CRM Dashboard
Topic de Telegram ──┐
├──► Child Bot ──► Claude ──► Respuesta
CRM Dashboard ──┘ │
▼
Telegram + CRM (a la vez)
- Los mensajes del CRM se procesan cada 500ms
- Las respuestas aparecen en Telegram y en el CRM al mismo tiempo
- Los attachments (imágenes, PDF) se admiten a través del CRM Dashboard
- Puedes empezar el diálogo en Telegram y continuarlo en el CRM — el contexto se conserva
Desconectar el bot
CRM → Project Settings → Channels → Disconnect.
Esto eliminará el token y todas las vinculaciones de topics. El bot permanecerá en el grupo — elimínalo de los administradores manualmente si es necesario.
Solución de problemas
| Problema | Solución |
|---|---|
| El bot no responde en un topic | Comprueba que el bot sea administrador del grupo. Revisa la vinculación del topic en CRM → Channels. En el chat privado → /ping |
| Tiempo de respuesta largo | Developer (Opus) es más lento que Consultant (Sonnet). Para análisis y preguntas usa Consultant |
| La respuesta se corta | Límite de Telegram de 4096 caracteres — el bot divide automáticamente en [1/3], [2/3], etc. |
| El bot no aparece al añadirlo al grupo | Escribe el username completo con @: @arc_os_project_bot |
| "Invalid bot token" en la verificación | Revisa el token — formato digits:letters, sin espacios |
| "Bot is not admin" en la verificación | Añade el bot vía Administrators → Add Admin → @username_del_bot |
| "supergroup_id must start with -100" | El ID debe ser -1001234567890. Activa los Topics para convertir el grupo en Supergroup |
| 👎 no crea una regla de corrección | Pulsa 👎 justo bajo la respuesta del worker, no bajo un mensaje del sistema |