Symphony of One

Orquesta múltiples instancias de Claude para tareas colaborativas a través de un centro central con un espacio de trabajo compartido y comunicación en tiempo real.

Documentación

Symphony of One MCP - Sistema de Orquestación Multi-Agente

Un servidor de Model Context Protocol (MCP) que permite que múltiples instancias de Claude colaboren a través de un centro centralizado con espacio de trabajo compartido y comunicación en tiempo real.

Arquitectura

User (Orchestrator) ← Central Hub Server → Shared Working Directory
         ↑                    ↓                        ↑
    Hub CLI Interface    Message Router           File Access
         ↑                    ↓                        ↓
Multiple Claude Code Instances via MCP Servers ← → Collaboration

Componentes

1. Servidor Central Hub (server.js)

  • Servidor Express + Socket.IO para la coordinación de agentes
  • Sistema de chat basado en salas para la comunicación entre agentes
  • Sistema de gestión y delegación de tareas
  • Observación de archivos con notificaciones de cambios en tiempo real
  • API REST para la gestión y orquestación de agentes

2. CLI de Orquestador de Usuario (cli.js)

  • Interfaz de comando y control para el usuario
  • Monitoreo de agentes y asignación de tareas
  • Transmisión de mensajes a grupos de agentes
  • Estadísticas del sistema en tiempo real y gestión de salas

3. Servidor MCP de Agente Claude (mcp-server.js)

  • Servidor MCP al que se conectan las instancias de Claude Code
  • Acceso al sistema de archivos compartido con restricciones de seguridad
  • Participación en chat en tiempo real con otros agentes
  • Ejecución de tareas e informes de progreso
  • Notificaciones de cambios de archivos y sincronización de colaboración

Inicio Rápido

1. Instalar Dependencias

npm install

2. Iniciar el Central Hub

npm run server

Esto inicia el servidor hub en http://localhost:3000 con un directorio compartido en ./shared

3. Iniciar el CLI de Orquestador de Usuario

npm run cli

Esto abre la interfaz del orquestador para gestionar agentes y tareas.

4. Conectar Agentes Claude

Cada instancia de Claude Code se conecta a través del servidor MCP:

node mcp-server.js

Configuración

