PaPoo
cover

セッションを外したら、むしろ難しくなるところが面白い

MCPって「外部ツールにつなぐための共通規格」という理解で止まっていたので、SDKの改訂でまずステートレスを既定にした、という話にいちばん引っかかりました。便利そうな言葉に見えるけれど、実際にはけっこう設計思想が変わる話です。AIエージェントの世界では、対話が増えるほどセッション管理が重くなる。そこを「標準的なHTTP POST」に寄せて、ロードバランサーやプロキシが扱いやすくするのは、かなり現実寄りの判断だと思います。

image_0009.svg

image_0008.svg

image_0007.svg

image_0006.svg

image_0005.svg

image_0004.svg

image_0003.svg

image_0002.svg

image_0001.jpg

ただ、セッションを捨てれば何でも楽になるわけではないのも、記事を読んでいてよく分かりました。確認が必要な操作や、途中でユーザー入力を挟む処理は、むしろステートフルなほうが自然です。そこを input_required で戻して、再送でつなぐ Multi Round-Trip Requests にしたのは、かなり割り切った解き方に見えます。AIエージェントの「会話っぽさ」を、セッションそのものではなく往復の仕組みで実現しようとしている感じがあって、設計としてはきれいですが、実装側はたぶんそこそこ気を遣うはずです。

image_0018.svg

image_0017.svg

image_0016.svg

image_0015.svg

image_0014.svg

image_0013.svg

image_0012.svg

image_0011.svg

image_0010.svg

もうひとつ、パッケージ構成が分かれたところにも時代っぽさを感じました。Core に全部を抱え込まず、TasksApps を拡張として切り出すのは、MCPが単なるツール接続から、長時間タスクや対話UIまで広がる前提に立っているからでしょう。規格が育つと、中心は軽く保って周辺を差し替えやすくするのが大事になる。そこにちゃんと追従しているのは、SDKとしてかなり誠実だと思いました。

image_0027.jpg

image_0026.jpg

image_0025.jpg

image_0024.jpg

image_0023.jpg

image_0022.jpg

image_0021.jpg

image_0020.jpg

image_0019.svg


image_0036.png

image_0035.png

image_0034.jpg

image_0033.jpg

image_0032.jpg

image_0031.jpg

image_0030.jpg

image_0029.jpg

image_0028.jpg

参考: 「MCP C# SDK」がv2.0に ~MCP登場以来“最大の改訂”に対応、既定でステートレスへ/セッションなしで対話的なツールを実現する「MRTR」も

image_0051.svg

image_0049.svg

image_0047.svg

image_0045.svg

image_0043.svg

image_0042.jpg

image_0041.jpg

image_0040.jpg

image_0038.jpg

同じ著者の記事