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

検索結果 BaseAI
BaseAI コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
BaseAI を含む検索結果
/ THANKS 10TH GIGA Special LIVE POPPIN BASE in GIGA タイムテーブル発表! \ 🗓️7月30日 (木) ⏰OPEN 12:00 / START 13:00 📍おおきにアリーナ舞洲 #SKE48# #ミミフィーユ# は 17:40~18:10に出演させていただきます🐰🎶 チケットも受付中です!! をチェック✅ #POPPINBASE# #ジャイガ# #GIGA# #GIGA10TH#
もっと見る
# ADKの便利で実践的な使い方 🔧 標準ワークフローでは実現できない独自のオーケストレーションロジックが必要な場面、ありますよね。ADKのCustom Agentsなら、`BaseAgent`を継承して自由自在に制御フローを組み立てられます! 📌 タイトル:Custom Agents — BaseAgent継承による自由な制御フロー設計 🔗 URL: 🧩 概要 Custom Agentsは、`google.adk.agents.BaseAgent`を継承し、`_run_async_impl`メソッドを実装することで、任意のオーケストレーションロジックを構築できる仕組みです。SequentialAgentやParallelAgentなどの定型パターンでは対応できない、条件分岐・ループ・外部状態同期といった高度なワークフローを実現します。サブエージェントの呼び出し、セッション状態の共有、イベントの伝播がフレームワーク標準で管理されます。 🛠 使い方 Custom Agentの基本構造は以下のとおりです。 `google.adk.agents.BaseAgent` を継承して `MyCustomAgent` クラスを定義します。フィールドとして `story_generator`、`critic_agent`、`tone_checker` の3つの `LlmAgent` を宣言します。`_run_async_impl` メソッド内で、まず `self.story_generator.run_async(ctx)` でストーリーを生成し、次に `self.critic_agent.run_async(ctx)` を `for i in range(2)` で最大2回ループして批評・修正を行います。最後に `self.tone_checker.run_async(ctx)` でトーンを確認し、`ctx.session.state.get("tone_result")` が `"negative"` の場合は `self.story_generator.run_async(ctx)` で再生成する条件分岐を行います。各サブエージェントの実行は `async for event in ... yield event` パターンでイベントを伝播します。 サブエージェント間のデータ共有には`ctx.session.state`を使います。 エージェントAが `ctx.session.state["analysis_result"] = result` で結果を書き込み、エージェントBが `ctx.session.state.get("analysis_result")` でそれを読み取ります。 🏗 実践的な使い方 **レガシーステートマシンの再現**: 既存の状態遷移ロジックをCustom Agentに移植できます。`_run_async_impl`内でPythonの標準的な制御構文(if/elif/while/try-except)を使い、状態ごとに異なるサブエージェントを呼び分けます。 `_run_async_impl` 内で `state = "INIT"` から開始し、`while state != "DONE"` でステートマシンを実装します。`"INIT"` 状態では `self.init_agent.run_async(ctx)` を実行し、`ctx.session.state.get("next_state", "PROCESS")` で次の状態を決定します。`"PROCESS"` 状態では `self.process_agent.run_async(ctx)` を実行後 `"REVIEW"` に遷移します。`"REVIEW"` 状態では ` を実行し、`ctx.session.state.get("approved")` が真なら `"DONE"` に、偽なら `"PROCESS"` に戻ります。 **外部状態との同期**: データベースやAPIから取得した状態に基づいて実行パスを動的に切り替えられます。例えば、外部システムのステータスを確認してから次のエージェントを選択するパターンが実現可能です。 💡 ユースケース 🔄 レガシーシステムの状態遷移ロジックをAIエージェントとして再実装 🔀 中間結果に基づく条件分岐ワークフロー(品質チェック → 不合格なら再生成) 🔗 外部API/DBの状態に応じたエージェント選択 🔁 批評・修正の反復ループ(最大N回で打ち切り) ⚠️ 注意点 - `sub_agents`リストには、`_run_async_impl`内で直接呼び出すすべてのサブエージェントを含める必要があります。含めないとフレームワークのライフサイクル管理が正しく動作しません。 - `ctx.session.state`は全サブエージェント間で共有されるため、キー名の衝突に注意してください。プレフィックスをつけるなどの規約を決めておくと安全です。 - 無限ループを防ぐため、ループ処理には必ず最大回数や終了条件を設けてください。 ✨ Custom Agentsは、定型パターンでは収まらない独自のビジネスロジックをエージェントに組み込むための最も柔軟な手段です。ステートマシンの移行や複雑な条件分岐が必要な場面で、ぜひ活用してみてください! #ADK# #AIAgent#
もっと見る
# ADK 2.0の便利だけど知られていない機能 🌍 長時間かかるエージェントワークフローが途中で失敗したとき、最初からやり直さずに続きから再開できたら便利だと思いませんか? ADK 2.0のResumabilityConfigは、ワークフローの実行状態をイベントログとして記録し、失敗時にinvocation_idを指定して途中から再開できる機能です。 📌 タイトル:ワークフローの再開 (ResumabilityConfig) 🔗 URL: 🧩 概要 ResumabilityConfig(is_resumable=True)をAppに設定すると、ワークフロー実行中に完了したタスクがイベントとして記録されます。失敗時にはinvocation_idを指定して再開でき、組み込みエージェントはそれぞれの状態を自動的に復元します。SequentialAgentはcurrent_sub_agentから再開し、LoopAgentはtimes_loopedの値を保持して残りの反復を実行し、ParallelAgentは未完了のサブエージェントのみを実行します。これにより、大規模なパイプラインで一部のステップが失敗しても、完了済みのステップを再実行する無駄を省けます。 🛠 使い方 AppにResumabilityConfigを設定し、再開時にinvocation_idを渡します。 ```python from adk import App, ResumabilityConfig app = App( agent=my_workflow, resumability_config=ResumabilityConfig(is_resumable=True) ) # 初回実行 result = await "process data") invocation_id = result.invocation_id # 失敗後の再開(同じinvocation_idを指定) resumed_result = await input="process data", invocation_id=invocation_id ) ``` カスタムエージェントで再開に対応する場合は、BaseAgentStateを拡張して独自の状態を保存します。 🏗 本番システムへの組み込み方 ・invocation_idをデータベースやメッセージキューに保存し、リトライ時に参照できるようにする ・ツールの冪等性を担保する(ツールは少なくとも1回実行され、再開時に再実行される可能性がある) ・カスタムエージェントではBaseAgentStateを拡張し、再開に必要な中間状態を明示的に定義する ・長時間ワークフローでは定期的にチェックポイントとなるステップを設け、再開の粒度を細かくする 💡 ユースケース 📊 数十ステップの大規模データ処理パイプラインで、途中失敗からの効率的な復旧 💰 外部API呼び出しを含むワークフローで、API課金の無駄な再実行を回避 🔄 不安定なネットワーク環境での長時間エージェント実行の信頼性向上 🏭 バッチ処理ジョブで一部アイテムの処理失敗時に残りを継続処理 ⚠️ 注意点 ツールは再開時に少なくとも1回実行されるため、副作用を持つツール(データベース書き込み、外部API呼び出しなど)は必ず冪等に設計してください。同じ入力で複数回実行しても結果が変わらないことを保証する必要があります。また、ParallelAgentの再開では完了判定がサブエージェント単位であるため、サブエージェント内部の途中状態は保持されない点に留意してください。 ✨ ResumabilityConfigにより、長時間ワークフローの運用が劇的に楽になります。特にコストのかかるステップを含むパイプラインでは、導入効果が大きいです。 #ADK# #AIAgent#
もっと見る