Buzz:Block 开源的人和 AI 平等协作工作区,一键自托管部署
Buzz:Block 开源的人和 AI 平等协作工作区,5 分钟一键自托管
上周我把测试环境的 AI 协作工作流从「Slack + Claude Code + GitHub 分散联动」换成了 Buzz,整个团队开发和代理协作都收敛到一个事件日志里,不用再在七八个标签页之间跳来跳去找上下文了。这篇讲清楚三件事:
- Buzz 解决了什么痛点,为什么 Block 要重新做一个协作工具
- 怎么一键部署到 Railway 或者本地 Docker 运行
- 哪些团队适合用,哪些场景不适合着急上
为什么需要 Buzz?AI 协作的痛点你中了几个
如果你团队已经开始用 AI 代理帮忙做 code review、整理 issue、生成测试用例,你大概率遇到过这些问题:
- 分散在七个工具:聊天在 Slack/企微,代码在 GitHub,CI 在 GitHub Actions,代理在 Claude Code,复盘的时候要在四五个标签页跳着找上下文
- AI 代理没有身份:大多用你的密钥跑,出了问题分不清哪步是人改的哪步是代理跑的,审计等于空谈
- 权限不好控制:给代理全权限不安全,不给权限干不了活,找不到一个刚刚好的粒度
- 搜索割裂:聊天记录搜不到代码提交,代码提交找不到讨论上下文,信息像碎片一样散在各处
Buzz 的解法非常干净:把人和 AI 代理都当成工作区的平等成员,所有消息、反应、代码补丁、CI 结果、审核意见全都是一条 Nostr 签名事件,存在同一个 Relay 里,所有人都能搜,所有操作都可审计。

人和 AI 代理在同一个频道协作,每一条消息都是可追溯的签名事件
Buzz 核心设计:为什么说它不一样?
1. 所有人都是一等公民:人类 · AI · 工作流 · Git
在 Buzz 里,没有「人类发消息,AI 打辅助」这套区别对待:
- 人类用户用 Nostr 密钥签名消息进频道
- AI 代理也用自己的密钥进频道,加入、发言、运行工具都是独立身份
- Git 补丁、CI 结果、工作流触发也是签名事件
- 所有东西存在同一个日志,全站全文检索
比如你开了一个功能分支,Buzz 自动给你开一个频道:
- 开发提交补丁 → 一条 NIP-34 事件
- CI 跑测试 → CI 机器人发结果事件
- AI 代理自动做第一遍 review → 代理发评论事件
- 人类 teammate 看了之后点👍 → 反应事件
- approve 合并 → 合并结果事件
所有过程都在这个频道里,不会像原来那样:PR 在 GitHub,讨论在 Slack,CI 状态在邮箱,找起来要疯。

AI 代理就是频道里正常一员,和人类没区别
2. 架构极简:一个 Relay 就是一切,没有繁杂微服务
Buzz 的架构哲学是「Single Source of Truth」:
┌─────────────────────────────────────────────────────────────────────────┐
│ Clients (人类 + AI 代理) │
└───────────┬─────────────────────────────────────────────────────────────┘
│ WebSocket / REST
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ buzz-relay 主节点 │
│ NIP-01 协议 · NIP-42 认证 · 频道/DM/媒体/工作流/Git 全部走这个入口 │
└───────────┬──────────────────────┬──────────────────────────────────────┘
│ │
┌─────▼──────┐ ┌─────▼──────┐
│ Postgres │ │ Redis │
│ (事件+搜索) │ │ (发布订阅) │
└─────────────┘ └─────────────┘
所有读写都经过 Relay,所有事件存 Postgres,搜索用 Postgres 全文检索,推送用 Redis 发订阅。没有一大堆微服务,部署简单,运维也省心。
3. 代理设计可圈可点:ACP + MCP 双协议,可审计可替换
如果你深入看 Buzz 的 AI 部分,会发现设计很克制:
- buzz-agent:标准 ACP(Agent Client Protocol)实现,支持最多 8 个并发会话,每个会话上下文满了自动摘要继续
- buzz-dev-mcp:标准 MCP 服务器,提供 shell 和文件编辑工具,每个会话一个独立进程,退出杀进程组,安全边界清晰
- 协议原生,没有耦合:ACP 客户端只认 ACP,MCP 工具只认 MCP,你可以换自己的 agent,也可以接别的 MCP 工具,不锁死

点一下就能创建新频道,设置公开还是私有,整个过程不到 10 秒
5 分钟快速体验:两种方式
方式一:一键部署到 Railway(推荐体验)
Buzz 官方提供了 Railway 一键部署模板,点下面按钮直接部署:
部署完之后:
- Railway 会给你一个域名,比如
buzz-xxx.up.railway.app - Relay 地址就是
wss://buzz-xxx.up.railway.app - 下载桌面客户端 latest release,修改连接地址就能用了
方式二:本地 Docker 运行(开发自托管)
需要你本地装了 Docker 和 Docker Compose,一行命令启动:
git clone https://github.com/block/buzz.git && cd buzz
# 使用生产级 Compose 配置
cd deploy/compose
docker compose up -d
启动之后:
- Relay 地址:
ws://你的服务器IP:3000 - 如果要用 HTTPS,Buzz 官方配置了 Caddy 自动证书,跟着 deploy/compose/README.md 改域名就行
本地源码编译开发(需要 Rust 环境)
如果你想改代码玩,官方提供了 Hermi 一键工具链管理:
git clone https://github.com/block/buzz.git && cd buzz
# 激活 hermit 工具链(自动下载对应版本 Rust/Node/just)
. ./bin/activate-hermit
# 初始化环境:复制配置,启动依赖,跑迁移
just setup && just build
# 开发模式启动:同时起 Relay 和桌面客户端
just dev
等待编译完成,桌面客户端会自动弹出来,连接本地 ws://localhost:3000 就能用了。
适用场景和不适用场景:我帮你分好了
✅ 适合用 Buzz 的场景
- 团队真的在大量用 AI 代理协作:每天都有 AI 帮忙做 review、整理 issue、生成测试,需要把代理的操作留下审计痕迹
- 看重数据主权:不想把团队聊天和代码讨论放第三方 SaaS,想自己掌握所有数据
- 喜欢简洁架构:讨厌一堆微服务拼起来的系统,想一个 Relay 搞定所有协作,运维省心
- 对 Nostr 生态感兴趣:认同事件日志模型,想基于 Nostr 搭自己的协作工具链
❌ 不着急上的场景
- 团队还没怎么用 AI 代理:你就是日常聊个天,用 Slack/企微足够,没必要换
- 需要大量集成现成生态:比如你已经离不开飞书/Notion 的全套生态,Buzz 还在早期,集成没那么全
- 移动端重度使用:Buzz 移动端还在开发中,目前主要是桌面客户端体验好
那些让我觉得舒服的小细节
- 带帧锚点的媒体评论:放视频进去,可以评论具体某一帧,设计视频的时候太好用了
- YAML 工作流:可以用 YAML 配置触发条件,比如打 Tag 自动让 Agent 写 Release Note
- Git 事件原生支持:Git 补丁、状态直接进事件日志,不用第三方集成
- 完整桌面客户端:Tauri + React,用起来流畅,不用一直开浏览器标签

可以把评论钉在视频具体帧,讨论视频设计的时候特别实用
总结
Buzz 不是那种「又一个聊天工具」,它找对了 AI 时代协作的真问题:当 AI 代理真的要参与干活,而不是只在边上聊天,它应该是什么身份?
Buzz 的回答是:和你我一样的身份,一样的密钥,一样的频道权限,一样的审计痕迹。这个思路很干净,也很有启发性。
如果你正好在找 AI 团队协作的自托管方案,可以花 5 分钟部署试试:
- GitHub 地址:https://github.com/block/buzz
- 一键部署:https://railway.com/deploy/buzz-relay-block
- 文档:https://github.com/block/buzz#readme
扩展阅读
- VISION_AGENT.md:官方 AI 代理设计愿景
- ARCHITECTURE.md:完整架构文档
- CONTRIBUTING.md:参与贡献指南
如果你觉得这篇文章有用,欢迎点赞分享,也欢迎在评论区聊聊你团队是怎么用 AI 协作的