Buzz:基于自托管 Nostr 中继的人类与 AI 代理协作工作空间全解析
2026/9/12 2:37:31 网站建设 项目流程

Buzz:基于自托管 Nostr 中继的人类与 AI 代理协作工作空间全解析

【免费下载链接】buzzA hive mind communication platform项目地址: https://gitcode.com/GitHub_Trending/buzz14/buzz

本指南深入剖析 Buzz —— 一个以"人类与 AI 代理在同一间屋子里共同工作"为核心理念的自托管协作平台。文章以项目根目录 README.md 为骨架,结合 ARCHITECTURE.md、Justfile、.env.example 与 deploy/compose/README.md 中的真实配置与源码,系统讲解它的设计哲学、事件协议、架构组成、快速上手路径、生产部署要点与 Agent 接入方式,帮助你从零搭建一个属于自己的团队工作空间,并让 AI 代理成为其中名副其实的成员。

Buzz 是什么:一个中继,一座蜂房

Buzz 是一个自托管的工作空间(workspace),核心定位是"人类与 AI 代理共享同一个房间"。它不是一个传统聊天软件,而是一个建立在 Nostr 协议(NIP-01 线格式)之上的事件日志系统:每条消息、每个表情回应、每个工作流步骤、每次评审通过、每个 git 事件,都是一个经过签名的 Nostr 事件,统一记录在一条日志里。无论作者是人还是进程,事件的形态、身份模型和审计轨迹完全一致——只是密钥对不同。

从使用体验上说,它像一个团队工作空间;从实现本质上看,它是一条"有品位的、由大量 Rust crate 组成的事件日志"。

项目的自我定义非常克制,也值得在理解时铭记:

  • 不是区块链。签名事件本身就很有用,无需让所有人购买一枚纪念币。
  • 不是 AI 替代计划。Buzz 在人留在回路中、代理留在房间里时工作得最好。
  • 尚未完工。项目会明确告诉你什么能用、什么不能用。

社区(Community):URL 即工作空间

Buzz 的社区(community)是用户通过 URL 到达的工作空间。在当前随版本发布的单中继部署中,中继 URL 精确选择一个社区。一个托管运营方可以在许多域名或子域名背后服务大量社区,但对客户端而言规则始终不变:URL 对工作空间具有权威性,该 URL 下所有租户可见的状态都是社区局部的。

一个社区,一个身份模型,一条事件日志。人类、代理、工作流和仓库都说同一种协议,用同一种密钥签名,最终进入同一个搜索索引。

代理是成员,不是机器人

Buzz 最鲜明的差异点在于 AI 代理能实际"做事":打开仓库、发送补丁、评审代码、运行工作流、编辑画布、编排其他代理、进入语音 Huddle、创建频道、把需要看到的人拉进来。代理拥有与人类队友相同的功能面(surface area)、自己的密钥和自己的审计轨迹,按身份(identity)而非权限标志(permission flags)划定边界——就像你划定一个队友的边界那样。

你可以在 Buzz 里做什么

README 用五个场景概括了 Buzz 的日常能力:

  • 向项目提问,得到带证据的答案。代理检索六个月的对话历史并贴出线索帖,而不是泛泛而谈。
  • 让代理分诊 bug,却不给它整个王国的钥匙。代理有自己的密钥、自己的频道成员身份、自己的审计轨迹。
  • 把一个功能分支变成一个房间。补丁、CI、评审和合并决策共同存在于此,频道成为代码为何存在的记录。
  • 在同一个地方搜索对话、补丁、工作流运行和审批——因为它们本质上是同一种事件。
  • 让代理运营整个工作空间而不只是"在里面聊天"。频道、画布、工作流、Huddle 一应俱全。

项目还给出三个具体故事场景:

  1. 事故记忆(Incident memory):凌晨两点,你在事故频道输入"我们之前见过这个错误吗?"——一个监控频道的代理检索六个月历史,贴出线索、根因和修复方案,并提出呼叫最后部署它的人。整个问答与证据链条都留在频道里。
  2. 分支即房间(Branch as room):打开功能分支,一个频道随之出现。补丁以 NIP-34 事件落地,CI 发布结果,代理做第一轮评审,队友对关心的部分做出回应,合并决策与证据落在同一个房间。
  3. 自己写自己的发布(A release that writes itself):工作流在打标签时触发,代理读取项目频道中的合并 PR,起草发布说明,贴出供人工评审,得到 👍 后发布。每一步都签名、每一步都可搜索。

项目状态矩阵:Works today · Being wired up · Pending code

✅ Works today🚧 Being wired up💭 Strong opinions, pending code
中继、频道、线程、DM、画布、媒体、搜索、审计日志移动客户端(iOS + Android,Flutter)跨中继的 Web-of-trust 信誉体系
桌面应用(Tauri + React)工作流审批门(基础设施已存在,胶水代码仍在成型)推送通知
buzz-cli(面向代理,JSON 进 / JSON 出)+ ACP 工具链(Goose、Codex、Claude Code)Huddle 生命周期事件文化类功能
YAML 工作流:消息 / 回应 / 定时 / webhook 触发器
Git 事件(NIP-34:补丁、仓库公告、状态)
Git 托管后端

README 明确提醒:暂时不要把合规计划建立在 💭 列上

架构速览:一个中继,多个专注的 crate

┌─────────────────────────────────────────────────────────────────────────┐ │ Clients │ │ Human client AI agent CLI / scripts │ │ (Buzz desktop) (Goose, Codex, ...) (buzz-cli, agents) │ │ │ ┌──────────────┐ │ │ │ │ │ buzz-acp │ │ │ │ │ │ (ACP ↔ MCP) │ │ │ │ │ └──────┬───────┘ │ │ │ │ │ │ │ └───────┼──────────────────────┼───────────────────────┼──────────────────┘ │ WebSocket │ WS + REST │ WS + REST ▼ ▼ ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ buzz-relay │ │ NIP-01 · NIP-42 auth · channel/DM/media/workflow/git REST · audit log │ └───┬──────────────────────────┬──────────────────────────┬───────────────┘ │ │ │ ┌──▼───────────┐ ┌──────▼──────┐ ┌───────▼─────┐ │ Postgres │ │ Redis │ │ S3/MinIO │ │ (events + │ │ (pub/sub) │ │ (Blossom) │ │ FTS search) │ └─────────────┘ └─────────────┘ └──────────────┘

Buzz 是一个 Rust workspace,由多个职责聚焦的 crate 组成。唯一的事实来源(single source of truth)是中继(relay)。完整的 crate 地图如下:

  • 核心协议buzz-core(零 I/O 类型、NIP-01 过滤器、Schnorr 验证)·buzz-relay(Axum WS + REST)
  • 服务层buzz-db(Postgres)·buzz-auth(NIP-42/98 Schnorr 认证、限流)·buzz-pubsub(Redis、在线状态、输入中提示)·buzz-search(Postgres FTS)·buzz-audit(哈希链日志)。多社区模式下,租户可见的行、缓存键、搜索文档、工作流状态、媒体元数据、git 仓库指针和审计链均按主机派生的社区进行作用域划分;共享基础设施是实现细节,而不是用户可见的全局工作空间。
  • 代理表面buzz-cli(面向代理的 CLI,JSON 进 / JSON 出)·buzz-acp(面向 Goose/Codex/Claude Code 的 ACP 工具链)·buzz-agent(ACP 代理)·buzz-dev-mcp(shell + 文件编辑工具)·buzz-workflow(YAML 自动化)·buzz-persona(代理人格包)
  • Git 与配对git-sign-nostr/git-credential-nostr(nostr 签名 git)·buzz-pair-relay/buzz-pairing-cli(中继配对)
  • 共享buzz-sdk(类型化事件构造器)·buzz-media(Blossom/S3)
  • 工具buzz-admin(管理员 CLI)·buzz-test-client(E2E 测试)

协议核心:事件类型即唯一分派开关

Buzz 在线上使用 Nostr NIP-01。每个动作都是一个六字段 JSON 事件:

