ホームへ戻る

代理框架與 MCP

Agno 3.0.6、通知とストリーム再開を断念する代わりにMCPサービスのステートレスな水平スケーリングを実現

Agno 3.0.6はステートレスMCPトランスポートを追加し、session affinityを設定しなくても、どのレプリカでもリクエストを引き継げるようにした。同時にプロトコルバージョンネゴシエーションとServer Cardも導入したが、既存デプロイとの互換性を維持するため、従来のセッション方式が引き続きデフォルトとなる。

Ilario · CC BY-SA 3.0 · Image source
zh-Hant

Agno 3.0.6は、MCPサーバーをセッションに紐づく方式から、オプションのステートレスデプロイへと拡張した。開発者が`MCPConfig(stateless=True)`を設定すると、`/mcp`リクエストはサーバー側のsessionに依存しなくなる。そのため、Kubernetesなどの複数レプリカ環境では、同一クライアントをsticky sessionによって元のノードに固定しなくても、任意のインスタンスが後続リクエストを処理できる。これにより、水平スケーリング、フェイルオーバー、ロードバランシングが簡素化される。ただし、無償で移行できるわけではない。ステートレスモードではサーバー主導の通知がサポートされず、SSEストリームが中断した際の再開機能も失われるため、新バージョンでもデフォルトでは無効になっている。

クライアントには、プロトコル世代を選択するための`MCPTools(protocol_mode=...)`が追加された。デフォルト値の`legacy`は、従来のsessionを伴うハンドシェイクを維持する。`auto`に設定した場合にのみ、2026-07-28プロトコル世代のsessionlessな動作を含め、双方が共通してサポートする最新バージョンがネゴシエーションされる。基盤となるMCP clientは`fastmcp.Client`上に再構築された。このデフォルト設定は重要だ。パッケージをアップグレードしても既存サーバーのセマンティクスは自動的には変わらない一方、新しいトランスポートを採用するチームは、設定を明示的に変更し、リバースプロキシ、タイムアウト、リトライ、ストリーム処理を再テストする必要がある。

AgentOSはさらに、`GET /mcp/server-card`で名前、バージョン、命令、利用可能なツールの一覧を公開し、デプロイ側がサービスの機能を事前に探索できるようにした。また、新バージョンでは`AuthorizationConfig.excluded_route_paths`を使って、指定したカスタムルートをグローバル認証を無効にすることなく公開できる。これはヘルスチェックや公開metadataには便利だが、監査が必要な権限上の例外も新たに生じる。

今回のリリースではこのほか、Anthropic thinking blockの再生、Gemini画像のMIME type、末尾chunkの重複、ストリーミングエラーの伝播に関する問題も修正された。エンジニアは次の段階として、ステートレスモードにおける冪等性とリトライのセマンティクスを検証し、アプリケーションが通知、ストリーム再開、ノードローカルな状態へ暗黙的に依存していないことを確認すべきだ。「どのレプリカでも応答できる」という性質が解決するのはトランスポートのsessionだけであり、Agentのメモリ、ツールの副作用、データベースtransactionまで自動的にステートレスになるわけではない。

出典

  1. Release v3.0.6 · agno-agi/agno
  2. agno 3.0.6