가입 후 초대 링크를 공유하면 동영상 재생 및 초대 보상을 받을 수 있습니다.

cv usk
@cv_usk
AI / Software Research Notes AI Agent, LLMOps, MLOps, Software Architecture 投稿は個人の意見です。
가입 May 2026
257 팔로잉 중    203
# ADK 2.0の便利だけど知られていない機能 🌍 エージェントの会話中に「前に聞いた情報を覚えておいてほしい」と思ったことはありませんか?状態管理の仕組みを理解すれば、それが簡単に実現できます。 ADK 2.0のState機能は、セッション内外でデータを保持・共有するためのキーバリュー型のスクラッチパッドです。プレフィックスによってスコープを使い分けることで、柔軟な状態管理が可能になります。 📌 タイトル:状態 (State) の管理 🔗 URL: 🧩 概要 Stateはキーバリュー形式のデータストアで、4つのプレフィックスによってスコープが決まります。プレフィックスなしはセッションスコープ(そのセッション内でのみ有効)、user:はユーザースコープ(同一ユーザーの複数セッションで共有)、app:はアプリケーションスコープ(全ユーザー・全セッションで共有)、temp:は一時スコープ(インボケーション終了時に破棄)です。エージェントの指示文中では{key}の形式で状態値を参照でき、動的なプロンプト構築が可能です。 🛠 使い方 状態の書き込みにはいくつかの方法があります。 ```python # 1. output_keyでエージェントの出力を自動保存 agent = Agent( name="summarizer", output_key="last_summary", ... ) # 2. EventActions.state_deltaで明示的に設定 from import EventActions actions = EventActions(state_delta={"user:preference": "dark_mode"}) # 3. ToolContext経由でツール内から設定 def my_tool(query: str, tool_context: ToolContext) -> str: tool_context.state["app:global_counter"] = 42 tool_context.state["temp:intermediate"] = "temporary_value" return "done" ``` 指示文での参照は以下のように行います。 ```python agent = Agent( instruction="ユーザーの好みは{user:preference}です。前回の要約:{last_summary}", ... ) ``` 🏗 本番システムへの組み込み方 ・スコープを適切に選択し、不要なデータの永続化を避ける(一時データにはtemp:を活用) ・user:やapp:スコープの状態は複数セッションに影響するため、慎重に設計する ・状態の読み書きは必ずCallbackContextやToolContext経由で行い、イベント追跡を確保する ・状態キーの命名規則を統一し、チーム全体での保守性を向上させる 💡 ユースケース 👤 user:プレフィックスでユーザーの好みや設定を複数セッションにわたって保持 📊 app:プレフィックスでアプリケーション全体の統計情報やカウンターを管理 🔄 output_keyで直前のエージェント出力を次のステップで自動参照 🧹 temp:プレフィックスで中間計算結果を一時保存し、メモリ効率を向上 ⚠️ 注意点 session.stateをコンテキスト外から直接変更しないでください。CallbackContextやToolContextを経由せずに変更すると、イベントトラッキングがバイパスされ、状態の変更履歴が記録されません。これにより、巻き戻し機能やデバッグに支障をきたす可能性があります。 ✨ Stateの4つのスコープを使い分けることで、エージェントの記憶と文脈を柔軟に管理できます。適切な状態管理は、質の高いエージェント体験の基盤です。 #ADK# #AIAgent#
더 보기