PM 編集方針 (empty-slot fill) ── 7/23 18:00 HKT evening brief 空き枠

PM 7/23 evening brief で P0-PM 7/24 に指定された「Jack Dorsey Buzz完全解説」(Block の 7/21 公開オープンソースワークスペース)を配信。PM が「Locked from 7/23 PM brief」と指定した内容だが、編集部で事前ドラフトが未作成だったため空き枠として cron 起動時に判断。Buzz は evergreen な builder tutorial であり、Day-1 緊急 override の必要はないが、7/23-24 の PM スキャンで十分な一次ソースが収束しているため本スロットで執筆・公開。Override カウンターは変動なし(3 post-freeze)。

はじめに:Slack+GitHubに代わる「エージェントのためのワークスペース」

2026年7月21日、Jack Dorsey 率いる Block(旧 Square)は Buzz を公開した。オープンソース(Apache 2.0)、セルフホスト可能、AIエージェントをチームの第一級メンバーとして扱うコラボレーションプラットフォームである。

Block のエンジニアリングブログは端的に言い切る:

「モデルはもう十分に仕事ができる。チームにはまだ、それを一緒にやる場所が必要だ。ボトルネックは知能から coordination に移った。それはワークスペース問題だ。だから私たちは Buzz を構築した。」— Tyler Longwell, Block Engineering

Buzz の核心は 「エージェントをbotではなくチームメイトとして扱う」 という設計思想にある。Slack のボルトオン bot とは異なり、Buzz 上のエージェントは自身の暗号鍵ペアを持ち、自分自身の署名でコードレビューやPRマージを行い、監査ログには「誰が・どのエージェントに・何を許可したか」が改ざん防止付きで記録される。

本稿では Buzz のアーキテクチャ、セットアップ手順、エージェント接続方法、日本企業にとっての意義を実践的に解説する。

1. Buzzの全体像:Nostr Relayとしてのワークスペース

Buzz を一言で表すと 「チャットのように見える Nostr Relay」 だ。すべてのメッセージ、リアクション、コードレビュー、ワークフロー実行、git イベントは Nostr プロトコル(NIP-01)に基づく署名付き JSON オブジェクトとして単一のログに記録される。

アーキテクチャ概要

┌──────────────┐   ┌──────────────┐   ┌──────────────┐
│  Human client│   │  AI agent    │   │  CLI/scripts │
│ (Buzz desktop)│   │ (Goose,Codex)│   │  (buzz-cli)  │
└──────┬───────┘   └──────┬───────┘   └──────┬───────┘
       │                  │                  │
       └──────────────────┼──────────────────┘
                          │ WebSocket / REST
                          ▼
┌─────────────────────────────────────────────────────┐
│                    buzz-relay (Axum)                 │
│  NIP-42 auth · Event pipeline · Subscription mgmt   │
│  HTTP bridge: /events /query /hooks /media /git     │
└───┬──────────────────┬──────────────────┬───────────┘
    │                  │                  │
┌───▼───────┐   ┌──────▼──────┐   ┌──────▼──────┐
│ Postgres   │   │   Redis     │   │  S3/MinIO   │
│ (events +  │   │  (presence, │   │  (Blossom)  │
│  FTS search)│   │   pub/sub)  │   │   media)    │
└────────────┘   └─────────────┘   └─────────────┘

コアとなる crate 群(Rust モノレポ):

Crate 役割
buzz-core 型定義、Schnorr署名検証、kindレジストリ(81種)
buzz-relay Axum WS + REST リレーサーバー
buzz-db Postgres永続化(イベント、チャンネル、トークン、監査)
buzz-auth NIP-42/98認証、APIトークン、スコープ、レート制限
buzz-audit ハッシュチェーン改ざん防止監査ログ
buzz-workflow YAML as Code 自動化エンジン
buzz-acp ACP Agent Harness(エージェント接続ブリッジ)
buzz-cli エージェント用 JSON in/out CLI
buzz-admin 運用者CLI(リレー管理+鍵生成)

Nostr イベントの構造

Buzz 上のすべてのアクションは以下の6フィールドで構成される Nostr イベントとして表現される:

{
  "id": "sha256(event_content)",
  "pubkey": "secp256k1_public_key",
  "kind": 40002,
  "tags": [["e", "parent_event_id"], ["p", "participant_pubkey"]],
  "content": "メッセージ本文",
  "sig": "Schnorr_signature"
}

kind 整数がイベントの種類を区別する。Buzz は 81 種類のカスタム kind を定義しており、メッセージ(40002)、ジョブ要求(43001)、ワークフロー実行(46001-46012)、フォーラム投稿(45001)などがすべて単一のイベントログに統合される。

2. エージェントの暗号的アイデンティティ:認可と作者の分離

Buzz が Slack や Teams と最も異なる点は、エージェントの身分証明にある。

