Skip to main content

ADK Perseus Vault Memory

📦 Package rename history. This distribution replaced the archived adk-mimir-memory project. Install adk-perseus-vault-memory for the current Perseus Vault integration.

Persistent, local, encrypted cross-session memory for Google ADK agents — backed by Perseus Vault.

Why Perseus Vault?

Backend Dependencies Encryption Hybrid Search Local
InMemoryMemoryService None ❌ ❌ ✅
VertexAiMemoryBankService GCP + Gemini ❌ Gemini-driven ❌
VertexAiRagMemoryService GCP + RAG ❌ GCP vector ❌
PerseusVaultMemoryService Single binary ✅ AES-256 ✅ BM25+FTS5+Dense ✅
  • Zero cloud dependencies — a single Rust binary, SQLite database, fully local
  • AES-256-GCM encryption at rest — your memory data stays private
  • Hybrid search — BM25 keyword + FTS5 + dense vector search
  • Persistent-memory MCP tools — remember, recall, synthesize, benchmark, federate, and more
  • Ebbinghaus confidence decay — memories fade naturally, important ones persist

Installation

pip install adk-perseus-vault-memory

This package requires the perseus-vault binary. Download it from: https://github.com/Perseus-Computing-LLC/perseus-vault/releases

Or build from source:

cargo install perseus-vault

Quick Start

from google.adk.agents import Agent
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
from adk_perseus_vault_memory import PerseusVaultMemoryService

agent = Agent(
    name="my_agent",
    model="gemini-2.5-flash",
    instruction="You are a helpful assistant with persistent memory.",
)

# The memory service is configured on the Runner, not on the Agent.
runner = Runner(
    agent=agent,
    app_name="my_app",
    session_service=InMemorySessionService(),
    memory_service=PerseusVaultMemoryService(db_path="~/.adk/vault.db"),
)

That's it. Sessions, events, and explicit memories are now persisted across restarts.

Configuration

# Custom database location
PerseusVaultMemoryService(db_path="/data/agent_memory.db")

# Custom perseus-vault binary path (if not on $PATH)
PerseusVaultMemoryService(vault_binary="/usr/local/bin/perseus-vault")

# Both
PerseusVaultMemoryService(
    db_path="/data/agent_memory.db",
    vault_binary="/usr/local/bin/perseus-vault",
)

Perseus Live Context (Optional)

This package also includes a drop-in agent with live workspace awareness via Perseus:

from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
from adk_perseus_vault_memory.perseus_context import perseus_context_agent

# The agent resolves @file, @search, @memory directives at inference time.
# Bind it on the Runner; run_async takes no `agent` argument.
runner = Runner(
    agent=perseus_context_agent,
    app_name="my_app",
    session_service=InMemorySessionService(),
)
runner.run_async(
    user_id="user",
    session_id="session",
    new_message=types.Content(role="user", parts=[types.Part.from_text(
        text="What does the README say about deployment?"
    )]),
)
pip install adk-perseus-vault-memory[perseus]  # installs perseus-ctx

Set directives via session state:

session = await runner.session_service.create_session(
    app_name="my_app",
    user_id="user",
    state={
        "_perseus_directives": "@file AGENTS.md @file README.md @memory deployment",
        "_perseus_workspace": "/path/to/project",
    },
)

How It Works

┌─────────────┐     JSON-RPC (MCP stdio)     ┌────────────────┐
│  ADK Agent  │ ──────────────────────────▶  │  Perseus Vault │
│  (Python)   │ ◀──────────────────────────  │  (Rust)        │
└─────────────┘                              └───────┬────────┘
                                                      │
                                                 SQLite + FTS5
                                                 (AES-256-GCM)

The PerseusVaultMemoryService spawns a perseus-vault subprocess and communicates via JSON-RPC over stdin/stdout (MCP stdio transport). Each add_session_to_memory, add_memory, and search_memory call translates to a Perseus Vault MCP tool invocation.

License

MIT — see Perseus Vault and Perseus for the backing services.

Metadata

Release files for adk-perseus-vault-memory 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adk-perseus-vault-memory 0.3.1
File Size Uploaded
adk_perseus_vault_memory-0.3.1.tar.gz 12.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for adk-perseus-vault-memory 0.3.1
File Interpreter ABI Platform
adk_perseus_vault_memory-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 23.9 kB

Release files / adk_perseus_vault_memory-0.3.1.tar.gz

Download URL adk_perseus_vault_memory-0.3.1.tar.gz
Size 12.2 kB
Tags Source
SHA-256 checksum
How to use checksums
1baea9b350c9581dbe450dfb18f65040598543c7e98d85eab25ac61fbb21b916
BLAKE2b-256 checksum
How to use checksums
88bbe7c73f89b64e8035a29b656077bc3fd65558ea10919337f50c5749470fcb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 1, 2026.

Transparency log

Release files / adk_perseus_vault_memory-0.3.1-py3-none-any.whl

Download URL adk_perseus_vault_memory-0.3.1-py3-none-any.whl
Size 11.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ea89f5198b3ea0ae05b151facd1a9eb8aec44586ccfba65360de4cb29416d64c
BLAKE2b-256 checksum
How to use checksums
0af5a72cf7b09bd4a31177040ea1c3c4f363334af0e425c9e456f01d317c65fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page