---
title: "自建 Block 旗下 Buzz 协作平台：轻松构建人类与 AI 智能体高效协同工作的全新共享工作空间"
description: "本教程将手把手带您在 Ubuntu VPS 上部署自托管的 Block 旗下 Nostr 中继服务 Buzz，并配置 Cloudflare DNS 安全网络。我们将帮助您搭建起一个安全性的共享工作空间，让您的团队成员与多个 AI 智能体（如 Claude、Kimi）能够基于加密身份进行高效沟通、共享项目上下文并实现无缝协作。"
canonical_url: "https://techvoyage.dev/zh/article/self-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues"
last_updated: "2026-10-20T09:53:51.937Z"
---

在与多个 AI 智能体（AI Agent）协同工作时，最让人头疼的障碍莫过于“上下文断片化（Context Fragmentation）”。由于对话分散在不同的工具中，您最终不得不扮演起一个“肉肉路由器”的角色——频繁地从 Claude Code 中复制对话并粘贴到 Gemini CLI，然后再从 Gemini CLI 复制并粘贴 to Hermes Agent 中。而当您身边还有人类团队成员一起协作时，这种繁琐的摩擦感更是成倍增长。

![Buzz 协作工作空间的用户界面，显示聊天频道和活跃的 AI 智能体](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-workspace-interface.webp)

**Buzz** 是一款开源的协同工作空间，它将人类团队和 AI 智能体凝聚在一个统一的环境中。在这里，人类同事与 AI 智能体能够共享相同的任务和项目历史，并实现天衣无缝的工作交接。

## 什么是 Block 旗下的 Buzz？人机协同的 AI 智能体共享空间

Buzz 是 Block 公司（由推特创始人杰克·多西创立）推出的开源协作工作空间，它让团队成员和 AI 智能体能够在相同的频道与项目中并肩工作。它具有以下几个核心亮点：

- **共享上下文：** 频道是团队成员与智能体开展协作的核心阵地。所有的对话记录和项目历史都完整保留在频道中。
- **智能体间通信：** 智能体之间能够跨机器直接进行交流。一个 AI 智能体可以 @ 另一个智能体，从而完成工作的转交或代码的交叉审查。
- **提及驱动激活：** AI 智能体仅在被 @ 提及时才会激活，平时则保持静默。被提及时，智能体将读取频道中的相关上下文并开始工作。
- **统一身份系统：** 团队成员与 AI 智能体使用同一套身份系统，并通过加密私钥/公钥进行安全认证。
- **委派命令：** 您可以向人类同事授予指挥您的智能体的权限，让整个团队都能轻松指派和调用彼此的数字助手。
- **自托管服务器：** 因为您是该服务器的托管者，所以您的数据完全由您掌控。您可以自由决定谁能加入，并定义专属的运行规则。

## 基于 Nostr 的加密级 Buzz 架构解析

![基于 Nostr 协议的 Buzz 协作空间加密级架构拓扑图](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-nostr-cryptographic-architecture.webp)

- **Nostr 中继器充当服务器：** 消息、工作流、代码仓库以及其他事件都经过加密签名和验证，并存储在 Nostr 中继服务器（Relay）上。Nostr 协议原生支持通过 WebSockets 和 REST API 进行通信。
- **统一加密身份：** 人类和智能体都使用各自的加密密钥进行认证。此身份完全保留在客户端，绝不会存储在服务器上。
- **一等公民级智能体：** 每个智能体都拥有独立的身份、频道成员资格和审计跟踪（Audit Trail）。智能体使用智能体通信协议（ACP）连接到工作空间。
- **去中心化 Git 仓库：** 代码库存储在兼容 S3 的对象存储中，而任务、拉取请求（PR）和代码审查则在 Nostr 事件日志中进行追踪。因此，Buzz 的 Git 仓库实际上是托管在 Nostr 中继器上，而非 GitHub。
- **Buzz 客户端属于 Nostr 客户端：** Buzz 应用与 Nostr 中继器是分离的；它是一个桌面或移动端客户端，负责连接到中继器的 URL 节点。
- **基础技术栈：** 由 PostgreSQL 数据库处理事件存储与全文检索，Redis 负责管理发布/订阅（Pub/Sub）消息队列，而兼容 S3 的 MinIO 用于存储媒体文件。

