読んでまず思ったのは、AIエージェントの話なのに、結局かなり地に足のついたセキュリティ設計の話になっているな、ということだった。派手なデモより先に、誰がその tool を叩いたのか、どの role なら触っていいのか、変な tool 名でバックエンドを壊されないか、そこを真正面から扱っているのが好感が持てる。
特に引っかかったのは、記事が「エージェントは賢いから安心」という空気を完全に否定しているところだと思う。Goose みたいな client が Quarkus の MCP server に直接つながるだけなら、たしかに動く。でも本番に置いた瞬間、認証も認可も境界防御も薄いままになる。ここで agentgateway を間に入れて、JWT の検証、RBAC、guardrail までまとめて面倒を見る、という発想はかなりまっとうだ。AI まわりは新しい言葉が多いけれど、やっていることは結局「入口でちゃんと絞る」に尽きるのだなと思う。
もうひとつ面白かったのは、agentgateway が単なる HTTP のリバースプロキシではなく、MCP の JSON-RPC や tool call の粒度まで理解している点だ。ここは普通の API gateway とは少し違う。tool 名に ../ や __proto__ を混ぜるような話まで出てきて、ああ、AI agent の世界では“入力”の形が人間のフォーム入力よりずっと不安定なんだなと改めて感じた。バックエンドだけで全部守るのは、正直かなりしんどいはずだ。
ただ、実運用に入ったときの面倒さも同時に見えた。JWT、JWKS、OAuth 2.1、PKCE、CEL でのルール記述……守りは強くなるけれど、そのぶん設定の読み解き力が必要になる。便利そうではあるが、チーム全員がこの運用を回せるのかは少し気になった。そこを越えられるなら、AI agent を“個別の便利ツール”から“ちゃんと管理された業務システム”に持っていく道筋としてはかなり説得力がある。
参考: Part 2: Securing and Scaling Goose-to-Java Agent Traffic With agentgateway