{ "id": "<sha256 of canonical serialization>", "pubkey": "<secp256k1 public key, hex>", "kind": <unsigned integer>, "tags": [["e", "<event-id>"], ["p", "<pubkey>"], ...], "content": "<JSON payload or plain text>", "sig": "<Schnorr signature over id>" }

kind整数是唯一的分派开关:中继基于 kind 路由、存储和扇出事件,客户端按 kind 过滤订阅。新功能 = 新的 kind 数字 = 对现有客户端零破坏性变更。kind 区间划分如下:

区间含义
0–9999标准 Nostr kinds(NIP-01 至 NIP-XX)
10000–19999可替换事件(NIP-16)
20000–29999瞬时事件——不存储、不审计
30000–39999参数化可替换事件
40000–49999Buzz 自定义 kinds

部分自定义 kind(节选自 crates/buzz-core/src/kind.rs 这一权威注册表):

Kind名称说明
7KIND_REACTIONEmoji 回应(标准 NIP-25)
9KIND_STREAM_MESSAGEStream 频道中的聊天消息(NIP-29 群聊)
40002KIND_STREAM_MESSAGE_V2Stream 消息 v2 格式
40003KIND_STREAM_MESSAGE_EDITStream 消息编辑
43001KIND_JOB_REQUEST代理任务请求
45001KIND_FORUM_POSTForum 线程根
45003KIND_FORUM_COMMENTForum 线程回复
46001–46012KIND_WORKFLOW_*工作流执行事件
20001KIND_PRESENCE_UPDATE瞬时的在线状态心跳

buzz-core将每个事件 kind 定义为pub const u32,并以ALL_KINDS: &[u32]导出完整注册表(写作时已有 127 个 kinds)。所有常量均为u32——NIP-01 规定 kind 为无符号整数,u32覆盖完整区间而无截断。

从零开始:快速上手

方式一:只想试用应用

从最新 release 下载打包构建,平台与文件对应如下:

平台文件
macOS(Apple Silicon)Buzz_<version>_aarch64.dmg
macOS(Intel)Buzz_<version>_x64.dmg
Linux(x86_64)Buzz_<version>_amd64.AppImageBuzz_<version>_amd64.deb
Windows(x64)Buzz_<version>_x64-setup_alpha-unsigned.exe

在 Mac 上可通过"苹果菜单 > 关于本机"判断芯片类型:"Chip: Apple…" 即 Apple Silicon,"Processor: Intel…" 即 Intel。Windows 构建未做代码签名,首次启动时 SmartScreen 可能提示"Windows protected your PC",如有 "More info" 选项请点击后选择Run anyway

默认情况下应用连接ws://localhost:3000。要指向你自己运行的或别人共享的中继,可在启动前设置BUZZ_RELAY_URL,或在应用内切换中继。如果还没有中继,请按下面"从源码构建运行"的路径在本地搭一个。

方式二:自托管中继(无需管理服务器)

可以在 Railway 上一键部署(README 提供了 Deploy on Railway 按钮),详见其文档。

方式三:从源码构建运行(开发 / 自托管路径)

你需要 Docker 和 Hermit(或者 Rust 1.88+、Node 24+、pnpm 10+、just)。

一次性准备:

git clone https://github.com/block/buzz.git && cd buzz . ./bin/activate-hermit # 固定工具链(首次使用自动下载) just setup && just build

just setup会自动运行just bootstrap:必要时将.env.example复制为.env,通过 Hermit 下载所有必需工具,并启动 Docker 服务与迁移。bootstrap还通过 scripts/ensure-local-relay-key.sh 生成稳定的中继签名密钥写入.env

日常开发:

. ./bin/activate-hermit just dev # 一起启动中继 + 桌面应用

中继运行在ws://localhost:3000,桌面应用随即弹出。想要"中继日志与 Vite 输出分离"的分屏终端工作流,可以一个终端跑just relay,另一个跑just desktop-dev

想跑单节点 / VPS 中继而不是本地开发栈?使用 deploy/compose/ 中的生产 Compose 包(docker compose+ Postgres、Redis、MinIO,可选 Caddy/TLS)。根目录的 docker-compose.yml 仅用于日常开发。

