登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

検索結果 AgentLoop
AgentLoop コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
AgentLoop を含む検索結果
ありがたいことに、8月は以下の勉強会・イベントで登壇させていただきます。 8/11(火)MLOps/LLMOps/AgentOps勉強会 8/31(月)BPStudy#228〜LLM・AIエージェントシステムベストプラクティス# どちらも8/20発売の『LLM・AIエージェントシステムベストプラクティス』についてお話します。 よろしくお願いします。
もっと見る
# ADKの便利で実践的な使い方 ⚡ Python関数をそのままツールに、エージェントもツールに、そして長時間タスクもノンブロッキングで実行 — ADKのFunction Toolsは、ツール定義の柔軟性を極限まで高めます。 📌 タイトル:Function Tools — 関数・エージェント・非同期タスクをツール化 🔗 URL: 🧩 概要 ADKのFunction Toolsでは、Python/TypeScriptの関数をそのままエージェントのツールとして利用できます。さらに、AgentToolを使えばエージェント自体をツールとして別のエージェントに提供できます。Long Running Function Toolsは、動画エンコードやバッチ処理のような長時間タスクをブロッキングせずに実行するための仕組みです。 🛠 使い方 基本的な関数ツールの定義とAgentToolの活用例です。 `google.adk`から`Agent`と`AgentTool`をインポートします。シンプルな関数ツールとして`calculate_price`を定義し、`base_price`(float)、`quantity`(int)、`discount_percent`(float、デフォルト0)を受け取り、合計金額を計算してdictで返します。 エージェントのツール化には`AgentTool`を使います。まず`analysis_agent`を`name="data_analyst"`、`tools=[query_database]`で定義し、次に`main_agent`の`tools`リストに`calculate_price`関数と`AgentTool(agent=analysis_agent)`を含めます。これにより、メインエージェントは価格計算関数とデータ分析エージェントの両方をツールとして呼び出せます。 Long Running Function Toolsの使い方です。 `google.adk`から`LongRunningFunctionTool`をインポートします。非同期関数`encode_video`は`video_url`(str)と`format`(str、デフォルト"mp4")を受け取り、`start_encoding_job`でエンコードジョブを開始してジョブIDを返します。この関数を`LongRunningFunctionTool(func=encode_video)`でラップして`video_tool`を作成し、`Agent`の`tools=[video_tool]`に渡すことで、エージェントがブロッキングなしで長時間処理を実行できます。 🏗 実践的な使い方 **AgentToolによるモジュール化**: 複雑な処理を専門エージェントとしてカプセル化し、AgentToolで公開することで、メインエージェントのinstructionをシンプルに保てます。専門エージェントは独自のツールやプロンプトを持てるため、関心の分離が実現します。 `summarizer`(3行要約)と`translator`(英語翻訳)をそれぞれ`Agent`で定義し、メインの`content_manager`エージェントの`tools`リストに`AgentTool(agent=summarizer)`と`AgentTool(agent=translator)`として登録します。これにより、メインエージェントは要約と翻訳の専門エージェントをツールとして呼び出し、コンテンツ管理の依頼を処理できます。 **Long Running Toolsの活用場面**: バッチ処理、外部APIのポーリング待ち、ファイル変換など、完了まで数秒〜数分かかる処理に最適です。エージェントはジョブIDを受け取り、他のタスクを並行して進められます。 **型アノテーションの重要性**: 関数のパラメータ型と戻り値型を明確に定義することで、LLMが正確にツールを呼び出せます。docstringもツールの説明として使われるため、簡潔で明確に書きましょう。 💡 ユースケース 🧮 計算・変換関数のツール化(価格計算、単位変換) 🤖 専門エージェントのAgentTool化による再利用 🎬 動画エンコード・画像処理の非同期実行 📊 バッチデータ処理のノンブロッキング実行 ⚠️ 注意点 - 関数のdocstringがツールの説明になるため、LLMが理解しやすい説明を書いてください。docstringがないとツールの用途が不明確になります。 - AgentToolで呼び出されたエージェントは、親エージェントのコンテキストとは別のセッションで動作します。状態の共有には注意が必要です。 - Long Running Function Toolsは完了通知の仕組みを別途実装する必要があります。ポーリングや Webhook での通知を検討してください。 ✨ Function Toolsを使えば、既存のコード資産をそのままエージェントに統合でき、AgentToolでエージェントの再利用も自在。開発効率を大幅に向上させましょう! #ADK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利だけど知られていない機能 🌍 ネストしたエージェントツールの実行中、進捗をリアルタイムにストリーミングしたいと思いませんか? `on_stream` コールバックを使えば、子エージェントの実行イベントを親側でリアルタイムに受け取れます。 📌 タイトル:ネストしたエージェント実行のストリーミング 🔗 URL: 🧩 概要 エージェントを `as_tool()` でツール化する際、`on_stream` パラメータにコールバック関数を設定できます。このコールバックは `AgentToolStreamEvent` を受け取り、子エージェントの実行中に発生するイベント(`raw_response_event`、`run_item_stream_event` など)をリアルタイムで処理できます。イベントの種類は通常のストリーミングと同じ形式なので、既存のストリーミングハンドラを再利用できます。 🛠 使い方 ```python from agents import Agent, Runner research_agent = Agent( name="researcher", instructions="トピックについて詳細に調査してください", ) # ストリーミングコールバック async def handle_stream(event): # raw_response_event: モデルのレスポンス # run_item_stream_event: ツール呼び出し等 if hasattr(event, 'data'): print(f"[研究中] {") parent = Agent( name="coordinator", tools=[ research_agent.as_tool( tool_name="research", tool_description="トピックを調査する", on_stream=handle_stream, ), ], ) # ストリーミング実行 async for event in "AIの最新動向を調査して"): print(event) ``` 🏗 本番システムへの組み込み方 ・子エージェントの処理進捗をUIにリアルタイム表示し、ユーザーに待機感を与えない ・`raw_response_event` で生成テキストを逐次表示する ・`run_item_stream_event` でツール実行状況をログに記録する ・既存のストリーミングUIコンポーネントをそのまま再利用できる 💡 ユースケース 🖥 マルチエージェントの処理進捗をリアルタイムUI表示 📝 子エージェントの応答をタイプライター風に逐次表示 🔍 調査エージェントの検索・分析プロセスの可視化 📊 長時間処理の途中経過をユーザーにフィードバック ⚠️ 注意点 `on_stream` コールバックは子エージェントの実行スレッド内で呼ばれるため、重い処理を行うとエージェント全体のパフォーマンスに影響します。イベントハンドラは軽量に保ち、必要に応じて非同期キューに渡すなどの工夫をしてください。また、すべてのイベント型に対応できるよう、未知のイベントを無視するガード処理を入れておくと安全です。 ✨ ストリーミングで、マルチエージェントの「中身が見える」体験をユーザーに届けましょう。 #OpenAIAgentSDK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 エージェントの内部で何が起きているか、可視化できていますか?ライフサイクルフックを使えば、ロギング・監査・パフォーマンス最適化をエージェントの動作に透過的に組み込めます。 RunHooks と AgentHooks で、エージェントの開始/終了、LLM 呼び出し、ツール実行、ハンドオフの各イベントにカスタムロジックを差し込めます。 📌 タイトル:Agents -- Lifecycle events (hooks) 🔗 URL: 🧩 概要 OpenAI Agent SDK には、エージェントのライフサイクルの各段階でカスタムコードを実行するためのフック機構があります。`RunHooks` はワークフロー全体に適用され、`AgentHooks` は特定のエージェントに適用されます。利用可能なフックには `on_agent_start`/`on_agent_end`、`on_llm_start`/`on_llm_end`、`on_tool_start`/`on_tool_end`、`on_handoff` があります。これらを使って、ロギング、メトリクス収集、監査証跡、データのプリフェッチなどを実装できます。 🛠 使い方 `RunHooks` を継承した `LoggingHooks` クラスを定義し、`async def on_agent_start(self, context, agent)` と `async def on_agent_end(self, context, agent, output)` をオーバーライドしてエージェントの開始・終了時にログを出力します。`Agent` を作成し、` "こんにちは", run_hooks=LoggingHooks())` の `run_hooks` 引数にフックインスタンスを渡して実行します。 🏗 実践的な使い方 **on_llm_end でアウトプットアイテム数ロギング、on_agent_end でトークン使用量ロギング** ワークフロー全体の RunHooks と特定エージェントの AgentHooks を組み合わせて、包括的な監視を実現します。 `RunHooks` を継承した `MetricsRunHooks` クラスでは、`on_agent_end` でワークフロー全体の `total_tokens` や `prompt_tokens` をロギングします。`AgentHooks` を継承した `DetailedAgentHooks` クラスでは、`on_llm_end` で `response.output` のアイテム数を記録します。`Agent` の `hooks=DetailedAgentHooks()` で特定エージェントにフックを適用し、` ..., run_hooks=MetricsRunHooks())` でワークフロー全体のフックも同時に適用して包括的な監視を実現します。 **on_tool_start の ToolContext で監査ログ・分散トレーシング** ツール実行の前後でトレース情報を記録し、問題発生時の調査を容易にします。 `AgentHooks` を継承した `AuditHooks` クラスで、`on_tool_start` では `context.context.trace_id` を取得し、` ` タイムスタンプを構造化ログに記録します。`on_tool_end` では同じ `trace_id` と ` に加え、`result is not None` で成功判定を記録し、分散トレーシングと監査ログを実現します。 **on_handoff でデータプリフェッチによるレイテンシ削減** ハンドオフ先のエージェントが必要とするデータを事前に取得しておくことで、応答速度を改善します。 `RunHooks` を継承した `PrefetchHooks` クラスの `on_handoff` で、` が `"OrderSupportAgent"` の場合に `await db.fetch_orders( と `await db.fetch_payment_methods( を事前取得し、ユーザーコンテキストに格納します。ハンドオフ先が必要なデータを先読みすることでレイテンシを削減します。 💡 ユースケース 📊 on_llm_end で LLM レスポンスのアウトプットアイテム数を記録し、出力品質の監視に活用 💰 on_agent_end でトークン使用量をロギングし、コスト管理ダッシュボードに連携 🔍 on_tool_start/end でツール実行の監査ログと分散トレーシングを自動記録 ⚡ on_handoff でハンドオフ先が必要なデータをプリフェッチし、応答レイテンシを削減 ⚠️ 注意点 - フック内で例外が発生すると、エージェントの実行自体に影響を与える可能性があります。フック内ではtry/exceptで確実にエラーを処理してください。 - フック内で重い処理を行うとエージェント全体のレイテンシが増加します。非同期 I/O やバックグラウンドタスクの活用を検討してください。 - RunHooks と AgentHooks の使い分けを意識しましょう。ワークフロー横断の監視は RunHooks、特定エージェントの詳細監視は AgentHooks が適切です。 ✨ ライフサイクルフックは、エージェントの動作を「ブラックボックス」から「完全可視化」に変えてくれます。本番運用に欠かせない監視・監査・最適化を、エージェントのロジックを汚さずに実現しましょう! #OpenAIAgentSDK# #AIAgent#
もっと見る