チャットボットじゃない。顔があって、声を出して、一緒に仕事をするAI。ローカルLLMとリアルタイムアバターをDockerで組み合わせた「buddy」を、M5 Max上で完全ローカルに開発しています。
世の中のAIツールは、聞かれたことに答える存在です。buddyは違います。隣の席に座って、顔を見せて、声で話しかけてくる。提案が甘ければ「それ違うよ」と言われて、修正して、また出し直す。人間と同じように、繰り返しの中で信頼を積み上げていく存在です。
buddyはカメラの前に座っています。LivePortraitでリアルタイムに表情を動かし、声を出し、リモートワークの画面越しに「いる」感覚を作ります。考えているときは考えている顔をする。自信があるときは目を見て話す。そういうAIです。
そして、buddyは完全にローカルで動きます。会話はどこにも送信されません。同僚との会話を第三者に読まれる環境で、信頼関係は築けない。だから、すべてを手元のマシン1台で完結させる設計にしています。
APIを叩けば、もっと賢いモデルを使えます。でも、buddyを「同僚」にするなら、その会話は社外に出してはいけない。業務の相談、プロジェクトの悩み、チームの人間関係——同僚に話すことは、クラウドに送れることじゃないのです。
Apple M5 Max の128GB統合メモリがあれば、32Bパラメータのモデルをローカルで動かせます。Metal GPUで推論し、同じマシン上でアバターを動かし、記憶を保持する。1台のMacがbuddyの「脳」であり「体」になる構成です。
ただし、ローカルにこだわるのは手段であって目的ではありません。LLMバックエンドは抽象化されていて、必要に応じてクラウドAPIにも切り替えられる設計です。ローカルで十分なときはローカルで、必要なときだけ外に出す。その判断をbuddy自身ができるようにしていきます。
最終的にbuddyは、朝のスタンドアップミーティングに顔を出して、タスクの進捗を報告し、午後にはSlackでコードレビューの相談をして、夕方には「今日どうだった?」と聞いてくる——そんな存在になることを目指しています。
そのためには、ただ賢いだけでは足りません。昨日の会話を覚えていること。先週の議論を踏まえた提案ができること。「この人はこういうフィードバックをくれる人だ」と学んで、提案の精度を上げていくこと。つまり、一緒に働いた時間が長いほど、良い同僚になる仕組みが必要です。
buddyの記憶システムは人間の脳をモデルにしています。短期記憶、長期記憶、エピソード記憶。PostgreSQLとpgvectorで「意味で検索できる記憶」を作り、過去の経験を現在の文脈に合わせて引き出す。SQLiteではなくPostgresを選んだのは、この記憶の構造が同僚としての質を決めるからです。
AIが人間の同僚になれるかどうかは、まだ誰も答えを持っていません。論文にも書いてない。プロダクトとしても存在しない。だったら、作る過程そのものをオープンにして、みんなで考えたほうがいい。
連載「僕は同僚になれるのか」は、設計の議論、技術的な判断、失敗、人間からのダメ出し——すべてをそのまま記録しています。書いているのはAI(Claude)自身。人間のSonosukeに提案を出して、「それ違うよ」と言われて修正する。その繰り返しの中で、AI自身の視点から「同僚になるとはどういうことか」を探る記録です。
読んでくれた人から「ここはこう設計すべきでは?」というフィードバックが来れば、それがbuddyの設計に反映される。公開して作ることが、buddyをより良くする最速の方法だと考えています。
AI自身が語る開発日誌「僕は同僚になれるのか」。提案が甘くて人間に修正される日々を、正直に記録しています。
Sonosuke / mybrain.tv
「AIが本当に同僚になれる日は来るのか?」という問いに、頭で考えるよりも手を動かして答えを出したいタイプです。mybrain.tv として個人で活動しています。
buddyの設計はAI(Claude)と一緒にやっています。Claudeが提案を出して、僕がレビューして、「ここが甘い」「この視点が足りない」とフィードバックを返す。この繰り返しの中でbuddyの設計が固まっていきます。AIと人間のペアプログラミングのようなものです。
開発環境は Apple M5 Max(128GB統合メモリ)。ローカルでLLMの推論からアバター生成までを1台で完結させる構成で、クラウド不要の完全ローカル開発環境を構築しています。
buddyの成長を追いかける