AI News HubLIVE
サイト内リライト2 分で読了

Google ColabでナノボットスタイルのAIエージェントを構築:ツール呼び出し、セッションメモリ、スキル、MCPサーバー

このチュートリアルでは、Google Colabで軽量なパーソナルAIエージェントを構築する方法を解説します。ナノボットのコアアーキテクチャに触発され、プロバイダ抽象化から始め、ツール登録、セッションメモリ、ライフサイクルフック、スキル、MCPスタイルのサーバーを追加します。各構成要素を自分で再構築することで、メッセージ、ツール、メモリ、モデル応答がどのように連携するかを理解できます。

ソースMarkTechPost著者: Sana Hassan

このチュートリアルでは、ナノボットのコアアーキテクチャに触発された軽量なパーソナルAIエージェントをGoogle Colabで構築する方法を詳しく説明します。プロバイダ抽象化から始めて、ツール登録、セッションメモリ、ライフサイクルフック、スキル、MCPスタイルのサーバーを段階的に追加していきます。外部フレームワークに頼らず、各構成要素をゼロから再現することで、メッセージ、ツール、メモリ、モデル応答がエージェントループ内でどのように連携するかを明確に理解できます。

最初に環境を設定し、必要な依存関係(openai、nest_asyncioなど)をインストールしてモジュールをインポートします。次に、データクラスToolCall、Usage、LLMResponseと基底クラスProviderを定義します。OpenAICompatibleProviderは、OpenAIおよび互換ゲートウェイ(OpenRouter、DeepSeek、Together、vLLM、LM Studioなど)と連携します。APIキーが不要なモックプロバイダMockProviderも作成し、ルールベースでLLMの動作を模倣します。これにより、オフラインでもエージェントループ、ツール呼び出し、メモリの動作を確認できます。

次にツール登録システムを構築します。@toolデコレータを使って通常の関数をToolオブジェクトに変換し、型ヒントとドキュメント文字列からJSONスキーマを自動生成します。例えば、calculator関数は数式を受け取り結果を返します。セッションメモリはsession_memoryデコレータで管理され、ユーザーの名前や好みなどの事実を記憶し、後で呼び出せます。ライフサイクルフック(before_tool、after_tool)により、ツール実行前後にログ記録やパラメータ検証などのカスタムロジックを挿入できます。

さらに、asyncioベースのMCPサーバーを実装します。JSON-RPCインターフェースを提供し、ツールをネットワーク経由でリモート呼び出し可能にします。最後に、すべてのコンポーネントを統合して完全なエージェントループを組み立てます。ユーザーメッセージを受け取り、プロバイダを通じて応答を生成し、必要に応じてツールを呼び出し、結果を処理して対話を続けます。デモ用例として、電卓、時刻照会、Pythonコード実行、事実記憶などが含まれます。

このチュートリアルは外部フレームワークに依存せず、すべての構成要素を自己完結的に説明しているため、メッセージ、ツール、メモリ、モデル応答がどのように連携するかを深く理解できます。コードはColabで完全に実行可能で、MockProviderを実際のプロバイダに置き換えることで本番環境にも容易に展開できます。