feat(a2a): configurable request handler #601
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This change allows customers to configure the following attributes of the A2A request handler:
task_store
: Custom task storage implementation (defaults toInMemoryTaskStore
)queue_manager
: Custom message queue management (optional)push_config_store
: Custom push notification configuration storage (optional)push_sender
: Custom push notification sender implementation (optional)These parameters are now optional constructor arguments in
A2AServer
, providing extensibility points for custom implementations while maintaining backward compatibility.Backward Compatibility: There are no functional changes to existing A2AServer usage - all new parameters have sensible defaults.
Usage Examples
Basic usage (unchanged):
With custom task storage:
With push notifications:
Full configuration example:
Interface Requirements
Custom implementations must follow these interfaces:
task_store
: Must implementTaskStore
interface froma2a.server.tasks
queue_manager
: Must implementQueueManager
interface froma2a.server.events
push_config_store
: Must implementPushNotificationConfigStore
interface froma2a.server.tasks
push_sender
: Must implementPushNotificationSender
interface froma2a.server.tasks
See the A2A server documentation for detailed interface specifications.
Related Issues
Documentation PR
Type of Change
Enhancement/New feature
Breaking Changes
None - all new parameters are optional with backward-compatible defaults.
Testing
How have you tested the change? Verify that the changes do not break functionality or introduce warnings in consuming repositories: agents-docs, agents-tools, agents-cli
hatch run prepare
Checklist
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.