【ITニュース解説】Nanobot by Obot.ai: Architecting Real MCP Agents with MCP-UI, Stateful Threads & Agent-to-Agent Patterns
2025年09月24日に「Dev.to」が公開したITニュース「Nanobot by Obot.ai: Architecting Real MCP Agents with MCP-UI, Stateful Threads & Agent-to-Agent Patterns」について初心者にもわかりやすく解説しています。
ITニュース概要
Nanobotは、MCPを核に堅牢なAIエージェントを構築するプロジェクトだ。MCP-UIで視覚的なやり取りを実現し、会話の状態を保持。さらにエージェント同士の連携で、複雑なAIアプリケーションを効率的に開発できる。
ITニュース解説
近年、人工知能(AI)の進化は目覚ましく、AIモデルと外部システムが複雑に連携する場面が増えている。そのような中で、Model Context Protocol(MCP)は、AIがより高度なやり取りを行うための非常に重要な基礎技術として注目されている。Obot.aiのDarren氏が開発したNanobotは、このMCPを土台として、強力でインタラクティブなAIエージェントを構築する革新的なビジョンを提示している。Darren氏は、AIモデルとMCPサーバーが連携すれば、ほとんどあらゆる種類のAIエージェントの構築に必要な要素が揃うと確信している。Nanobotは、「MCPエージェント」が何を意味するのかを具体的に定義し、このプロトコルを中心に据えた完全なエージェントシステムをどのように構築するかを探求するプロジェクトであり、単なるプログラムの繋ぎ合わせを超え、堅牢なAI駆動型アプリケーションを開発するための統合されたソリューションを提供している。
Nanobotの根底にある考え方は、MCPが単なる通信規格ではなく、AIエージェントを開発するために不可欠な核心的な要素であるというものだ。ウェブにおけるJavaScriptが基盤技術でありながら、ブラウザや様々なツールといった周辺インフラが必要であるのと同様に、MCPも本格的なエージェントを構築するためには統合されたエコシステムが必要である、とDarren氏は考えている。Nanobotは、MCPが主要な構成要素であるとすれば、機能的で完全なMCPエージェントを構築するためには他に何が必要か、という問いに答えることを目指している。
このプロジェクトは、様々なアイデアを繰り返し検証し、MCPエージェントの可能性を広げる試みから生まれた。業界全体で「エージェント」という概念、特に「MCPエージェント」がまだ流動的で明確に定義されていない中で、Nanobotは具体的な実装を提供している。これにより、シンプルなMCPサーバーが、設定と直感的なユーザーインターフェース(UI)を加えることで、いかに豊かでインタラクティブなエージェント体験を生み出せるかを示している。このアプローチは、一般的なチャットボット開発とは異なり、MCPサーバーを、状態を管理し、ユーザー入力に応答し、高度なUI要素と統合できる「エージェント」へと昇華させている点が特徴である。
Nanobotの強みは、基本的なMCPサーバーに、強化されたユーザーインタラクションのためのMCP-UIと、継続的なコンテキストを維持するためのステートフルなスレッドを組み合わせる能力にある。Darren氏はこれを、AIが動かすBlackjackゲームという実例を通じて説明している。
まず、ゲームルールを管理するゲームエンジンとして、標準的なBlackjack MCPサーバーがTypeScriptで開発される。これをAIモデル(例えば、Claude)と直接連携させると、操作は「新しいゲームを開始」や「ヒット」といったテキストコマンドが中心となる。これは機能するが、視覚的な情報が少なく、使いづらいと感じる場合がある。さらに問題なのは、AIが誤ってゲームの状態を伝えたり、あるいは操作されたりする可能性があり、AIが理解する状態と実際のゲームの状態に食い違いが生じかねない点である。
ここでMCP-UIの力が発揮される。MCP-UIを導入することで、ユーザーとのやり取りはテキストだけでなく、リッチなビジュアル要素を含むものへと変化する。例えば、Blackjackゲームであれば、カードや点数などが視覚的に表示されるようになる。ユーザーが画面上の「ヒット」ボタンをクリックすると、その操作がAIに直接伝えられ、AIはそれを基にMCPサーバー(ゲームエンジン)を呼び出す。この統合の最大の利点は、状態の検証が容易になることだ。たとえAIが誤ったゲームの状態を報告しようとしても、ユーザーは常に正しい視覚的なUIを通じて実際の状態を確認できる。これにより、AIと人間が対話する際に信頼性が確保され、頑健なインタラクティブ体験が生まれる。豊富な視覚的フィードバックとAIの推論が組み合わさることで、AIがUIを操作したり、ユーザーの操作を観察して自身の理解や行動を更新したりする、複雑なアプリケーション制御が可能になる。
Nanobotは、シンプルなコマンドラインインターフェース(CLI)ツールとして実装されている。これは、ローカルで実行することも、他のシステムに組み込むことも可能な実行ファイルである。Nanobotの核心はMCPホストとして機能することであり、これは単なるクライアント・サーバーモデルを超えた概念である。MCPホストは、クライアント、オーケストレーター、大規模言語モデル(LLM)への接続、データベースなどを統合し、リソースやユーザーを管理することで、完全なエージェント体験を提供する。
Nanobotエージェントの設定は非常に簡単で、主にYAMLファイルで行う。このファイルには、AIモデルへの指示(プロンプト)、会話の初期コンテキスト(スターターメッセージ)、ツールのような機能を提供する基盤となるMCPサーバーのURL、表示用のアイコンや説明などのメタデータが定義される。
例えば、Blackjackエージェントの場合、YAMLファイルには「あなたはBlackjackのディーラーです。利用可能なツールを使ってゲームの状態を管理してください」といった指示や、MCPゲームエンジンのURLなどが記述される。設定が完了し、LLM(AnthropicやOpenAIなど)のAPIキーを提供すれば、「nanobot run <設定名>」というコマンドを実行するだけで、リッチなチャットインターフェースを持つエージェントが起動する。
Nanobotの重要な革新の一つは、ステートフルなスレッドをサポートしていることである。これは、従来のAPI呼び出しのように毎回独立したリクエストを処理するのではなく、ユーザーとの会話の状態(例えば、Blackjackの進行中のゲーム)を継続的に維持できる機能である。これにより、ユーザーは「ヒット」のような後続のコマンドを、それまでの会話の流れの中で自然に発することができ、より人間らしい対話が可能となる。
さらに、Nanobotは、MCPサーバーとAIモデル、プロンプトといったエージェントの構成全体を、別のMCPインターフェース内にカプセル化する。これは、一つのエージェントが、標準化されたチャット方式を通じて他のエージェントと対話できることを意味する。このエージェント間通信のパターンには、大きな利点がある。例えば、AIが多数の異なるツールを扱う際に生じるコンテキスト情報の過負荷を大幅に削減できる。AIは、数千ものツールの中から適切なものを選ぶ代わりに、標準化されたインターフェースを持つ他のエージェントと対話する、たった一つのツールを持つだけで済む。これにより、大規模言語モデル(LLM)のコンテキストウィンドウの負担が劇的に軽減され、AIの混乱も少なくなる。また、エージェント間のやり取りが統一されるため、システムのオーケストレーションが簡素化され、ツール間のパラメータ重複による競合も減少する。このスケーラビリティにより、複雑なタスクを専門のエージェントに委任し、高度なAIシステムを構築できる。例えば、個人のAIアシスタントが、McDonald'sエージェントと連携して食事を注文するといったことが可能になり、ユーザーやエージェント、スレッドのコンテキストはNanobotのMCPホスト機能によってウェブ、アプリ、音声アシスタントなど、さまざまなチャネル間で維持される。
基盤となるAPIはチャット履歴や現在の進行状況といったリソースを公開しており、NanobotのUIはこれらを活用して豊富なユーザー体験を提供している。UIがエージェントと対話し、エージェントがさらにゲームエンジンと対話するという、この階層的な設計は、MCPフレームワーク内での構成可能性の強力さを示している。
NanobotのModel Context Protocolエコシステムへの貢献は非常に大きい。特に、「MCPエージェント」という概念に対し、具体的かつ実用的な定義と実装を提供した点が重要である。このプロジェクトは、プロトコルという理論的な定義と、実際に展開可能なAIアプリケーションとの間のギャップを効果的に埋めている。
MCP-UIの統合は特に大きな影響力を持つ。抽象的なツール呼び出しを、具体的でインタラクティブな体験へと変換し、テキストベースのAIエージェントが抱えていた共通の課題に対処している。データを視覚的に検証し、操作できる能力は、ユーザー体験を向上させるだけでなく、潜在的なAIの「幻覚」(事実と異なる情報を生成すること)がシステムの実態に影響を与えるのを防ぐ、堅牢性のレイヤーを導入する。この視覚的なフィードバックループは、信頼性の高いAIエージェントを構築する上で不可欠である。
さらに、Nanobotが描くエージェント間通信のビジョンは、AI開発における魅力的な次の一歩である。多数のバラバラなツールを扱う際にLLMが苦労するという問題は広く認識されているが、Nanobotは複雑な機能を標準化されたエージェントインターフェースにカプセル化することで、スケーラブルな解決策を提供し、コンテキストの複雑さを大幅に軽減し、マルチエージェントシステムの信頼性を向上させる。このモデルは、専門のエージェントがシームレスに連携する、真に構成可能なAIアーキテクチャの可能性を解き放つものである。
現在、Nanobotは主にウェブインターフェースに焦点を当てているが、ユーザー、スレッド、コンテキストを電子メール、SMS、音声、AR/VRなど様々なチャネル(モダリティ)間で管理する基盤となるMCPホストアーキテクチャは、非常に強力な概念である。これは、Nanobotが単なるチャットボットビルダーにとどまらず、マルチモーダルで永続的なAIインタラクションのための基盤レイヤーとしての位置付けを持っていることを示唆する。今後、新たな標準としての広範な採用とコミュニティからの貢献が、その地位を確固たるものにする上での課題となるだろう。