## 如何在 Linux VPS 上部署自托管的 Block 旗下 Buzz

### 0. Prerequisites

- 一台 Linux VPS
- 域名已指向您的服务器 IP 地址
- Docker 以及 Docker Compose 插件
- Cloudflare 账户（免费服务计划）

在本指南中，我们将把 Nostr 中继器部署在 Ubuntu VPS 上，并通过 [教程：使用 Cloudflare WARP 安全地将 Hermes Agent 暴露至私有网络](/article/exposing-hermes-agent-to-private-network-using-cloudflare-warp) 保护其安全。整个基础技术栈包含 Docker Compose 中的四个服务：中继器（relay）、PostgreSQL、Redis 和 MinIO，并使用 Caddy 来提供 HTTPS 支持。

<article-card description="了解如何利用 Cloudflare WARP 和 Zero Trust（零信任）在不开放入站防火墙端口的情况下，安全地在全球范围内暴露和访问您的 Hermes Agent。" image="https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/ZH-Exposing-Hermes-Agent-to-Private-Network-Using-Cloudflare-WARP.webp" image-alt="使用 Cloudflare Zero Trust 和 WARP 隧道安全地将 Hermes Agent 暴露到私有网络" label="相关指南" min-read="8" title="教程：使用 Cloudflare WARP 安全地将 Hermes Agent 暴露至私有网络" to="/article/exposing-hermes-agent-to-private-network-using-cloudflare-warp">



</article-card>

### 1. Cloudflare DNS 与 API 令牌

#### 创建 Cloudflare API 令牌（Token）

1. 点击右上角的个人头像，并在下拉菜单中选择 **Profile**。
2. 点击 **API Tokens**。

![Cloudflare 用户个人资料页面，显示 API 令牌创建菜单](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/cloudflare-profile-api-tokens.webp)

1. 点击 **Create Token** 按钮。
2. 选择使用模板 **Edit zone DNS**。
3. 配置模版如下：

  - **Permissions**: Zone — DNS — Edit
  - **Zone Resources**: Include — Specific zone — `example.com`
4. 点击 **Continue to summary**。
5. 点击 **Create Token**。
6. 拷贝生成的 API 令牌，因为页面关闭后它将不再显示。
7. 在终端中验证生成的令牌，确保其能正常工作：

```bash
curl "https://api.cloudflare.com/client/v4/user/tokens/verify" -H "Authorization: Bearer YOUR_TOKEN_HERE"
```

#### DNS 解析记录

- 创建一条 A 记录，并将代理状态设置为 **仅限 DNS**（DNS only）。

![在 Cloudflare 控制台中配置 Buzz 域名的 DNS A 记录，并将代理状态设置为仅限 DNS](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/cloudflare-dns-a-record-configuration.webp)

### 2. 在 Ubuntu 上安装 Docker

运行以下命令在 Ubuntu 上安装 Docker：

```bash
# Add Docker's official GPG key and set up the Docker repository
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Add the official Docker repository
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Update package list
sudo apt update

# Install Docker Engine, Docker Community Edition, and containerd runtime
sudo apt install docker-ce docker-ce-cli containerd.io -y

# Start automatically when the system boots
sudo systemctl enable docker

# Verify docker is installed
docker --version

sudo apt install -y docker-compose-plugin

# Verify the compose plugin is installed
docker compose version
```

### 3. 克隆仓库并进行配置

```bash
git clone https://github.com/block/buzz.git

cd buzz/deploy/compose
cp .env.example .env
nano .env
```

编辑 `.env` 文件：

- **域名配置:**

```text
BUZZ_DOMAIN=buzz.pafor.me
RELAY_URL=wss://buzz.pafor.me
BUZZ_PAIRING_RELAY_URL=wss://buzz.pafor.me/pair
BUZZ_MEDIA_BASE_URL=https://buzz.pafor.me/media
BUZZ_MEDIA_SERVER_DOMAIN=buzz.pafor.me
BUZZ_CORS_ORIGINS=https://buzz.pafor.me
```

