diff --git a/src/google/adk/agents/llm_agent.py b/src/google/adk/agents/llm_agent.py index ae38d6c91a..9dc233b37a 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 + """If True, requires user confirmation before transferring to another agent.""" # 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..0fae5b4d16 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