以下の内容はhttps://nikkie-ftnext.hatenablog.com/entry/2025/10/23/233312より取得しました。


ADK で Vertex AI Agent Engine Session Service を使ったとき、GET /apps/{app_name}/users/{user_id}/sessions の返り値の events は常に空のリスト

はじめに

七尾百合子さん、お誕生日 220日目 おめでとうございます! nikkieです。

Google の Agent Development Kit (ADK) で直近知って意外に思ったことです。

目次

GET /apps/{app_name}/users/{user_id}/sessions

adk webadk api_serverAPI を立てると、ADK が実装したエンドポイントを利用できます。
セッション1の一覧を取得するのが、GET /apps/{app_name}/users/{user_id}/sessions

List Sessions

/docs で見ると

返り値には events フィールド(イベントの履歴)があります。

ところが、セッション内のイベントも含めて取得してみると、events は常に0件(空のリスト)でした。

セッション一覧エンドポイントの実装

https://github.com/google/adk-python/blob/v1.17.0/src/google/adk/cli/adk_web_server.py#L742-L755

  • AdkWebServerが持っているセッションサービスのlist_sessionsメソッド呼び出し
  • eval用のセッションを除いて返す

今回セッションサービスに Agent Engine を使っていました。
https://github.com/google/adk-python/blob/v1.17.0/src/google/adk/sessions/vertex_ai_session_service.py#L218-L245
api_client.agent_engines.sessions.list()を叩いています。

直近で Agent Engine の sessions.list エンドポイントを叩いていた2のですが、
https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.reasoningEngines.sessions/list
それを思い出すと、Session には events が含まれません
events を取得するには、セッションIDを指定して別のエンドポイントを叩きます。
https://cloud.google.com/vertex-ai/docs/reference/rest/v1beta1/projects.locations.reasoningEngines.sessions.events/list

vertex_ai_session_service.pyの実装でSessionを作る際にeventsはレスポンスに含まれないので指定できず、events のデフォルト値である空リストとなります。
https://github.com/google/adk-python/blob/v1.17.0/src/google/adk/sessions/session.py#L46

Vertex AI Agent Engine 以外の場合

インメモリセッション
https://github.com/google/adk-python/blob/v1.17.0/src/google/adk/sessions/in_memory_session_service.py#L242
変数名(sessions_without_events)から events は空のリストのように思われます

データベースを使う場合
https://github.com/google/adk-python/blob/v1.17.0/src/google/adk/sessions/database_session_service.py#L582-L587
StorageSessionを見ると、eventsは空になるように思われました。
https://github.com/google/adk-python/blob/v1.17.0/src/google/adk/sessions/database_session_service.py#L146
https://github.com/google/adk-python/blob/v1.17.0/src/google/adk/sessions/database_session_service.py#L615

終わりに

ADKAPI サーバーで、セッションサービスに Vertex AI Agent Engine を使った時、セッション一覧の返り値は events が常に空リストとなります(v1.17.0 時点)。
ソースを確認したところ、インメモリやデータベースのセッションサービスの場合も同様と思われました。

Agent Engine では events を取るとしたら N+1 問題となるので、現状の実装は現実的な落とし所だと思います。
/docs のレスポンスには events のスキーマががっつり載っているので、そこから期待を膨らませた後だと意外な挙動でした。


  1. A data container holding the state and history for one specific conversation between a user and the application.https://google.github.io/adk-docs/runtime/#services



以上の内容はhttps://nikkie-ftnext.hatenablog.com/entry/2025/10/23/233312より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14