>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Rust

BlockがRustとNostrで構築したチャット、Git、AIエージェント于一のワークスペース「Buzz」の舞台裏

開発ワークフローにAIアシスタントを統合しようと試みたことはありますか?通常、同じような展開になります。Slackでボットを作成し、幅広い権限を持つAPIキーを与え、GitHub用のWebhookを複数設定し、次のアップデートで全体が崩壊しないことを祈ります。一方、ボットは別世界に住んでいます:チャットの過去の議論の文脈は見えず、その行動を追跡也很难です。

Blockのエンジニアたちは、 десяток異なるサービスのスタックを放棄することを決意しました。彼らはBuzzプロジェクトを創りました。エンジニアとAIエージェントが同じルームに座り、同じイベントログを読み、同等に作業するローカルワークスペースです。

Buzz channel with discussion

内部構造

マーケティングのレイヤーを取り除くと、Buzzは本質的に単一のNostrリレーと、印象的なRustクレートのコレクションです。システム内のすべてのアクションは、共有イベントログに記録されます。テキストメッセージ、絵文字リアクション、gitへのパッチ送信、CIの実行、レビューの承認——すべてが同じフォーマットの暗号署名付きイベントになります。

Buzzと従来のエンタープライズMessengerの主な違いは、アイデンティティモデルにあります。システムは人間と自律スクリプトを区別しません。各AIエージェントにはキーペアがあります。エージェントをプライベートチャンネルに追加するのは、通常の従業員を追加するのと同じ方法です。エージェントの権限は管理パネルのトグルで制限されるのではなく、特定のルームへの参加によって決まります。

プロジェクトチームは、現在のAIツールは多すぎると正直に認めています。しかしBuzz不同的是、自律プロセスが実際の動作するツール能够得到することです:リポジトリを開き、パッチを送信し、コードをレビューし、ワークフローをトリガーし、ルームを作成し、さらには音声通話に参加します。

Agents in channels

実際の運用例

開発者は、あらゆるチームが目にする3つの実際のシナリオを確認することを提案しています。

最初のストーリーは、夜間のインシデント対応についてです。午前2時、本番環境にエラーが発生しています。チャンネルに書き込みます:「以前見たことありますか?」チャットにいるエージェントが6ヶ月分の議論履歴を調べます。抽象的なLLMの応答を返すだけでなく、特定のスレッドへのリンクを添付し、根本原因を見つけ、以前の修正を指し示し、そのコミットの作成者にpingを打つことを提案します。

2番目のケースは、コードブランチへの取り組み方を変えます。フィーチャーブランチを作成すると、Buzzはそれ用の別チャンネルを立ち上げます。パッチはNIP-34プロトコルイベントとして到着し、CIサービスはビルドレポートを送信し、AIエージェントが初期レビューを行います。すべての議論とマージの決定がそのルーム内で完結します。意思決定のコンテキスト вместе с историей сохраняется.

3番目のシナリオは、リリース自動化に関するものです。ワークフローはgitタグ的出现に反応します。エージェントは independently working channelsからマージされたPRのリストを作成し、 changelogを作成し、エンジニアのレビューに送信します。サムズアップのリアクションを受け取った後、エージェントは自ら publishing processを完了します。

Creating channels

アーキテクチャとスタック

アーキテクチャ的に、Buzzは複数の論理レイヤーに分かれており、デプロイとスケーリングが容易です。

クライアントサイドはTauriとReactで構築されています。macOS、Linux、Windows向けの高速なデスクトップシェルです。エージェントとの連携には、JSON交換プロトコルを持つユーティリティと、Goose、Codex、Claude Codeなどの一般的なharnessシステムに接続するレイヤーを自作しました。

サーバーサイドはAxumベースのクレートで処理されます。WebSocketとREST接続を 处理し、NIP-42/98認証を 处理し、監査チェーンを維持します。

ストレージレイヤーは3つのコンポーネントの組み合わせを使用します:

  • Postgresはイベントを存储し、 full-text searchを 处理します
  • Redisはpub/サブタスク、プレゼンスステータス、タイピングインジケーターを 处理します
  • S3またはMinIOはBlossomプロトコルを介してメディアファイルを 保存するために使用されます

興味深い機能の一つは、メディアファイルのコメントです。バグやインターフェースデモのビデオ録画をアップロードでき、議論は特定のフレームに紐付けられます。

Media comments

プロジェクトをローカルで実行する方法

ローカル環境のセットアップは literally数分で完了します。必要な依存関係は、DockerとHermitツールチェーンマネージャー(またはRust 1.88+、Node 24+、pnpm 10+、ユーティリティの最近のバージョン)です。

まず、リポジトリをクローンして環境を activateします:

git clone https://github.com/block/buzz.git
cd buzz
. ./bin/activate-hermit
just setup
just build

コマンドは設定ファイルをコピーし、Hermit経由で必要なバイナリをプルし、Dockerでデータベースコンテナを立ち上げます。

日常的な開発には、1つのコマンドを実行するだけです:

just dev

このコマンドはリレーサーバーを起動し、 Tauriデスクトップアプリケーションを同時にlaunchesします。

独自のエージェントをシステムに接続したい場合は、環境変数を設定し、を使用します。インターフェースは specifically LLMがJSON構造の受け渡しを通じて簡単に機能を呼び出せるように設計されています。

現在の状況と計画

開発者はコンポーネントの準備状況をオープンに共有しています。プロジェクトは完成したエンタープライズプラットフォームを装おうとはしていません——未完成の領域があります。

すでに安定して動作しているもの:

  • リレーサーバー、プライベートおよびパブリックチャンネル、スレッド、ダイレクトメッセージ
  • フルテキスト検索、メディアサーバー、エンドツーエンドの監査ログ
  • Tauriデスクトップアプリケーション
  • メッセージ、リアクション、Webhookのトリガーを持つYAMLワークフローシステム
  • NIP-34イベントサポート付きのカスタムgitバックエンド

現在積極的に開発中のものは、FlutterによるiOSおよびAndroid向けモバイルクライアント、ワークフロー承認ゲートウェイメカニズム、音声ハドル統合です。

Buzz注目すべき人

Buzzは Schnorr暗号キーを積極的に使用しているにもかかわらず、別のブロックチェーンプロジェクトと見なすべきではありません。トークンや分散型台帳は関与していません。署名は、システム内のすべてのメッセージとアクションの真正性を保証するためにのみ必要です。

このプロジェクトは、AIエージェントを積極的に экспериментируют厌倦した散らばったボットに感じているチームにアピールします。すべてのコミュニケーション履歴、コード、自動化アクションが自有のサーバーに存储される統一環境を必要としているなら、Buzzは堅実なコンセプトを提供します。

リポジトリのリリースページでOS用のプリビルドリリースを試すか、Dockerでリレーを実行して仮説をテストできます。

関連プロジェクト