Skip to main content

pydantic-ai-perseus-vault

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

Persistent, local-first, encrypted memory for Pydantic AI agents — backed by Perseus Vault.

PerseusVaultToolset gives a Pydantic AI Agent durable memory that survives across runs and processes. Your agent can perseus_vault_remember facts and perseus_vault_recall them later, with full-text + semantic search, all stored in a local SQLite database that never leaves the machine (and can be AES-256-GCM encrypted at rest).

Tool names. Perseus Vault exposes its MCP tools under three aliased prefixes — perseus_vault_* (canonical), plus mimir_* and mneme_* kept for backward compatibility. This package uses the canonical perseus_vault_* names throughout.

Why this package?

Pydantic AI already speaks the Model Context Protocol natively via MCPToolset, and Perseus Vault is an MCP stdio server — so you could wire them together by hand. PerseusVaultToolset is the ergonomic shortcut: it subclasses MCPToolset, resolves the perseus-vault binary, manages the database path, optionally enables encryption, and spawns perseus-vault serve for you. One line instead of a transport assembly. Because it is an MCPToolset, every Pydantic AI MCP feature (tool caching, include_instructions, process_tool_call, tool filtering/renaming) works unchanged.

Prerequisite: the perseus-vault binary

Perseus Vault is a single self-contained binary. Install it and make sure it is on your PATH:

# One-line install (installs to ~/.local/bin/perseus-vault):
curl -sSf https://raw.githubusercontent.com/Perseus-Computing-LLC/perseus-vault/main/scripts/install.sh | sh

# ...or build from source (Rust toolchain required):
git clone https://github.com/Perseus-Computing-LLC/perseus-vault
cd perseus-vault && cargo build --release
# then put target/release/perseus-vault on your PATH

# ...or download a prebuilt binary from the releases page:
#   https://github.com/Perseus-Computing-LLC/perseus-vault/releases

Verify:

perseus-vault --version

Install

pip install pydantic-ai-perseus-vault

This pulls in pydantic-ai-slim[mcp]. If you already use the full pydantic-ai, that satisfies the dependency too.

Usage

import asyncio

from pydantic_ai import Agent
from pydantic_ai_perseus_vault import PerseusVaultToolset

# Spawns `perseus-vault serve --db ~/.perseus-vault/agent.db` and exposes its memory tools.
memory = PerseusVaultToolset(db_path="~/.perseus-vault/agent.db")

agent = Agent(
    "openai:gpt-5",
    toolsets=[memory],
    instructions=(
        "You have a persistent memory. Use perseus_vault_remember to store "
        "durable facts about the user, and perseus_vault_recall to look them "
        "up before answering."
    ),
)


async def main() -> None:
    async with agent:  # opens the MCP connection for the agent's lifetime
        await agent.run("My favourite colour is teal. Please remember that.")
        result = await agent.run("What's my favourite colour?")
        print(result.output)  # -> teal


asyncio.run(main())

Encryption at rest

memory = PerseusVaultToolset(
    db_path="~/.perseus-vault/agent.db",
    encryption_key="~/.perseus-vault/key.b64",  # base64-encoded 32-byte AES-256-GCM key
)

Custom binary location

memory = PerseusVaultToolset(
    db_path="~/.perseus-vault/agent.db",
    perseus_vault_binary="/opt/perseus-vault/bin/perseus-vault",  # explicit path; otherwise resolved from PATH
)

Passing through MCPToolset options

Any MCPToolset keyword is forwarded:

memory = PerseusVaultToolset(
    db_path="~/.perseus-vault/agent.db",
    id="perseus-vault-memory",  # stable id (needed for Temporal/DBOS durability)
    include_instructions=True,  # inject Perseus Vault's server instructions into the agent
    cache_tools=True,
)

What tools does the agent get?

All of Perseus Vault's MCP tools (exposed under the canonical perseus_vault_* prefix), including:

Tool Purpose
perseus_vault_remember Store a durable memory (category, key, body, tags)
perseus_vault_recall Hybrid full-text + semantic search over memories
perseus_vault_get_entity Fetch a specific memory by id/key
perseus_vault_timeline Time-ordered view of memories
perseus_vault_forget / perseus_vault_supersede Delete or replace memories
perseus_vault_link / perseus_vault_traverse Relate and walk between memories
... and many more (stats, journaling, vault import/export, etc.)

The exact set depends on your installed Perseus Vault version.

Development

pip install -e ".[test]"
pytest

The unit tests mock the subprocess and run with no perseus-vault binary installed. A real end-to-end smoke test runs automatically when a perseus-vault binary is on PATH, and is skipped otherwise.

License

MIT © 2026 Perseus Computing LLC

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydantic_ai_perseus_vault-0.1.1.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydantic_ai_perseus_vault-0.1.1-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file pydantic_ai_perseus_vault-0.1.1.tar.gz.

File metadata

File hashes

Hashes for pydantic_ai_perseus_vault-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5508738ecbebca3cdf15d53e3e16b1e9a68bb4f6e467289227b842e91792215d
MD5 97bd06dbf66c02c83967c3a8e73a5511
BLAKE2b-256 84c1749879b663df4684e4794ae3bea8e80651b80f1ebb7731e1d5836c5a92a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_ai_perseus_vault-0.1.1.tar.gz:

Publisher: publish.yml on Perseus-Computing-LLC/pydantic-ai-perseus-vault

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pydantic_ai_perseus_vault-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pydantic_ai_perseus_vault-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f34a68a44ee148c10c9bef85d99665f540e82d7c8e41016f94f264b889f09b7f
MD5 e655b976ef7fffc79e6f822528f19863
BLAKE2b-256 22ec59fbcfac7e7c3ee2bbc9dcf33fc712d2cfeef9c096ef69d3c41c85f5c2b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_ai_perseus_vault-0.1.1-py3-none-any.whl:

Publisher: publish.yml on Perseus-Computing-LLC/pydantic-ai-perseus-vault

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page