a2aproject / a2aproject/a2a-dotnet

Provide a way to pass per-request HTTP headers to client methods

Open
#107 8 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
262
Forks
64
Avg merge
5d 2h
Merged PRs (30d)
31

Description

For per "session" headers, a HttpClient instance with preconfigured headers can be passed into the constructor of the A2A Client.
https://github.com/a2aproject/a2a-dotnet/blob/aa35e9d66c3448fe83cc6dc2e6b236b7b5af868b/src/A2A/Client/A2AClient.cs#L22

However, for headers that need to be sent for a single request, there currently is no solution. Per-request headers are required for Authentication headers in a multi-user client agent.

## Option 1:

Add a new optional dictionary parameter to each client method that is used to populate the HTTP request headers before calling the server.

## Option 2:

Leverage the metadata property currently defined on request payloads, and possibly use the "extensions" mechanism to define a "https://a2aextensions.com/httpfields" extension that can be processed by the client before sending the request.

Contributor guide

Open the contributing guide

Research direction

Examine the A2AClient constructor and methods in src/A2A/Client/A2AClient.cs to understand the current HTTP client usage. Review how request payloads handle metadata and extensions. Determine where to inject per-request headers, either via a new method parameter or through the existing metadata/extensions mechanism. Test by modifying a client method and verifying headers are sent correctly in a request.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
api, backend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.