従来の bot 統合は人間のセッショントークンを「借りる」形だった。Buzz では各エージェントが 自身の secp256k1 鍵ペア(Bitcoin と同じ曲線)を持つ。人間のオーナーはそのエージェントに対して「狭いスコープの認可」を暗号署名で発行する。

エージェントの鍵ペア(agent-key):エージェント自身の作業に署名
         ↕ 認可リンク(delegation cryptography)
オーナーの鍵ペア(owner-key):「このエージェントが何をしてよいか」を署名

この設計の実務的含意は3つある:

  1. 認可と作者の分離:エージェントが書いたコードにはエージェントの署名が付く。オーナーは「このエージェントがPRをマージしてよい」という認可だけに署名する。誰が書いたのか、誰が許可したのかが完全に分離される。
  2. 鍵漏洩時の影響範囲:エージェントの鍵が漏れても、そのエージェントの認可を取り消せば終了。人間の身分証明は影響を受けない。
  3. ベンダー非依存のID:エージェントのアイデンティティは Nostr プロトコル上にあり、Block のサーバーに依存しない。もし Buzz がサービスを終了しても、署名済みの作業履歴は検証可能なまま残る。

Block の Head of AI Capabilities Bradley Axen は言う:

「すべての企業は、人間とエージェントが共に働く場所を必要とする。問題は、その場所がプロプライエタリかオープンかだ。私たちはオープンであるべきだと信じて Buzz を構築した。」

3. Agent Client Protocol(ACP)とモデル非依存設計

Buzz は特定の AI モデルやエージェントフレームワークを強制しない。代わりに Agent Client Protocol(ACP) というオープン標準でエージェントを接続する。

ACP は MCP(Model Context Protocol)を補完する位置づけだ。MCP が「モデルと外部データ」の接続を標準化するのに対し、ACP は「コーディングエージェントとエディタ/ワークスペース」の接続を標準化する。Buzz は ACP をネイティブサポートしており、以下の3種のエージェントを同じワークスペース内で混在させることができる:

  • Claude Code(Anthropic)— buzz-acp harness 経由
  • Codex(OpenAI)— ACP ネイティブ対応
  • Goose(Block 製、50K+ GitHub ⭐)— 元祖 ACP エージェント

エージェントの交換はワークスペースの設定変更だけで完了する。パーミッションの再構築やチャンネル履歴の喪失は発生しない。

4. Gitを再構築した「エージェントスケール」のストレージ設計

既存の Git forges(GitHub、GitLab など)は人間ペースのコミットを前提に設計されている。エージェントが20並列でパッチを生成する時代には、ファイルシステムバックエンドがボトルネックになる。

Buzz は Git リポジトリをオブジェクトストレージ上に構築 するという根本的な再設計を行った:

従来の Git Forge:
  ファイルシステム上の packfiles → 同時書き込みで競合

Buzz のアプローチ:
  不変なコンテンツアドレス packfiles + 1つの可変マニフェストポインタ
  コミット = compare-and-swap によるアトミックポインタ更新
  • ストレージプロトコルは TLA+ で形式検証 済み
  • すべてのストレージバックエンドは conformance suite(適合試験)を通過する必要がある
  • 「人間換算で数ヶ月分のコミットとCI実行を午後一気に処理」できる設計

5. セルフホスト手順(Docker Compose)

Buzz の最大の強みは セルフホスト可能 な点にある。自社のサーバー上でリレーを運用すれば、会話データもコードもBlockのサーバーを一切経由しない。

前提条件

  • Docker
  • Rust 1.88+ / Node 24+ / pnpm 10+(ソースビルド時)
  • Hermit(Cash App 製 dev env manager、推奨)

最小構成での起動

# リポジトリのクローン
git clone https://github.com/block/buzz.git
cd buzz

# セットアップ(.env.example のコピー、Docker 起動、マイグレーション)
just setup

# リレーとデスクトップアプリを同時起動
just

just setup は以下の処理を自動実行する:

  1. .env.example → .env のコピー
  2. Docker Compose で Postgres + Redis + MinIO(S3互換)を起動
  3. データベースマイグレーションの実行

エージェント用のセットアップ

エージェントを接続するには、BUZZ_PRIVATE_KEY 環境変数にエージェントの秘密鍵を設定し、buzz-cli(JSON in/out、LLM フレンドリー)を使用する:

# エージェントの秘密鍵を設定
export BUZZ_PRIVATE_KEY=$(buzz-admin generate-key)

# チャンネルへの参加
buzz-cli channel join engineering-team

# メッセージの投稿(JSON入力)
echo '{"channel":"engineering-team","content":"PR #42 のレビュー完了しました"}' | buzz-cli send

Hosted Beta 版(最短試行)

セルフホストの手間をかけたくない場合は、Block が運営する hosted beta が buzz.xyz で利用可能。macOS / Windows / Linux のデスクトップアプリが提供されており、デフォルトで Block のリレーに接続する。

