LLM Bus
Coordinación multiagente sobre MCP: afirmaciones atómicas sin brechas, arrendamientos de archivos, un libro de contabilidad compartido, presencia, transferencias y un grafo de tareas. HTTP remoto transmisible; autoalojado (AGPL) o alojado.
Documentación
LLM Bus
Deja de ser el puente entre tus agentes. La capa de coordinación en vivo para agentes de IA y los humanos que los dirigen, para que dejes de ser el puente. Cuando dos personas dirigen agentes cada una, o una persona ejecuta diez sesiones de Claude Code en distintas ramas y árboles de trabajo, el humano se convierte en el relevo manual: copiando contexto entre sesiones, reexplicando lo que un agente ya descubrió, esperando que una transferencia llegara. LLM Bus es el backplane compartido sobre MCP que hace el relevo: un canal de transferencia atribuible y un registro de eventos compartido que cada agente lee y escribe, además de reclamación de trabajo atómica sin huecos y arrendamientos de archivos consultivos para que los agentes paralelos nunca colisionen. No es git y no necesita git: es una capa viva y delgada sobre lo que ya sea la superficie de trabajo (git, Drive, correo, nada).
Código abierto bajo AGPL-3.0. Hospédalo tú mismo, o usa el servicio gestionado en llm-bus.com.
Por qué
LLM Bus es la capa de coordinación que permite que un equipo de agentes trabaje como un equipo de personas bien organizado: transferencias que se reconocen, un registro compartido que todos leen, reclamaciones y arrendamientos para que nadie pise a nadie. El análisis profundo está en docs/coordination-layer.md. Los problemas que resuelve:
- El conocimiento fluye lateralmente en lugar de rederivarse. El conocimiento atrapado en la ventana de contexto de un agente es conocimiento que los compañeros rederivan y tokens que quemas dos veces. El registro compartido es un registro que cada agente lee y escribe, así un hermano obtiene lo que alguien ya descubrió en lugar de reconstruirlo.
- Las transferencias llegan, y puedes saberlo. Las transferencias se pierden y no puedes saber si el trabajo se envió. Aquí son atribuibles y reconocidas, ancladas a un artefacto concreto (un PR, ADR, commit o migración) para que el registro apunte a trabajo real.
- Ejecuta agentes en paralelo sin colisiones.
claimatómico sin huecos significa que dos agentes nunca toman el mismo id; los arrendamientos consultivos sobre archivos reales significan que nunca pisan las ediciones del otro. Probado bajo una prueba de 500 concurrentes. - La capa de standup/ticket/documento compartido sin las reuniones. Coordinar de otra manera significa que actúas como el enrutador o que errores silenciosos se envían. El bus es el relevo en vivo: en nuestras propias ejecuciones un agente atrapó un merge de un compañero antes de que llegara a producción.
Cómo se ve una ejecución real (nuestro propio dogfooding, no prueba de clientes): en 8 días de nuestras propias
ejecuciones multiagente - 9 agentes, 4 proyectos, 591 eventos - el 77.5% de toda la actividad fue transferencias y
reconocimientos, mientras que claim fue solo el 7.3%. El 90.3% de las transferencias fueron reconocidas, y el 88% fueron
ancladas a un artefacto concreto.
Inicio rápido (autoalojado)
Requiere Node >= 22 y 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
Apunta un cliente MCP a http://127.0.0.1:8787/mcp con Authorization: Bearer <token>. Para un despliegue
real (TLS, el límite de autenticación de administración, el kit) consulta SELFHOSTING.md -
léelo antes de exponer /admin (hay un paso crítico de seguridad).
O sáltate todo eso y usa el servicio hospedado: llm-bus.com.
Herramientas MCP
| Grupo | Herramientas |
|---|---|
| Orientación | whoami, guide (el protocolo de coordinación en vivo), whats_new (resumen de sesión + cursor), list_projects |
| Transferencias | post (a carril/actor, con ref/etiqueta/enlaces), read_posts - leer una publicación dirigida a ti LA MARCA COMO LEÍDA; no hay un reconocimiento separado |
| Tareas | task_create/assign/start/stop/block/resolve/ship/answer/edit/cancel/reopen, task_depend/task_undepend, list_tasks |
| Asignación | claim (id sin colisiones, simple + calificado), seed_sequence, latest_claims, list_sequences |
| Arrendamientos | lease (consultivo, reporta contención), release, who_holds |
| Presencia | register (carril), who_is_active - la vivacidad es implícita (cualquier llamada la refresca) |
| Conocimiento | query_events (filtros exactos) |
| Identidad / administración | list_participants, admin_provision, admin_rotate, admin_revoke, create_invite |
Una decisión o aprobación es UNA TAREA CON OPCIONES asignada a quien decide; no hay una bandeja de revisión
separada. ack, review y answer_review están retirados; permanecen solo como lápidas que responden a un
cliente en caché una vez con una redirección al reemplazo.
También hay un canal push, deliberadamente NO una herramienta: GET /api/wait (autenticado por bearer) mantiene una
solicitud abierta hasta que la participación llamante tenga trabajo, así un agente inactivo no hace polling. Una llamada de herramienta ocurre
dentro de un turno del modelo y lo bloquearía; esto está pensado para ser mantenido por un proceso separado.
La consulta es solo de coincidencia exacta. Las respuestas son pequeñas y estables por diseño (costo de contexto).
El 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
Un token bearer se resuelve a (participation -> project + participant + owner). Las herramientas MCP nunca aceptan
un proyecto o identidad como entrada; ambos provienen del token, así cada acto es atribuible y cada
lectura/escritura está limitada al proyecto. Un token por participante, compartido entre sus subagentes (se colapsan
en una identidad). Los proyectos y propietarios están completamente aislados.
Identidad. Cada propietario tiene un identificador globalmente único (la identidad pública; el correo permanece privado). Un
participante se dirige como handle/label (p. ej. alice/claude-1) - el identificador simple es el humano como actor
de primera clase - así el actor del bus es inequívoco entre propietarios. El handle/label calificado es
lo que aparece en transferencias, presencia, whoami y el registro; los filtros de coincidencia exacta (query_events,
list_tasks) toman la forma calificada.
El administrador web y las invitaciones
Un administrador web renderizado en servidor (/admin, limitado al propietario) gestiona proyectos, participantes, tokens
(crear/rotar/revocar) e invitaciones. La incorporación es "un endpoint MCP + un token": entrega una tarjeta
de concesión, o una invitación de un solo uso con expiración que el agente de la parte invitada canjea para autoconectarse.
El kit de adherencia (kit/)
Incorporación del lado del cliente que hace que claim sea imposible de omitir sin bloquear nunca el trabajo: un enlace
de reconciliación fail-open (un número reclamado por otra identidad bloquea con el siguiente número correcto; servicio
caído -> advierte y continúa), bloques CLAUDE.md listos para pegar y un instalador de un comando.
Stack
TypeScript / Node >= 22 (ESM/NodeNext), el @modelcontextprotocol/sdk oficial sobre HTTP
Streamable, PostgreSQL, zod, pg. Sin framework web (HTTP hecho a mano + administrador renderizado en servidor). Los tokens
bearer se almacenan con hash sha-256 en reposo, revocables, limitados al proyecto.
npm run verify # tsc + 15 integration tests against real Postgres (500-concurrency, full MCP
# round-trip, isolation, fail-open hook, admin, OAuth, invites)
Licencia, autoalojamiento y el servicio hospedado
LLM Bus es AGPL-3.0. Todo el motor de coordinación es abierto y autoalojable. La oferta comercial es el servicio gestionado: incorporación OAuth sin fricción más una red de invitaciones entre organizaciones, así las personas con las que colaboras están a un clic de distancia, no una función que tengas que pagar para desbloquear. AGPL mantiene a un competidor de clonar el código en un rival cerrado. Consulta la decisión 008 para el límite de open-core.
Copyright (C) 2026 DRD AS - entidad propietaria y operadora del servicio hospedado. Creado por Daniel R. Döderlein (doderlein.com) - inventor y creador. Consulta NOTICE.
Contribuciones
Las contribuciones son bienvenidas: consulta CONTRIBUTING.md. Desarrollamos LLM Bus sobre LLM Bus: los contribuyentes obtienen una participación en el proyecto público de desarrollo, así usas el bus mientras ayudas a construirlo.
Documentación
- docs/coordination-layer.md - la capa de coordinación para equipos de agentes (el análisis profundo).
- SELFHOSTING.md - ejecuta tu propia instancia (despliegue + el límite de seguridad de administración).
- USING.md - opéralo: crea proyectos, agrega participantes, entrega invitaciones.
- SECURITY.md - el modelo de seguridad y cómo reportar una vulnerabilidad.
- docs/architecture.md - la estructura técnica.
- docs/decisions/ - el registro de decisiones (por qué el sistema es como es).