Skip to content

RemoteA2AAgent fails to send taskId in multi-turn scenarios #4934

@kthota-g

Description

@kthota-g

🔴 Required Information

Describe the Bug:
RemoteA2AAgent only sends contextId and doesn't send the associated taskId for multi-turn A2A scenarios.

Steps to Reproduce:

  1. Create an agent with a RemoteA2AAgent as show below. You can use currency agent from a2a-samples repository.
from google.adk.agents.llm_agent import Agent

from google.adk.agents.remote_a2a_agent import RemoteA2aAgent

currency_agent = RemoteA2aAgent(
    name="currency_agent",
    agent_card="http://localhost:10999/.well-known/agent-card.json",
)

root_agent = Agent(
    model='gemini-2.5-flash',
    name='root_agent',
    description='A helpful assistant for user questions.',
    instruction='Helpful assistant to answer user queries. Use currency_agent for any currency related queries from the user',
    sub_agents=[currency_agent]
)
  1. Launch adk web and start a new conversation with message 'How much is 10 USD?'.
  2. A2A agent responds back with message 'Provide the currency to convert to' and task.status='input-required'.
  3. Send the message 'CAD' as user's second turn.

Expected Behavior:
ADK should invoke the remote agent with task_id and context_id for the second turn as the task has not terminated.

Observed Behavior:
ADK only sends the context_id in the ADK payload. This results in unexpected agent behavior and results in creation of new tasks for every turn and stale task records get created.


🟡 Optional Information

a2a_request = A2AMessage(
only sets the context_id.

Ideally RemoteA2AAgent implementation should include the taskId when the task status is in paused awaiting user input such as 'input-required', 'auth-required' states.

Regression:
No

How often has this issue occurred?:

  • Always (100%)

Metadata

Metadata

Assignees

No one assigned

    Labels

    core[Component] This issue is related to the core interface and implementation

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions