From d86606830fffb04e0c75fe11f17808a1b7351ac9 Mon Sep 17 00:00:00 2001 From: Dima Date: Fri, 26 Sep 2025 01:13:18 +0300 Subject: [PATCH 1/3] added require_confirmation_for_transfer flag --- src/google/adk/agents/llm_agent.py | 3 +++ src/google/adk/flows/llm_flows/agent_transfer.py | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index be559222ca..b387b9dc03 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -221,6 +221,9 @@ class LlmAgent(BaseAgent): """ disallow_transfer_to_peers: bool = False """Disallows LLM-controlled transferring to the peer agents.""" + + require_confirmation_for_transfer: bool = False + """Should LLM ask confirmation for transfer from user""" # LLM-based agent transfer configs - End include_contents: Literal['default', 'none'] = 'default' diff --git a/src/google/adk/flows/llm_flows/agent_transfer.py b/src/google/adk/flows/llm_flows/agent_transfer.py index 037b8c6d50..1dee75d896 100644 --- a/src/google/adk/flows/llm_flows/agent_transfer.py +++ b/src/google/adk/flows/llm_flows/agent_transfer.py @@ -56,7 +56,10 @@ async def run_async( ) ]) - transfer_to_agent_tool = FunctionTool(func=transfer_to_agent) + transfer_to_agent_tool = FunctionTool( + func=transfer_to_agent, + require_confirmation=invocation_context.agent.require_confirmation_for_transfer + ) tool_context = ToolContext(invocation_context) await transfer_to_agent_tool.process_llm_request( tool_context=tool_context, llm_request=llm_request From c530f1d4267856121f5d5a098f17d90ddd7612bf Mon Sep 17 00:00:00 2001 From: Whynot63 Date: Fri, 26 Sep 2025 01:19:09 +0300 Subject: [PATCH 2/3] Update src/google/adk/flows/llm_flows/agent_transfer.py Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- src/google/adk/flows/llm_flows/agent_transfer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/google/adk/flows/llm_flows/agent_transfer.py b/src/google/adk/flows/llm_flows/agent_transfer.py index 1dee75d896..0fae5b4d16 100644 --- a/src/google/adk/flows/llm_flows/agent_transfer.py +++ b/src/google/adk/flows/llm_flows/agent_transfer.py @@ -57,8 +57,8 @@ async def run_async( ]) transfer_to_agent_tool = FunctionTool( - func=transfer_to_agent, - require_confirmation=invocation_context.agent.require_confirmation_for_transfer + func=transfer_to_agent, + require_confirmation=invocation_context.agent.require_confirmation_for_transfer ) tool_context = ToolContext(invocation_context) await transfer_to_agent_tool.process_llm_request( From 917978a52b6880feb2e2cb30c07319d34559f131 Mon Sep 17 00:00:00 2001 From: Whynot63 Date: Fri, 26 Sep 2025 01:19:39 +0300 Subject: [PATCH 3/3] Update src/google/adk/agents/llm_agent.py Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- src/google/adk/agents/llm_agent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index b387b9dc03..70d57c27e7 100644 --- a/src/google/adk/agents/llm_agent.py +++ b/src/google/adk/agents/llm_agent.py @@ -223,7 +223,7 @@ class LlmAgent(BaseAgent): """Disallows LLM-controlled transferring to the peer agents.""" require_confirmation_for_transfer: bool = False - """Should LLM ask confirmation for transfer from user""" + """If True, requires user confirmation before transferring to another agent.""" # LLM-based agent transfer configs - End include_contents: Literal['default', 'none'] = 'default'