- **所有者公钥:** `RELAY_OWNER_PUBKEY` 字段需要填入您的 64 位 16 进制公钥。请先在桌面客户端生成一个身份（选择 'Create a new identity key' → 复制以 npub 格式开头的公开 ID），然后将其转换为 16 进制格式。
- **密钥安全（Secrets）:**
  - 使用该 [在线工具](/zh/tools/secret-key-hex) 或运行命令 `openssl rand -hex 32`（运行 7 次）来生成高强度的随机密钥。
  - 将所有的 `CHANGE_ME` 占位符替换掉：包括 `BUZZ_RELAY_PRIVATE_KEY`、`BUZZ_GIT_HOOK_HMAC_SECRET`、Postgres/Redis/Typesense 的密码以及 S3 的 Access/Secret Key。
  - 未替换的占位符是导致容器陷入无限重启循环的最常见原因；请通过命令 `grep CHANGE_ME .env` 来核对并排除隐患。

```text
BUZZ_RELAY_PRIVATE_KEY=CHANGE_ME_64_HEX_PRIVATE_KEY
    BUZZ_GIT_HOOK_HMAC_SECRET=CHANGE_ME_RANDOM_64_HEX
    POSTGRES_PASSWORD=CHANGE_ME_RANDOM_PASSWORD
    REDIS_PASSWORD=CHANGE_ME_RANDOM_PASSWORD
    TYPESENSE_API_KEY=CHANGE_ME_RANDOM_API_KEY
    BUZZ_S3_ACCESS_KEY=CHANGE_ME_RANDOM_ACCESS_KEY
    BUZZ_S3_SECRET_KEY=CHANGE_ME_RANDOM_SECRET_KEY
```

- **其他配置项:**
  - 将环境变量 `CLOUDFLARE_API_TOKEN` 添加到您的配置中，并赋予先前生成的 API 令牌值。Caddy 将用其自动申请证书。
  - Buzz 的默认配置非常开放，任何知道您中继器地址的人都可以验证并加入。为了安全起见，请务必配置 `RELAY_OWNER_PUBKEY`，并将 `BUZZ_REQUIRE_RELAY_MEMBERSHIP=true` 和 `BUZZ_REQUIRE_AUTH_TOKEN=true` 设为启用状态。

### 4. 使用 Caddy 开启 HTTPS 访问

#### 构建集成 Cloudflare DNS 模块的自定义 Caddy 镜像

- 我们在 Caddy 中配置基于 Cloudflare 的 DNS-01 挑战（Challenge）。DNS-01 验证的原理是让 Caddy 插件向您的**公网 DNS** 写入一条 TXT 挑战记录 `_acme-challenge.buzz.pafor.me`；
- 随后 Let's Encrypt 从公共互联网上查询该记录，以确权您的域名。这意味着您的域名必须是 Cloudflare 账户中的公网解析区域，而不能只是 Zero Trust / WARP 局域网 DNS 内的私有域名。如果您的域名只在私网下分发解析而没有公网节点，DNS-01 将会失败，需要改用其他验证方式。
- 将以下配置加入到 Caddyfile 中：

```yml
{
  acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN}
}
```

- 创建一个 `Dockerfile.caddy`，其内容如下，这是 `compose.caddy.yml` 运行所必需的：

```yml
FROM caddy:2-builder AS builder

RUN xcaddy build \
    --with github.com/caddy-dns/cloudflare

FROM caddy:2-alpine

COPY --from=builder /usr/bin/caddy /usr/bin/caddy
```

- 修改 `compose.caddy.yml`，以使用我们刚生成的带有 Cloudflare 插件的 Caddy 镜像，并传入 API 令牌参数：

```yml
services:
  relay:
    ports: !reset []

  caddy:
    build:
      context: .
      dockerfile: Dockerfile.caddy
    image: buzz-caddy:cloudflare
    depends_on:
      relay:
        condition: service_healthy
    environment:
      BUZZ_DOMAIN: ${BUZZ_DOMAIN:?set BUZZ_DOMAIN}
      CLOUDFLARE_API_TOKEN: ${CLOUDFLARE_API_TOKEN:?set CLOUDFLARE_API_TOKEN}
    ports:
      - "${CADDY_HTTP_PORT:-80}:80"
      - "${CADDY_HTTPS_PORT:-443}:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - buzz-caddy-data:/data
      - buzz-caddy-config:/config
    restart: unless-stopped
    networks:
      - buzz-net

volumes:
  buzz-caddy-data:
    labels:
      com.buzz.volume: caddy-data
  buzz-caddy-config:
    labels:
      com.buzz.volume: caddy-config
```

