Skip to main content

Vayl

The reconciling memory layer for AI agents.

PyPI Python License OpenSSF Scorecard Docs

When a fact changes, most agent memory keeps both versions and lets the model guess which is current. Vayl replaces the old value, keeps it in history, and can hold high-stakes changes until a person approves them. It runs locally on SQLite and works with any MCP client: Claude Code, Cursor, Claude Desktop, or your own agent.

A real run with a fictional patient: warfarin is recorded, then replaced by apixaban. The change waits in pending_changes until a clinician confirms it. Recall then answers apixaban now, warfarin before, and refuses amoxicillin because of the recorded penicillin allergy.

A real run with gpt-6-luna and the clinical preset. The patient is fictional. Script: assets/demo/clinical_demo.py

Features

  • Reconciles changes. A new value supersedes the old one, and "we stopped X" retracts X. A retired fact is never returned as current.
  • Keeps history. Ask what is true now or what was true before. Every change goes on a signed, tamper-evident audit chain.
  • Human approval where it matters. Mark slots such as medications as confirm-required, and changes wait in a queue. check_before_act blocks an action that depends on a disputed, stale or just-changed fact.
  • Small and local. SQLite by default, Postgres for teams. One model call to store a fact and one to answer. Any OpenAI-compatible model, Anthropic, Groq or a local Ollama model.
  • Built-in presets for clinical, support, finance, sales, coding and assistant memory.

Install

pip install vayl-mcp

Add it to Claude Code:

claude mcp add vayl -e LLM_PROVIDER=openai -e OPENAI_API_KEY=sk-... -e VAYL_DB=$HOME/.vayl/vayl.db -- vayl-mcp

For Cursor, Claude Desktop and other clients, see the quickstart. Run vayl-demo to try reconciliation with no API key.

Use it from code

from vayl import Vayl

with Vayl(user_id="cust_5521") as m:
    m.remember("Acme's invoice bounced. Account suspended until payment clears.")
    print(m.recall("Is Acme's account in good standing?"))
    # No. Acme's account is suspended until payment clears.

Integrations

Agent frameworks. Backends plug into the framework's own memory, so facts are stored and recalled on every turn. Tool adapters give the agent memory tools to call.

Framework Install Use
Google ADK pip install 'vayl-mcp[adk]' from vayl.integrations.adk import VaylMemoryService (memory backend)
LlamaIndex pip install 'vayl-mcp[llamaindex]' from vayl.integrations.llamaindex import VaylMemory (memory block)
AutoGen pip install 'vayl-mcp[autogen]' from vayl.integrations.autogen import VaylMemory (memory backend)
LangGraph / LangChain pip install 'vayl-mcp[langgraph]' from vayl.integrations.langgraph import VaylMemory (tools)
OpenAI Agents SDK pip install 'vayl-mcp[openai-agents]' from vayl.integrations.openai_agents import VaylMemory (tools)
CrewAI pip install 'vayl-mcp[crewai]' from vayl.integrations.crewai import VaylMemory (tools)
Pydantic AI pip install vayl-mcp 'pydantic-ai-slim[openai,mcp]' MCPToolset over MCP, no adapter
Agno pip install vayl-mcp agno openai MCPTools over MCP, no adapter
Vercel AI SDK npm i @vayl.dev/client ai zod import { vaylTools } from "@vayl.dev/client/vercel"
Mastra npm i @vayl.dev/client @mastra/core zod import { vaylTools } from "@vayl.dev/client/mastra"

Examples for each are in Agent frameworks.

MCP clients. Install vayl-mcp, then add it to your client: Claude Code · Cursor · VS Code · Windsurf · Zed · Cline · Continue · Codex CLI · Gemini CLI. For a shared team memory, run vayl-server and call it over MCP or REST.

Documentation

Quickstart Install and connect a client
How Vayl works Extraction, reconciliation and retrieval
Tutorial: a hospital medication assistant Clinical preset, critical facts and approval
Tutorial: a customer-support assistant Account state and safety checks
MCP tools All 30+ tools
Deploying vayl-server Team server, auth, Docker, Postgres
Benchmarks Stale-value and retraction results against Mem0 and Graphiti

Contributing

See CONTRIBUTING.md. The unit tests run offline, with no API key. Good starting points are labeled good first issue.

Security

Data is encrypted at rest by default, and Vayl sends nothing anywhere except to the model endpoints you configure. Vayl is not certified for clinical use and has not been audited by a third party. Report vulnerabilities as described in SECURITY.md.

License

Apache-2.0

Metadata

Release files for vayl-mcp 0.10.0

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

Source distribution (sdist)

Source distribution for vayl-mcp 0.10.0
File Size Uploaded Provenance Actions
vayl_mcp-0.10.0.tar.gz 468.0 kB With provenance Details for vayl_mcp-0.10.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for vayl-mcp 0.10.0
File Interpreter ABI Platform Actions
vayl_mcp-0.10.0-py3-none-any.whl Python 3 none any Details for vayl_mcp-0.10.0-py3-none-any.whl

Total release size: 627.3 kB

Release files / vayl_mcp-0.10.0.tar.gz

Download URL vayl_mcp-0.10.0.tar.gz
Size 468.0 kB
Tags Source
SHA-256 checksum
How to use checksums
7be9f905077474fdddb4f5c2877e0379e00a2a0a2755e7a910b9000cf809bb4f
BLAKE2b-256 checksum
How to use checksums
4172fe68484757c80de2e26a32bcd2825ae7216ba44e3325d9f74452e98d04bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 22, 2026.

Transparency log

Release files / vayl_mcp-0.10.0-py3-none-any.whl

Download URL vayl_mcp-0.10.0-py3-none-any.whl
Size 159.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
acd89f6c776c3a0e711888bb337c733fcac4b67e69412acc933df6c7ca045b31
BLAKE2b-256 checksum
How to use checksums
d7895f4bf6f93ca8ea8707e152d5b9762fec2cc95324c365d51a248e29efdc2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 22, 2026.

Transparency log

Security for vayl-mcp 0.10.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for vayl_mcp-0.10.0.tar.gz

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 Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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