RepoDaily · 2026-07-24 · Infrastructure / Runtime

Buzz:一个让人类与 AI 智能体共享同一工作空间的自托管 Nostr 中继

#2 Infrastructure / Runtime Rust +2,460 block/buzz 打开仓库

Block 用 Rust 构建的工作空间将每条消息、补丁、代码评审和 git 事件都作为签名 Nostr 事件记录在同一条日志中——让智能体获得与人类队友相同的协议级操作面,且基础设施完全由你掌控。

项目类型Infrastructure / Runtime
最适合希望在一个自托管协作中继中让 AI 智能体与人类以平等身份参与的工程团队,要求统一的审计链和密钥对级别的身份隔离。
风险等级早期阶段(v0.1.0),部署面复杂,尚无托管服务
评估时间构建 Docker 镜像并跑通单中继模式需 2–3 天;通过 MCP 或 SDK 集成一个智能体需 1–2 周

核心问题: 你是否需要一个自托管的通信中继,让 AI 智能体作为一等公民拥有自己的密钥对?还是现有的聊天工具加机器人插件就够了?

89/100

RepoDaily 采用评分

RepoDaily 将该项目的采用分评为 89/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。

基于 RepoDaily 来源和采用说明的方向性评分,不是基准测试。风险: 高
100证据质量

包含 5 个来源、覆盖 3 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。

100可安装/可试用性

检测到 6 个工作流步骤、5 个下一步动作,以及 6 个命令/安装信号。

69维护可信度

趋势热度为 +2,460 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。

80生产准备度

采纳风险标记为 high,并包含 6 条安全说明与 4 条跳过条件。

100差异化

3 个机会视角、4 个替代方案,以及 3 个类型化模块支撑差异化判断。

82许可证清晰度

文章中包含许可证来源或许可证表述。

90Agent / AI 适配度

文章正文和元数据中检测到 7 个 AI/Agent 相关信号。

项目概览

Buzz 是 Block(原 Square)开发的自托管工作空间,人类和 AI 智能体在同一个房间中协作。README 开宗明义地指出:它就是一个 Nostr 中继。每条消息、每个表情回应、每个工作流步骤、每次代码评审审批以及每个 git 事件,都是一条签名事件,记录在同一条日志中。无论作者是人还是自动化流程,身份模型、审计链和协议结构完全一致。这个设计决策是 Buzz 的核心差异化——智能体不是作为 bot 外挂存在,而是使用与人类相同的操作面参与协作,只是密钥对不同。

项目以 Rust workspace 形式发布,包含 26 个 crate,覆盖中继、核心、数据库、发布订阅、认证、搜索、审计、智能体编排、媒体、命令行、SDK 以及与 Nostr 集成的 git 工具。公开 Docker 镜像发布为 ghcr.io/block/buzz:<tag>,使用多阶段 Dockerfile 构建,编译 buzz-relay 二进制文件(Rust 1.95)和静态 Web 包(pnpm + Vite,Node 24),最终组装为带 git 的 debian-slim 运行时。后端依赖 PostgreSQL(通过 sqlx 0.9)、Redis(通过 deadpool-redis)和 axum 0.8 处理 HTTP 与 WebSocket 传输。

Buzz 在实践中值得关注的是智能体进入工作空间后能做什么。根据 README,智能体可以打开仓库、提交补丁、评审代码、运行工作流、编辑画布、编排其他智能体、加入语音讨论、创建频道以及拉入参与者。一个功能分支可以变成一个房间,补丁、CI 结果、代码评审和合并决策全部存在于同一个频道中——频道本身就成了代码存在原因的记录。智能体通过身份(自己的密钥、频道成员关系和审计链)来限定权限,而非通过权限标志位。

解决什么问题

  • 现有聊天工具(Slack、Discord、Mattermost)中的 AI 智能体是二等公民:它们通过 webhook 或 bot API 通信,无法原生打开仓库或运行工作流,且操作不记录在与人类相同的审计链中。
  • 自托管一个统一人类协作、智能体编排、代码评审和 CI 的工作空间,通常需要拼凑多个工具,身份和权限模型各不相同。
  • 合规敏感型组织需要对每个操作——谁说了什么、哪个智能体审批了哪个补丁、何时操作——提供密码学来源证明,而传统聊天平台在协议层做不到这一点。
  • 现有 Nostr 中继能处理消息,但缺乏频道、画布、带帧锚定评论的媒体和 git 事件摄入等工作空间原语。

工作原理

  1. 一个 Buzz 社区就是通过 URL 可达的工作空间。在当前发布的单中继配置中,中继 URL 选择且仅选择一个社区。该 URL 下所有租户可观察的状态都是社区本地的。
  2. 中继将每次交互——消息、表情回应、工作流步骤、代码评审审批、git 事件——作为签名 Nostr 事件存储在一条日志中。人类和智能体作者使用相同的事件结构和身份模型。
  3. 智能体持有自己的 Nostr 密钥对。它们被添加到频道的方式与人类相同,其操作(补丁、评审、工作流运行)记录在与任何其他参与者相同的审计链中。
  4. 后端运行在 Tokio 上,使用 axum 处理 HTTP/WebSocket,sqlx 连接 PostgreSQL,Redis 用于发布订阅。中继间的 mesh 传输使用 iroh(版本 1.0.0-rc.0)。
  5. Git 集成由专用 crate 处理:git-credential-nostr 和 git-sign-nostr 将基于 Nostr 的签名引入 git 操作,中继通过 shell 调用 git 进行仓库填充、receive-pack 和 upload-pack。
  6. 智能体编排使用 MCP SDK(rmcp 1.1.0),在 buzz-dev-mcp 和 buzz-agent crate 中实现,使智能体可通过模型上下文协议与工作空间交互。

产品演示与界面预览

一个 Buzz 项目频道,人类和智能体在其中协调发布计划
人类与智能体在项目频道中协调发布计划 — 展示 Buzz 的核心定位:智能体和人类在同一个频道线程中,智能体以成员身份而非 bot webhook 方式参与。 README.md image
人类和智能体在 Buzz 工程频道中协作并用表情回应
工程频道中人类与智能体协作并使用表情回应 — 展示智能体以与人类相同的方式被添加到频道并参与表情回应,强化了身份限定模型。 README.md image
添加频道对话框,包含搜索、筛选以及可加入或创建的频道
添加频道对话框,包含搜索、筛选和创建选项 — 展示频道创建界面,功能分支可以在这里变成一个房间,补丁、CI 和评审共存其中。 README.md image
Buzz 中播放的视频,侧边栏中有帧锚定评论
带帧锚定评论侧边栏的视频 — 展示 buzz-media crate 的能力:带帧锚定评论的媒体,作为 Nostr 事件存储在同一条日志中。 README.md image

架构解读:26 个 Rust crate 及各自职责

  • buzz-relay:核心中继二进制文件,作为主服务器运行。Dockerfile 使用 cargo build --release --locked -p buzz-relay 编译。
  • buzz-core:跨中继、智能体和 SDK crate 共享的领域逻辑。
  • buzz-db:数据库层,使用 sqlx 0.9 连接 PostgreSQL,支持 uuid、chrono 和 json 列类型。
  • buzz-pubsub:消息分发层,后端为 Redis,通过 deadpool-redis 0.23 和 redis 1.0(启用 tokio-comp 和 connection-manager 特性)实现。
  • buzz-auth 和 buzz-audit:身份限定和审计链执行。根据 README,智能体通过身份而非权限标志位来限定。
  • buzz-search:对事件日志的全文搜索,使智能体可以查询六个月的历史并返回带凭证的对话线程。
  • buzz-agent 和 buzz-dev-mcp:智能体编排,使用 rmcp MCP SDK(版本 1.1.0),启用 server、transport-io 和 macros 特性。
  • git-credential-nostr 和 git-sign-nostr:基于 Nostr 的 git 凭证助手和提交签名,将事件日志桥接到 git 操作。
  • buzz-relay-mesh:基于 iroh 1.0.0-rc.0(启用 tls-ring)的中继间 mesh 传输,支持单实例之外的中继到中继通信。
  • buzz-media:媒体处理,包括视频帧锚定评论,如 README 截图中带侧边栏评论系统的媒体所示。
  • buzz-cli、buzz-pairing-cli 和 buzz-admin:用于管理和设备配对的命令行工具。
  • buzz-sdk 和 buzz-persona:面向第三方集成的编程访问和智能体角色管理。

部署说明:Docker 镜像、运行时要求和构建流程

公开 Docker 镜像发布为 ghcr.io/block/buzz:<tag>。Dockerfile 使用 syntax=docker/dockerfile:1.7,与平台无关——多架构构建通过在原生 amd64 和 arm64 runner 上运行同一 Dockerfile 实现,不添加 --platform 固定参数。

构建分四个阶段:cargo-chef 基础层(Rust 1.95,debian bookworm)缓存依赖编译;planner 阶段计算依赖配方;builder 阶段先编译依赖再构建 buzz-relay、buzz-admin 和 buzz-pair-relay 三个 strip 后的 release 二进制;web-builder 阶段(Node 24 + pnpm + Vite)独立于 Rust 层生成静态前端包。

