Skip to content

Conversation

@guillaumeblaquiere
Copy link
Contributor

Special in memory session management for A2A agent that only execute tasks

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @guillaumeblaquiere, 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 addresses issue #3458 by implementing a dedicated in-memory session management strategy for A2A agents. The change ensures that agents designed solely for task execution utilize transient, in-memory storage for their core services, including memory, session, artifact, and credentials. This approach prevents persistent state accumulation for these specific agent types, optimizing their performance and resource footprint.

Highlights

  • In-Memory Service Activation: The pull request activates specialized in-memory services for A2A (Agent-to-Agent) runners, specifically for agents that primarily execute tasks.
  • Runner Service Overrides: The _get_a2a_runner_async function now creates a shallow copy of the runner and overrides its memory_service, session_service, artifact_service, and credential_service with InMemory implementations.
  • Dependency Addition: The copy module has been imported to facilitate the shallow copying of the runner object.
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 by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

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 pull request 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

  1. 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.

@adk-bot
Copy link
Collaborator

adk-bot commented Nov 17, 2025

Response from ADK Triaging Agent

Hello @guillaumeblaquiere, thank you for creating this PR!

Could you please include a testing plan section in your PR to talk about how you will test? This will save time for PR review. See Testing Requirements section for more details.

In addition, could you please provide logs or screenshot after the fix is applied?

This information will help reviewers to review your PR more efficiently. Thanks!

@adk-bot adk-bot added the core [Component] This issue is related to the core interface and implementation label Nov 17, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a 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 modifies the A2A agent runner creation to use in-memory services for session, memory, artifact, and credential management. This is achieved by creating a copy of the standard runner and replacing its services. My review focuses on making this approach more robust. I've suggested replacing the shallow copy (copy.copy()) with the explicit instantiation of a new Runner object. This improves code clarity, reduces dependency on the internal implementation of the Runner class, and makes the code more resilient to future changes, better ensuring the isolation of A2A agent executions.

guillaumeblaquiere and others added 2 commits November 17, 2025 20:49
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@ryanaiagent ryanaiagent self-assigned this Nov 18, 2025
@ryanaiagent
Copy link
Collaborator

Hi @guillaumeblaquiere , Thank you for your contribution! We appreciate you taking the time to submit this pull request. Your PR has been received by the team and is currently under review. We will provide feedback as soon as we have an update to share.

@ryanaiagent ryanaiagent added a2a [Component] This issue is related a2a support inside ADK. needs-review [Status] The PR is awaiting review from the maintainer labels Nov 20, 2025
@ryanaiagent
Copy link
Collaborator

Hi @DeanChensj , can you please review this.

@ryanaiagent ryanaiagent removed the core [Component] This issue is related to the core interface and implementation label Nov 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a2a [Component] This issue is related a2a support inside ADK. needs-review [Status] The PR is awaiting review from the maintainer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants