brAIn:NATSバス上のリアクティブAIエージェントノード、チャットループの代わりに
brAIn は、従来のチャットループモデルを廃し、NATS パブ/サブバス上の長寿命デーモンノードアーキテクチャを採用した新しい AI エージェントフレームワークです。ノードはリアクティブで、関連するメッセージが到着したときのみ起動し、トークン消費を回避します。各ノードは独自の UI を持ち、分散デプロイが可能で、優先度プリエンプションや MCP クライアント統合などの機能を備えています。著者は、環境認識エージェント、Slack リスナー、IoT コントローラーなどの実際の使用例をデモで示し、LangGraph、AutoGen、ROS 2 などの既存ツールとのアーキテクチャ比較も行っています。
brAIn は、Flutter モバイルおよび AI エンジニアによって開発された実験的な AI エージェントフレームワークです。その核となるアイデアは、従来のチャットループモデルを打破することにあります。著者は、既存のエージェントフレームワークのほとんどがタイマーによるループまたは cron タスクに基づいており、すべての対話が単一のチャットウィンドウを介して行われることに不満を感じていました。そこで彼は、NATS パブ/サブバスをベースとしたリアクティブなエージェントシステムを構築しました。その設計思想は、従来のチャットフレームワークよりもむしろ ROS(Robot Operating System)に近いものです。
brAIn では、エージェントは常時稼働したり定期的にポーリングしたりするのではなく、長寿命のデーモンノードとして存在します。ノードは複数の入力ストリーム(チャットメッセージ、センサーイベント、Webhook、内部バストラフィックなど)を購読し、関連するメッセージが到着したときのみ起動されて処理を実行します。このイベント駆動方式により、無意味なトークン消費を回避し、計算リソースを本当に必要な「思考」に集中させます。各ノードは独自のユーザーインターフェースを持つことができ、ローカルでもリモートでも一貫した方法でアクセス可能です。
brAIn のもう一つの重要な特徴は、分散実行です。同じノード設定をローカルプロセスで実行することも、NATS バスを介してリモートの「ブレインエージェント」プロセスに接続することもできます。開発者はコードを変更することなく、ワークロードを異なるハードウェアに分散できます。さらに、優先度プリエンプション機構により、高重要度のメッセージが実行中の低優先度タスク(LLM 呼び出し、ツール呼び出しなど)を中断し、状況に応じた適切な対応を可能にします。
実際のデモでは、著者は複数の使用例を示しています。例えば、カメラとマイクで部屋を観察し、誰かが見つめて話しかけたときのみ応答する環境認識エージェント、会話の休止時に自動的に要約または返信する Slack チャンネルリスナー、温度、動き、カレンダー、時刻を統合して環境調整を決定する IoT コントローラーなどです。また、スマートフォンをノードとして利用し、そのセンサーデータに反応させることも可能です。
既存ツールとの比較において、brAIn は LangGraph、Vercel AI SDK、Mastra などのチャット型エージェントフレームワークや、AutoGen、CrewAI などのマルチエージェント対話システムと直接競合するものではありません。そのアーキテクチャは ROS 2 に近いですが、トークンバジェット、中断可能な推論、ツール呼び出しループ、MCP 統合など、LLM 環境向けに最適化されています。耐久性のあるワークフロー(例:Inngest、Temporal)が必要な場合、brAIn のデーモンノードモデルは異なるアプローチを提供します。
現在、brAIn は実験段階であり、完成された製品ではありません。著者はこれを未解決問題への誠実な試みとして位置づけており、興味のある開発者の探索を歓迎しています。プロジェクトのコードは GitHub で公開されており、解説ビデオや実際のデモも提供されています。