Google ADK + Memanto

InMemoryMemoryService is lost on restart, and Vertex AI Memory Bank ties you to Google Cloud.
memanto-google-adk is a drop-in ADK memory service backed by Memanto.
Works with ADK's own tools
MemantoMemoryService implements ADK’s BaseMemoryService, so preload_memory and load_memory read from Memanto unchanged.Typed memories, not transcripts
Saved turns go through Memanto’s extraction: preferences, facts, decisions and commitments are kept; small talk is dropped.
Private per user
Every memory is tagged with its ADK user, and results are re-checked against that tag before they are returned.
Save every turn, store once
Each save extracts only events added since the last one, across processes, and a retried save stores nothing.
How It Works
Prerequisites
- Python 3.10+
google-adk2.0+- Memanto 0.2.21+ and a Moorcheh API key (or an on-prem Memanto backend)
Install
memanto-google-adk is on PyPI, install it from a checkout of the Memanto repo: pip install ./integrations/google-adk (see GitHub source).
Use it
preload_memoryrecalls memories that match the user’s message and adds them to every request. Useload_memoryinstead if the model should decide when to look things up.remember_toolis optional. Memories are extracted from saved sessions anyway, but the tool lets the agent save a fact the moment it hears it.after_agent_callbackis where saving happens. Calling it every turn is safe: only new events are extracted.
Extraction is one LLM call per save. To keep it off the response path, run the save as a background task.
With adk web / adk run
Register the memanto:// scheme in a services.py:
A
services.py in the wrong folder fails at startup with Unsupported memory service URI: memanto:. Set MOORCHEH_API_KEY in the environment before starting.
memanto://my-agent uses the Memanto agent my-agent for every app, instead of one per app.
How memory is scoped
API
Behavior and limits
Shared memory across integrations
All Memanto integration packages use the same Moorcheh-backed agents when they share anagent_id: