Agent Memory — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Agent Memory (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Zero-config, traceable, MCP-native long-term memory for agents.
agent-memory targets a gap in the current memory stack: a local-first engine that works with pip install, runs on pure SQLite, and makes memory evolution explainable instead of opaque.
Install from PyPI with pip install agent-memory-engine.
Current packaged release: 0.2.1.
docs/README.mddocs/zh-CN/README.mddocs/teaching/01-project-overview.mddocs/project-delivery-and-tutorial.mddocs/mcp-integration.mddocs/release-and-pypi.mddocs/benchmark-results.mdMem0 proves demand, but pulls in heavier infra such as Neo4j or Qdrant.MemoryClientMemoryClient now supports embedded and remote modes through SQLiteBackend and RemoteBackendsqlite-vec integration with safe fallback to Python cosine scan when unavailablepip install agent-memory-engineagent-memory store "User prefers SQLite for local-first agents." --source-id demo
agent-memory search "Why SQLite?"
agent-memory healthFor development:
pip install -e '.[dev]'
.venv/bin/python -m pytest -qfrom agent_memory import MemoryClient
client = MemoryClient()
item = client.add(
"The user prefers SQLite for local-first agent projects.",
source_id="demo-session",
)
results = client.search("What database does the user prefer?")
print(results[0].item.content)
trace = client.trace_graph(item.id)
print(trace.descendants)
health = client.health()
print(health.suggestions)make proto
cd go-server && go run ./cmd/serverexport AGENT_MEMORY_MODE=remote
export AGENT_MEMORY_GO_SERVER_URL=http://127.0.0.1:8080
export AGENT_MEMORY_GRPC_TARGET=127.0.0.1:9090
agent-memory search "Why SQLite?"graph TD
A["Python SDK / MCP"] --> B["MemoryClient"]
B --> C{"Mode"}
C -->|"embedded"| D["SQLiteBackend (Python)"]
C -->|"remote"| E["RemoteBackend"]
E --> F["Go REST / gRPC"]
F --> G["SQLite Storage Engine"]
G --> H[("SQLite + WAL + vector fallback")]
B --> I["Intent Router / Conflict / Trust"]src/agent_memory/client.py — high-level SDK entry pointsrc/agent_memory/storage/remote_backend.py — REST/gRPC bridge to the Go serviceproto/memory/v1/ — shared Protobuf contractsgo-server/cmd/server/main.go — Go service entrypoint with graceful shutdowngo-server/internal/storage/sqlite.go — Go storage enginego-server/internal/gateway/handler.go — Go REST handlersgo-server/internal/grpc/server.go — Go gRPC implementationsrc/agent_memory/storage/sqlite_backend.py — SQLite persistence, FTS, vector fallback, trace queriessrc/agent_memory/controller/router.py — intent-aware retrieval routing and RRF fusionsrc/agent_memory/controller/forgetting.py — Ebbinghaus-inspired adaptive forgettingsrc/agent_memory/controller/conflict.py — contradiction detection and conflict recordssrc/agent_memory/controller/consolidation.py — overlap grouping and merge-draft generationsrc/agent_memory/controller/trust.py — multi-factor trust scoringsrc/agent_memory/governance/health.py — stale/orphan/conflict monitoringsrc/agent_memory/interfaces/mcp_server.py — eight MCP toolssrc/agent_memory/extraction/pipeline.py — conversation-to-memory extractionbenchmarks/ — storage/retrieval microbenchmarks and synthetic eval seedsagent-memory/
├── deploy/
├── go-server/
├── proto/
├── docs/plans/
├── examples/
├── src/agent_memory/
│ ├── controller/
│ ├── embedding/
│ ├── extraction/
│ └── storage/
└── tests/Synthetic LOCOMO-Lite run on the bundled starter dataset (30 dialogues / 150 questions):
| Metric | agent-memory | Semantic-only baseline |
|---|---|---|
| Overall hit rate | 50.0% | 23.3% |
| Factual recall | 53.3% | 6.7% |
| Temporal recall | 36.7% | 3.3% |
| Causal recall | 53.3% | 6.7% |
| p95 retrieval latency | 16.64ms | 11.50ms |
docs/benchmark-results.mdpython benchmarks/locomo_lite/evaluate.pyInstall MCP support and launch the stdio server:
pip install -e .[mcp]
python -m agent_memory.interfaces.mcp_serverClaude Desktop configuration:
{
"mcpServers": {
"agent-memory": {
"command": "python",
"args": ["-m", "agent_memory.interfaces.mcp_server"],
"env": {
"AGENT_MEMORY_DB_PATH": "/absolute/path/to/default.db"
}
}
}
}Typical tools:
memory_store — store a memory with provenancememory_search — run intent-aware retrievalmemory_trace — inspect causal ancestry and evolutionmemory_health — inspect stale/conflict/orphan metricsMore details: docs/mcp-integration.md
python examples/demo_cross_session.py --db /tmp/agent-memory-demo.dbpython examples/interactive_chat.py --db chat_memory.db --provider nonepython examples/mcp_server.pyCHANGELOG.mdbenchmarks/locomo_lite/latest_results.json is regenerated by the evaluation scriptdocs/screenshots/ is reserved for verified MCP client screenshotsdocs/project-delivery-and-tutorial.mddocs/release-and-pypi.mddocs/plans/2026-03-24-agent-memory-expansion-review.md.venv/bin/python -m pytest -qcd go-server && go test ./...make go-benchagent-memory --helpsqlite-vec is installed as a package dependency; if the extension cannot be loaded at runtime, vector search safely falls back to Python cosine scanpython benchmarks/bench_storage.py and python benchmarks/bench_retrieval.pymake bench-comparepython examples/benchmark_runner.py~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.