0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kong AI GW2.0をAPI GWのように使う

0
Posted at

先日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で分けることが推奨だったけども)。
image.png

では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を選択する。
image.png

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という名前に変わったので、ここからプラグインを設定する。
image.png
また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っぽいことが実現できることが確認できた。
ただ、何度もいうがベンダー側が期待している使い方ではないので、小ネタ程度に留めておいて欲しい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?