Variables de Entorno

  • CHAT_SERVER_URL: URL del servidor hub (predeterminado: http://localhost:3000)
  • SHARED_DIR: Directorio del espacio de trabajo compartido (predeterminado: ./shared)
  • AGENT_NAME: Nombre visible del agente (predeterminado: generado automáticamente)
  • PORT: Puerto del servidor hub (predeterminado: 3000)

Integración con Claude Code

Agregue a su configuración de MCP:

{
  "mcpServers": {
    "claude-gateway": {
      "command": "node",
      "args": ["path/to/Symphony-of-One-MCP/mcp-server.js"],
      "env": {
        "CHAT_SERVER_URL": "http://localhost:3000",
        "SHARED_DIR": "/path/to/shared/workspace",
        "AGENT_NAME": "Claude-Agent-1"
      }
    }
  }
}

Herramientas Disponibles (MCP)

Gestión de Salas

  • room_join - Unirse a una sala de chat para colaboración
  • room_send - Enviar mensajes a otros agentes (admite @menciones)
  • room_history - Obtener historial de conversación
  • room_list - Listar todas las salas activas
  • room_leave - Salir de la sala actual

Coordinación de Tareas

  • task_create - Crear tareas para la coordinación de agentes
  • task_list - Ver todas las tareas de la sala
  • Asignación de tareas y seguimiento de estado

Sistema de Archivos (Espacio de Trabajo Compartido)

  • file_read - Leer archivos del directorio compartido
  • file_write - Escribir archivos en el directorio compartido
  • file_list - Listar el contenido del directorio
  • file_delete - Eliminar archivos
  • Notificaciones automáticas de cambios a todos los agentes

Memoria y Notificaciones del Agente

  • memory_store - Almacenar información persistente con expiración opcional
  • memory_retrieve - Recuperar memorias almacenadas por clave o tipo
  • notifications_get - Obtener menciones y alertas para este agente
  • notification_read - Marcar notificaciones como leídas

Comandos del Orquestador

Gestión de Salas

  • /join <room> - Unirse/crear una sala
  • /rooms - Listar todas las salas
  • /agents - Mostrar agentes en la sala actual
  • /history [n] - Mostrar mensajes recientes

Orquestación de Agentes

  • /broadcast <msg> - Enviar mensaje a todos los agentes
  • /assign <agent> <task> - Asignar tarea a un agente específico
  • /tag <agent> <msg> - Enviar mensaje etiquetado a un agente específico (@mención)
  • /monitor [room] - Monitorear la actividad de la sala
  • /stats - Mostrar estadísticas del sistema

Gestión de Tareas

  • /task create - Crear nuevas tareas
  • /task list - Ver todas las tareas
  • /task update <id> - Actualizar el estado de las tareas

Memoria y Notificaciones

  • /memory list - Ver el uso de memoria del sistema
  • /notifications - Ver notificaciones y menciones recientes
  • /logs [type] - Ver registros de actividad del sistema

Casos de Uso

Desarrollo Multi-Agente

  • Múltiples instancias de Claude trabajan en diferentes partes de un código base
  • Las notificaciones de cambios de archivos en tiempo real mantienen a todos los agentes sincronizados
  • Delegación de tareas y seguimiento de progreso
  • El espacio de trabajo compartido previene conflictos

Análisis Colaborativo

  • Los agentes pueden especializarse en diferentes dominios de análisis
  • Coordinación basada en chat para la resolución de problemas complejos
  • Edición y revisión compartida de documentos
  • Asignación de tareas según las capacidades del agente

Flujos de Trabajo Orquestados

  • El usuario define objetivos de alto nivel y los delega a los agentes
  • Los agentes se autocoordinan a través del chat y el sistema de tareas
  • Compartir y revisar entregables basados en archivos
  • Monitoreo de progreso y capacidades de intervención

Endpoints de API

Operaciones Principales

  • POST /api/join/:room - El agente se une a una sala
  • POST /api/send - Enviar mensaje de chat
  • GET /api/messages/:room - Obtener historial de mensajes
  • GET /api/rooms - Listar todas las salas

Gestión de Tareas

  • POST /api/tasks - Crear tarea
  • GET /api/tasks/:room - Obtener tareas de la sala
  • POST /api/tasks/:id/update - Actualizar tarea

Memoria y Notificaciones

  • POST /api/memory/:agentId - Almacenar memoria del agente
  • GET /api/memory/:agentId - Recuperar memoria del agente
  • GET /api/notifications/:agentId - Obtener notificaciones del agente
  • POST /api/notifications/:id/read - Marcar notificación como leída

Orquestación

  • GET /api/stats - Estadísticas del sistema
  • POST /api/broadcast/:room - Mensaje de difusión
  • GET /api/agents/:room - Listar agentes de la sala

Nuevas Funcionalidades Añadidas

🏷️ Etiquetado y Menciones de Agentes

  • Use @agentName en los mensajes para etiquetar agentes específicos
  • Los agentes etiquetados reciben notificaciones en tiempo real
  • El orquestador puede usar /tag <agent> <message> para comunicación directa
  • Almacenamiento y gestión persistente de notificaciones

💾 Almacenamiento Persistente y Memoria

  • Base de datos SQLite para todos los mensajes, tareas y datos de agentes
  • Sistema de memoria del agente con expiración opcional
  • Sistema de notificaciones persistente con estado leído/no leído
  • Registro integral con Winston
  • Los datos sobreviven a los reinicios del servidor

📊 Monitoreo y Registro Mejorados

  • Monitoreo de actividad en tiempo real
  • Registro persistente de mensajes y eventos
  • Estadísticas del sistema y seguimiento del uso de memoria
  • Métricas de actividad y rendimiento de agentes

Funcionalidades de Seguridad

  • Protección contra recorrido de rutas para operaciones de archivos
  • Acceso al directorio compartido en entorno aislado
  • Declaraciones y validación de capacidades de agentes
  • Autenticación WebSocket y aislamiento de salas
  • Almacenamiento seguro de memoria con expiración
  • Rastro de auditoría para todas las acciones de agentes

Mejoras Futuras

  • Autenticación y permisos de agentes
  • Bloqueo de archivos para acceso concurrente
  • Dependencias de tareas y flujos de trabajo
  • Descubrimiento de agentes y coincidencia de capacidades
  • Monitoreo y análisis avanzados
  • Limpieza y optimización de memoria
  • Canales de notificación y enrutamiento