Symphony of One
Orquestra várias instân
GitHubExperimente este MCPPatrocinado
Documentação
Symphony of One MCP - Sistema de Orquestração Multi-Agente
Um servidor Model Context Protocol (MCP) que permite que múltiplas instâncias do Claude colaborem por meio de um hub centralizado com espaço de trabalho compartilhado e comunicação em tempo real.
Arquitetura
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 coordenação de agentes
- Sistema de chat baseado em salas para comunicação entre agentes
- Sistema de gerenciamento e delegação de tarefas
- Monitoramento de arquivos com notificações de alteração em tempo real
- API REST para gerenciamento e orquestração de agentes
2. CLI do Orquestrador do Usuário (cli.js)
- Interface de comando e controle para o usuário
- Monitoramento de agentes e atribuição de tarefas
- Transmissão de mensagens para grupos de agentes
- Estatísticas do sistema em tempo real e gerenciamento de salas
3. Servidor MCP do Agente Claude (mcp-server.js)
- Servidor MCP ao qual as instâncias do Claude Code se conectam
- Acesso compartilhado ao sistema de arquivos com restrições de segurança
- Participação em chat em tempo real com outros agentes
- Execução de tarefas e relatório de progresso
- Notificações de alteração de arquivos e sincronização de colaboração
Início Rápido
1. Instalar Dependências
npm install
2. Iniciar o Central Hub
npm run server
Isso inicia o servidor hub em http://localhost:3000 com um diretório compartilhado em ./shared
3. Iniciar CLI do Orquestrador do Usuário
npm run cli
Isso abre a interface do orquestrador para gerenciar agentes e tarefas.
4. Conectar Agentes Claude
Cada instância do Claude Code se conecta por meio do servidor MCP:
node mcp-server.js
Configuração
Variáveis de Ambiente
CHAT_SERVER_URL: URL do servidor hub (padrão:http://localhost:3000)SHARED_DIR: Diretório do espaço de trabalho compartilhado (padrão:./shared)AGENT_NAME: Nome de exibição do agente (padrão: gerado automaticamente)PORT: Porta do servidor hub (padrão:3000)
Integração com Claude Code
Adicione à sua configuração 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"
}
}
}
}
Ferramentas Disponíveis (MCP)
Gerenciamento de Salas
room_join- Entrar em uma sala de chat para colaboraçãoroom_send- Enviar mensagens para outros agentes (suporta @menções)room_history- Obter histórico de conversaroom_list- Listar todas as salas ativasroom_leave- Sair da sala atual
Coordenação de Tarefas
task_create- Criar tarefas para coordenação de agentestask_list- Visualizar todas as tarefas da sala- Atribuição de tarefas e acompanhamento de status
Sistema de Arquivos (Espaço de Trabalho Compartilhado)
file_read- Ler arquivos do diretório compartilhadofile_write- Gravar arquivos no diretório compartilhadofile_list- Listar conteúdo do diretóriofile_delete- Remover arquivos- Notificações automáticas de alteração para todos os agentes
Memória e Notificações do Agente
memory_store- Armazenar informações persistentes com expiração opcionalmemory_retrieve- Recuperar memórias armazenadas por chave ou tiponotifications_get- Obter menções e alertas para este agentenotification_read- Marcar notificações como lidas
Comandos do Orquestrador
Gerenciamento de Salas
/join <room>- Entrar/criar uma sala/rooms- Listar todas as salas/agents- Mostrar agentes na sala atual/history [n]- Mostrar mensagens recentes
Orquestração de Agentes
/broadcast <msg>- Enviar mensagem para todos os agentes/assign <agent> <task>- Atribuir tarefa a um agente específico/tag <agent> <msg>- Enviar mensagem marcada para um agente específico (@menção)/monitor [room]- Monitorar atividade da sala/stats- Mostrar estatísticas do sistema
Gerenciamento de Tarefas
/task create- Criar novas tarefas/task list- Visualizar todas as tarefas/task update <id>- Atualizar status da tarefa
Memória e Notificações
/memory list- Visualizar uso de memória do sistema/notifications- Visualizar notificações e menções recentes/logs [type]- Visualizar registros de atividade do sistema
Casos de Uso
Desenvolvimento Multi-Agente
- Múltiplas instâncias do Claude trabalham em diferentes partes de um código-fonte
- Notificações de alteração de arquivos em tempo real mantêm todos os agentes sincronizados
- Delegação de tarefas e acompanhamento de progresso
- Espaço de trabalho compartilhado evita conflitos
Análise Colaborativa
- Agentes podem se especializar em diferentes domínios de análise
- Coordenação baseada em chat para resolução de problemas complexos
- Edição e revisão compartilhada de documentos
- Atribuição de tarefas com base nas capacidades dos agentes
Fluxos de Trabalho Orquestrados
- O usuário define metas de alto nível e delega aos agentes
- Agentes se autocoordenam por meio do sistema de chat e tarefas
- Compartilhamento e revisão de entregáveis baseados em arquivos
- Monitoramento de progresso e capacidades de intervenção
Endpoints da API
Operações Principais
POST /api/join/:room- Agente entra na salaPOST /api/send- Enviar mensagem de chatGET /api/messages/:room- Obter histórico de mensagensGET /api/rooms- Listar todas as salas
Gerenciamento de Tarefas
POST /api/tasks- Criar tarefaGET /api/tasks/:room- Obter tarefas da salaPOST /api/tasks/:id/update- Atualizar tarefa
Memória e Notificações
POST /api/memory/:agentId- Armazenar memória do agenteGET /api/memory/:agentId- Recuperar memória do agenteGET /api/notifications/:agentId- Obter notificações do agentePOST /api/notifications/:id/read- Marcar notificação como lida
Orquestração
GET /api/stats- Estatísticas do sistemaPOST /api/broadcast/:room- Transmitir mensagemGET /api/agents/:room- Listar agentes da sala
Novos Recursos Adicionados
🏷️ Marcação e Menções de Agentes
- Use
@agentNameem mensagens para marcar agentes específicos - Agentes marcados recebem notificações em tempo real
- O orquestrador pode usar
/tag <agent> <message>para comunicação direta - Armazenamento e gerenciamento persistente de notificações
💾 Armazenamento Persistente e Memória
- Banco de dados SQLite para todas as mensagens, tarefas e dados de agentes
- Sistema de memória do agente com expiração opcional
- Sistema de notificações persistente com status lido/não lido
- Registro abrangente com Winston
- Os dados sobrevivem a reinicializações do servidor
📊 Monitoramento e Registro Aprimorados
- Monitoramento de atividade em tempo real
- Registro persistente de mensagens e eventos
- Estatísticas do sistema e rastreamento de uso de memória
- Métricas de atividade e desempenho dos agentes
Recursos de Segurança
- Proteção contra travessia de caminho para operações de arquivo
- Acesso ao diretório compartilhado em sandbox
- Declarações e validação de capacidades dos agentes
- Autenticação WebSocket e isolamento de salas
- Armazenamento seguro de memória com expiração
- Trilha de auditoria para todas as ações dos agentes
Melhorias Futuras
- Autenticação e permissões de agentes
- Bloqueio de arquivos para acesso concorrente
- Dependências de tarefas e fluxos de trabalho
- Descoberta de agentes e correspondência de capacidades
- Monitoramento e análise avançados
- Limpeza e otimização de memória
- Canais de notificação e roteamento