🤔
Agent EngineにデプロイしたエージェントをSDK経由で呼び出すとAttributeErrorになってしまう
何が起きた?
Google Cloudが提供しているAgent EngineにAgent Development Kit(ADK)で開発したエージェントをSDK経由でデプロイしました。
remote_agent = agent_engines.create(
display_name=AGENT_NAME,
agent_engine=root_agent,
requirements=[
"google-cloud-aiplatform[adk,agent_engines]",
],
)
デプロイは問題なく完了したので、デプロイしたエージェントを呼び出そうとしました。
remote_agent = agent_engines.get(RESOURCE_NAME)
for event in remote_agent.stream_query(
user_id="user-12345",
session_id="session-12345",
message="あなたの役割を教えてください。",
):
print(event)
プログラムを実行してみると、以下のエラーとなってしまいました。
AttributeError: 'AgentEngine' object has no attribute 'stream_query'
原因
結論としては、google-cloud-aiplatform
が1.110.0から1.111.0になるタイミングでAdkAppがGAになったことが起因しています。
from vertexai.preview import reasoning_engines
のAdkAppからfrom vertexai import agent_engines
のAdkAppを使うように変更されています。
from vertexai import agent_engines
のAdkAppでは、register_operations
という利用可能なAPIを定義しているメソッドからstream_query
が削除されています。
from vertexai.preview import reasoning_engines
のregister_operations
from vertexai import agent_engines
のregister_operations
解決策
google-cloud-aiplatform
の1.111.0以降ではasync_stream_query
を使えば良さそうです。
remote_agent = agent_engines.get(RESOURCE_NAME)
async for event in remote_agent.async_stream_query(
user_id="user-12345",
session_id="session-12345",
message="あなたの役割を教えてください。",
):
print(event)
また、今後も同様の問題が発生しないように、"google-cloud-aiplatform[adk,agent_engines]==1.111.0"
といった形でバージョンは固定しておいた方が良いですね。
まとめ
- Agent EngineにデプロイしたエージェントをSDK経由で呼び出すとAttributeErrorになってしまう原因とその解決策についてまとめました。
Discussion