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.
feat: adds a resilient reimbursement agent using Restate
This pull request introduces a new sample agent, which demonstrates how to build a resilient A2A agents using Restate.
Why?
Restate is a framework that simplifies building resilient applications. In this example, Restate acts as a scalable, resilient task orchestrator that speaks the A2A protocol and gives you a lot of resiliency features: retries, recovery, task control, idempotency, etc.
Changes
Below are the most important changes:
README.md
for the Restate reimbursement agent, explaining its features, prerequisites, setup instructions, and usage.__main__.py
to serve the Restate reimbursement agent as an A2A server.middleware.py
agent.py
. This agent is identical to the Google ADK example. But now fully resilient.How to run?
See example readme.
Note: I ran the nox formatter which caused some tool parameters (
create_request_form
) to change fromOptional[str]
tostr | None
causing issues with the LLM calls. This also persists with the pure Google ADK example (#422) Therefore, I reverted those types toOptional[str]
.