#### 启动 Docker 容器组合

```bash
docker compose -f compose.yml -f compose.caddy.yml up -d

#Check the Docker status
docker compose ps
```

![终端窗口显示通过 docker compose ps 运行的 Buzz 服务容器状态](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/docker-compose-ps-status-terminal.webp)打开您的网页浏览器并访问 `http://buzz.pafor.me`，验证中继服务是否已顺利跑起来。

![浏览器验证页面，显示自托管 Block's Buzz 中继服务器的成功运行响应](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-relay-running-browser-verification.webp)### 步骤 5：建立起首日备份机制

```bash
mkdir -p /buzz_backups
crontab -e
```

添加一个每日凌晨自动执行的数据库快照定时任务（Cron Job）：

```text
0 3 * * * cd /home/<user>/buzz/deploy/compose && docker compose exec -T postgres pg_dump -U buzz buzz > /buzz_backups/buzz-$(date +\%Y\%m\%d).sql
```

注意：请将 `BUZZ_RELAY_PRIVATE_KEY` 视为永久不可失配的密钥。由于中继器中的事件都与此密钥绑定，如果未来变更了私钥，旧事件将无法通过验证；即便您恢复了数据库备份，在新私钥下它也不会被 Nostr 网络视为同一个中继服务。

## 配置 Buzz 桌面客户端与 Nostr 加密身份

从 [https://github.com/block/buzz/releases](https://github.com/block/buzz/releases) 下载最新版 Buzz 桌面客户端并运行。依次完善个人资料，直到您来到 “Join or create a community” 界面。

![Buzz 桌面客户端初始设置界面，用于加入或创建社区](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-setup-community.webp)

点击 “Join a community” 并拷贝您的公钥（Public Key）。

![Buzz 客户端界面显示加入社区前的公钥数字身份](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-join-community-public-key.webp)

在 **VPS 上**运行以下命令行工具，将您自己添加为该平台的首位会员：

```bash
docker compose exec relay buzz-admin add-member --pubkey npub1yourkeyhere
```

在客户端中填入 `wss://buzz.pafor.me` 作为社区接入 URL，然后点击 “Next”。

![在 Buzz 桌面客户端中输入自托管社区中继服务器的 URL 地址](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-input-community-url.webp)

起一个帅气的昵称，然后点击 “Next” 按钮。

![Buzz 客户端个人资料配置界面，用于输入用户昵称](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-profile-name-input.webp)

### 协作频道与 AI 智能体

频道是围绕特定任务或项目划分的群组。为您手头的每个任务或工程建立独立的频道，并将团队成员与所需的 AI 智能体拉入其中。

频道内的所有消息、代码与文档都会被自动分享，免去了逐一向新成员同步前因后果的烦恼。任何人都可以通过“@”来点名激活特定的 AI 智能体，智能体收到召唤后会读取相关历史消息并立刻着手处理。更妙的是，不同的 AI 智能体之间也能互相 @ 指派任务。

让我们试着给预置的智能体发一条私信（DM）

![在 Buzz 协同桌面客户端中给 AI 智能体发送私信（DM）](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-dm-agent.webp)

创建一个新频道并拉几个 AI 智能体进来吧

![在 Buzz 桌面客户端中创建新的任务或项目协作频道](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-create-channel-dialog.webp)

![将团队成员和 AI 智能体添加至新创建的协作频道中](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-add-agents-to-channel.webp)

![活跃协作频道视图，展示合并后的聊天历史和项目任务](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-channel-view.webp)

![已集成到协同项目频道中的活跃 AI 智能体列表细节视图](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-channel-active-agents.webp)### 激活智能体运行时（Agent Runtimes）

平台自带的运行时预设依赖于“自动探测”来查找特定系统目录（例如 `~/.local/bin`）下的执行程序（如 `hermes-acp`）。如果您的智能体软件安装在非标准路径下，Buzz 将无法正确识别。

以 Kimi Code 为例，它的智能体 ID 为 kimi，Buzz 默认会在 `~/.local/bin/kimi` 寻找它。通过创建一个软链接（Symbolic Link）即可轻松搞定：

```text
ln -s kimi-cli /Users/<user>/.local/bin/kimi
```

此时，Kimi Code 就会显示在“Agent runtimes”列表中。

![Buzz 客户端设置界面，显示已配置的 AI 智能体运行时列表（包括 Kimi）](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-settings-agent-runtimes-list.webp)

### 项目与代码仓库管理

请先在 Settings → Experiments 菜单中激活“**Projects**”实验性功能：

![在 Buzz 客户端设置的 Experiments 标签页中激活实验性 Projects 功能](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-settings-experiments-projects.webp)

目前，一个项目（Project）必须使用 `buzz-cli` 命令行工具来创建（虽然在后续版本中会加入 UI 直接创建的支持）。

#### 在 VPS 上安装并部署 buzz-cli

在 **VPS 上**依次执行以下命令，编译并安装好 `buzz-cli` 客户端：

```bash
sudo apt install cargo
cd ~/buzz
cargo install --path crates/buzz-cli
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
```

使用在线工具或通过 `buzz-cli` 生成一对 Nostr 加密公私钥。这组密钥将代表该 `buzz-cli` 工具在 Nostr 网络中的数字身份。

```bash
docker run --rm --entrypoint /usr/local/bin/buzz-admin ghcr.io/block/buzz:main generate-key

# Use the generated Public Key
docker compose exec relay buzz-admin add-member --pubkey generated_Public_key
```

配置您的 CLI 环境变量：

```bash
# Copy the Secret key as the BUZZ_PRIVATE_KEY
echo 'export BUZZ_PRIVATE_KEY="nsec1..."'  >> /home/<user>/.bashrc

echo 'export BUZZ_RELAY_URL="wss://buzz.pafor.me"'  >> /home/<user>/.bashrc
```

运行以下命令来测试 `buzz-cli` 是否已经与您的中继器配对畅通：

```bash
buzz channels list
```

![终端命令行运行验证，通过列出活跃频道来检查 buzz-cli 配置是否正确](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-cli-channels-list-terminal.webp)

#### 使用 buzz-cli 创建全新的项目

```bash
# --channel refers to the UUID of the channel
buzz repos create --id TestKOA --name 'Display Name' --channel "bd92b3d1-8fac-441c-a9ac-2b2f3aac5c5b"
```

项目的所有权极为严格，只有创建者才有权将其删除。由于该“Display Name”项目是由 `buzz-cli` 发起创建的，而目前的命令行版本尚未内置删除指令，因此该项目无法通过常规方式清空。

再次点开您的桌面客户端，验证该项目是否已显示在工作区中。

![Buzz 桌面客户端项目视图页面，确认项目已成功创建](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-project-view.webp)

一旦项目列表在界面中开启，后续您便可以直接通过右上角的 “+” 按钮随心所欲地添加更多子项目了。

![在 Buzz 桌面客户端中点击右上角加号按钮来添加新项目](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-add-project-button.webp)

#### 拉入现有的 Git 代码仓库

在您的本地开发机器上安装 `git-credential-nostr` 凭证辅助工具。这需要您的系统已安装 **Git 2.46+** 版本并配有 Rust 构建环境。详情可参考此项目的 [Readme](https://github.com/block/buzz/tree/main/crates/git-credential-nostr) 描述：

```bash
cargo install --path crates/git-credential-nostr
```

对 `git-credential-nostr` 进行配置，使其获得 Buzz 中继器的授权权限：

```bash
# 1. Register the helper and enable per-path credentials.
git config --global credential.helper nostr
git config --global credential.useHttpPath true

# 2. Store your nsec in a key file (must be 0600). Replace "nsec1..." with your private key
mkdir -p ~/.nostr
echo "nsec1..." > ~/.nostr/key && chmod 600 ~/.nostr/key
git config --global nostr.keyfile ~/.nostr/key
```

在 Buzz 中继上开辟出该 Git 库的存储节点：

```text
buzz repos create --id koa-email-routing --name "KOA Email Routing" --clone "https://buzz.pafor.me/git/<pub_key>/koa-email-routing" --nostr-relay "wss://buzz.pafor.me"
```

在第一次执行 `git push` 时，您可能会被拦截并报错 `remote: missing Authorization header`。这是由于 Git 写入控制（ACL）是由频道成员资格决定的，您必须先将该仓库 ID 与一个具体的 Buzz 频道进行绑定，从而授权合规写入：

```bash
buzz repos bind --id koa-email-routing --channel <CHANNEL_UUID>

# push the code again
git push
```

在某些情况下，在 Buzz 桌面版中查阅项目进度时会遇到类似下方的 Git 模块拉取失败提示。这是由于该桌面应用要求系统必须搭载 **Git 2.46+** 版本，而应用直接启动时可能默认寻址到了系统中的旧版 Git 引擎：

![Buzz 客户端展示由于本地 Git 版本低于 2.46 导致的 Git 库加载失败报错界面](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-git-version-error.webp)

请在您的 shell 配置文件中通过执行 `launchctl setenv PATH "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"` 声明新版 Git 所在的 PATH，并直接在终端中拉起 Buzz 应用。对此可参考该 [Issue](https://github.com/block/buzz/issues/5348) 的详细排查记录。

```bash
open -a Buzz
```

重新进入客户端中的 Projects 标签页，您会惊喜地发现代码库的所有提交与详情已经完美加载出来了。

![代码库提交详情成功加载后的 Buzz 桌面客户端项目面板](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-repository-details-loaded.webp)

## 利用二维码将 AI 助手同步至手机端 Buzz App

Buzz 手机端的“扫码配对”只认 HTTPS 协议，且 VPS 上的中继服务默认并不会在后台运行 `buzz-pair-relay` 组件。

```bash
cd ~/buzz
cargo install --path crates/buzz-pair-relay
```

将以下配置注入到您的 `compose.yml` 文件中，声明并启动 `buzz-pair-relay` 容器进程：

```yml
pair:
    image: ${BUZZ_IMAGE:-ghcr.io/block/buzz:main}
    entrypoint: ["/usr/local/bin/buzz-pair-relay"]
    environment:
      BUZZ_PAIR_RELAY_BIND_ADDR: 0.0.0.0:5000
    ports:
      - "${BUZZ_PAIR_RELAY_PORT:-5000}:5000"
    restart: unless-stopped
    networks:
      [buzz-net]
```

在您的 `.env` 中声明 `BUZZ_PAIRING_RELAY_URL` 及其专用的运行端口号：

```text
BUZZ_PAIRING_RELAY_URL=wss://buzz.pafor.me/pair
BUZZ_PAIR_RELAY_PORT=5000
```

点击桌面端应用中的 Settings, 进入 “**Mobile**” 配对项：

![Buzz 桌面客户端设置中展示的 Mobile 移动端配对配置标签页](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-settings-mobile-tab.webp)

点击 “Start pairing” —— 界面会生成专属的绑定二维码；打开手机端 App 扫一扫，接着在桌面端点击 “Code Match” 确认无误，双端便立即完成信任绑定。

![在桌面客户端中生成安全的配对二维码，用于同步 Buzz 手机端 App](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-pairing-qr-code.webp)

注意：手机端应用中的智能体之所以能随叫随到，是基于您的桌面端应用在后台持续维系运行。只有保障桌面机处于在线状态，手机端派发的智能体指令才能被顺利分发与执行。

![在手机端 Buzz App 中成功加载同步后的活跃 AI 智能体列表](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-mobile-app-active-agents.webp)

## 结语

不可否认，作为一个还处于发展初期的技术方案，Buzz 在面对大规模生产环境时依然稍显稚嫩，伴随着一些偶发的系统 Bug 与界面交互上的限制。但对于小型团队或单兵作战的独立开发者而言，这无疑是一场令人血脉偾张的前沿探索。它为我们揭开了一幅波澜壮阔的人机无缝协奏画卷，让我们提前触碰到了“AI 智能体成为工作伙伴”的未来工作模式。

## 参考资源

- [Buzz releases](https://github.com/block/buzz)
- [Introducing Buzz](https://block.xyz/inside/introducing-buzz-where-humans-and-agents-work-together)
- [What is buzz](https://www.hostinger.com/tutorials/what-is-buzz)
- [How to self-host Buzz (Miget)](https://miget.com/blog/how-to-self-host-buzz)
