Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Google_ADKのSub_AgentをAgentic_Workflowに移行し_遷移成功率...

Avatar for そのだ そのだ
January 28, 2026

 Google_ADKのSub_AgentをAgentic_Workflowに移行し_遷移成功率を改善した話.pdf

Avatar for そのだ

そのだ

January 28, 2026
Tweet

More Decks by そのだ

Other Decks in Technology

Transcript

  1. 5 © 2025 Leverages Co., Ltd. Google ADKのSub Agentを Agentic

    Workflowに移行し、 遷移成功率を改善した話
  2. 7 © 2025 Leverages Co., Ltd. 苑田 朝彰 普段の業務内容 •

    AI エージェント開発(Google ADK, Strands Agent) • 社内AI推進(AI駆動開発、Agent開発) • クラウド(AWS, Google Cloud) 資格 • AWS Community Builders(ML) • 甲賀流忍者検定(中級) • 2024 AWS Top Engineers(前職) 趣味 • 月一で面白いことをするのにハマってます ◦ Spartanレース ◦ 100kmウォーキング ◦ 無人島かくれんぼ ◦ 滝行 SNS • https://x.com/sonoda_mj • https://zenn.dev/tomomj • https://note.com/sonoda_mj Tomotada Sonoda システム本部/テクノロジー戦略室/AIエージェント開発チーム 自己紹介
  3. 16 © 2025 Leverages Co., Ltd. 会話Agentの構築 人とAIが実際に会話をして、その内容を分析する社内サービスを検証で構築。様々なドメインを持った Sub Agent達が自動で切り替わり、情報を収集する。

    ユーザー Rubyに詳しい Agent AWSに詳しい Agent Google Cloudに詳しい Agent Pythonに詳しい Agent CloudRunを 使ってます!! おっわしの出番か CDKのL3便利だよね〜(AWS Agent) TypeScrip触ったことあります! CDKを書いたことがあるので!! おっなんでTS使ってたん? なるほど!!! わかる〜〜〜 会話Agent (マルチエージェント)
  4. 17 © 2025 Leverages Co., Ltd. 構成図 Cloud Run (Backend)

    アプリケーション ユーザー Langfuse (プロンプト管理 & トレース) Agent Engine (Google ADK) AgentはGoogle ADKで作成し、Agent Engineにデプロイしている。Langfuseはプロンプト管理とト レースを担当。
  5. 18 © 2025 Leverages Co., Ltd. 会話Agentの品質担保 検証フェーズだったので、会話がきちんと終わるかどうかを基準とした。すなわち、タスク完結=会話終 了をゴールとし、100ターン以内で終了しなければ失敗とした。 CDKのL3便利だよね〜(AWS

    Agent) TypeScrip触ったことあります! CDKを書いたことがあるので!! おっなんでTS使ってたん? なるほど!!! Lambdaとか簡単に作れるよな! 他にも色々できるから使ってみてな! ほな会話終了!またね!! 会話終了 CDKのL3便利だよね〜(AWS Agent) TypeScrip触ったことあります! CDKを書いたことがあるので!! おっなんでTS使ってたん? なるほど!!! Lambdaとか簡単に作れるよな! (会話のループ) ループ発生で終了できない (まだ終わらんのかな・・・)
  6. 19 © 2025 Leverages Co., Ltd. 引用:https://google.github.io/adk-docs/agents/multi-agents/#b-llm-driven-delegation-agent-transfer なぜSub Agentを使用したのか Sub

    AgentはAgentToolと違い、親Agentに戻さなくていいので、Agentの返答速度が早いため採用。 Sub Agent Agent Tool ユーザー 親Agent Sub Agent 1 (AWS専門) ユーザー 親Agent ① ② ① Sub Agent 2 (Google Cloud 担当) Sub Agent 1 (AWS専門) Sub Agent 2 (Python専門) Sub Agent 3 (Google Cloud専門)
  7. 20 © 2025 Leverages Co., Ltd. 引用:https://google.github.io/adk-docs/agents/multi-agents/#b-llm-driven-delegation-agent-transfer なぜSub Agentを使用したのか Sub

    AgentはAgentToolと違い、親Agentに戻さなくていいので、Agentの返答速度が早いため採用。 Sub Agent ユーザー 親Agent Sub Agent 1 (AWS専門) Sub Agent 2 (Google Cloud 担当) CloudRunを 使ってます!! Agent Tool ユーザー 親Agent ① ② Sub Agent 1 (AWS専門) Sub Agent 2 (Python専門) Sub Agent 3 (Google Cloud専門)
  8. 21 © 2025 Leverages Co., Ltd. 引用:https://google.github.io/adk-docs/agents/multi-agents/#b-llm-driven-delegation-agent-transfer なぜSub Agentを使用したのか Sub

    AgentはAgentToolと違い、親Agentに戻さなくていいので、Agentの返答速度が早いため採用。 Sub Agent Agent Tool ユーザー 親Agent Sub Agent 1 (AWS専門) ユーザー 親Agent ① ② Sub Agent 2 (Google Cloud 担当) Google Cloud 担当に聞くか Sub Agent 1 (AWS専門) Sub Agent 2 (Python専門) Sub Agent 3 (Google Cloud専門) 権限譲渡
  9. 22 © 2025 Leverages Co., Ltd. 引用:https://google.github.io/adk-docs/agents/multi-agents/#b-llm-driven-delegation-agent-transfer なぜSub Agentを使用したのか Sub

    AgentはAgentToolと違い、親Agentに戻さなくていいので、Agentの返答速度が早いため採用。 Sub Agent Agent Tool ユーザー 親Agent Sub Agent 1 (AWS専門) ユーザー 親Agent ① ② Sub Agent 2 (Google Cloud 担当) どんな感じで 使ってる? Sub Agent 1 (AWS専門) Sub Agent 2 (Python専門) Sub Agent 3 (Google Cloud専門)
  10. 23 © 2025 Leverages Co., Ltd. 引用:https://google.github.io/adk-docs/agents/multi-agents/#b-llm-driven-delegation-agent-transfer なぜSub Agentを使用したのか Sub

    AgentはAgentToolと違い、親Agentに戻さなくていいので、Agentの返答速度が早いため採用。 Sub Agent Agent Tool ユーザー 親Agent Sub Agent 1 (AWS専門) ユーザー 親Agent ① ② Sub Agent 2 (Google Cloud 担当) GPU使ってます! Sub Agent 1 (AWS専門) Sub Agent 2 (Python専門) Sub Agent 3 (Google Cloud専門)
  11. 24 © 2025 Leverages Co., Ltd. 引用:https://google.github.io/adk-docs/agents/multi-agents/#b-llm-driven-delegation-agent-transfer なぜSub Agentを使用したのか Sub

    AgentはAgentToolと違い、親Agentに戻さなくていいので、Agentの返答速度が早いため採用。 Sub Agent Agent Tool ユーザー 親Agent Sub Agent 1 (AWS専門) ユーザー 親Agent ① ② Sub Agent 2 (Google Cloud 担当) やるやん Sub Agent 1 (AWS専門) Sub Agent 2 (Python専門) Sub Agent 3 (Google Cloud専門)
  12. 25 © 2025 Leverages Co., Ltd. 引用:https://google.github.io/adk-docs/agents/multi-agents/#b-llm-driven-delegation-agent-transfer なぜSub Agentを使用したのか Sub

    AgentはAgentToolと違い、親Agentに戻さなくていいので、Agentの返答速度が早いため採用。 Sub Agent Agent Tool ユーザー 親Agent Sub Agent 1 (AWS専門) ユーザー 親Agent Sub Agent 2 (Google Cloud 担当) Sub Agent 1 (AWS専門) Sub Agent 2 (Python専門) Sub Agent 3 (Google Cloud専門) ① ②
  13. 26 © 2025 Leverages Co., Ltd. 引用:https://google.github.io/adk-docs/agents/multi-agents/#b-llm-driven-delegation-agent-transfer なぜSub Agentを使用したのか Sub

    AgentはAgentToolと違い、親Agentに戻さなくていいので、Agentの返答速度が早いため採用。 Sub Agent Agent Tool ユーザー 親Agent Sub Agent 1 (AWS専門) ユーザー 親Agent Sub Agent 2 (Google Cloud 担当) CloudRunを 使ってます!! Sub Agent 1 (AWS専門) Sub Agent 2 (Python専門) Sub Agent 3 (Google Cloud専門)
  14. 27 © 2025 Leverages Co., Ltd. 引用:https://google.github.io/adk-docs/agents/multi-agents/#b-llm-driven-delegation-agent-transfer なぜSub Agentを使用したのか Sub

    AgentはAgentToolと違い、親Agentに戻さなくていいので、Agentの返答速度が早いため採用。 Sub Agent Agent Tool ユーザー 親Agent Sub Agent 1 (AWS専門) ユーザー 親Agent Sub Agent 2 (Google Cloud 担当) CloudRunって なんや? Sub Agent 1 (AWS専門) Sub Agent 2 (Python専門) Sub Agent 3 (Google Cloud専門)
  15. 28 © 2025 Leverages Co., Ltd. 引用:https://google.github.io/adk-docs/agents/multi-agents/#b-llm-driven-delegation-agent-transfer なぜSub Agentを使用したのか Sub

    AgentはAgentToolと違い、親Agentに戻さなくていいので、Agentの返答速度が早いため採用。 Sub Agent Agent Tool ユーザー 親Agent Sub Agent 1 (AWS専門) ユーザー 親Agent Sub Agent 2 (Google Cloud 担当) サーバレスでええ感じの やつやな Sub Agent 1 (AWS専門) Sub Agent 2 (Python専門) Sub Agent 3 (Google Cloud専門)
  16. 29 © 2025 Leverages Co., Ltd. 引用:https://google.github.io/adk-docs/agents/multi-agents/#b-llm-driven-delegation-agent-transfer なぜSub Agentを使用したのか Sub

    AgentはAgentToolと違い、親Agentに戻さなくていいので、Agentの返答速度が早いため採用。 Sub Agent Agent Tool ユーザー 親Agent Sub Agent 1 (AWS専門) ユーザー 親Agent Sub Agent 2 (Google Cloud 担当) やるやん Sub Agent 1 (AWS専門) Sub Agent 2 (Python専門) Sub Agent 3 (Google Cloud専門)
  17. 30 © 2025 Leverages Co., Ltd. CDKのL3便利だよね〜(AWS Agent) Sub Agentが切り替わらない不具合が発生

    会話のやり取りがある一定数を超えると、メッセージだけ残してSub Agentが切り替わらない不具合が 20%の確率で発生。ユーザーが追加でコメントをしないと切り替わらず、会話が終了しない(定義した品 質を満たせない)。 正しい挙動 TypeScript触ったことあります! CDKを書いたことがあるので!! おっなんでTS使ってたん? なるほど!!! (AWSに詳しいAgent呼ぶ) 今回の挙動 TypeScript触ったことあります! CDKを書いたことがあるので!! おっなんでTS使ってたん? なるほど!!! ・・・あれ??もしもーし? CDKのL3便利だよね〜(AWS Agent) (AWSに詳しいAgent呼ぶ) わかる〜〜〜
  18. 31 © 2025 Leverages Co., Ltd. なぜ切り替わらなかったのか Google ADKでは、Sub Agentが切り替わる時にtransfer_to_agentというツールを呼び出している。コ

    ンテキストが増えてくるとLLMがtransfer_to_agentを呼び出すのを忘れてしまい、音信不通になってし まっていた。 transfer_to_agentを呼び出すプロンプト CDKのL3便利だよね〜 (AWS Agent) TypeScript触ったことあります! CDKを書いたことがあるので!! おっなんでTS使ってたん? なるほど!!! transfer_to_agent (AWSに詳しいAgentを呼ぶ) ① ② ③ Agent名とdescriptionのlistが自動で登録される
  19. 33 © 2025 Leverages Co., Ltd. 解決案その1:死者蘇生対応 Sub Agentの切り替え時に特定の文言を言うように構築していたため、Sub Agentが切り替わらなく、特

    定の文言を入っていたら追加でAgentを呼ぶ通称:死者蘇生対応を行った。 TypeScrip触ったことあります! CDKを書いたことがあるので!! おっなんでTS使ってたん? なるほど!!! CDKのL3便利だよね〜(AWS Agent) transfer_to_agent (AWSに詳しいAgentを呼ぶ) 死者蘇生 (「続き」とAgentに入力) 「なるほど」などの特定の文言を返事した 時は死者蘇生対応する。 「なるほど」などの特定の文言を返事して次の Sub Agentに遷移するようにしている。 これにより、自然な会話を実現。
  20. 34 © 2025 Leverages Co., Ltd. 文字で出てくるtransfert_to_agent 9割5分くらいは正常に終了するが、最後の最後でtransfer_to_agentがテキストで出てくる不具合が発 生。この時点でプロンプトによる制御は不可能だと判断した。 TypeScrip触ったことあります!

    CDKを書いたことがあるので!! おっなんでTS使ってたん? なるほど!!! 「transfer_to_agent」と読み上げる 死者蘇生 (「続き」とAgentに入力) えええ・・・(困惑) プロンプトで「絶対に toolを呼び出すように」 と記載しても制御できなかった。 「transfer_to_agent」の文言を条件に追加 しても良かったが、根本解決になっていな い。
  21. 35 © 2025 Leverages Co., Ltd. 解決案その2:Agentic Workflowへの変更 Agentがメッセージと次のAgent名をJsonで返し、そこから適切な処理をするAgentinc Workflow

    (Custom Agent)に変更。プロンプトによる制御ではないので、不確実性が減り、Agentが切り替わら ない不具合は解消した(今の所バグ報告なし)。 LLMを呼び出す transfer_to_agent (tool) 今までの処理 LLMを呼び出す ・メッセージ生成 ・transfer_to_agentの判断 ・メッセージ生成 終了 ※安定しない (20%の確率で失敗) agent情報を取得 StateのAgent名から プロンプトを取得 次実行エージェントの IDをStateに保存 LLMを呼び出す (JSON生成) 新しい処理 終了 ・メッセージ( json) ・次実行の Agent名(json) ※1回の推論で完 結 EventActionsでAgent間の 状態を共有できる ctx.session.stateに 追加した状態が格納されている
  22. 37 © 2025 Leverages Co., Ltd. まとめ 1. Sub Agentはかっこいいけど、ちゃんと役割を決める必要がある。特にLLMを使うとい

    うことはその分不確実性が上がるということなので、LLMをいかに使わないかを考える 方が良いかもしれない。 2. コンテキストが増えると正しい挙動をしなくなる可能性があるため、きちんと評価する 必要がある。 3. 移行後、この20%の失敗が0%になった。 引用:https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents