先日Kong AI Gateway 2.0がリリースされた。
これはかなり大きな変更で、従来のAI GatewayはAPI Gatewayの仕組み(Service/Route/Plugin等)を使って提供していたのを刷新し、ModelやAgentのような新しいエンティティでAIの設定を定義するモデルとなっている。
エンティティのマッピングについては公式ドキュメントのEntity mappingや
kongctl convertコマンドでdeckのYAMLから変換するとどうなるかを見ていくと理解しやすいが、ポイントとしてはService、Routeと言った概念が使えなくなり、AIに特化している点である。
となると従来のAPI Gatewayはどうなるのか、という話が出てくるが、これは棲み分けという形となりAPI GatewayはAPI Gateway用のCPを用意して管理し、AI GatewayはAI Gateway専用のCPを用意して管理する、というモデルとなる。
図にすると以下のような感じ(とはいえ従来も基本的にはCPはAPI/AIで分けることが推奨だったけども)。

ではAPI GatewayのようなことをAI Gatewayでは出来ないのか、というのが今日の本題。
今回のネタは知的好奇心を満たすためのものであり、推奨される利用方法ではありません。
AI GW2.0をAPI GWの用に使う
AI GW2.0ではエンティティが刷新されたが、トラフィックの流れに関連するエンティティは以下となる。
- Model:LLMのモデルを定義し、どのパスを通ったらどのLLMに到達するかを指定(従来のAI Proxy + Route的なもの)
- MCP server:MCPサーバを指定(従来のMCP Plugin + Service + Route的なもの)
- Agent:Agentを指定(従来のA2A Plugin + Service + Route的なもの)
このうちAgentについては以下のTypeが指定できる。
- A2A:A2Aプロトコルに準拠したAgent
- HTTP:特に何かに準拠しているわけでもない、ただHTTPで通信可能なAgent
後者の方は実質ただのService + Routeとして動作可能で、本題となっている「AI GW2.0をAPI GWの用に使う」の用途に利用できる。
何度も言いますが、「利用できる」だけであり推奨はされていません。
早速試してみる。
Konnect UIの左サイドバーのAI GatewayのAgentsのタブからNew agentを選択する。

Agentの設定項目に移動するので、以下を設定する。
- Display name:
demo-httpbin - Type:
HTTP - URL:
https://httpbin.konghq.com/anything - Base path:
/demo
これだけでOK。これでServiceとRoute相当の設定が完了した。
動作確認してみる。
$ curl localhost:8000/demo
{
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Connection": "keep-alive",
"Host": "httpbin.konghq.com",
...
APIのレスポンスが取得できた。
次にプラグインを適用してみる。
作成したAgentをクリックするとPoliciesというタブが見える。AI GW2.0からはPluginはPolicyという名前に変わったので、ここからプラグインを設定する。

またAdd policyをクリックするとAdd an existing policyとCreate a new policyという項目が表示されると思うが、これはAI GW2.0の特徴で、プラグイン設定を他のものにも使い回せるというものになる。
今回は新規作成ということでCreateの方を選択して進める。
ここではRequest Transformerを選択し、以下の設定を追加する。
- Display name:
demo - Add.Headers:
myheader:demo
その他の項目はデフォルト値を利用する。
これでAPI GWと同じようにヘッダが追加されるか確認する。
動作確認した結果は以下。
$ curl localhost:8000/demo
{
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Connection": "keep-alive",
"Host": "httpbin.konghq.com",
"Myheader": "demo",
...
追加した"Myheader": "demo"が確認できた。
ということで、AI Gateway2.0でもAgentを使えばAPI Gatewayっぽいことが実現できることが確認できた。
ただ、何度もいうがベンダー側が期待している使い方ではないので、小ネタ程度に留めておいて欲しい。