# `ADK.A2A.Client`
[🔗](https://github.com/zeroasterisk/adk-elixir/blob/main/lib/adk/a2a/client.ex#L2)

A2A protocol client — delegates to `A2A.Client` from the
[a2a](https://github.com/zeroasterisk/a2a-elixir) package.

Updated for A2A v1.0.

# `cancel_task`

```elixir
@spec cancel_task(String.t(), String.t(), keyword()) ::
  {:ok, map()} | {:error, term()}
```

Cancel a task on a remote A2A agent.

# `get_agent_card`

```elixir
@spec get_agent_card(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, term()}
```

Fetch the Agent Card from a remote A2A server.

# `get_task`

```elixir
@spec get_task(String.t(), String.t(), keyword()) :: {:ok, map()} | {:error, term()}
```

Get a task's status and history from a remote A2A agent.

# `send_streaming_message`

```elixir
@spec send_streaming_message(String.t(), String.t(), keyword()) ::
  {:ok, Enumerable.t()} | {:error, term()}
```

Send a streaming message to a remote A2A agent.

# `send_task`

```elixir
@spec send_task(String.t(), String.t(), keyword()) :: {:ok, map()} | {:error, term()}
```

Send a message (task) to a remote A2A agent.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
