Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

VertexAiMemoryBankService

Open
#448 6 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
google-cloud, java
Domain
ai

Research direction

Compare the Python implementation in src/google/adk/memory/vertex_ai_memory_bank_service.py with Java's BaseMemoryService and the Runner constructor that accepts a memory service. Trace how LlmAgent handles memory, then inspect the mentioned search_memory tool and auto_save_to_memory_callback entry points. Done means documenting whether these pieces already integrate or what Java functionality is missing.

Written by the indexing model from the issue text.

Description

I’m interested in using VertexAiMemoryBankService for long-term memory when working with an agent through ADK. I see that the VertexAiMemoryBankService https://github.com/google/adk-python/blob/632bf8b0bcf18ff4e4505e4e5f4c626510f366a2/src/google/adk/memory/vertex_ai_memory_bank_service.py#L38 is implemented in the Python version of ADK, but it’s not yet available in the Java version.

By analogy with the Python version, I can implement my own Java version of VertexAiMemoryBankService (implements BaseMemoryService). I can also create a custom version of VertexAiRunner based on com.google.adk.runner.Runner#Runner(com.google.adk.agents.BaseAgent, java.lang.String, com.google.adk.artifacts.BaseArtifactService, com.google.adk.sessions.BaseSessionService, com.google.adk.memory.BaseMemoryService).

My question is the following: is it enough to simply implement my own version of VertexAiMemoryBankService and pass it into the Runner constructor, since the Java ADK already has the functionality for working with long-term memory implemented at this point? In other words, does the Java ADK already know how to add and retrieve the necessary information from memory by itself for LlmAgent? Or, apart from implementing my own VertexAiMemoryBankService and passing it to the Runner constructor, would I need to do anything else to make it work? What is the current state of this memory-related functionality as of now?

It seems to me that, in addition to providing the VertexAiMemoryBankService to the agent, I also need to provide the search_memory tool (so that the agent can search the memory by itself) and add a callback for writing to the Memory Bank after each user prompt and LLM response using after_agent_callback=[auto_save_to_memory_callback]? Both, and both the search_memory tool and the auto_save_to_memory_callback should internally use the corresponding methods from VertexAiMemoryBankService, right?

Dominant language
Java
Stars
1.7k
Forks
431
Avg merge
3d 2h
Merged PRs (30d)
46

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from google/adk-java

All issues in google/adk-java

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.