はじめに
七尾百合子さん、お誕生日 143日目 おめでとうございます! nikkieです。
Agent Development Kit (ADK) のObservabilityのドキュメントに沿って手を動かしました。
目次
- はじめに
- 目次
- 「Agent Observability with Cloud Trace」
- サンプルの YouTube Shorts エージェントを動かす
- opentelemetry-exporter-gcp-trace
- 宿題事項
- 終わりに
「Agent Observability with Cloud Trace」
ADKで構築したエージェントのトレースを、Google Cloudのサービス「Cloud Trace」に記録します。
といっても大掛かりな準備は必要なく
- 環境変数
GOOGLE_CLOUD_PROJECTにGoogle Cloudのプロジェクトを指定 adk webに--trace_to_cloudオプションを指定Whether to enable cloud trace for telemetry.
adk api_serverでもサポートしています
これだけです。
% GOOGLE_CLOUD_PROJECT=<プロジェクト名> uvx --from google-adk adk web --trace_to_cloud
サンプルの YouTube Shorts エージェントを動かす
AgentToolを使ったバージョンを動かします。
モデルの指定を最新化しました
「write me a script on how to build AI agents」
Cloud Trace


Web UIのTraceの情報ですね(左のメニューからEventsタブ)

Cloud Traceには無料枠があります。
このブログの内容は無料の範囲で試せるでしょう。
https://cloud.google.com/stackdriver/pricing?hl=ja
毎月の無料割り当て量
請求先アカウントあたり最初の 250 万スパン
opentelemetry-exporter-gcp-trace
--trace_to_cloudオプションの指定だけでCloud Traceが有効になるのは、Googleが実装してくれているからです。
使われているパッケージが、opentelemetry-exporter-gcp-trace1
https://pypi.org/project/opentelemetry-exporter-gcp-trace/
実装抜粋
https://github.com/google/adk-python/blob/v1.9.0/src/google/adk/cli/fast_api.py#L200-L203
from opentelemetry.sdk.trace import export from opentelemetry.sdk.trace import TracerProvider from opentelemetry.exporter.cloud_trace import CloudTraceSpanExporter def register_processors(provider: TracerProvider) -> None: processor = export.BatchSpanProcessor( CloudTraceSpanExporter(project_id=project_id) ) provider.add_span_processor(processor) extra_fast_api_args.update( register_processors=register_processors, )
これで、gcp.vertex.agent.llm_requestやgcp.vertex.agent.llm_responseを含めてトレースされているという理解です(もっと知るにはexporterの実装が積ん読)
宿題事項
gcp.vertex.agent.llm_requestやgcp.vertex.agent.llm_responseのテキスト全体を見る方法はあるのかな?
Cloud Traceの「Details」では何百文字かで切れている印象
もっというとLLMへのプロンプト全体をトレースする方法はあるのでしょうか?
LLM APIの呼び出しについて、全てを手に取るように把握したいんです!
google-genaiではできていたのですが、果たして
終わりに
ADKのドキュメントに見つけた--trace_to_cloudオプションで、簡単にCloud Traceにトレースを記録できました。
この簡単さ、LangSmithみたいですね。
私がほしいトレースはデフォルトのものよりももう少し詳しいものなので、素振りの余地を残しています