Skip to main content

AI agent knowledge & long-term memory — MCP server, knowledge graph, BM25 + RRF retrieval, contradiction detection. Drop-in for Claude Code / Cursor / Codex.

Project description

agent-knowledge

PyPI Python License: MIT CI MCP

English | 简体中文

Long-term knowledge for AI agents. Conversations, documents, and decisions are auto-compiled into a structured knowledge base with source provenance, confidence tracking, and contradiction detection. Drop-in MCP server — Claude Code, Cursor, Codex, and any MCP-aware client connect with one config line.

Why

LLM memory today is either flat RAG chunks or a key-value preference cache. Neither answers "how did we get here?".

agent-knowledge adds a knowledge-compilation layer: raw material is decomposed into Claims and Evidence, claims about the same entity are merged into a Compiled Truth, and a timeline is kept append-only — rewritten holistically when new evidence arrives. Every fact is traceable to its source, timestamp, and confidence.

Before / After

Scenario: over 10 weeks the team revisits its frontend stack three times — Week 1 picks Vue, Week 6 evaluates React, Week 10 switches to React. All three meeting notes are in the agent's conversation history.

A new teammate asks the agent "what frontend are we on, and why?"

Without — RAG over chat history

The team decided to use Vue as the frontend framework.

Vector search returns the highest-similarity chunk (the earliest meeting note). No temporal awareness → stale answer.

With agent-knowledgeak_query returns the entity (real vault YAML)

name: Frontend stack
entity_type: concept
compiled_truth:
  claims:
    - text: use React for the dashboard
      status: active
      confidence: 0.85
      evidence:
        - source_id: c3a9d1f2
          weight: 1.0
    - text: use Vue for the dashboard
      status: superseded
      confidence: 0.65
      evidence:
        - source_id: a1b2c3d4
          weight: 0.7
timeline:
  - date: 2026-02-01
    title: Decided on Vue
    source_id: a1b2c3d4
  - date: 2026-03-12
    title: Evaluated React
    source_id: b5e6f7a8
  - date: 2026-04-09
    title: Switched to React; Vue ecosystem limits
    source_id: c3a9d1f2

The agent now sees the current fact, the timeline, the sources, and the superseded prior claim in one call. Its answer naturally becomes "we're on React — switched from Vue in April due to ecosystem limits," with every fact traceable to a source.

Quick Start

pip install compiled-memory   # PyPI package; the Python module is `agent_knowledge`

ak init   ~/my-knowledge
ak ingest ~/my-knowledge --file ./meeting-notes.md
ak query  ~/my-knowledge "why did we pick React?"
ak dream  ~/my-knowledge       # offline consolidation
ak lint   ~/my-knowledge       # health check

Or run it as an MCP server, plugged into any MCP-aware client:

ak mcp ~/my-knowledge

Copy-paste configs for Claude Code / Cursor / Codex live in examples/mcp/; the full tool list is in docs/mcp-integration.md. Agents picking up this repo should read AGENTS.md first.

Architecture

┌─────────────────────────────────┐
│  Adapter Layer                  │  CLI · MCP · pull adapters
├─────────────────────────────────┤
│  UMSF Boundary                  │  unified data contract
├─────────────────────────────────┤
│  Knowledge Layer (core)         │  Compiler · Compiled Truth · Hooks · Dream
├─────────────────────────────────┤
│  Storage                        │  Vault (YAML) + EventIndex (SQLite)
├─────────────────────────────────┤
│  Search Layer                   │  Exact + BM25 + Graph + RRF + Reranker
└─────────────────────────────────┘
  • Knowledge Layer — pure Python over local files, no external services
  • Search Layer — zero dependencies by default; optional embedding model for stronger semantic recall
  • Adapter Layer — UMSF unifies the boundary; a new agent adapter is ~80 lines

See docs/architecture.md.

Benchmark

LongMemEval-S (ICLR 2025) — 500 questions, ~48 sessions/question, ~115K tokens/question:

Metric Score
R@5 96.6%
R@10 98.2%
MRR 0.9031
NDCG@10 0.9218

Zero vector dependencies — BM25 + Exact Match + RRF only. Full per-type breakdown in BENCHMARK.md.

Documentation

License

MIT

Project details


Download files

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

Source Distribution

compiled_memory-0.3.1.tar.gz (153.5 kB view details)

Uploaded Source

Built Distribution

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

compiled_memory-0.3.1-py3-none-any.whl (105.3 kB view details)

Uploaded Python 3

File details

Details for the file compiled_memory-0.3.1.tar.gz.

File metadata

  • Download URL: compiled_memory-0.3.1.tar.gz
  • Upload date:
  • Size: 153.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for compiled_memory-0.3.1.tar.gz
Algorithm Hash digest
SHA256 b3565196b55bda5828b8a040d3ecd90fcc852650ab80e531ec6ab7df63897de1
MD5 0ed007ee1b6ce63df3b9a194e0800e0e
BLAKE2b-256 01d9fc530e832587954c038752c8a750ea36e21bc8e8b24bcd17e6a484125a46

See more details on using hashes here.

Provenance

The following attestation bundles were made for compiled_memory-0.3.1.tar.gz:

Publisher: publish.yml on yucx-go/agent-knowledge

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

File details

Details for the file compiled_memory-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: compiled_memory-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 105.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for compiled_memory-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 141496dedd56e5a147dbbb5fe8a528ee7d8ec34623c480ed3ed22fc704707a88
MD5 6d8c875c08d6e7e54ee925edc13d500e
BLAKE2b-256 d75d7079a6cddd5f54491fd9b6a9e3f3ca16b72f83b2829d9e8828f8e1fcd701

See more details on using hashes here.

Provenance

The following attestation bundles were made for compiled_memory-0.3.1-py3-none-any.whl:

Publisher: publish.yml on yucx-go/agent-knowledge

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

Supported by

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