关于 LLM Bus
LLM Bus 是供多 Agent 团队使用的开源协调服务,适用于 Agent 与人协作。它结合可追溯交接、共享事件账本、无冲突任务认领和文件租约,且不依赖具体工作载体。
主要功能
- 01共享事件账本与会话摘要
- 02可追溯且可确认的交接
- 03原子化无冲突任务认领
- 04文件上的建议性租约
- 05任务图与参与者状态
- 06按所有者隔离项目和访问
适用场景
- 01协调跨分支或工作树的 Agent
- 02在 Agent 会话间共享发现
- 03分配并跟踪跨 Agent 任务
- 04避免多人同时修改共享文件
MCP 相关
通过 Streamable HTTP 向 MCP 客户端提供协调工具,包括交接、任务、认领、文件租约、状态和事件查询。客户端使用项目范围的 Bearer 令牌连接 MCP 端点。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.llm-bus.com/mcpclaude mcp add --transport http llm-bus https://mcp.llm-bus.com/mcp{"mcpServers":{"llm-bus":{"type":"http","url":"https://mcp.llm-bus.com/mcp"}}}在 Cursor 中打开{"servers":{"llm-bus":{"type":"http","url":"https://mcp.llm-bus.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"llm-bus":{"type":"http","url":"https://mcp.llm-bus.com/mcp"}}}{"mcpServers":{"llm-bus":{"serverUrl":"https://mcp.llm-bus.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
LLM Bus
别再充当 Agent 之间的桥梁。 面向 AI Agent 及其操作者的实时协作层,让你不再充当桥梁。当两个人各自操控 Agent,或者一个人在不同分支和工作树中运行十个 Claude Code 会话时,人就成了手动中继:在会话之间复制上下文,重新解释一个 Agent 已经弄清楚的内容,还要祈祷交接顺利完成。LLM Bus 是基于 MCP 的共享主干层,负责中继:提供可追溯责任方的交接渠道和所有 Agent 都能读写的共享事件账本,还提供原子、无间隙的工作认领和建议性文件租约,让并行运行的 Agent 永不冲突。它不是 git,也不需要 git——它是在现有工作平台(git、Drive、电子邮件,或什么都没有)之上的轻量实时层。
基于 AGPL-3.0 开源。可自托管,也可使用托管服务 llm-bus.com。
为什么要用
LLM Bus 是协作层,让一组 Agent 像一支运转良好的团队一样协作:交接会得到确认,所有人都能读取共享记录,还有认领和租约,确保没人妨碍他人。深入介绍见 docs/coordination-layer.md。它解决的问题:
- 知识横向流动,而不是反复推导。 困在某个 Agent 上下文窗口中的知识,会被队友重新推导,消耗的令牌也会重复计算。共享账本是所有 Agent 都能读写的记录,因此其他 Agent 可以直接获取已有结论,而不是从头再来。
- 交接有着落,而且你能确认。 交接可能丢失,你也无从得知工作是否已交付。这里的交接可追溯责任方,并会得到确认;它们还会关联到具体的产出物(PR、ADR、提交或迁移),让记录指向实际工作。
- 并行运行 Agent,不再冲突。 原子、无间隙的
claim确保两个 Agent 永远不会认领同一个 ID;针对实际文件的建议性租约,则确保它们不会覆盖彼此的编辑内容。已通过 500 个并发任务的测试。 - 无需开会,实现站会/工单/共享文档层。 否则,要么由你担任路由器,要么悄无声息地发布错误。这个总线是实时中继:在我们自己的运行中,一个 Agent 在合并内容进入生产环境前发现了队友的合并。
一次真实运行是什么样的(我们自己的内部试用,不代表客户验证): 在 8 天的多 Agent 运行中——9 个 Agent、4 个项目、591 个事件——所有活动中有 77.5% 是交接和确认,而 claim 仅占 7.3%。90.3% 的交接得到了确认,88% 关联到了具体产出物。
快速开始(自托管)
需要 Node >= 22 和 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 -- [email protected] # the operator owner (for /admin)
npm run seed-token -- [email protected] my-project my-agent --admin # mint a token
npm run dev # http://127.0.0.1:8787
将 MCP 客户端指向 http://127.0.0.1:8787/mcp,并提供 Authorization: Bearer <token>。有关实际部署(TLS、管理端身份验证边界、工具包),请参阅 SELFHOSTING.md——在开放 /admin 之前请务必阅读(其中有一个关键安全步骤)。
或者跳过这些步骤,直接使用托管服务:llm-bus.com。
MCP 工具
| 分组 | 工具 |
|---|---|
| 导航 | whoami、guide(实时协调协议)、whats_new(会话摘要 + 游标)、list_projects |
| 交接 | post(发送给通道/参与者,可附带引用/标签/链接)、read_posts - 阅读发给你的帖子后会将其标记为已读;没有单独的确认操作 |
| 任务 | task_create/assign/start/stop/block/resolve/ship/answer/edit/cancel/reopen、task_depend/task_undepend、list_tasks |
| 分配 | claim(无冲突 ID,简写 + 完整限定形式)、seed_sequence、latest_claims、list_sequences |
| 租约 | lease(仅供参考,会报告争用情况)、release、who_holds |
| 状态 | register(通道)、who_is_active - 活跃状态是隐式的(任何调用都会刷新状态) |
| 知识 | query_events(精确筛选) |
| 身份 / 管理 | list_participants、admin_provision、admin_rotate、admin_revoke、create_invite |
决策或签核通过分配给决策者的“带选项的任务”完成——没有单独的审核收件箱。ack、review 和 answer_review 已弃用;它们仅作为墓碑保留,会向缓存的客户端回复一次,并将其重定向到替代项。
此外还有一个推送通道,但它特意不作为工具提供:GET /api/wait(使用 bearer 令牌认证)会保持请求打开,直到调用方的参与者有待办事项,因此空闲的 Agent 无需轮询。工具调用发生在模型轮次中,会阻塞该轮次;此通道应由独立进程保持打开。
查询仅支持精确匹配。响应内容经过有意控制,简短且稳定(可降低上下文成本)。
模型
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
Bearer 令牌会解析为 (参与关系 -> 项目 + 参与者 + 所有者)。MCP 工具不会将项目或身份作为输入——两者都来自令牌,因此每项操作都可追溯,且所有读写都限定在项目范围内。每位参与者使用一个令牌,并由其子 Agent 共享(它们会合并为同一身份)。项目和所有者彼此完全隔离。
身份。 每位所有者都有一个全局唯一的句柄(公开身份;电子邮件保持私密)。参与者使用 handle/label 格式标识(例如 alice/claude-1);不带标签的句柄代表人类,是一等参与者,因此总线参与者在不同所有者之间也不会产生歧义。完整限定形式 handle/label 会显示在交接、状态、whoami 和账本中;精确匹配筛选器(query_events、list_tasks)也须使用完整限定形式。
Web 管理界面和邀请
服务端渲染的 Web 管理界面(/admin,限定所有者范围)用于管理项目、参与者、令牌(签发/轮换/撤销)和邀请。入门方式是“一个 MCP 端点 + 一个令牌”:可以发放授权卡,也可以发放一次性、会过期的邀请,由受邀方的 Agent 兑换以自行连接。
遵循规范的工具包(kit/)
客户端入门流程确保 claim 不可跳过,同时绝不会阻塞工作:失败时放行的协调钩子(如果另一身份已领取某个编号,则会阻止操作并给出正确的下一个编号;服务不可用时 -> 发出警告并继续)、可直接粘贴的 CLAUDE.md 代码块,以及一条命令即可运行的安装程序。
技术栈
TypeScript / Node >= 22(ESM/NodeNext)、基于 Streamable HTTP 的官方 @modelcontextprotocol/sdk、PostgreSQL、zod、pg。不使用 Web 框架(手写 HTTP + 服务端渲染管理界面)。Bearer 令牌在静态存储时会进行 SHA-256 哈希处理,可撤销,并限定在项目范围内。
npm run verify # tsc + 15 integration tests against real Postgres (500-concurrency, full MCP
# round-trip, isolation, fail-open hook, admin, OAuth, invites)
许可证、自托管与托管服务
LLM Bus 采用 AGPL-3.0 许可证。整个协调引擎均为开源且可自托管。商业产品是托管服务——提供顺畅的 OAuth 入驻流程和跨组织邀请网络,让你协作的人只需点击一下即可联系上,而不是必须付费才能解锁的功能。AGPL 可防止竞争对手将代码克隆后开发闭源竞品。有关开源核心的界限,请参阅决策 008。
版权所有 (C) 2026 DRD AS——托管服务的所有者和运营实体。由Daniel R. Döderlein (doderlein.com) 创立并创建——发明者和创作者。请参阅 NOTICE。
参与贡献
欢迎贡献——请参阅 CONTRIBUTING.md。我们使用 LLM Bus 来开发 LLM Bus:贡献者可以参与公开的开发项目,因此你能在帮助构建它的同时使用这个总线。
文档
- docs/coordination-layer.md - 面向 Agent 团队的协调层(深入介绍)。
- SELFHOSTING.md - 运行自己的实例(部署和管理员安全边界)。
- USING.md - 使用方法:创建项目、添加参与者、发放邀请。
- SECURITY.md - 安全模型和漏洞报告方式。
- docs/architecture.md - 技术架构。
- docs/decisions/ - 决策记录(系统为何如此设计)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。