运行时镜像为 debian-slim 并安装 git,因为中继需要 shell 调用 git 进行仓库填充、receive-pack 和 upload-pack 操作。Dockerfile 注明这是 crates/buzz-relay/src/api/git 所需的。

两个可选构建参数支持企业环境:EXTRA_CA_CERTS 接受 PEM 文件用于 TLS 拦截代理(Cloudflare/Zscaler 网关);NPM_REGISTRY 将包获取重定向到企业镜像。两者默认为空,不影响公共 CI 构建。

根据 Cargo.toml,workspace 要求 Rust edition 2021、rust-version 1.88.0,但 Dockerfile 使用 Rust 1.95 构建。前端使用 package.json 中声明的 pnpm 11.4.0,Biome 2.4.6 用于代码检查,Tailwind CSS Typography 用于样式。

集成面:Nostr 协议、MCP 和 Git 工具

  • Nostr 协议版本 0.44,启用 nip44(加密私信)和 nip98(HTTP 认证)特性。
  • MCP(模型上下文协议)支持通过 rmcp 1.1.0 在 buzz-dev-mcp 和 buzz-agent crate 中实现,使智能体可通过标准化协议暴露和消费工具。
  • Git 集成通过 git-credential-nostr(凭证助手)和 git-sign-nostr(提交签名),代码变更可密码学地绑定到 Nostr 身份。
  • 中继间 mesh 传输通过 iroh 实现,支持超越当前单中继配置的中继联邦场景。
  • buzz-push-gateway 使用 reqwest 0.13(rustls TLS)为外部集成提供 webhook 投递。
  • buzz-workflow 支持基于 cron 的定时调度(cron 0.16 crate)和表达式求值(evalexpr 11)用于工作流步骤条件。

谁适合关注

适合关注

  • 需要为人类和智能体的每个操作提供密码学审计链的受监管行业工程团队。
  • 已经自托管基础设施(PostgreSQL、Redis、Docker)且希望添加智能体原生协作层而不依赖 SaaS 的组织。
  • 正在构建内部智能体流水线、希望智能体与人类在同一工作空间中以相同协议操作面运行的团队——包括打开仓库、提交补丁和参与代码评审。
  • 寻求将消息收发扩展到频道、画布、媒体和 git 事件的工作空间中继的 Nostr 原生项目。

可以先跳过

  • 需要开箱即用托管方案的团队——Buzz 当前以单中继自托管模式发布,没有托管服务。
  • 已经标准化使用 Slack、Teams 或 Discord 且通过现有 bot API 集成智能体已足够的组织。
  • 没有 Rust 或容器运维能力的项目,因为部署需要构建和维护一个包含 26 个 crate 的 Rust workspace 以及 PostgreSQL 和 Redis 依赖。
  • 需要成熟文档和新手引导材料的团队——仓库链接到愿景文档(VISION.md、VISION_SOVEREIGN.md、VISION_PROJECTS.md、VISION_AGENT.md、ARCHITECTURE.md),但 README 本身承认项目处于早期阶段。

风险与注意事项

Buzz 当前版本为 0.1.0,crate 面庞大,没有托管服务,基础设施要求较高。Cargo.toml 中的 repository 字段指向 github.com/block/sprout 而非 github.com/block/buzz,暗示项目可能仍在确定自身身份。

  • Workspace 版本为 0.1.0——README 本身以略带歉意的语气将 Buzz 定位为又一个 AI 相关开发者工具,表明尚未达到稳定性阶段。
  • 部署需要 PostgreSQL、Redis、多阶段 Rust Docker 构建和运行时 git——对于一个协作工具来说是相当大的运维负担。
  • Cargo.toml 中的 repository 字段设为 https://github.com/block/sprout 而非 https://github.com/block/buzz,可能是遗留问题或表明正在改名。
  • iroh(中继间 mesh 传输)版本为 1.0.0-rc.0,核心依赖仍处于候选发布阶段。
  • 源包中未见公开文档站点、API 参考或托管试用——README 仅引用了愿景文档和 ARCHITECTURE.md。
  • 当前仅发布单中继部署拓扑;多社区和 mesh 场景被描述为可行但尚未经过生产验证。
  • 每个操作——消息、表情回应、工作流步骤、代码评审审批、git 事件——都是密码学签名的 Nostr 事件,提供防篡改的来源证明。
  • 智能体通过身份(自己的 Nostr 密钥对)而非权限标志位来限定范围,遵循与人类队友相同的限定模型。
  • LICENSE 为 Apache 2.0,允许商业使用、修改和分发,并包含专利授权保护。
  • Dockerfile 支持可选的 EXTRA_CA_CERTS(用于 TLS 拦截企业代理的构建)和 NPM_REGISTRY(用于气隙或镜像环境)。
  • buzz-audit 是专门用于审计链执行的 crate,与 buzz-auth 分离,表明认证与审计关注点是刻意分离的。
  • 密码学依赖包括 sha2 0.11、hmac 0.13、subtle 2.6(恒定时间比较)和 zeroize 1.8(密钥内存清除)。

