-
Notifications
You must be signed in to change notification settings - Fork 405
A Sample code to run multiple agents on single host using A2A protocol #325
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
A Sample code to run multiple agents on single host using A2A protocol #325
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @satendrakumar, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request introduces a new sample project demonstrating how to efficiently run multiple A2A (Agent-to-Agent) protocol-based agents on a single host. The sample showcases how different agents can be served under unique URL paths using FastAPI, eliminating the need for separate servers or ports for each agent.
Highlights
- New Sample Project: This pull request introduces a new sample project named
a2a-multiple-agents-on-single-host
. - Consolidated Agent Hosting: The sample demonstrates how to run multiple A2A agents (Conversational, Trending Topics, Analyzer) efficiently on a single FastAPI instance.
- Unique URL Paths: Each agent is configured to be accessible via a distinct URL path (e.g.,
/conversation/
,/trending/
,/analyzer/
), simplifying deployment and management. - Client Interaction Example: A Python client application (
a2a_client_app.py
) is included to illustrate how to interact with these agents, showcasing concurrent calls and multi-turn conversational flows. - Comprehensive Documentation: A detailed
README.md
provides comprehensive setup instructions, environment variable guidance, and examples for testing the agents using a command-line interface.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/
folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a valuable sample for running multiple A2A agents on a single host. The implementation is clear and demonstrates the concept well. My review includes several suggestions to improve correctness, maintainability, and performance. Key points include adding a check for a required environment variable, fixing a recurring typo in model names, and optimizing the HTTP client usage. I've also pointed out opportunities to refactor duplicated code and clean up imports for better code quality.
samples/python/agents/a2a-multiple-agents-on-single-host/src/agent/conversation_agent.py
Outdated
Show resolved
Hide resolved
samples/python/agents/a2a-multiple-agents-on-single-host/src/a2a/a2a_client.py
Outdated
Show resolved
Hide resolved
samples/python/agents/a2a-multiple-agents-on-single-host/src/agent/analyzer_agent.py
Outdated
Show resolved
Hide resolved
samples/python/agents/a2a-multiple-agents-on-single-host/src/agent/trending_topics_agent.py
Outdated
Show resolved
Hide resolved
samples/python/agents/a2a-multiple-agents-on-single-host/src/a2a/a2a_client.py
Outdated
Show resolved
Hide resolved
samples/python/agents/a2a-multiple-agents-on-single-host/src/agent/analyzer_agent.py
Outdated
Show resolved
Hide resolved
samples/python/agents/a2a-multiple-agents-on-single-host/a2a_client_app.py
Outdated
Show resolved
Hide resolved
samples/python/agents/a2a-multiple-agents-on-single-host/src/agent/conversation_agent.py
Outdated
Show resolved
Hide resolved
samples/python/agents/a2a-multiple-agents-on-single-host/src/agent/trending_topics_agent.py
Outdated
Show resolved
Hide resolved
@holtskinner Could you please review the PR and share any feedback or suggestions? |
Description
A Sample code to run multiple agents on single host using A2A protocol
Thank you for opening a Pull Request!
Before submitting your PR, there are a few things you can do to make sure it goes smoothly:
CONTRIBUTING
Guide.