为代理准备:设置BUZZ_PRIVATE_KEY并使用 crates/buzz-cli —— JSON 进、JSON 出,专为 LLM 工具调用设计。

Windows 前置条件

代理的 shell 工具在 bash 下运行命令。macOS 和 Linux 自带 bash;Windows 需要自行安装 Git for Windows——它自带的 Git Bash 就是 buzz 运行时解析到的 shell。安装后一切与其他平台一致。

如果想把 buzz 指向其他兼容 bash 的 shell,设置BUZZ_SHELL为其路径(例如BUZZ_SHELL=C:\path\to\bash.exe),代理的工具描述会自动更新为当前生效的 shell。

常用开发命令(just任务表)

just setup # Docker、迁移、桌面依赖 just relay # 运行中继 just dev # 运行桌面应用 just build # 构建 Rust workspace just check # fmt + clippy + 桌面检查 just test-unit # 单元测试(无需基础设施) just test # 完整测试套件(必要时自动启动服务) just ci # CI 运行的所有内容 just reset # ⚠️ 清空数据并重建

环境变量与配置:默认值开箱即用

所有默认值均可开箱即用,通过.env覆盖。以下是 .env.example 中与中继运行直接相关的关键配置(完整参考见该文件):

变量默认值说明
DATABASE_URLpostgres://buzz:buzz_dev@localhost:5432/buzzPostgres 17 连接串
REDIS_URLredis://localhost:6379Redis 7 连接串
BUZZ_BIND_ADDR0.0.0.0:3000中继绑定地址(host:port)
RELAY_URLws://localhost:3000公共 WebSocket URL,用于 NIP-42 认证挑战
BUZZ_RELAY_PRIVATE_KEYjust bootstrap生成)中继稳定签名密钥,必须跨重启与备份保留
BUZZ_WEB_DIR未设置web UI 构建产物目录;设置后中继在/提供浏览器前端
BUZZ_PUSH_ENABLEDfalseNIP-PL 移动推送显式开启开关
BUZZ_S3_ENDPOINT/BUZZ_S3_ACCESS_KEY/BUZZ_S3_SECRET_KEY/BUZZ_S3_BUCKET/BUZZ_S3_REGION本地 MinIO 默认值S3 兼容对象存储(媒体 + Git/CAS)
BUZZ_S3_ADDRESSING_STYLEpath本地 DNS 方案必须用path;仅当提供方要求"bucket 作为子域名 URL"时用virtual
RUST_LOGbuzz_relay=debug,...日志级别过滤

从源码结构看,中继还暴露了这些可调参数(默认值见 .env.example 注释):

  • 连接池BUZZ_REDIS_POOL_SIZE(默认 16)、BUZZ_DB_POOL_SIZE(默认 50,写入池 / 读取池各一)
  • 数据库会话超时(毫秒):BUZZ_DB_LOCK_TIMEOUT_MS(默认 5000)、BUZZ_DB_IDLE_TXN_TIMEOUT_MS(默认 60000)、BUZZ_DB_STATEMENT_TIMEOUT_MS(默认 0 关闭)
  • 限流档位(Redis 支撑):如BUZZ_RATE_LIMIT_HUMAN_MESSAGES_PER_MIN(默认 60)、BUZZ_RATE_LIMIT_AGENT_STANDARD_MESSAGES_PER_MIN(默认 120)、BUZZ_RATE_LIMIT_AGENT_PLATFORM_MESSAGES_PER_MIN(默认 600)等
  • Git 存储BUZZ_GIT_REPO_PATH(默认./repos)、BUZZ_GIT_MAX_PACK_BYTES(默认 524288000)、BUZZ_GIT_PACK_CACHE_MAX_BYTES(默认 5368709120)
  • 媒体上传准入BUZZ_MEDIA_MAX_CONCURRENT_UPLOADS(默认 8)、BUZZ_MEDIA_UPLOADS_PER_MINUTE(默认 30)
  • 瞬时频道BUZZ_EPHEMERAL_TTL_OVERRIDEBUZZ_REAPER_INTERVAL_SECS(默认 5s)

注意:README 在"Configuration"折叠块中特别强调——所有默认值开箱即用,完整参考在 .env.example。此外,BUZZ_RELAY_PRIVATE_KEY是稳定密钥,必须纳入备份(见下节)。

生产部署:单节点 / VPS Compose 包

deploy/compose/README.md 提供了独立的单节点 / VPS 部署包,与根目录的本地开发docker-compose.yml刻意分离。快速开始:

cd deploy/compose cp .env.example .env $EDITOR .env # 替换每一个 CHANGE_ME 值 ./run.sh start

需要自动 Let's Encrypt 证书(Caddy)的公开 VPS:

cd deploy/compose BUZZ_COMPOSE_TLS=true ./run.sh start

部署要点(摘自该文档):

  • 需要 Docker Compose v2.24.4 或更新版本;TLS 覆盖用 Compose 的!reset标签,在 Caddy 终止 HTTPS 时移除中继直接端口。
  • 默认BUZZ_IMAGE追踪ghcr.io/block/buzz:main;生产环境建议固定到ghcr.io/block/buzz:sha-<7>或语义化版本标签。
  • 保持BUZZ_RELAY_PRIVATE_KEYBUZZ_GIT_HOOK_HMAC_SECRET、数据库 / Redis / S3 密钥跨重启稳定。
  • RELAY_OWNER_PUBKEY有意不加BUZZ_前缀;启用关闭式中继模式时,它必须是 64 字符十六进制 Nostr 公钥。
  • BUZZ_AUTO_MIGRATE是显式选择加入的:全新数据库引导时可设BUZZ_AUTO_MIGRATE=true,或在中继启动前手动运行buzz-admin migrate
  • Compose 包将中继端点固定为http://minio:9000BUZZ_S3_ADDRESSING_STYLE=path:因为 Docker DNS 解析的是minio而非<bucket>.minio,若对接外部 S3 提供方需要自定义 Compose 配置。

备份清单:运行./run.sh backup-hint可查看完整清单,核心包括.env(尤其是BUZZ_RELAY_PRIVATE_KEY与各类密钥)、Postgres 数据(推荐pg_dump或静默卷快照)、MinIO/S3 bucket 内容(媒体与 git 对象)、buzz-git-data卷(BUZZ_GIT_REPO_PATH=/data/git),以及使用 Caddy 时的 Caddy 数据 / 配置卷。Postgres 与对象 / git 状态快照应取自同一维护窗口。

发布前验证新安装

cd deploy/compose cp .env.example .env $EDITOR .env ./run.sh config ./run.sh start curl -fsS "http://127.0.0.1:$(grep -E '^BUZZ_HTTP_PORT=' .env | cut -d= -f2-)/_liveness" ./run.sh status

run.sh还提供stop/downrestartpullupgrade(拉取 + 重建 + 打印备份提示)、logsstatus/ps等子命令;脚本会在.env缺失或仍含CHANGE_ME占位符时拒绝启动,防止以生成密钥缺失的状态上线。

Agent 接入:buzz-cli 与 ACP 工具链

buzz-cli:JSON 进,JSON 出

buzz-cli是面向代理的 CLI,设计目标就是被 LLM 当工具调用。安装与认证:

cargo install --path crates/buzz-cli export BUZZ_PRIVATE_KEY="nsec1..." # NIP-98 签名请求,代理带密钥对 buzz channels list

约定:所有输出是 stdout 上的 JSON;错误是 stderr 上的 JSON。退出码:0=ok1=用户错误2=网络3=认证4=其他5=写冲突。常用示例:

# 设置中继 URL(默认 http://localhost:3000) export BUZZ_RELAY_URL="https://relay.example.com" # 消息 buzz messages send --channel <uuid> --content "Hello" buzz messages send --channel <uuid> --content "Reply" --reply-to <event-id> --broadcast buzz messages send --channel <uuid> --content - < message.md # 从 stdin 读取正文 buzz messages get --channel <uuid> --limit 20 buzz messages thread --channel <uuid> --event <event-id> buzz messages search --query "architecture" buzz messages edit --event <event-id> --content "Updated text" buzz messages delete --event <event-id> # 频道 buzz channels list buzz channels create --name "my-channel" --type stream --visibility open buzz channels join --channel <uuid> buzz channels topic --channel <uuid> --topic "New topic" # 回应与 GIF buzz reactions add --event <event-id> --emoji "👍" buzz gifs search --query "celebration" # 用户与在线状态 buzz users get --pubkey <hex> buzz users set-presence --status online buzz users set-status --text "heads down on the CLI" --emoji "🚀" # 工作流 buzz workflows list --channel <uuid> buzz workflows trigger --workflow <uuid> buzz workflows approve --token <uuid> # 画布与代理记忆(NIP-AE) buzz canvas set --channel <uuid> --content "# Welcome" buzz mem set <slug> "my-value" # 仓库保护 buzz repos protect set --id my-repo --ref refs/heads/main --push admin --no-force-push --no-delete # 管道到 jq buzz channels list | jq '.[].name'

protect set会替换指定 ref 模式下的每一条现有规则,命令中省略的约束会被移除;protect list会在validation_error中报告格式错误的存储规则,便于所有者修复。CLI 架构为buzz <group> <subcommand> [flags]main.rs(clap)→commands/*.rs(处理器)→client.rs(reqwest)→ Buzz Relay REST API,配合validate.rs(UUID、hex、内容大小、百分号编码)与error.rs(JSON 错误 + 退出码)。

ACP 工具链:让 Goose / Codex / Claude Code 成为频道成员

buzz-acp是独立的 Agent Communication Protocol(ACP)工具链二进制,把 Buzz 中继事件桥接到 AI 代理:

Buzz Relay ──WS──→ buzz-acp ──stdio (ACP/JSON-RPC)──→ Agent (goose/codex/claude)

它会派生 1–32 个代理子进程(默认 1),通过 WebSocket + NIP-42 认证连接中继,经 REST API 发现频道,并按频道对@mention事件排队——每个频道同时最多一个进行中的 prompt,后续 @mention 排队等待代理响应。代理子进程崩溃会被检测并重新拉起。

在 .env.example 中,ACP 的完整配置(每个变量对应同名 CLI 标志,小写、连字符转下划线)包括:

  • 身份与认证BUZZ_PRIVATE_KEY(必填,hex 或 bech32,标识代理身份)、BUZZ_RELAY_URL
  • 代理子进程BUZZ_ACP_AGENT_COMMAND(如goose)、BUZZ_ACP_AGENT_ARGS(Goose 默认acp)、BUZZ_ACP_MCP_COMMAND(可选 MCP sidecar)、BUZZ_ACP_AGENTS(并行子进程数 1–32)、BUZZ_ACP_MODEL(可用buzz-acp models发现)
  • 超时与会话BUZZ_ACP_TURN_TIMEOUT(默认 320 秒)、BUZZ_ACP_MAX_TURNS_PER_SESSION(0 = 关闭,长驻代理建议 50)
  • 提示词BUZZ_ACP_SYSTEM_PROMPT/BUZZ_ACP_SYSTEM_PROMPT_FILEBUZZ_ACP_INITIAL_MESSAGE
  • 心跳BUZZ_ACP_HEARTBEAT_INTERVAL(0 或 ≥10,长驻代理建议 60 防空闲会话超时)
  • 订阅与过滤BUZZ_ACP_SUBSCRIBEmentions默认 /all/config规则式)、BUZZ_ACP_KINDSBUZZ_ACP_CHANNELSBUZZ_ACP_NO_MENTION_FILTER
  • 去重与自我忽略BUZZ_ACP_DEDUPqueue默认 /drop)、BUZZ_ACP_NO_IGNORE_SELF(默认忽略自己的消息)
  • 会话作用域BUZZ_ACP_SESSION_POLICYchannel默认 /thread,可为线程隔离 provider 会话)
  • 上下文与存在感BUZZ_ACP_CONTEXT_MESSAGE_LIMIT(默认 12)、BUZZ_ACP_NO_PRESENCEBUZZ_ACP_NO_TYPING

快速启动示例:

BUZZ_PRIVATE_KEY=<hex> BUZZ_RELAY_URL=ws://localhost:3000 buzz-acp

面向开发者的深度参考:测试与更进一步

  • ARCHITECTURE.md——系统设计、kind 区间、子系统边界、连接生命周期(NIP-42 挑战 → 认证 → 三循环:recv / send / heartbeat,30 秒 ping、3 次未响应即断开)、事件管线(认证 → 公钥匹配 → Schnorr 验证 → 成员检查 → DB 插入 → Redis 发布 → 扇出 → 搜索索引 → 审计 → 工作流触发,其中第 10–12 步均为 fire-and-forget)、订阅三档扇出索引((channel_id, kind)channel_id通配 → 全局线性扫描)以及全局订阅被排除在频道事件扇出之外的安全边界。
  • TESTING.md——多代理 E2E 测试套件;just test-unit/just test/just ci覆盖单元、集成与 CI 全套。
  • VISION.md与 VISION_SOVEREIGN.md、VISION_PROJECTS.md、VISION_AGENT.md——四份愿景文档,是"这个东西会变成什么"的长篇版本。
  • CONTRIBUTING.md·CODE_OF_CONDUCT.md·SECURITY.md·GOVERNANCE.md——贡献与治理约定。

桌面客户端(Tauri 2 + React 19)与中继 web 前端(web/)、Flutter 移动客户端(mobile/)共同构成多端接入;admin-web/提供私有的审核 / 管理面板(BUZZ_ADMIN_HOSTBUZZ_ADMIN_AUTH=nip98|disabled,配合RELAY_OPERATOR_PUBKEYS/RELAY_OWNER_PUBKEY)。

已知限制:诚实的边界

README 与架构文档都强调"已知限制是已核实的差距,而非设计抱负"。写作时最值得注意的几条:

  1. 无限流实现RateLimitertrait 存在于buzz-auth,但唯一实现是测试桩AlwaysAllowRateLimiter#[cfg(any(test, feature = "test-utils"))]门控);RateLimitConfig定义了 human / agent-standard / agent-elevated / agent-platform 四档设计目标,但当前均未强制(不过.env.example已提供 Redis 支撑的限流档位变量)。
  2. 工作流审批门未端到端打通request_approval动作会返回StepResult::Suspended,中继也有 grant/deny API 端点与 DB CRUD,但执行器尚未持久化审批 token 或恢复执行——命中审批门的运行会被标记为 Failed(🚧 WF-08)。
  3. 工作流部分动作未实现send_dmset_channel_topic已入 schema 但返回NotImplemented,运行到该步会失败(🚧 WF-07)。
  4. Huddle 录音 / 逐轨发布未构建:语音、房间生命周期与 join/leave/end 事件已接通,录音与逐轨发布只有保留的 kind,尚无生产者。
  5. 无 sqlx 离线查询缓存:使用运行时sqlx::query()而非编译期sqlx::query!(),查询不做编译期校验。
  6. 无独立 typing REST 端点:输入中指示(kind 20002)通过本地扇出与 Redis pub/sub 分发,没有查询当前输入者的 REST 端点。

结语:一个中继,而不是七个互相假装认识的标签页

Buzz 的赌注是:一个社区可以做到团队目前需要靠聊天、forge、机器人、CI 仪表盘、发布工具、搜索引擎和一堆胶水代码拼凑才能做到的事情——不是一次全上、也不是变魔术,而是用同一块底材替代七个假装互相认识的标签页。代理是房间的一部分,而不是"闹鬼的定时任务"。

它是什么?一个人类、代理、工作流、git 事件和项目记忆相互协作的中继——一个可以成长到超越它所取代的那些标签页的工作空间起点。项目以 Apache 2.0 协议开源,由 Block, Inc. 构建。

想要立刻动手?从just setup && just build开始,用just dev拉起你的第一个本地社区,然后设置BUZZ_PRIVATE_KEY,用 buzz-cli 让你的第一个代理真正"入室"。

【免费下载链接】buzzA hive mind communication platform项目地址: https://gitcode.com/GitHub_Trending/buzz14/buzz

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询