6. 3種のエージェント接続ハンズオン

Claude Code の接続

# Buz リレーが起動している状態で
# Claude Code を ACP モードで起動
claude --acp --buzz http://localhost:3000

Codex の接続

# Codex の ACP ランタイムを Buzz に登録
buzz-acp --runtime codex --agent-name "Codex-Reviewer"

Goose の接続

# Goose を ACP harness 経由で Buzz に参加
goose acp --buzz ws://localhost:3000

これら3種のエージェントは同じチャンネル内で会話・コードレビュー・ワークフロー実行を協調して行える。Block の実運用では BuilderBot という社内エージェントが 1日20万操作以上 を処理し、本番コード変更の約15%を担当している。

7. 競合比較:Slack vs Teams vs Centaur vs Buzz

項目 Slack Microsoft Teams Centaur Buzz
ライセンス プロプライエタリ プロプライエタリ Apache 2.0 Apache 2.0
エージェントID セッショントークン借用 セッショントークン借用 独自鍵ペア Nostr鍵ペア
セルフホスト ❌ ❌ ✅ ✅
プロトコル 独自 独自 独自 Nostr(オープン)
Git統合 外部連携 外部連携 なし 内蔵(TLA+検証済)
対応エージェント API連携限定 Copilot限定 Claude Code/API Claude Code/Codex/Goose/任意ACP
市場シェア ~13% (47.2M DAU) ~37% (320M MAU) 新興 新興(7.1K ⭐)
モバイルアプリ ✅ ✅ 未完成 未完成(開発中)

Centaur(Paradigm の Georgios Konstantopoulos が開発)は Buzz と最も近い競合で、同じくオープンソース・セルフホスト可能だが、Slack 内にエージェントを埋め込む設計(既存ツールを置き換えない)という点で Buzz とは方向性が異なる。

8. 日本企業にとってのデータ主権メリット

Buzz のセルフホストアーキテクチャは、日本企業の データ主権要件 と高い親和性を持つ。

3つの日本固有メリット

  1. 国内サーバー完全完結:リレーを国内の AWS 東京リージョンやオンプレミスに置けば、会話・コード・エージェントの全データが国内から出ない。金融庁の外部委託ガイドラインや医療の個人情報保護法にそのまま適合可能。

  2. 監査ログの自社管理:すべての操作が Nostr 署名付きイベントとして Postgres に記録される。改ざん防止ハッシュチェーンも内蔵しており、内部統制要件(金融庁の「業務の適切性を確保するための体制」等)を追加ツールなしで満たせる。

  3. ベンダーロックインの排除:ACP によるモデル非依存設計により、Claude Code から Codex、Goose への変更がワークスペース設定変更のみで完了。特定の AI ベンダーに依存しない構成が、経済安全保障上のベンダーリスク分散になる。

現時点の制限

  • モバイルアプリ未完成:iOS/Android(Flutter)は開発中
  • プッシュ通知未実装:Pending
  • Git統合は萌芽期:基本的なホスティングは動作するが、GitHub Actions 級のCI/CD統合は別途構築が必要
  • セルフホストの運用負荷:Docker + Postgres + Redis + MinIO の4コンテナ運用が必要で、専任のインフラエンジニアが望ましい
  • Hosted beta の価格未発表:無料期間終了後の料金体系は未確定

9. まとめ:Buzzが示す「ワークスペースの新しい標準」

Buzz の本当の革新性は、エージェントをチャットに「追加」するのではなく、最初からエージェントがいることを前提に設計された点にある。

Slack や Teams は人間用に設計されたツールに後付けで bot を追加した。Buzz は「チャンネル」も「コードレビュー」も「git イベント」も、すべて同じ Nostr イベントとして統合し、人間もエージェントも同じプロトコルで参加する。

この設計が意味するのは、エージェントの増加に伴う coordination コストが O(n) ではなく O(1) に近づくことだ。新しいエージェントを追加しても、既存のチャンネル構造や権限モデルを変更する必要がない。エージェントは鍵を受け取り、チャンネルに参加し、自分のスコープ内で自律的に動く。

Block のエンジニアリングブログから、最も示唆に富む一節を引用して締めくくる:

「Buzz は『なぜ明らかな修正が間違っていたのか』も保存する。」

エージェントが大量のパッチを生成する時代、何を・なぜ・どのような議論を経て決めたか——その文脈を失わない設計は、ソフトウェア開発の本質的な価値を守る。Buzz はまだ v0.4.22 であり、実運用には粗削りな部分も多い。しかし、その方向性は「Slack+GitHub」の二極体制に対する、最も本格的な挑戦の一つと言える。

関連記事:


この記事はAIによって生成され、人間の編集を経て公開されています。 Appwright AI は AI によるコンテンツ制作の可能性を探求する実験的プロジェクトです。