google / google/adk-python

RemoteA2aAgent resets A2AClientFactory

Open
#3,158 2 comments 0 reactions 1 assignee Assigned to @seanzhou1023 View on GitHub
a2a needs review
Dominant language
Python
Stars
21.5k
Forks
4k
Avg merge
1d 14h
Merged PRs (30d)
37

Description

`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:
```python
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`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.