註冊並分享邀請連結,可獲得影片播放與邀請獎勵。

cv usk
@cv_usk
AI / Software Research Notes AI Agent, LLMOps, MLOps, Software Architecture 投稿は個人の意見です。
加入 May 2026
270 正在關注    316 粉絲
# ADK 2.0の便利だけど知られていない機能 🌍 数分〜数時間かかる処理をエージェントのツールとして扱いたい場合、どうすればよいでしょうか? ADK 2.0の `LongRunningFunctionTool` は、長時間実行されるタスクのオーケストレーションを管理するための専用クラスです。実際の重い処理は別サーバーで実行しつつ、エージェント側では進捗管理と状態遷移を制御できます。 📌 タイトル:Long Running Function ツール 🔗 URL: 🧩 概要 `LongRunningFunctionTool` は、長時間かかるタスクをエージェントワークフローに統合するためのクラスです。処理は4つのフェーズで進行します。開始フェーズでタスクを発行し、初期更新フェーズで進捗を通知し、続行/待機フェーズでクライアントが次のアクションを判断し、フレームワーク処理フェーズでエージェントランナーが一時停止を管理します。重要なのは、このクラスはオーケストレーションを管理するものであり、実際の長時間タスクの実行自体は行わないという点です。 🛠 使い方 ツール関数はステータスとチケットIDを含む辞書を返し、フレームワークがその状態を管理します。 ```python from adk import LongRunningFunctionTool def start_training(model_name: str, dataset: str) -> dict: """モデルトレーニングを開始する""" # 外部サーバーにリクエストを送信 ticket_id = external_api.start_job(model_name, dataset) return { "status": "in_progress", "ticket_id": ticket_id, "message": "トレーニングを開始しました" } tool = LongRunningFunctionTool(func=start_training) ``` エージェントランナーは返された状態に基づいて実行を一時停止し、クライアントが「続行」か「待機」かを決定します。実際の計算処理は別サーバーで行い、ツール関数はその進捗確認と状態報告のみを担当します。 🏗 本番システムへの組み込み方 ・実際の重い計算処理は専用のコンピュートサーバーで実行し、ツール関数はAPIコールのみ行う ・チケットIDを使った進捗追跡の仕組みを構築し、ポーリングまたはWebhookで状態を更新する ・タイムアウトとエラーハンドリングを適切に設定し、タスクの失敗を検知できるようにする ・クライアント側で待機/続行の判断ロジックを実装し、ユーザー体験を損なわないようにする 💡 ユースケース 🤖 機械学習モデルのトレーニングジョブの管理と進捗追跡 🎬 動画エンコードやレンダリングなど時間のかかるメディア処理 📦 大規模データのETLパイプラインの実行管理 🧪 長時間かかるテストスイートやベンチマークの実行と結果取得 ⚠️ 注意点 `LongRunningFunctionTool` はオーケストレーション(状態管理と進捗追跡)を管理するものであり、実際の長時間タスクを実行するものではありません。重い処理は必ず別のサーバーやサービスで実行してください。また、セッションの有効期限やメモリ管理にも注意が必要です。長時間のタスクではセッションが切断されるリスクがあるため、状態の永続化を検討してください。 ✨ 長時間タスクをエージェントワークフローにシームレスに統合できるこの機能は、実用的なAIシステム構築において非常に強力です。計算処理とオーケストレーションの責務を明確に分離しましょう。 #ADK# #AIAgent#
顯示更多