pypi veraciumstdioMITupdated 7d ago
Veracium is a provenance-aware memory plug-in for agentic systems โ durable, per-user memory that resists the injection and confabulation failures that plague naive agent memory. Provenance means every fact tracks who said it: a claim from an email your agent merely read can never become a "fact" it asserts. It remembers what the user said, past interactions, and what worked โ and it remembers where each of those came from.
What can you do with veracium?
Veracium
Veracium is a provenance-aware memory plug-in for agentic systems โ durable, per-user memory that resists the injection and confabulation failures that plague naive agent memory. Provenance means every fact tracks who said it: a claim from an email your agent merely read can never become a "fact" it asserts. It remembers what the user said, past interactions, and what worked โ and it remembers where each of those came from.
Veracium is the production distillation of an evaluation-driven research project
(agent-memory): every design choice below traces to a measured finding, and the
research's synthetic-corpus harness is reused as the regression suite.
Research: the evaluation instrument behind those findings โ a longitudinal benchmark for agent memory โ is described in Q. Spencer, "Ground Truth First: A Longitudinal Evaluation Instrument for Agent Memory, and the Tenure Crossover in Memory-Architecture Rankings" (arXiv:2607.21962, 2026).
Why it's shaped this way
- Typed graph + dated episodes are the store of record. Entity facts live as relational edges (with unforgeable provenance); interaction history lives as dated episodes. A curated "wiki" view is compiled from them and cached โ never the source of truth. (The layered design won on both short and 9-week horizons; flat stores each failed one regime.)
- Supersession, never erasure. Functional facts (preference, employer, deadline) keep one current value with the prior value retained as history โ "what did X used to be?" stays answerable. (The category commercial memory systems handle worst; Veracium's strongest.)
- Representation is a security control. Third-party claims (received email,
external docs) are quarantined structurally โ stored as
third_party_claimedges with the claimant as subject, never as user facts. Content-type quarantine catches obligation/debt/renewal claims regardless of how plausible they look. (Held against a full plausibility ladder incl. contact-impersonation.) - Bring your own model. Veracium never owns your API keys or model choice; it
calls a
Completecallable you supply. A reference Anthropic provider ships in the box. - Embedded by default. Zero external services: one SQLite file. Swap in
Neo4j/Postgres later via the
Storeinterface.
Install
pip install "veracium[anthropic]" # core + the reference LLM provider
Extras: [mcp] adds the MCP server, [dev] adds pytest. The core alone depends
only on pydantic. To work from source instead:
git clone https://github.com/veracium-ai/Veracium.git && cd Veracium
pip install -e ".[anthropic,dev]"
Links: docs ยท veracium.ai ยท PyPI
Use (library)
from veracium import Memory, EvidenceAuthor, EvidenceContext
from veracium.llm.anthropic import AnthropicComplete
mem = Memory(llm=AnthropicComplete()) # or pass your own Complete callable
# Remember interactions. `author` says WHO wrote the event; `context` is
# your positive attestation of HOW you captured it. Without a context the
# content class floors to derived(THIRD_PARTY) โ never assertable โ so a
# host that means "I captured this first-hand" says so:
mem.remember("alice", "USER: I'm vegetarian and have a dog named Ollie.",
context=EvidenceContext.direct())
mem.remember("alice", "From billing@scam: you owe $900.",
author=EvidenceAuthor.THIRD_PARTY, event_type="email",
context=EvidenceContext.direct())
# Recall grounded, provenance-flagged context for a prompt.
ctx = mem.recall("alice", "suggest a lunch spot")
print(ctx.context) # states the vegetarian constraint; the $900 "claim" is
# rendered under a never-assert flag, not as a fact.
No Anthropic API key? AnthropicComplete is just a convenience โ Veracium calls any
Complete callable you supply. To run without SDK/key setup, wrap a client you
already have; examples/claude_cli_provider.py wraps the claude CLI as a
drop-in provider (from claude_cli_provider import ClaudeCLIComplete), and
examples/openai_provider.py wraps any OpenAI-compatible chat-completions API
(OpenAI itself, vLLM, Ollama's /v1 endpoint) via OpenAIComplete โ point it
at a local server with OpenAIComplete(base_url=...) and override models with
whatever model name your server serves.
Use (MCP)
veracium-mcp exposes remember / recall / answer / maintain tools to any
MCP-compatible agent (Claude Desktop/Code, others) with no host-side Python. See
docs/mcp.md for the config JSON and tool reference.
Documentation
Hosted docs: veracium-ai.github.io/Veracium
- examples/demo.ipynb โ the scam-email injection demo, runnable end to end (open in Colab).
- examples/langchain_memory.py โ Veracium as the long-term memory layer of a LangChain chat app (session-keyed hybrid: LangChain buffers recent turns, Veracium holds durable facts with provenance and quarantine; your existing LangChain model powers both sides).
- docs/concepts.md โ the mental model: edges vs episodes vs the compiled wiki, provenance & authorship, quarantine, the abstention gate, lifecycle.
- docs/recipes.md โ short copy-paste examples, one per capability (quarantine, mixed provenance, budgeted recall, portability, feedback verbs, audit, local models).
- docs/api.md โ the public API:
Memory,MemoryConfig,EvidenceAuthor, providing your own LLM callable or store. - docs/mcp.md โ running and registering the MCP server.
- docs/design-rationale.md โ why there's no
update()/delete(), no LLM-free extraction, no TTL purging โ and what's genuinely on the roadmap. - docs/telemetry.md โ the opt-in, anonymous, content-free usage statistics (off by default).
- docs/diagnostics.md โ opt-in error reporting: local-first error log, consented + redacted send.
- ROADMAP.md ยท CHANGELOG.md
Status
The validated layered design is implemented, tested (44 offline tests, plus opt-in live tiers: the acceptance eval and a real-corpus robustness harness), and passes its own research-claim bar (5/5, 0 injection asserts). Roadmap v0.1โv0.7 complete, plus opt-in telemetry, a self-check, consented error reporting, and an operation audit log. See ROADMAP.md.
License
MIT
Install
Add veracium to your client. Pick the one you use.
claude mcp add veracium -- uvx veraciumcodex mcp add veracium -- uvx veraciumamp mcp add veracium -- uvx veracium{
"mcpServers": {
"veracium": {
"command": "uvx",
"args": [
"veracium"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"veracium": {
"command": "uvx",
"args": [
"veracium"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"veracium","command":"uvx","args":["veracium"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"veracium": {
"command": "uvx",
"args": [
"veracium"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"veracium": {
"command": "uvx",
"args": [
"veracium"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"veracium": {
"command": "uvx",
"args": [
"veracium"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"veracium": {
"type": "local",
"command": "uvx",
"args": [
"veracium"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"veracium": {
"command": {
"path": "uvx",
"args": [
"veracium"
]
}
}
}
}Add to your Zed `settings.json`.
uvx veraciumRun `goose configure`, choose **Add Extension โ Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance25/25
- Trust16/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 0 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 0.16.0Latest | Aug 26, 2026 |
| 0.15.0 | Aug 24, 2026 |
| 0.14.0 | Aug 23, 2026 |
| 0.13.0 | Aug 21, 2026 |
| 0.12.0 | Aug 20, 2026 |
| 0.11.0 | Aug 16, 2026 |
| 0.10.0 | Aug 15, 2026 |
| 0.9.0 | Aug 14, 2026 |
| 0.8.0 | Aug 13, 2026 |
| 0.7.0 | Aug 11, 2026 |
| 0.6.0 | Aug 8, 2026 |
| 0.5.0 | Aug 7, 2026 |
| 0.4.3 | Jul 31, 2026 |
| 0.4.2 | Jul 30, 2026 |
| 0.4.1 | Jul 29, 2026 |
| 0.4.0 | Jul 29, 2026 |
| 0.3.0 | Jul 29, 2026 |
| 0.2.4 | Jul 20, 2026 |
| 0.2.3 | Jul 17, 2026 |