# ADK 2.0の便利だけど知られていない機能
🌍 AIエージェントが画像やPDFなどのバイナリデータを扱う際、ファイル管理が煩雑になっていませんか?
ADK 2.0のアーティファクト管理は、エージェントが生成・利用するバイナリデータ(画像、PDF、音声など)をファイル名で識別し、自動バージョニングで管理する仕組みです。
📌 タイトル:アーティファクト管理
🔗 URL:
🧩 概要
アーティファクトは、エージェントのセッション内で生成・保存されるバイナリデータを統一的に管理する機能です。`google.genai.types.Part`のinline_data(データバイト列 + MIMEタイプ)として表現され、ファイル名で識別されます。保存のたびに自動的にバージョン(0, 1, 2...)が付与され、変更履歴を追跡できます。スコープはセッション単位(デフォルト)またはユーザー単位(`user:`プレフィックス)を選択可能です。
🛠 使い方
`context`オブジェクトを通じて、アーティファクトの保存・読込・一覧を操作します。
```python
from google.genai import types
# アーティファクトの保存
image_part = types.Part(inline_data=types.Blob(
data=image_bytes,
mime_type="image/png"
))
version = "report_chart.png", image_part)
# アーティファクトの読込
artifact = context.load_artifact("report_chart.png")
# アーティファクト一覧の取得
artifact_names = context.list_artifacts()
```
開発時は`InMemoryArtifactService`、本番環境では`GcsArtifactService`を使い分けることで、環境に応じた柔軟な運用が可能です。
🏗 本番システムへの組み込み方
・本番環境では`GcsArtifactService`を使用し、永続的なストレージを確保する
・ユーザー横断で共有すべきデータには`user:`プレフィックスでユーザースコープを活用する
・バージョニングを活かして、生成物の変更履歴やロールバックの仕組みを構築する
・MIMEタイプを正しく設定し、ダウンストリームでの処理互換性を保つ
💡 ユースケース
🖼️ エージェントが生成したグラフや図表の保存と再利用
📄 PDF レポートの生成・バージョン管理
🎵 音声合成結果の保存と後続処理への受け渡し
👤 ユーザーごとのプロファイル画像やドキュメントの管理
⚠️ 注意点
`InMemoryArtifactService`はプロセス終了時にデータが消失するため、開発・テスト用途に限定してください。大容量のバイナリデータを大量に保存する場合は、GCSのストレージコストとクォータに注意が必要です。また、セッションスコープのアーティファクトはセッション終了後にアクセスできなくなるため、永続化が必要なデータにはユーザースコープを使用してください。
✨ アーティファクト管理を活用すれば、バイナリデータの取り扱いがシンプルになり、エージェントのマルチモーダル対応が格段に容易になります。
#
ADK# #
AIAgent#