替代方案比较

方案适用场景代价
Mattermost
需要成熟的自托管团队聊天平台,拥有大型插件生态,但不需要基于 Nostr 的事件签名或一等公民智能体身份时。开源(MIT / 提供企业版)
Zulip
以话题式异步团队沟通为优先,智能体集成为次要需求时。开源(Apache 2.0,提供托管方案)
nostr-rs-relay
需要轻量级 Nostr 中继,不需要频道、画布或 git 事件摄入等工作空间原语时。开源(MIT)
Slack(配合 bot 集成)
团队已在 Slack 上,且智能体操作可通过 Slack 的 bot 和 workflow-builder API 表达时。商业 SaaS(有限免费层)

这个趋势说明了什么

智能体原生 CI/CD 房间

功能分支在 Buzz 中变成一个频道,补丁、CI 结果、评审评论和合并决策共存于同一空间。构建自定义 CI 流水线的团队可使用 buzz-workflow(cron 0.16、evalexpr 11)在同一事件日志中自动化分流、评审和合并编排。

克隆仓库、构建 Docker 镜像、从功能分支创建频道,并使用 rmcp MCP 接口连接 buzz-agent 发布 CI 结果。检查频道是否完整记录了整个生命周期为 Nostr 事件。

面向受监管团队的合规优先协作

每个操作都是签名 Nostr 事件,拥有统一审计链。金融、医疗或政府等需要对智能体辅助代码变更提供密码学来源证明的组织,可使用 git-sign-nostr 将提交绑定到 Nostr 身份,并使用 buzz-audit 执行审计链完整性。

审阅 ARCHITECTURE.md 和 buzz-audit crate,确认审计模型满足你的合规框架要求。运行 conformance crate(buzz-conformance)验证在你的身份提供商下的事件签名行为。

多组织协作的联邦中继 mesh

buzz-relay-mesh crate 使用 iroh 实现中继到中继传输。需要跨工作空间智能体协作但不想依赖中心化 SaaS 提供商的组织,可以原型化一种 mesh 拓扑,每个组织运行自己的中继。

注意 iroh 当前版本为 1.0.0-rc.0,且仅发布了单中继拓扑。在依赖 mesh 之前,用两个中继实例测试 mesh 行为,验证事件传播、延迟和身份一致性。

下一步建议

构建 Docker 镜像并检查 crate 结构

在决定深度评估之前,先在本地构建中继并将 crate 依赖映射到你的集成点。Dockerfile 是自包含且平台无关的,一条 docker build 命令即可生成可运行镜像。

  1. 克隆 https://github.com/block/buzz,使用提供的 Dockerfile 运行 docker build -t buzz-relay .。
  2. 启动一个 PostgreSQL 实例和一个 Redis 实例(根据 Cargo.toml 依赖,buzz-db 和 buzz-pubsub 需要)。
  3. 运行 ghcr.io/block/buzz:<tag> 或本地镜像,访问中继 URL 进入社区工作空间。
  4. 创建一个频道,使用 buzz-pairing-cli 添加一个测试智能体,验证智能体操作以签名 Nostr 事件出现在与人类消息相同的日志中。
  5. 在编写任何针对 buzz-sdk 的集成代码之前,先阅读 README 中链接的 ARCHITECTURE.md 以理解事件模型。

RepoDaily 判断

Buzz 是一项有野心、工程质量过硬的尝试,旨在让 AI 智能体在你控制的基础设施上成为工作空间的一等公民。以 Nostr 事件日志为核心的设计与基于 bot 的智能体集成确实不同,26 个 crate 的 Rust workspace 也表明了真正的工程投入。但在 0.1.0 版本、需要 PostgreSQL + Redis + Docker 前置条件、没有托管服务、且核心 mesh 依赖仍处于候选发布阶段的情况下,它坚定地处于实验性采用区间。需要对智能体辅助开发提供密码学审计链且已有 Rust 友好基础设施的团队现在就应该评估。其他团队则应等待 1.0 发布和有文档支持的多中继拓扑。

信息来源