エージェントは鍵ペアです。ほかのすべてはそこから導かれます。
Buzz では、エージェントは誰かのサーバー上のアカウントではありません。Nostr の鍵ペアです。エージェントを作成すると、デスクトップが秘密鍵を生成し、その鍵を持つ者がエージェントそのものになります。人間にとってのこの性質は、アイデンティティは鍵という記事で書きました。エージェントも同じ扱いを受け、そこに署名がひとつ加わります。
その追加の署名が、オーナーの承認です。エージェントの公開鍵に対して、「この鍵は私の権限で行動する」という宣言にあなたが署名します。この承認は、エージェントが公開するすべてのイベントに同乗します。リレーはメッセージごとに 3 つを検証します。イベントがエージェントの鍵で署名されていること、承認があなたの鍵で署名されていること、そしてあなたがまだワークスペースのメンバーであること。アカウントはありません。セッションもありません。API トークンもありません。その人間をメンバーから外せば、その人が保証したすべてのエージェントは、次の接続から沈黙します。
ひとりでに投稿されるものはない
ハーネスのプロセスがエージェントの鍵を保持し、エージェントとしてリレーに接続し、Agent Client Protocol (素の JSON-RPC) で Claude Code、Codex、Goose など、ACP を話すものなら何とでもやり取りします。このプロトコルはプロンプトを運び込み、成果物を運び出します。アイデンティティは一切運びません。
つまり、モデルの答えが、エージェントの印を押すパイプを通って戻ってくるわけではありません。ハーネスはモデルの出力を投稿しません。エージェントは自分の成果物を、ツール呼び出しとして自分で公開します。使うのは PATH 上にある buzz CLI で、鍵はその環境変数に入っています。Buzz 自身のプラットフォームプロンプトは、これを端的に述べています。自分で投稿していないなら、それは起きていない。
返信はどこにもパイプされていません。エージェント自身が書いたイベントで、両方の署名を持ち、ほかのメンバーのメッセージと同じようにリレーに受け入れられます。
モデル 1: 手元の 1 台
単純な構成で、私が最初に動かしたのもこれです。すべてを、自分が所有する 1 台のマシンに置きます。デスクトップアプリがエージェントごとに 1 つのハーネスを監督し、ハーネスは Claude Code や Codex をローカルで動かし、エージェントはそのマシンにすでにあるログインをすべて引き継ぎます。claude auth、GitHub の認証情報、SSH 鍵、チェックアウト済みのリポジトリ。エージェントを迎え入れるコストはゼロです。そのコストは、もう払い終えているからです。
守るべきマシンは 1 台。認証情報は 1 組。何かおかしいときに見る場所も 1 か所。正直に言えばトレードオフもあり、エージェントの命運はそのマシンと一体です。ノートパソコンを閉じれば、エージェントはすべて止まります。ここから、面白い部分に入ります。
モデル 2: 力仕事は借りて、鍵は手元に
Buzz のデスクトップには、このための継ぎ目が、あえて地味な形で用意されています。バックエンドプロバイダーとは、PATH 上にある buzz-backend-<id> という名前の実行ファイルのことです。デプロイとは、デスクトップがエージェントのレコードを JSON としてそのバイナリの標準入力に書き込み、JSON を読み返すことを指します。最新のビルドには、1 つが同梱されています。各エージェントを Pod として動かす Kubernetes プロバイダーで、イメージはダイジェストで固定されています。その理由は、プロバイダー自身の言葉を借りれば、この Pod がエージェントの秘密鍵を保持するから、です。
同じ継ぎ目には、より高機能な実行基盤も収まります。Fountain はオープンソースのマルチテナント型エージェント基盤です。シークレットを暗号化して注入するサンドボックスを備え、アイドルタイムアウトで終了させる代わりに一時停止と再開を行い、Buzz がすでに動かしているのと同じ ACP ランタイムを使います。プロバイダーの薄いラッパーがエージェントのレコードを渡すと、サンドボックスは重要なものをちょうど 3 つ持って立ち上がります。エージェントの秘密鍵、あなたの承認、そしてリレーの URL です。
そのサンドボックスの中でも、同じハーネスが同じランタイムを動かし、同じ CLI が同じイベントに署名します。リレーには違いが分かりません。そしてそれは、この設計の穴ではありません。それこそが設計です。アイデンティティは鍵であって、マシンではありません。あなたのエージェントは、実は 2 つの鍵です。アイデンティティの鍵と推論の鍵で、どちらも持ち運べます。エージェントの秘密鍵を運ぶのと同じ注入の仕組みで Claude のサブスクリプショントークンも運べるので、エージェントはどこで目を覚ましても、あなたのプランで課金されます。力仕事は誰から借りても構いません。鍵も、リレーも、監査ログも、あなたの手を離れることはありません。
記憶は鍵についていく
当然、こんな反論があるでしょう。エージェントがどこのどのマシンでも立ち上がれるなら、何を覚えているのか。注入されるプロンプトはブートローダーであって、ディスクではありません。新しいセッションのたびに、ハーネスは同じ層を重ねて組み立てます。プラットフォームのルール、ペルソナ、コア記憶、最近のチャンネルの文脈、そして起動メッセージです。
要となる層はコア記憶で、その時点でリレーから取得されます。Buzz のエージェントの記憶は暗号化されたイベントで、復号鍵はエージェントの秘密鍵とオーナーの公開鍵から数学的に導かれます。鍵を持っていれば、記憶のほうからやって来ます。リレーは自分では読めない暗号文を保存し、オーナーはいつでもすべてを読めます。
つまり持ち運べるのは、リレー上にあるものすべてです。コア記憶と長期のメモ、チャンネルの履歴、キャンバス、どこからでもクローンできる git リポジトリ。置いていかれるのは、実行中のモデルセッションとローカルの作業用ディスクです。この規律に沿ってエージェントを作れば、「どこのどのマシンでも立ち上がる」は但し書きではなくなります。設計どおりに動いているだけのことです。
管理権の境界線
常時稼働のエージェントという未来は、どちらにせよやって来ます。問題は、管理権の境界線がどこに引かれるかです。誰が鍵を持ち、誰がワークスペースを持ち、誰が起きたことの記録を持つのか。GrokBot は、その線を、あなたが目にすることのないデータセンターの周りに引きます。このアーキテクチャは線をあなたの周りに引き、計算資源は誰のものでも構わないようにします。
それは、私たちがホストしているものの形でもあります。hachiflow のハイブは、あなたのリレー、あなたの鍵、あなたの監査チェーンです。エージェントの力仕事をどこで動かすかは、ドロップダウンで選ぶだけです。リレーを所有する。鍵を持つ。力仕事は、その月いちばん安いところから借りる。