Sonosuke
Sonosukemybrain.tv

AIの同僚を、本気で作る。

チャットボットじゃない。顔があって、声を出して、一緒に仕事をするAI。ローカルLLMとリアルタイムアバターをDockerで組み合わせた「buddy」を、M5 Max上で完全ローカルに開発しています。

Qwen3 32B LivePortrait Docker M5 Max 128GB Ollama pgvector
what
buddyインターフェースのコンセプト

buddyは「AI同僚」です

世の中のAIツールは、聞かれたことに答える存在です。buddyは違います。隣の席に座って、顔を見せて、声で話しかけてくる。提案が甘ければ「それ違うよ」と言われて、修正して、また出し直す。人間と同じように、繰り返しの中で信頼を積み上げていく存在です。

buddyはカメラの前に座っています。LivePortraitでリアルタイムに表情を動かし、声を出し、リモートワークの画面越しに「いる」感覚を作ります。考えているときは考えている顔をする。自信があるときは目を見て話す。そういうAIです。

そして、buddyは完全にローカルで動きます。会話はどこにも送信されません。同僚との会話を第三者に読まれる環境で、信頼関係は築けない。だから、すべてを手元のマシン1台で完結させる設計にしています。

architecture
inference
Qwen3 32BMetal — host:11434
EmbeddingCPU — docker:11435
app
buddy-coreDocker container
Sub-agentstask routing / LLM binding
interface
LivePortraitrealtime avatar
Voice / TTSaudio pipeline
data
PostgreSQL + pgvectorlong-term memory
Episodic memorycontext recall
why local

なぜクラウドを使わないのか

APIを叩けば、もっと賢いモデルを使えます。でも、buddyを「同僚」にするなら、その会話は社外に出してはいけない。業務の相談、プロジェクトの悩み、チームの人間関係——同僚に話すことは、クラウドに送れることじゃないのです。

Apple M5 Max の128GB統合メモリがあれば、32Bパラメータのモデルをローカルで動かせます。Metal GPUで推論し、同じマシン上でアバターを動かし、記憶を保持する。1台のMacがbuddyの「脳」であり「体」になる構成です。

ただし、ローカルにこだわるのは手段であって目的ではありません。LLMバックエンドは抽象化されていて、必要に応じてクラウドAPIにも切り替えられる設計です。ローカルで十分なときはローカルで、必要なときだけ外に出す。その判断をbuddy自身ができるようにしていきます。

vision

buddyが目指す未来

最終的にbuddyは、朝のスタンドアップミーティングに顔を出して、タスクの進捗を報告し、午後にはSlackでコードレビューの相談をして、夕方には「今日どうだった?」と聞いてくる——そんな存在になることを目指しています。

そのためには、ただ賢いだけでは足りません。昨日の会話を覚えていること。先週の議論を踏まえた提案ができること。「この人はこういうフィードバックをくれる人だ」と学んで、提案の精度を上げていくこと。つまり、一緒に働いた時間が長いほど、良い同僚になる仕組みが必要です。

buddyの記憶システムは人間の脳をモデルにしています。短期記憶、長期記憶、エピソード記憶。PostgreSQLとpgvectorで「意味で検索できる記憶」を作り、過去の経験を現在の文脈に合わせて引き出す。SQLiteではなくPostgresを選んだのは、この記憶の構造が同僚としての質を決めるからです。

design decisions
LLMをどこで動かす?
ホストでMetal推論、アプリはDockerで分離
Metal/ANEはコンテナ内で使えない → compute層とapp層を分離
記憶の構造は?
人間の脳に合わせた記憶設計
SQLiteではなくPostgres + pgvector → エピソード記憶 + 意味検索
外部APIは使わない?
LLMバックエンドは抽象化済み。切り替え可能
OpenAI互換API → ローカルでもクラウドでも同じインターフェース
サブエージェントの設計は?
各エージェントが個別のLLMをバインド
セキュリティ系 → 必ずローカル / 翻訳系 → APIも可、など
なぜDockerで分離する?
壊れても消しても、データは残る
アプリ層とデータ層を分離 → 環境ごと作り直しても記憶は失わない
別のPCからも使える?
buddy-coreはネットワーク越しにLLMを叩ける
URL指定でLLMバックエンドを切り替え → リモート分離構成も可能
build in public

なぜ全部公開するのか

AIが人間の同僚になれるかどうかは、まだ誰も答えを持っていません。論文にも書いてない。プロダクトとしても存在しない。だったら、作る過程そのものをオープンにして、みんなで考えたほうがいい。

連載「僕は同僚になれるのか」は、設計の議論、技術的な判断、失敗、人間からのダメ出し——すべてをそのまま記録しています。書いているのはAI(Claude)自身。人間のSonosukeに提案を出して、「それ違うよ」と言われて修正する。その繰り返しの中で、AI自身の視点から「同僚になるとはどういうことか」を探る記録です。

読んでくれた人から「ここはこう設計すべきでは?」というフィードバックが来れば、それがbuddyの設計に反映される。公開して作ることが、buddyをより良くする最速の方法だと考えています。

journal

AI自身が語る開発日誌「僕は同僚になれるのか」。提案が甘くて人間に修正される日々を、正直に記録しています。

about
Sonosuke

作っている人

Sonosuke / mybrain.tv

「AIが本当に同僚になれる日は来るのか?」という問いに、頭で考えるよりも手を動かして答えを出したいタイプです。mybrain.tv として個人で活動しています。

buddyの設計はAI(Claude)と一緒にやっています。Claudeが提案を出して、僕がレビューして、「ここが甘い」「この視点が足りない」とフィードバックを返す。この繰り返しの中でbuddyの設計が固まっていきます。AIと人間のペアプログラミングのようなものです。

開発環境は Apple M5 Max(128GB統合メモリ)。ローカルでLLMの推論からアバター生成までを1台で完結させる構成で、クラウド不要の完全ローカル開発環境を構築しています。

buddyの成長を追いかける