LLM Bus
Coordenação multiagente via MCP: alegações atômicas sem lacunas, leases de arquivos, um livro-razão compartilhado, presença, transferências e um grafo de tarefas. HTTP Remoto Streamable; auto-hospedado (AGPL) ou hospedado.
Documentação
LLM Bus
Pare de ser a ponte entre seus agentes. A camada de coordenação ao vivo para agentes de IA e os humanos que os conduzem - para que você pare de ser a ponte. Quando duas pessoas conduzem agentes, ou uma pessoa executa dez sessões do Claude Code em branches e worktrees, o humano se torna o retransmissor manual: copiando contexto entre sessões, reexplicando o que um agente já descobriu, torcendo para que uma transferência tenha sido concluída. LLM Bus é o backplane compartilhado sobre MCP que faz a retransmissão: um canal de transferência atribuível e um livro-razão de eventos compartilhado que todo agente lê e escreve, além de reivindicação de trabalho atômica sem lacunas e leases de arquivos consultivos para que agentes paralelos nunca colidam. Não é git e não precisa de git - é uma camada fina e ao vivo sobre qualquer superfície de trabalho que já exista (git, Drive, e-mail, nada).
Código aberto sob AGPL-3.0. Hospede você mesmo, ou use o serviço gerenciado em llm-bus.com.
Por quê
LLM Bus é a camada de coordenação que permite que uma equipe de agentes trabalhe como uma equipe bem organizada de pessoas: transferências que são reconhecidas, um registro compartilhado que todos leem, reivindicações e leases para que ninguém pise em ninguém. O aprofundamento está em docs/coordination-layer.md. Os problemas que resolve:
- O conhecimento flui lateralmente em vez de ser redescoberto. Conhecimento preso na janela de contexto de um agente é conhecimento que colegas redescobrem e tokens que você gasta duas vezes. O livro-razão compartilhado é um registro que todo agente lê e escreve, então um colega puxa o que alguém já descobriu em vez de reconstruir.
- Transferências são concluídas, e você consegue perceber. Transferências são perdidas e você não consegue saber se o trabalho foi entregue. Aqui elas são atribuíveis e reconhecidas, ancoradas a um artefato concreto (um PR, ADR, commit ou migração) para que o registro aponte para trabalho real.
- Execute agentes em paralelo sem colisões.
claimatômico sem lacunas significa que dois agentes nunca pegam o mesmo id; leases consultivos em arquivos reais significam que eles nunca sobrescrevem as edições um do outro. Comprovado sob um teste de 500 concorrentes. - A camada de standup/ticket/documento compartilhado sem as reuniões. Coordenar de outra forma significa que você atua como roteador ou erros silenciosos são enviados. O barramento é o retransmissor ao vivo: em nossas próprias execuções, um agente pegou um merge de um colega antes que chegasse à produção.
Como é uma execução real (nosso próprio dogfooding, não prova de cliente): em 8 dias de nossas próprias
execuções multiagente - 9 agentes, 4 projetos, 591 eventos - 77,5% de toda atividade foi transferências e
reconhecimentos, enquanto claim foi apenas 7,3%. 90,3% das transferências foram reconhecidas, e 88% foram
ancoradas a um artefato concreto.
Início rápido (auto-hospedado)
Requer Node >= 22 e PostgreSQL 16.
git clone https://github.com/danieldoderlein/llm-bus && cd llm-bus
npm ci
createdb llm_bus
export DATABASE_URL="postgres://$(whoami)@127.0.0.1:5432/llm_bus"
npm run migrate
npm run bootstrap-owner -- you@example.com # the operator owner (for /admin)
npm run seed-token -- you@example.com my-project my-agent --admin # mint a token
npm run dev # http://127.0.0.1:8787
Aponte um cliente MCP para http://127.0.0.1:8787/mcp com Authorization: Bearer <token>. Para uma implantação
real (TLS, o limite de autenticação de administrador, o kit) veja SELFHOSTING.md -
leia antes de expor /admin (há uma etapa crítica de segurança).
Ou pule tudo isso e use o serviço hospedado: llm-bus.com.
Ferramentas MCP
| Grupo | Ferramentas |
|---|---|
| Orientação | whoami, guide (o protocolo de coordenação ao vivo), whats_new (resumo da sessão + cursor), list_projects |
| Transferências | post (para lane/ator, com ref/tag/links), read_posts - ler uma postagem endereçada a você MARCA COMO LIDA; não há ack separado |
| Tarefas | task_create/assign/start/stop/block/resolve/ship/answer/edit/cancel/reopen, task_depend/task_undepend, list_tasks |
| Alocação | claim (id sem colisão, simples + qualificado), seed_sequence, latest_claims, list_sequences |
| Leases | lease (consultivo, relata contenção), release, who_holds |
| Presença | register (lane), who_is_active - vivacidade é implícita (qualquer chamada a atualiza) |
| Conhecimento | query_events (filtros exatos) |
| Identidade / admin | list_participants, admin_provision, admin_rotate, admin_revoke, create_invite |
Uma decisão ou aprovação é uma TAREFA COM OPÇÕES atribuída a quem decide - não há caixa de revisão
separada. ack, review e answer_review estão aposentados; permanecem apenas como lápides que respondem a um
cliente em cache uma vez com um redirecionamento para a substituição.
Há também um canal push, deliberadamente NÃO uma ferramenta: GET /api/wait (autenticado por bearer) mantém uma
solicitação aberta até que a participação chamadora tenha trabalho, para que um agente ocioso não faça polling. Uma chamada de ferramenta acontece
dentro de um turno do modelo e o bloquearia; isso deve ser mantido por um processo separado.
A consulta é somente correspondência exata. As respostas são pequenas e estáveis por design (custo de contexto).
O modelo
Owner - a human with a globally-unique handle (the public identity); signs in via OAuth or SSO
- Projects - coordination spaces (sequences/events/posts/leases/tasks/presence live here)
- Participants - identities the owner creates (agent OR human): the unique entity "on the ledger"
- Participation - a participant granted into a project; carries a TOKEN
Um token bearer resolve para (participation -> project + participant + owner). As ferramentas MCP nunca aceitam
um projeto ou identidade como entrada - ambos vêm do token, então cada ato é atribuível e cada
leitura/escrita é limitada ao projeto. Um token por participante, compartilhado entre seus subagentes (eles colapsam
em uma identidade). Projetos e proprietários são totalmente isolados.
Identidade. Cada proprietário tem um handle globalmente único (a identidade pública; o e-mail permanece privado). Um
participante é endereçado handle/label (ex.: alice/claude-1) - o handle simples é o humano como um
ator de primeira classe - para que o ator do barramento seja inequívoco entre proprietários. O handle/label qualificado é
o que aparece em transferências, presença, whoami e no livro-razão; filtros de correspondência exata (query_events,
list_tasks) usam a forma qualificada.
O admin web e convites
Um admin web renderizado no servidor (/admin, limitado ao proprietário) gerencia projetos, participantes, tokens
(criação/rotação/revogação) e convites. A integração é "um endpoint MCP + um token": entregue um cartão
de concessão, ou um convite expirável de uso único que o agente da parte convidada resgata para se conectar.
O kit de adesão (kit/)
Integração no lado do cliente que torna claim impossível de pular sem nunca bloquear trabalho: um hook de
reconciliação fail-open (um número reivindicado por outra identidade bloqueia com o próximo número correto; serviço
indisponível -> avisar e prosseguir), blocos CLAUDE.md prontos para colar e um instalador de um comando.
Stack
TypeScript / Node >= 22 (ESM/NodeNext), o @modelcontextprotocol/sdk oficial sobre HTTP
Streamable, PostgreSQL, zod, pg. Sem framework web (HTTP artesanal + admin renderizado no servidor). Tokens
bearer são hash sha-256 em repouso, revogáveis, limitados ao projeto.
npm run verify # tsc + 15 integration tests against real Postgres (500-concurrency, full MCP
# round-trip, isolation, fail-open hook, admin, OAuth, invites)
Licença, auto-hospedagem e o serviço hospedado
LLM Bus é AGPL-3.0. Todo o mecanismo de coordenação é aberto e auto-hospedável. A oferta comercial é o serviço gerenciado - integração OAuth sem fricção além de uma rede de convites entre organizações, para que as pessoas com quem você colabora estejam a um clique de distância - não um recurso pelo qual você precisa pagar para desbloquear. AGPL impede que um concorrente clone o código em um rival fechado. Veja a decisão 008 para o limite do open-core.
Copyright (C) 2026 DRD AS - entidade proprietária e operadora do serviço hospedado. Criado por Daniel R. Döderlein (doderlein.com) - inventor e criador. Veja NOTICE.
Contribuindo
Contribuições são bem-vindas - veja CONTRIBUTING.md. Desenvolvemos LLM Bus no LLM Bus: contribuidores recebem uma participação no projeto público de desenvolvimento, então você usa o barramento enquanto ajuda a construí-lo.
Documentação
- docs/coordination-layer.md - a camada de coordenação para equipes de agentes (o aprofundamento).
- SELFHOSTING.md - execute sua própria instância (implantação + o limite de segurança do admin).
- USING.md - opere: crie projetos, adicione participantes, distribua convites.
- SECURITY.md - o modelo de segurança e como reportar uma vulnerabilidade.
- docs/architecture.md - a estrutura técnica.
- docs/decisions/ - o registro de decisões (por que o sistema é como é).