Bots de Telegram — Guía de usuario

Arc OS utiliza una arquitectura de bots de Telegram de dos niveles: un Master Bot gestiona todos los proyectos, y cada proyecto tiene su propio Child Bot con workers de IA.

Visión general de la arquitectura

El sistema se estructura en dos niveles:

Cómo funciona

Canal de Telegram:
  Usuario → Telegram → Child Bot → Claude CLI → Respuesta → Telegram

CRM Dashboard:
  Usuario → CRM → crm_inbox.jsonl → Child Bot (polling 500ms) → Claude CLI → Respuesta → Telegram + CRM

El Child Bot consulta constantemente el archivo crm_inbox.jsonl cada 500 ms, por lo que los mensajes del CRM Dashboard se procesan casi de inmediato.


Comandos del Master Bot

Comando Descripción
/start Muestra la lista de comandos disponibles
/status Estado de todos los proyectos: hilos activos, uptime, uso de recursos
/list Lista de todos los child bots con indicadores de estado (🟢/🔴)
/health Matriz de estado: condición del Bot, Bridge, sesión tmux para cada proyecto
/deploy <name|all> Git pull + reinicio para un proyecto concreto o todos a la vez
/new_project <name> Inicia el onboarding de un nuevo proyecto (crea child bot, tmux, configuración)
/remove_project <name> Elimina un proyecto con confirmación (botón inline "Sí, eliminar")
/emergency_stop Parada en cascada de 3 niveles: SIGINT → /exit → SIGKILL. Para todo.
/watchdog Monitoreo de child bots: reinicio automático si el bot no responde
/cancel Cancela la operación activa actual (deploy, onboarding, etc.)

Comandos del Child Bot

Prefijos principales

Prefijo Worker Modelo Acceso
/c <mensaje> Consultant Sonnet Solo lectura, asesor estratégico
/d <mensaje> Developer Opus Acceso completo a archivos y terminal
/w:<worker_id> <mensaje> Worker personalizado Según configuración Definido en workers_registry.json
(sin prefijo) Worker activo Por defecto — Consultant

Ejemplo:

/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

Comandos de información

Comando Descripción
/ping Comprueba el estado del bot + uptime
/thread Tamaño del historial de diálogo actual (número de mensajes)
/quality Métricas de calidad: número de llamadas, feedback (👍/👎), duración media de respuesta
/learnings Lista de reglas de corrección acumuladas (learnings)
/specs Lista de especificaciones con estados (draft / review / approved)
/approve <id> Aprobar una especificación por ID
/reject <id> [reason] Rechazar una especificación con motivo opcional

Botones inline

Bajo la respuesta del worker

Después de cada respuesta de un worker de IA aparecen tres filas de botones:

Fila 1 — Control del proceso Claude:

Botón Acción
🛑 STOP Termina el proceso Claude (SIGKILL). Úsalo si la respuesta se desvía o se congela.
⏸️ PAUSE Pausa el proceso Claude (SIGSTOP). Útil para esperar algo antes de continuar.
▶️ RESUME Reanuda el proceso pausado (SIGCONT).

Fila 2 — Contexto y feedback:

Botón Acción
💡 BTW Modo de recopilación de contexto adicional. Tus siguientes mensajes van a la cola y se inyectarán en el próximo prompt GSD.
🛠️ Fix It Vuelve a ejecutar la tarea con correcciones automáticas basadas en la respuesta anterior.
👍 Feedback positivo — se registra en las métricas de calidad.
👎 Feedback negativo — crea automáticamente una regla de learning que se inyectará en cada prompt futuro del worker.

Fila 3 — Navegación:

Botón Acción
🏷️ Skills Muestra la lista de skills que se usaron para generar la respuesta.
📊 View Log Abre el log del CRM de esta sesión.

Botones del Master Bot

En la tarjeta de cada proyecto del Master Bot hay botones disponibles:


Contexto y memoria


Cambio de workers

Cada Child Bot admite varios workers. El worker activo se guarda en el archivo active_role.json.

Los mensajes sin prefijo van al worker activo en ese momento. Si enviaste /d Corrige el bug, Developer se vuelve activo — los mensajes siguientes sin prefijo también irán al Developer.


Conexión con el CRM

Telegram y el CRM Dashboard son dos canales hacia el mismo worker:

Esto significa que puedes iniciar un diálogo en Telegram, continuarlo en el CRM y viceversa — el contexto se conserva.


Troubleshooting

Problema Solución
El bot no responde Comprueba /health en el Master Bot. Si el child bot está 🔴 — haz clic en Restart o usa /deploy <name>. Revisa /watchdog para el monitoreo automático.
Tiempo de respuesta largo Cambia al Consultant (/c) — usa Sonnet, que es más rápido que Opus. Para preguntas simples es suficiente.
El mensaje se trunca Telegram tiene un límite de 4.096 caracteres por mensaje. El bot divide automáticamente las respuestas largas en partes: [1/3], [2/3], [3/3].
El bot responde lento desde el CRM Verifica que la sesión tmux del child bot esté activa: /health debe mostrar tmux 🟢.
👎 no crea un learning Asegúrate de haber pulsado 👎 justo bajo la respuesta del worker, no bajo un mensaje del sistema.