Skip to content

FirestoreSessionService/VertexAiSessionService gap with agent engine #497

@mohan-ganesh

Description

@mohan-ganesh

the Java ADK lacks a straightforward, production-ready, and easily configurable solution for persistent session management. This presents a significant challenge for developers looking to move their agents beyond local testing into a distributed or production environment.

The current options have major limitations:
InMemorySessionService: This service is excellent for local development and simple examples. However, it is not a viable solution for production use cases, as it cannot preserve state across application restarts, nor can it be used in a distributed environment with multiple application instances.

VertexAiSessionService: This is the only provided option for persistence, but it introduces an extremely high barrier to entry. It requires deploying a "Reasoning Engine," which appears to be a complex, undocumented preview feature. The process for creating and managing a Reasoning Engine is not clear, with no obvious gcloud commands and a reliance on discovering the correct raw API calls. This makes the only persistent option effectively unusable for many developers.

The solution you'd like
We request the addition of a native FirestoreSessionService implementation as a core part of the Java ADK.
Why this solution is needed:
A Clear Production Path: Firestore is a scalable, serverless, and widely-used Google Cloud database. It would provide a clear, simple, and robust "happy path" for developers needing persistent sessions in production.
Ease of Use: Enabling Firestore and configuring it in a Java application is a well-understood and simple process, unlike the current complexity of setting up a Reasoning Engine.

Addressing a Known Gap: The need for this feature is so high that even Google's own AI models (Gemini Pro and Flash) frequently hallucinate and suggest FirestoreSessionService as the correct solution. This indicates a significant gap in the developer experience and a clear demand for this specific feature. It causes confusion and wasted development time when developers discover the suggested class does not exist.

What is the core question we are asking?

Is the Google ADK team planning to add a FirestoreSessionService as a part of the ADK?
If not, could the team please provide guidance on the officially recommended best practice for managing persistent sessions for a Java agent in a production environment, given the challenges with VertexAiSessionService?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions