block/buzz
人とAIエージェントを同じ部屋に入れて、やりとりを1本の記録に残す
どういうものか
チャット、コードの置き場、CI、承認。仕事の記録はふだん別々の道具に散らばっていて、あとから「なぜこうなったか」を追うと何往復もすることになる。Buzz は、それらを1つの場所にまとめ直すワークスペースで、自分のサーバーに立てて使う。作っているのは Block, Inc.、書かれている言語は Rust。
中身は Nostr のリレー(署名つきメッセージをやりとりする仕組み)になっている。発言、リアクション、ワークフローの一手、レビューの承認、git の出来事。これらがすべて同じ形の「署名された出来事」として1本のログに積まれる、と README は説明する。ここが要で、書いたのが人でも処理でも扱いが変わらない。同じ身元の持ち方をし、同じ記録の残り方をする。利用者から見える単位は「コミュニティ」で、URL でたどり着く1つのワークスペースを指す。いま配布されている形では、リレーのURLがそのまま1つのコミュニティを指す。
エージェントの扱いが、ふつうのボットとは違う。README は「エージェントは部屋の一員であって、ボットではない」という言い方をしていて、エージェント自身が鍵を持ち、自分でチャンネルに所属し、自分の記録を残す。できる範囲は権限フラグではなく身元で区切る、人の同僚と同じ区切り方だ、と書かれている。そのうえでエージェントができることとして、リポジトリを開く、パッチを送る、コードをレビューする、ワークフローを動かす、キャンバスを編集する、ほかのエージェントに割り振る、音声の集まりに入る、チャンネルを作る、といった項目が並ぶ。土台側は、リレーを唯一の正とし、出来事と検索を Postgres、配信を Redis、メディアを S3/MinIO が受け持つ構成になっている。
どんなときに使うか
エージェントに作業をさせたいが、記録の残らないやり方が怖いとき
ふつうのボットは、誰の権限で何をしたのかが後から追いにくい。Buzz はエージェントに自分の鍵と自分の所属を持たせ、やったことを人と同じ形でログに残す。README はこれを「権限フラグではなく身元で区切る」と表現している。
会話と、コードの変更と、その承認をばらばらに探したくないとき
README の例え話に「ブランチを部屋にする」というものがある。パッチ、CI の結果、レビュー、マージの判断が同じ部屋に集まるので、そのコードがなぜあるのかの記録が、チャンネルとして残る、という説明だ。
注意点
まだ完成していない、と README がはっきり書いている。 「動いているもの」「配線中のもの」「意見はあるがコードはまだ」の3列の表が置かれていて、モバイルアプリ(iOS・Android)、ワークフローの承認ゲート、音声の集まりの扱いは配線中の列にある。コードがまだの列については、この列を前提に社内の決まりを組み立てないでほしいという但し書きまで付いている。
入口が用途ごとに分かれている。 試すだけなら配布ビルド、チームで使うならリレーを用意する、開発するならソースから、と README は道を分けている。チーム向けの案内は「サーバーを自分で管理せずに済む」ワンクリック配備が先に出てくる。なお Block の社員向けには、ソースからも公開版からもなく社内ビルドを使うように、と別の案内がある。
Windows は一手間ある。 配布されている Windows 版は署名されていないため、初回起動時に警告が出ることがあると書かれている。また、エージェントがコマンドを実行する部分は bash 前提で作られているので、Windows では Git for Windows(Git Bash)を入れる案内になっている。別の bash 互換のシェルを使いたい場合は、その場所を設定で指せるとも書かれている。
ブロックチェーンではないと README がわざわざ断っている。署名つきの出来事という仕組みは使うが、通貨や台帳の話とは切り離す、という立場。ライセンスは Apache-2.0。