Skip to content

RemoteA2aAgent resets A2AClientFactory #3158

@matiasanaya

Description

@matiasanaya

class RemoteA2aAgent(BaseAgent): takes in an a2a_client_factory: Optional[A2AClientFactory] = None but within:

async def _ensure_httpx_client(self) -> httpx.AsyncClient:

it overwrites it:

self._a2a_client_factory = A2AClientFactory(
            config=dataclasses.replace(
                self._a2a_client_factory._config,
                httpx_client=self._httpx_client,
            )
        )

which means I can't sub-class it. This is an issue because I need to override the create of A2AClientFactory.

Describe the solution you'd like
Allow the user to provide an A2AClientFactory that will be called to create the A2AClient.

Describe alternatives you've considered
For now I've resolved to monkey patching, which is far from ideal.

Additional context
This is needed in the context of the A2A <> x402 implementation, to get RemoteA2aAgent working with the x402 spec over A2A.

Metadata

Metadata

Assignees

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