Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.
  • Go 98.3%
  • Makefile 1.2%
  • Shell 0.5%
Find a file
History 2026-10-01 12:37:18 +02:00
.agents/skills/okf-memory fix(cli): separate validate findings taxonomy and reconcile summary counts 2026-09-23 20:52:06 +02:00
.github feat(ci): enforce 'okf validate --agents' across all bundled examples in Makefile and CI 2026-09-15 14:54:17 +02:00
benchmarks feat: add benchmark results and improve API parameter handling and help documentation in benchmark CLI 2026-09-19 14:18:40 +02:00
cmd refactor(cli): extract subcommands and registry into internal/cli package 2026-09-25 12:54:23 +02:00
docs docs(release): credit @kurodaritsu and mark Issue #11 closed in v0.5.0 notes 2026-10-01 12:37:18 +02:00
examples feat(ci): enforce 'okf validate --agents' across all bundled examples in Makefile and CI 2026-09-15 14:54:17 +02:00
internal/cli feat(mcp): support multi-scope search and cross-scope show in MCP server and schema 2026-10-01 12:20:29 +02:00
knowledge docs(release): credit @kurodaritsu and mark Issue #11 closed in v0.5.0 notes 2026-10-01 12:37:18 +02:00
packaging/homebrew ci(release): automate Homebrew tap synchronization and convert Formula to template 2026-09-06 14:30:12 +02:00
pkg feat(mcp): support multi-scope search and cross-scope show in MCP server and schema 2026-10-01 12:20:29 +02:00
scripts fix(security): sanitize multi-line frontmatter blocks and broaden Jules discovery (#36) 2026-09-23 21:06:25 +02:00
.cursorrules feat(agents): implement SSoT symlink engine and multi-domain codex scaffolding 2026-09-15 14:17:58 +02:00
.gitignore feat: initial commit of OKF Agent Memory v0.1.0 2026-09-05 23:29:18 +02:00
.windsurfrules feat(agents): implement SSoT symlink engine and multi-domain codex scaffolding 2026-09-15 14:17:58 +02:00
AGENTS.md chore(release): prepare release notes and knowledge for v0.4.2 2026-09-19 15:03:25 +02:00
CLAUDE.md feat(agents): implement SSoT symlink engine and multi-domain codex scaffolding 2026-09-15 14:17:58 +02:00
CODE_OF_CONDUCT.md chore: achieve 100% GitHub community health with Code of Conduct, Dependabot, CI badges, and issue routing 2026-09-12 06:47:54 +02:00
CONTRIBUTING.md docs: clarify zero third-party dependency policy and add v0.4.0 release notes 2026-09-17 10:06:58 +02:00
CONTRIBUTORS.md docs(release): credit @kurodaritsu and mark Issue #11 closed in v0.5.0 notes 2026-10-01 12:37:18 +02:00
go.mod feat(vault): implement zero-knowledge crypto engine, envelope, tree manifest, and commit objects 2026-09-14 15:19:43 +02:00
go.sum feat(vault): implement zero-knowledge crypto engine, envelope, tree manifest, and commit objects 2026-09-14 15:19:43 +02:00
LICENSE feat: initial commit of OKF Agent Memory v0.1.0 2026-09-05 23:29:18 +02:00
Makefile feat(ci): enforce 'okf validate --agents' across all bundled examples in Makefile and CI 2026-09-15 14:54:17 +02:00
README.md test(scope): add end-to-end tests for all scope combinations and document scope matrix 2026-10-01 11:51:22 +02:00
SECURITY.md docs: restructure documentation into categorized hierarchy and add DMAA RFC 2026-09-15 11:48:53 +02:00

OKF Agent Memory

A Domain-Neutral, Git-Native Persistent Project Memory for AI Agents based on the Open Knowledge Format (OKF) v0.2.

Specification Tooling CI Trendshift On StackMap Protocol License Sponsor


🌟 Overview

Conversations with AI agents reset when context windows close. Valuable architectural decisions, domain discoveries, and operational facts are lost unless stored persistently.

Traditional approaches suffer from two fatal failure modes:

  1. The Prompt Monolith: Stuffing all domain knowledge and rules into AGENTS.md or CLAUDE.md creates massive context bloat and causes attention drift (agents ignore critical instructions).
  2. The RAG Blindspot: Dumping behavioral rules into vector databases fails because agents never semantically search for operational constraints (e.g. formatting or security rules) during general tasks.

OKF Agent Memory resolves this dilemma with the Dual-Memory Agent Architecture (DMAA):

flowchart TD
    subgraph PUSH["1. Normative Working Memory (Push Layer)"]
        direction TB
        C1["Canonical AGENTS.md (~100-150 tokens)"]
        C2["Domain Codex (Invariants, Ethics, Tone)"]
        C3["OKF Memory Bridge (Deterministic Triggers)"]
        C4["Agent Action Grammar (AAG) Micro-Syntax"]
    end

    subgraph PULL["2. Semantic Domain Memory (Pull Layer)"]
        direction TB
        O1["OKF v0.2 Knowledge Bundle (knowledge/)"]
        O2["0 Tokens baseline in system prompt"]
        O3["Selective Retrieval via okf_search / okf_show"]
        O4["Persistent Graph of Decisions, Facts & Runbooks"]
    end

    INPUT["User Request"] --> PUSH
    PUSH -->|Enforces Domain Codex & Triggers| AGENT["AI Agent (LLM)"]
    AGENT -->|Selective Retrieval| PULL
    PULL -->|Context & Facts| AGENT
    AGENT --> OUTPUT["Deterministic Response"]

The Universal Composition Model

In DMAA, every agent configuration is structured by a universal composition:

\text{AGENTS.md} = \underbrace{\text{Domain Codex (AAG)}}_{\text{Project Invariants, Tone, Guardrails}} + \underbrace{\text{OKF Memory Bridge}}_{\text{Standardized Triggers: Search-Before-Write}}
  • Layer 1: Normative Working Memory (Push Layer): A permanent, ultra-compact behavioral codex (~100–150 tokens) expressed in Agent Action Grammar (AAG). Loaded at session start, enforcing zero-tolerance invariants.
  • Layer 2: Semantic Domain Memory (Pull Layer): An OKF v0.2 knowledge bundle (knowledge/) that consumes 0 tokens at baseline and is queried on-demand in microseconds.
flowchart TD
    L1["1. OKF v0.2 Specification<br/>(Normative Markdown & YAML Format)"]
    L2["2. Agent Memory Convention & DMAA<br/>(Dual-Memory Model, Search-Before-Write, Trust)"]
    L3["3. Agent Skill & AAG Codex<br/>(Agent Action Grammar, Workflows, Triggers)"]
    L4["4. Tooling Layer: Go Library & CLI<br/>(Deterministic Parsing, Validation, BM25, MCP)"]
    L5["5. Project Knowledge Corpus<br/>(knowledge/ OKF Bundle)"]

    L1 --> L2
    L2 --> L3
    L3 --> L4
    L4 --> L5

⚡ Key Highlights

  • Dual-Memory Cognitive Architecture (DMAA): Separates normative push working memory (AGENTS.md codex) from semantic pull domain memory (knowledge/ bundle), completely eliminating prompt bloat.
  • Agent Action Grammar (AAG): Ultra-compact, deterministic ASCII micro-syntax saving ~78–85% tokens compared to natural language prompt instructions.
  • Blazing Fast Performance (<300µs Search, ~4ms Graph Validation): In-memory BM25 retrieval and bundle validation execute in microseconds without VM spin-up or network roundtrips.
  • 100% Git-Native & Zero Vendor Lock-in: Everything is version-controlled plain text. Inspect, audit, and review your agent's memory using standard git diff and git log. No external database required.
  • Zero API Costs for Memory Retrieval: Local lexical BM25 indexing eliminates recurring vector embedding API costs and network roundtrips.
  • Built on Google OKF v0.2: Uses the open standard format for agent knowledge with full support for provenance (sources), trust tiers (generated vs. verified), and lifecycle metadata (status, stale_after).
  • Solves Context Bloat & Memory Rot: Employs Progressive Disclosure (hierarchical index.md files and link graphs) so agents only load the exact concepts they need.
  • Search-Before-Write Principle: Mandates querying existing memory before authoring, preventing concept duplication and hallucinated divergence.
  • Governance & Code-to-Knowledge Binding: Bind architecture decisions directly to source files via code_refs and query active constraints/holds via --for-path before modifying code.
  • Truly Domain-Neutral: Designed for Software Engineering, Coaching, Scientific Research, Literature Reviews, and Operations.

📊 Performance Benchmarks

Built in Go with zero external dependencies, okf is engineered for high-frequency agent tool calling loops:

Benchmark Metric Python / Vector DB Runtimes (Mem0, Letta) Deno / Node.js Tooling OKF Agent Memory (Go)
Concept Search Latency 150ms – 800ms (Embedding API + Vector DB) 40ms – 120ms < 300 µs (Microseconds, In-Memory BM25)
Full Corpus Parse & Graph Validation 200ms – 1.5s 80ms – 250ms ~4.0 ms (50+ concepts, bidirectional graph)
Process Cold-Start Overhead 250ms – 600ms (Python VM boot) 80ms – 180ms (V8 / Deno boot) < 4 ms (Compiled Single Binary)
Retrieval Cost per 1,000 Queries ~$0.10 – $0.50 (Embedding tokens) $0.00 $0.00 (Zero API cost, fully local)
Memory Footprint (RSS) ~120 MB – 350 MB ~60 MB – 140 MB < 15 MB

Tip

Reproduce Locally with your own LLM: We provide an automated benchmark runner in pure Go to verify Time-To-First-Token (TTFT) speedups and -80% token reduction on your local hardware (LM Studio / Ollama with Gemma, Qwen, Llama). Run make benchmark or explore the Progressive Disclosure Benchmark Suite.


🚀 Quickstart

1. Build the Tooling

Clone the repository and compile the standalone okf executable:

make build

This generates the standalone binary at bin/okf.

2. Basic CLI Commands

# Validate bundle conformance, graph connectivity, and description drift
./bin/okf validate knowledge --strict --drift

# Search concepts via in-memory BM25 scoring
./bin/okf search "architecture layers" knowledge

# Discover constraints and active holds governing a specific source file before editing
./bin/okf search --for-path pkg/okf/types.go knowledge

# Inspect a concept and its relationships (with --json support)
./bin/okf show architecture/layers knowledge --json

# Create a new concept with automated log.md and index.md bookkeeping
./bin/okf create decisions/auth-flow knowledge \
  --type Decision \
  --title "OAuth2 Authorization Flow" \
  --desc "Standardized on PKCE for client authentication."

# Update an existing concept
./bin/okf update decisions/auth-flow knowledge \
  --desc "Updated OAuth2 PKCE token refresh interval."

# Bootstrap full agent memory stack into any target project
./bin/okf bootstrap /path/to/project --name "My Project"

# Initialize only a bare OKF bundle in any directory
./bin/okf init my-project/knowledge

# Zero-Knowledge Sync: initialize vault and print Emergency Kit
./bin/okf hub init-vault knowledge

# Zero-Knowledge Sync: push or sync changes with the Hub (optional: --token or OKF_HUB_TOKEN)
./bin/okf hub push knowledge --password "pass" --secret-key "XXXX-..." --auth-token "my-token"
./bin/okf hub sync knowledge --password "pass" --secret-key "XXXX-..."

# Pull external knowledge bundles from OKF Registry (registry.okf-memory.dev) or Git
./bin/okf pull nextjs-15
./bin/okf pull peter/django-5-rules
./bin/okf pull github.com/acme/agent-rules@v1.0.0

# Restore all locked vendor bundles in fresh environments
./bin/okf restore

# Inspect and manage installed vendor bundles
./bin/okf vendor list
./bin/okf vendor remove nextjs-15

3. Multi-Scope Memory Layering & Scoped Resolution

OKF Agent Memory organises knowledge across four deterministic memory scopes. Higher layers strictly shadow identical concept IDs in lower layers during search, ensuring local project decisions always take precedence over external upstream packages or machine baselines:

flowchart TD
    subgraph Scopes ["OKF 4-Tier Memory Hierarchy"]
        P["<b>Project</b> (Priority 100)<br/>Prefix: <i>none</i> (e.g. decisions/auth)<br/>Location: ./knowledge/"]
        V["<b>Vendor</b> (Priority 70)<br/>Prefix: @bundle/... (e.g. @nextjs-15/routing)<br/>Location: .okf/vendor/"]
        U["<b>User</b> (Priority 50)<br/>Prefix: user:... (e.g. user:guidelines/style)<br/>Location: ~/.okf/"]
        S["<b>System</b> (Priority 10)<br/>Prefix: system:... (e.g. system:corp/policy)<br/>Location: /etc/okf/"]
    end

    P -->|shadows| V
    V -->|shadows| U
    U -->|shadows| S

Scope Specification Matrix

Scope Link / Reference Syntax Canonical URN Storage Location Priority Precedence & Rules
project decisions/auth.md (bundle relative) ./knowledge/ 100 Local Project Memory. Authoritative SSoT for current repository; strictly shadows identical IDs from vendor, user, and system layers.
vendor @nextjs-15/routing.md
@peter/django-rules/auth.md
okf://@nextjs-15/routing
okf://@peter/django-rules/auth
.okf/vendor/<bundle>/ 70 External Packages. Pinned dependencies pulled from OKF Registry (registry.okf-memory.dev) or Git. Shadows user and system.
user user:guidelines/style.md okf://user/guidelines/style ~/.okf/ 50 Personal Agent Memory. Developer preferences and cross-project notes. Shadows system.
system system:corp/policies.md okf://system/corp/policies /etc/okf/ 10 Enterprise / Machine Memory. Infrastructure baselines and compliance policies.

Filtering by Scope in Search & Show

# Default (--scope all): Search across all layers with automatic shadowing & priority ranking
./bin/okf search "authentication"

# Search strictly within vendor packages
./bin/okf search "routing" --scope vendor

# Search strictly within local project memory (or use alias --scope bundle)
./bin/okf search "architecture" --scope project

# Search user or system layers
./bin/okf search "style" --scope user
./bin/okf search "compliance" --scope system

# Inspect concepts across scopes
./bin/okf show decisions/auth                        # Local project concept
./bin/okf show @nextjs-15/decisions/routing         # Vendor package concept
./bin/okf show user:guidelines/style                # Personal user concept
./bin/okf show system:corp/policies                 # System compliance concept

4. Bootstrapping Agent Memory in Any Project

Scaffold the complete OKF Agent Memory architecture into any new or existing repository with a single command:

# Bootstrap full memory stack into target project
./bin/okf bootstrap /path/to/my-project --name "My Service"

This automatically sets up:

  • knowledge/ — OKF v0.2 compliant persistent memory bundle (index.md, log.md)
  • .agents/skills/okf-memory/ — Embedded agent skill definition and capability guides
  • AGENTS.md — Project-tailored operating instructions for AI coding agents
  • Makefile — Convenience tasks for validation (make validate) and search (make search q="...")

4. Running as an MCP Server

okf ships with a native Model Context Protocol (MCP) server over stdio to seamlessly connect with Claude Code, Cursor, Codex, and other agent platforms:

./bin/okf mcp knowledge

Example MCP Configuration (claude_desktop_config.json or Cursor):

{
  "mcpServers": {
    "okf-memory": {
      "command": "/path/to/okf-agent-memory/bin/okf",
      "args": ["mcp", "/path/to/project/knowledge"]
    }
  }
}

📂 Repository Structure

okf-agent-memory/
├── .agents/                # Active agent skills and agent configuration
│   └── skills/okf-memory/  # Authoritative OKF memory skill for AI agents (Single Source of Truth)
├── benchmarks/             # Progressive disclosure benchmark suite & hardware test data
│   ├── data/               # Monolith docs vs OKF bundle test fixtures
│   └── results/            # Reproducible benchmark logs across 8+ local & cloud LLMs
├── cmd/
│   ├── okf/                # Standalone CLI and embedded MCP server (`stdio`)
│   └── okf-benchmark/      # Automated benchmark runner for LLM TTFT & token measurements
├── docs/                   # Guides, specifications, architecture & release playbook
│   ├── README.md           # Central documentation index & navigation
│   ├── guides/             # User guides, CLI/MCP reference & AI instruction best practices
│   ├── spec/               # OKF convention v0.1, compatibility analysis & architecture RFCs
│   ├── security/           # Data governance, secret prevention & adversarial security audits
│   ├── project/            # Project roadmap, release playbook & multi-agent testing
│   └── releases/           # Versioned release notes & changelog archive (v0.1.0 - v0.5.0)
├── examples/               # Domain-neutral reference DMAA projects (AGENTS.md + OKF v0.2 knowledge/)
│   ├── books/              # Literature & editorial analysis repository
│   ├── coaching/           # Executive coaching & client session repository
│   └── software/           # Microservices architecture & ADR engineering repository
├── knowledge/              # Project's own OKF v0.2 persistent memory bundle
│   ├── index.md            # Root progressive disclosure index (okf_version: "0.2")
│   ├── log.md              # Dated change log (ISO 8601 YYYY-MM-DD)
│   ├── project/            # Overview & value propositions
│   ├── architecture/       # 5-tier architecture, governance model & decisions
│   ├── convention/         # Principles & lifecycle workflows
│   └── roadmap/            # Milestones
├── packaging/              # Distribution packaging
│   └── homebrew/           # Official Homebrew formula & tap instructions
├── pkg/
│   ├── lock/               # Zero-dependency okf.lock parser & serializer
│   ├── okf/                # Core library (parser, validator, BM25, MCP, bootstrap)
│   │   └── assets/         # Embedded bootstrap templates & skills mirrored via `make sync-assets`
│   ├── registry/           # Decentralized OKF Registry client & archive unpacker
│   ├── sync/               # Blind sync engine, 3-way reconcile & hub client/server
│   └── vault/              # AES-256-GCM envelope crypto, Argon2id KDF & CAS blind storage
├── scripts/                # Verification & automated audit review helpers (e.g. Jules integration)
├── AGENTS.md               # Operating instructions for AI coding agents
├── CONTRIBUTING.md         # Contribution guidelines & development workflow
├── CONTRIBUTORS.md         # Community contributors & acknowledgements
├── CODE_OF_CONDUCT.md      # Contributor Covenant v2.1 code of conduct
├── Makefile                # Build, test, lint, validation & release targets
├── LICENSE                 # MIT License
├── README.md               # Main repository documentation
└── SECURITY.md             # Security policy & reporting guidelines

🧪 Testing & Verification

Run the full test suite and validate the repository's self-documenting knowledge bundle:

make check

📖 Further Documentation


👥 Contributors

Thank you to all the wonderful contributors who have helped build and refine OKF Agent Memory!

OKF Agent Memory Contributors

Contributions of all kinds are warmly welcomed! See CONTRIBUTING.md and CONTRIBUTORS.md for details.


💖 Support & Sponsoring

If you find OKF Agent Memory valuable for your autonomous agent workflows, consider sponsoring the project on GitHub to help support continuous development, security hardening, and spec compliance!


📄 License

MIT License. See LICENSE for details.