Skip to main content
Glama

NeuralMemory

GitHub stars PyPI Downloads CI Python 3.11+ License: MIT VS Code OpenClaw Plugin

AIエージェントはセッション間で全てを忘れてしまいます。Neural Memoryはそれに脳を与えます。

メモリは相互接続されたニューロンとして保存され、人間の脳と同じ仕組みである活性拡散(スプレッディング・アクティベーション)によって想起されます。ベクターデータベースも、API呼び出しも、毎月の埋め込み費用も不要です。

pip install neural-memory

AIツールを再起動してください。エージェントが記憶するようになります。initは不要で、MCPサーバーは初回使用時に自動初期化されます。

すでにインストール済みですか? nmem updateでその場でアップグレードし、pipインストールかソースからのインストールかを自動検出します。nmem update --checkは利用可能な更新情報のみを報告します。

CLIはnmem(または長い形式のneural-memory)です。nmというバイナリはありません。


3つのツール。それだけです。

63個のMCPツールが利用可能ですが、必要なのは3つだけです:

ツール

機能

nmem_remember

メモリを保存 — タイプ、タグ、接続を自動検出

nmem_recall

活性拡散による想起 — 関連メモリが自然に浮上

nmem_health

脳の健康スコア(A〜F)と実行可能な改善提案

その他すべて — セッション、コンテキスト読み込み、習慣トラッキング、メンテナンス — はバックグラウンドで透過的に動作します。

全63個のMCPツール →


Related MCP server: dejaview-mcp

他との違い

ほとんどのメモリツールは検索エンジンです。Neural Memoryは考えるグラフです。

「火曜日の障害はなぜ起きたのか?」と尋ねると、ベクターデータベースは最も類似した文を返します。Neural Memoryは連鎖をたどります:

outage ← CAUSED_BY ← JWT expiry ← SUGGESTED_BY ← Alice's review

関係性は明示的です — CAUSED_BY、LEADS_TO、RESOLVED_BY、CONTRADICTS — エージェントはメモリを見つけるだけでなく、それらを通して推論します。

検索ベース(RAG)

Neural Memory

検索

類似度スコア

グラフ探索

関係性

なし

24種類の明示的タイプ

LLM必須

はい(埋め込み)

いいえ — 完全オフライン

マルチホップ推論

複数クエリ

1回の探索

メモリライフサイクル

静的

減衰、強化、統合

1Kクエリあたりのコスト

~$0.02

$0.00


クラウド同期 — あなたのデータ、あなたのインフラ

すべてのマシンで脳を同期します。他のメモリツールとは異なり、私たちはあなたのデータを保存しません。

Laptop ←→ Your Cloudflare Worker ←→ Desktop
                  ↕
              Your Phone

同期ハブをご自身のCloudflareアカウント(無料枠)にデプロイします。あなたのD1データベース、あなたの暗号化キー、あなたのデータ。私たちはコードを提供します — インフラはあなたのものです。

nmem sync              # push/pull changes
nmem sync --auto       # auto-sync after every remember/recall

同期はMerkleデルタを使用します — 全脳ではなく差分のみが転送されます。高速、効率的、プライベート。

クラウド同期セットアップガイド →


機能

メモリと想起

  • 14種類のメモリタイプ — 事実、決定、エラー、洞察、好み、ワークフロー、指示など

  • 活性拡散 — キーワード一致ではなく連想によってメモリが浮上

  • 認知推論 — 仮説を立て、証拠を提出し、予測を行い、ベイズ信頼度で検証

  • ワークロードプリセット — nmem config preset {balanced,safe-cost,max-recall,chat-heavy} でSaaS、省コストモード、深い保持、会話型エージェント向けに脳を調整

  • 時間的想起 — nmem_causalはtemporal_rangeとtemporal_neighborhoodアクションを公開。時間的想起レシピガイドを参照

知識の取り込み

  • ドキュメントから学習 — PDF、DOCX、PPTX、HTML、JSON、XLSX、CSVを永続的な脳の知識として取り込み

  • インポートアダプター — ChromaDB、Mem0、Cognee、Graphiti、LlamaIndexから1コマンドで移行

ライフサイクルとストレージ

  • メモリ統合 — エピソード記憶が時間とともに意味記憶へ成熟

  • 圧縮ティア — 完全 → 要約 → 本質 → ゴースト → メタデータ(ストレージを回収し、意味を保持)

  • 脳のバージョン管理 — スナップショット、ロールバック、差分、脳間のメモリ移植

コミュニティ

  • Brain Store — コミュニティマーケットプレイスで既製の脳を閲覧、インポート、公開

  • 3つのシード脳 — Pythonベストプラクティス、Gitワークフロー、Dockerエッセンシャル(インポート可能)

エコシステム

  • Webダッシュボード — グラフ可視化、ヘルスレーダー、タイムライン、マインドマップ、Brain Storeを備えた7ページのReact UI

  • VS Code拡張機能 — メモリツリー、グラフエクスプローラー、CodeLens、WebSocket同期(マーケットプレイス →)

  • 安全性 — Fernet暗号化、機密コンテンツ自動検出、パラメータ化SQL、パス検証

  • Telegramバックアップ — 脳の.dbファイルをTelegramに送信してオフサイトバックアップ


クイック例

# Store memories (type auto-detected)
nmem remember "Fixed auth bug with null check in login.py:42"
nmem remember "We decided to use PostgreSQL" --type decision
nmem todo "Review PR #123" --priority 7

# Recall
nmem recall "auth bug"
nmem recall "database decision" --depth 2

# Brain management
nmem brain list && nmem brain health
nmem brain export -o backup.json

# Sync across devices
nmem sync --full

# Web dashboard
nmem serve    # http://localhost:8000/dashboard
import asyncio
from neural_memory import Brain
from neural_memory.storage import InMemoryStorage
from neural_memory.engine.encoder import MemoryEncoder
from neural_memory.engine.retrieval import ReflexPipeline

async def main():
    storage = InMemoryStorage()
    brain = Brain.create("my_brain")
    await storage.save_brain(brain)
    storage.set_brain(brain.id)

    encoder = MemoryEncoder(storage, brain.config)
    await encoder.encode("Met Alice to discuss API design")
    await encoder.encode("Decided to use FastAPI for backend")

    pipeline = ReflexPipeline(storage, brain.config)
    result = await pipeline.query("What did we decide about backend?")
    print(result.context)  # "Decided to use FastAPI for backend"

asyncio.run(main())

Neural Memory Pro

無料のNeural Memoryは完全です — 63ツール、無制限のメモリ、完全オフライン。支払う必要はありません。

しかし、1万メモリを超えると状況は変わります。キーワード一致では意味的に関連するコンテンツを見逃します。統合は数分に遅くなります。ストレージは無制限に増加します。エージェントの脳が大きくなっているなら、Proがそれをスマートにします。

無料版はキーワードで想起。Proは意味で想起。

Query: "authentication improvements"

Free (FTS5):  2 results — exact matches only
Pro  (HNSW):  7 results — includes "JWT rotation", "session hardening", "OAuth migration"

Proで追加される機能

無料(SQLite)

Pro(InfinityDB)

想起

キーワード一致(FTS5)

意味的類似度(HNSW)

100万ニューロンでの速度

~500ms

<5ms

テスト済みスケール

~5万ニューロン

200万+ニューロン

圧縮

テキストレベルのトリミング

5ティアベクトル圧縮(97%削減)

統合

O(N²)総当たり

O(N×k) HNSWクラスタリング

100万あたりのストレージ

~5 GB

~1 GB

クラウド同期

手動プッシュ/プル

Merkleデルタ(自動、差分のみ)

Pro限定機能

  • Cone Queries — 調整可能な意味的想起。コーンを狭めて精度を高め、広げて探索

  • Smart Merge — HNSW近傍クラスタリングを使用した100万+ニューロンに対応する統合

  • Directional Compression — 意味を保持しながら複数の意味軸に沿って圧縮

  • 5ティア自動ライフサイクル — メモリはfloat32 → float16 → int8 → バイナリ → メタデータと流れます。アクセス時に自動昇格

Proを入手

pip install neural-memory                 # Pro features included
nmem shared activate --key NM-PRO-XXXX-XXXX-XXXX   # activate license
nmem shared status                                 # verify: Pro: Active

$9/月 — 30日間の返金保証付き。すべての無料ツールは引き続き動作します。いつでもダウングレード可能、データは保持されます。

Proクイックスタート → · 完全比較 → · 料金 →


ツール別セットアップ

/plugin marketplace add nhadaututtheky/neural-memory
/plugin install neural-memory@neural-memory-marketplace
pip install neural-memory

エディタのMCP設定に追加:

{
  "mcpServers": {
    "neural-memory": { "command": "nmem-mcp" }
  }
}

スキル — ClawHubでワンクリック。 リリースごとに公開:

clawhub.ai/skills/neural-memory

プラグイン — メモリスロットの置き換え。 NeuralMemoryをOpenClawが呼び出すスキルではなく、OpenClawのメモリプロバイダーにしたい場合に使用:

pip install neural-memory && npm install -g neuralmemory

~/.openclaw/openclaw.jsonでメモリスロットを設定:

{ "plugins": { "slots": { "memory": "neuralmemory" } } }

すでにNeural Memoryを使用していますか? キーをアクティベートするだけです:

nmem shared activate --key NM-PRO-XXXX-XXXX-XXXX   # activate license

次にInfinityDB(意味検索エンジン)を有効化:

# ~/.neuralmemory/config.toml
storage_backend = "infinitydb"

MCPサーバーを再起動してください。既存のメモリは初回起動時にSQLiteからInfinityDBへ自動移行されます。

ライセンスを取得 → · Proクイックスタート →

pip install neural-memory[server]              # FastAPI server + dashboard
pip install neural-memory[extract]             # PDF/DOCX/PPTX/HTML/XLSX extraction
pip install neural-memory[nlp-vi]              # Vietnamese NLP
pip install neural-memory[embeddings]          # Local embedding models
pip install neural-memory[embeddings-openai]   # OpenAI embeddings
pip install neural-memory[all]                 # Everything

指標

NeuralMemory

Mem0

Cognee

50メモリの書き込み

1.2s

148.2s(121倍遅い)

290.6s(80倍遅い)

20クエリの読み取り

1.8s

2.9s

34.6s

API呼び出し

0

70

149

LLM呼び出しゼロ、APIコストゼロ。完全なベンチマーク → · 認知効率リリースのエビデンス →


ドキュメント

ガイド

説明

クイックスタートガイド

アニメーションデモ付きのインタラクティブガイド

Proクイックスタート

Pro機能の使い始め

CLIリファレンス

全82のCLIコマンド

MCPツールリファレンス

パラメータ付きの全63のMCPツール

クラウド同期

マルチデバイス同期のセットアップ

脳の健康ガイド

脳の健康の理解と改善

埋め込みセットアップ

埋め込みプロバイダーの設定

アーキテクチャ

技術設計の詳細

開発

git clone https://github.com/nhadaututtheky/neural-memory
cd neural-memory && pip install -e ".[dev]"
nmem doctor --dev        # Verify contributor setup
pytest tests/ -v          # 7800+ tests
ruff check src/ tests/    # Lint

ガイドラインについてはCONTRIBUTING.mdを参照してください。

サポート

Neural MemoryがAIエージェントの記憶に役立つなら、スターを付けていただけると幸いです。プロジェクトの発見につながり、開発の継続に役立ちます。

また、プロジェクトをスポンサーすることもできます。

ライセンス

MIT — 参照 LICENSE.

Available Tools

10 tools
nmem_autoA

Auto-extract memories from text. 'process'=analyze+save, 'flush'=emergency capture before compaction. Use at session end or when processing large text blocks.

ParametersJSON Schema
NameRequiredDescriptionDefault
saveNoForce save even if auto-capture disabled (for 'analyze')
textNoText to analyze (required for 'analyze' and 'process')
actionYesAction: 'process' analyzes and saves, 'analyze' only detects, 'flush' emergency capture before compaction (skips dedup, lower threshold)
compactNoReturn compact response (strip metadata hints, truncate lists). Saves 60-80% tokens.
token_budgetNoMax tokens for response. Progressively strips content to fit budget.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It does reveal that 'process' saves (mutation) and that 'flush' is an emergency capture skipping dedup with a lower threshold, but says nothing about what gets overwritten, idempotency, or permission requirements for a write-capable tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, action semantics front-loaded before the usage note. Minor redundancy with the action enum descriptions, but no filler or preamble.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation-capable tool with no annotations and no output schema, the description covers triggers and the two key actions but omits what the caller gets back and the safety profile. Adequate as a minimum viable entry point, with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all five parameters including the action enum are already documented in the schema, and the description's enum glosses largely restate it. Baseline 3 applies; the description adds little parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: auto-extract memories from text, and sketches the two most consequential actions ('process'=analyze+save, 'flush'=emergency capture). It does not differentiate itself from close siblings like nmem_remember or nmem_remember_batch, so the agent cannot fully tell which entry point to prefer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete context: 'Use at session end or when processing large text blocks,' and ties 'flush' to the pre-compaction emergency case. It offers no explicit exclusions (e.g., when to fall back to nmem_remember instead), so the routing is implied rather than closed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nmem_contextA

Get recent memories as auto-injected context. Use for broad task context. For specific queries use nmem_recall. For project-level context use nmem_recap.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of recent memories (default: 10)
compactNoReturn compact response (strip metadata hints, truncate lists). Saves 60-80% tokens.
fresh_onlyNoOnly include memories < 30 days old
token_budgetNoMax tokens for response. Progressively strips content to fit budget.
include_ghostsNoInclude faded ghost memories at bottom of context with recall keys (default: true). Set false to suppress.
warn_expiry_daysNoIf set, warn about memories expiring within this many days. Adds expiry_warnings to response.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. 'Get' plus 'auto-injected context' implies a read-only, non-mutating operation and hints that the content feeds automatic injection, but it says nothing about ordering, freshness defaults, or what happens when the token budget is exceeded. The richer behavioral details (token stripping, compact mode, ghost memories, expiry warnings) live only in the parameter descriptions, not the tool description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, and the core scoping statement is front-loaded ahead of the alternative routing. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter read tool with no output schema and no annotations, the description plus the rich parameter descriptions cover enough to invoke it correctly. The only remaining gap is the shape of the returned context, which is partly compensated by parameters like compact, token_budget, and warn_expiry_days that describe response behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all six parameters carry clear, substantive descriptions (defaults, ranges, and effects like 'strip metadata hints' or 'calls_expiry_warnings'). The tool description adds no parameter-level meaning at all, so the baseline 3 for full schema coverage is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get recent memories') and immediately frames the output as 'auto-injected context', which tells the agent what kind of payload to expect. It explicitly distinguishes itself from two siblings (nmem_recall, nmem_recap), so the agent can select it without opening any other schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit use case ('broad task context') and routes two alternatives by condition: specific queries to nmem_recall, project-level context to nmem_recap. This is a clean when-to-use / which-alternative mapping with nothing left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nmem_eternalA

SAVE project context, decisions, instructions that persist across sessions. Pair with nmem_recap to LOAD. Use for project-level facts, not task-specific memories.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesstatus=view memory counts and session state, save=store project context/decisions/instructions
reasonNoReason for the decision
compactNoReturn compact response (strip metadata hints, truncate lists). Saves 60-80% tokens.
decisionNoAdd a key decision (saved as DECISION)
tech_stackNoSet tech stack (saved as FACT)
instructionNoAdd a persistent instruction (saved as INSTRUCTION)
project_nameNoSet project name (saved as FACT)
token_budgetNoMax tokens for response. Progressively strips content to fit budget.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It mentions persistence across sessions, which is a key behavioral trait, but doesn't describe whether saving is reversible, what permissions are required, or what happens to existing memories when new ones are added. For a mutation tool with zero annotation coverage, this is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that are front-loaded with the core action and purpose. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (8 parameters, mutation operation, no annotations, no output schema), the description covers the basic purpose and a key usage distinction, but leaves significant gaps regarding behavioral traits like reversibility, permissions, and interaction with existing memories. It is adequate but not complete for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description doesn't add any parameter-specific meaning beyond what the schema provides. Baseline 3 is appropriate when the schema does all the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: it SAVES project context, decisions, and instructions that persist across sessions. It distinguishes itself somewhat from siblings by scoping to project-level facts rather than task-specific memories, which helps differentiate it from nmem_remember.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use for project-level facts, not task-specific memories, and pairs it with nmem_recap for loading. It doesn't name all relevant alternatives like nmem_remember, but the primary when-to-use condition is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nmem_recallA

Query memories via spreading activation. Use when you need past context, decisions, or knowledge. Depth: 0=instant lookup, 1=context (default), 2=cross-time patterns, 3=deep graph. Add tags for precision. Use nmem_context instead for broad recent context.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoRecall mode: 'associative' (default) returns formatted context, 'exact' returns raw neuron contents verbatim without truncation or summarization.
tagsNoFilter by tags. Checks tags, auto_tags, and agent_tags columns.
tierNoFilter results by memory tier. Only return memories matching this tier.
as_ofNoISO datetime for time-travel recall. Returns only memories that existed at that point in time (created_at <= as_of) and reconstructs their maturation stage. Example: '2026-03-01T00:00:00' recalls memory state as of March 1st.
depthNoSearch depth: 0=instant (direct lookup, 1 hop), 1=context (spreading activation, 3 hops), 2=habit (cross-time patterns, 4 hops), 3=deep (full graph traversal). Auto-detected if unset.
layerNoLayer scope: 'auto' (default) merges project + global brains, 'project' restricts to current brain only, 'global' queries only the global brain.
queryYesThe query to search memories
brainsNoOptional list of brain names to query across (max 5). When provided, runs parallel recall across all specified brains and merges results.
domainNoDomain scope filter. When set, HOT context injection only includes boundaries tagged with this domain (plus unscoped global boundaries). Example: domain='financial' filters out security boundaries from context.
compactNoCompact mode: return only core answer + confidence, skip all optional metadata (thought_chains, sources, cognitive_chunks, etc). Saves 200-800 tokens. Default: true. Set false for full metadata.
valenceNoFilter: only return memories with this emotional valence. Valence is detected at encoding via sentiment analysis. Use to find e.g. only frustrations (negative) or breakthroughs (positive).
tag_modeNoTag matching mode: 'and' (default, all tags must match) or 'or' (any tag matches).
valid_atNoISO datetime string to filter memories valid at that point in time (e.g. '2026-02-01T12:00:00')
min_trustNoFilter: only return memories with trust_score >= this value. Unscored memories (NULL) are always included.
max_tokensNoMaximum tokens in response (default: 500)
min_arousalNoFilter: only return memories with arousal (emotional intensity) >= this value. Arousal is detected at encoding time (0.0=neutral, 1.0=maximum intensity). Use to find emotionally significant memories (e.g. incidents, breakthroughs).
token_budgetNoMax tokens for response. Progressively strips content to fit budget.
include_pathsNoInclude activation paths (thought chains) showing how each neuron was reached. Returns top-5 paths with neuron content and hop distance. Default: false.
prefer_recentNoRe-rank matched fibers newest-first (by time_end, fallback created_at). Use for queries about current state ('what's the current version', 'today's status'). Do NOT use for historical questions ('how did we design X') — recency bias will mislead. Default: false.
include_statusNoLifecycle status filter. Default surfaces only 'active' neurons. Pass ['active', 'superseded'] to also see auto-superseded memories (Reflex Arc winners), or ['expired'] for past-validity-window history queries.
min_confidenceNoMinimum confidence threshold
permanent_onlyNoExclude ephemeral (session-scoped) memories from results. Default: false (include all).
show_provenanceNoAppend a one-line provenance footer (`[src=… · YYYY-MM-DD · conf=…]`) to each related neuron in recall output. Default: true. Set false to save ~5-8% tokens when caller does not need attribution.
clean_for_promptNoReturn clean bullet-point text without section headers or neuron-type tags. Default: true.
exclude_reflexesNoExclude reflex (always-on) neurons from this recall. Default: false.
warn_expiry_daysNoIf set, warn about memories expiring within this many days. Adds expiry_warnings to response.
include_citationsNoInclude citation and audit trail in exact recall results (default: true).
include_conflictsNoInclude full conflict details in response (default: false). When false, only has_conflicts flag and conflict_count are returned.
simhash_thresholdNoSimHash pre-filter Hamming distance cutoff. Neurons with content_hash farther than this threshold from the query hash are excluded before spreading activation. 0 = disabled (default). Lower values = stricter filtering. Overrides brain config for this query.
recall_token_budgetNoWhen set, activates budget-aware fiber selection: ranks fibers by value-per-token and selects the most efficient ones to fit within this budget. Adds budget_stats to the response. Default: not set (uses standard sequential truncation).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses the retrieval mechanism (spreading activation) and the depth ladder, but says nothing about cost (token budgets, compact default), the read-only nature, or what the response looks like. The depth explanation largely duplicates the schema rather than adding behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five short, front-loaded sentences with the core purpose first and the sibling redirect last; nothing is padded. The depth enumeration is the only segment that restates structured data rather than adding new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 30-parameter tool with no output schema and no annotations, the description is thin: it never mentions the rich filter surface (tier, as_of, valence, trust/arousal thresholds) or the shape of what comes back, even though the absent output schema means the description could reasonably carry some of that. The schema's 100% coverage keeps this from being inadequate, but it is only minimally sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 30 parameters are already documented in the schema, and the description's depth ladder repeats what the schema's depth property already says. It adds no syntax, defaults, or interactions beyond the structured fields, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Query memories') and the mechanism ('spreading activation'), then explicitly distinguishes itself from the sibling nmem_context for broad recent context. An agent can pick this tool over its 9 siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('when you need past context, decisions, or knowledge'), a refinement hint ('Add tags for precision'), and names the alternative tool with the condition that selects it ('Use nmem_context instead for broad recent context'). This is when-to-use plus when-to-use-something-else.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nmem_recapA

LOAD project context saved by nmem_eternal. Call at SESSION START to restore cross-session state. Level 1=quick (~500 tokens), 2=detailed, 3=full.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoDetail level: 1=quick (~500 tokens), 2=detailed (~1300 tokens), 3=full (~3300 tokens). Default: 1
topicNoSearch for a specific topic in context (e.g., 'auth', 'database')
compactNoReturn compact response (strip metadata hints, truncate lists). Saves 60-80% tokens.
token_budgetNoMax tokens for response. Progressively strips content to fit budget.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full behavioral burden. It usefully discloses per-level token costs and that it restores cross-session state, but never states read-only semantics, what happens when no saved context exists, or whether the level/token_budget interplay can drop content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, imperative verb front-loaded, and the highest-value instruction (session-start trigger) immediately follows the purpose. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, timing, and the primary level parameter for a 4-parameter tool with no output schema and no annotations. It is slightly thin on the interaction between level, compact, and token_budget and on the empty-context case, but the essentials for correct invocation are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter (level, topic, compact, token_budget) is already documented in the schema, including level's token estimates. The description's level restatement adds nothing beyond that, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('LOAD project context') and names the upstream writer (nmem_eternal), so an agent can tell it restores rather than saves. However, it does not distinguish itself from close siblings like nmem_recall, nmem_context, or nmem_situation, all of which plausibly read stored state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger: 'Call at SESSION START to restore cross-session state.' That is a clear when-to-use condition. It stops short of naming alternatives or exclusions (e.g., when to prefer nmem_recall or nmem_context instead), so it lacks the full when/when-not guidance a 5 requires.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nmem_rememberA

Store a memory. Auto-detects type, auto-resolves contradicted errors (RESOLVED_BY synapse). Use after completing a task, fixing a bug, or making a decision. Don't use for temporary notes (use ephemeral=true) or project context (use nmem_eternal).

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags for categorization
tierNoMemory tier: hot (always in context, slow decay), warm (default, semantic match), cold (explicit recall only, fast decay). Boundary type auto-promotes to hot.
typeNoMemory type (auto-detected if not specified)
domainNoDomain scope for boundary memories (e.g. 'financial', 'security', 'code-review'). Adds a domain:{value} tag. Boundaries without domain are global (apply everywhere). Only meaningful for type=boundary; ignored for other types.
compactNoCompact response: return only success + fiber_id + memory_type, skip verbose metadata. Saves 200-400 tokens. Default: true. Set false for full response.
contentYesThe content to remember
contextNoStructured context dict merged into content server-side using type-specific templates. Keys like 'reason', 'alternatives', 'cause', 'fix', 'steps' are auto-expanded. For type='decision': 'chosen', 'alternatives'/'rejected', 'confidence' enable decision intelligence (overlap detection, evolution tracking). Any agent can send structured data instead of crafting perfect prose.
event_atNoISO datetime of when the event originally occurred (e.g. '2026-03-02T08:00:00'). Defaults to current time if not provided. Useful for batch-importing past events with correct timestamps.
priorityNoPriority 0-10 (5=normal, 10=critical)
encryptedNoForce encrypt this memory's neuron content (default: false). When true, content is encrypted with the brain's Fernet key regardless of sensitive content detection.
ephemeralNoSession-scoped memory: auto-expires after TTL (default 24h), never synced to cloud, excluded from consolidation. Use for scratch notes, debugging context, temporary reasoning.
source_idNoLink this memory to a registered source. Creates a SOURCE_OF synapse for provenance tracking.
valid_fromNoInclusive lower bound of the memory's validity window (ISO 8601). Recall before this moment heavily penalizes the score. Use for scheduled rules, sprint goals, time-bounded API keys, etc.
trust_scoreNoTrust level 0.0-1.0. Capped by source ceiling (user_input max 0.9, ai_inference max 0.7). NULL = unscored.
valid_untilNoInclusive upper bound of the memory's validity window (ISO 8601). After this cliff, recall scores drop 10x and the lifecycle sweep eventually flips status to 'expired'. Complements gradual decay.
expires_daysNoDays until memory expires
token_budgetNoMax tokens for response. Progressively strips content to fit budget.
verbose_extractionNoSurface concept-extraction observability stats (dropped_short, dropped_noise, dropped_duplicate_entity). Default: false. Useful for debugging noise filter or measuring memory hygiene.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It usefully reveals automatic behaviors (type auto-detection, automatic contradiction resolution creating a RESOLVED_BY synapse), but says nothing about idempotency, dedup, permissions, or what a call returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action, then behavior, then usage. Every clause earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter mutation tool with no annotations and no output schema, the description covers intent and routing well but omits the return shape (e.g., fiber_id) and mutations side-effects, leaving the agent to infer output from parameter docs like 'compact'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across 18 parameters, so the schema already documents tier, domain, trust_score, validity windows, encryption, etc. The description only echoes 'ephemeral' and the auto-detected 'type' without adding syntax or defaults beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Store a memory') and adds distinguishing behaviors (auto-detects type, auto-resolves contradicted errors via RESOLVED_BY synapse). It names the sibling it is not for project context (nmem_eternal), though it does not distinguish itself from nmem_remember_batch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit triggering conditions ('after completing a task, fixing a bug, or making a decision') and explicit exclusions with remedies ('temporary notes -> ephemeral=true', 'project context -> nmem_eternal'). Clear when/when-not guidance; the batch sibling is not addressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nmem_remember_batchA

Store multiple memories at once (max 20). Use when saving 3+ memories together. Partial success — one bad item won't block the rest.

ParametersJSON Schema
NameRequiredDescriptionDefault
compactNoReturn compact response (strip metadata hints, truncate lists). Saves 60-80% tokens.
memoriesYesArray of memories to store (max 20)
token_budgetNoMax tokens for response. Progressively strips content to fit budget.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and delivers a genuinely non-obvious trait: partial success, where one bad item won't block the rest. It also notes the max-20 cap, though it says nothing about persistence, permissions, or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences, each carrying a distinct fact (scope, threshold, failure mode), with the core capability front-loaded. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a batch write tool with no annotations and no output schema, the description covers purpose, when-to-use, and failure semantics well. It lacks any mention of what a successful call returns or its persistence guarantees, which would round out the picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all three top-level parameters and nested memory fields are documented in the schema itself. The description's 'max 20' merely repeats maxItems already present, adding no new parameter meaning. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Store multiple memories at once') plus a hard constraint (max 20). The plural scope implicitly contrasts with the singular nmem_remember sibling, though it never names it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger condition: 'Use when saving 3+ memories together.' This routes the agent away from the single-item tool, but it does not name nmem_remember directly nor state when to prefer it explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nmem_sessionA

Track current session state (task, feature, progress). Single-session only. For cross-session persistence use nmem_eternal.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNoCurrent specific task
notesNoAdditional context notes
actionYesget=load current session, set=update session state, end=close session
compactNoReturn compact response (strip metadata hints, truncate lists). Saves 60-80% tokens.
featureNoCurrent feature being worked on
progressNoProgress 0.0 to 1.0
token_budgetNoMax tokens for response. Progressively strips content to fit budget.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden; it does disclose the important scope trait that state lives only for the current session and is not persisted across sessions. However, it says nothing about mutation semantics — whether 'set' replaces or merges existing state, or whether 'end' destroys it — which matters for a stateful tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero waste, with the core purpose front-loaded ahead of the scoping caveat and the alternative routing. Nothing needs to be trimmed and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter stateful tool with no annotations and no output schema, the description covers scope and routing but omits what a call actually returns (e.g., what 'get' yields, what 'end' reports) and the interaction between compact/token_budget and the response. Adequate but with real gaps given there is no output schema to lean on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all seven parameters (including action enums and token_budget/compact behavior) are already documented in the schema, making 3 the correct baseline. The description's parenthetical '(task, feature, progress)' merely echoes a subset of fields and adds no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Track current session state') and immediately scopes it with the listed fields (task, feature, progress). It also distinguishes itself from the sibling nmem_eternal by naming what it is not (cross-session persistence), so an agent can pick it without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit when-not ('Single-session only') paired with a named alternative ('For cross-session persistence use nmem_eternal'), which is exactly the routing signal an agent needs against a crowded sibling set. The condition that selects the alternative is stated, not inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nmem_situationA

One-shot snapshot of the current working situation: active session task, top 3 recent decisions, open blockers, gap detection. Replaces nmem_recap + multiple nmem_recall calls when resuming a session. Pure read — never mutates state.

ParametersJSON Schema
NameRequiredDescriptionDefault
compactNoReturn compact response (strip metadata hints, truncate lists). Saves 60-80% tokens.
token_budgetNoMax tokens for response. Progressively strips content to fit budget.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose the safety profile ('Pure read — never mutates state') plus the bounded output shape (top 3 decisions, active task, blockers). It stops short of explaining what 'gap detection' actually surfaces or whether results are scoped to a session/user, which would be useful for a read tool with no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly packed sentences with zero filler; the content enumeration is front-loaded and the behavioral guarantee comes last as a natural closing caveat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only snapshot tool with no output schema, the description adequately covers what is returned, how it relates to sibling tools, and its non-mutating nature. Minor gaps remain around the semantics of 'gap detection' and result scoping, but nothing blocks correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (compact, token_budget) are already documented with their token-saving behavior. The description adds no parameter-level detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('one-shot snapshot of the current working situation') and enumerates exactly what it returns: active session task, top 3 recent decisions, open blockers, gap detection. It explicitly distinguishes itself from siblings nmem_recap and nmem_recall, so an agent can route correctly without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternatives it supersedes (nmem_recap + multiple nmem_recall calls) and the condition that selects it ('when resuming a session'). It is a clear when-to-use with alternatives, but omits any when-not guidance (e.g. for narrow single-topic lookups where nmem_recall is cheaper).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nmem_todoA

Quick TODO memory (auto-expires in 30 days). Use nmem_forget to close when done.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesThe task to remember
compactNoReturn compact response (strip metadata hints, truncate lists). Saves 60-80% tokens.
priorityNoPriority 0-10 (default: 5)
token_budgetNoMax tokens for response. Progressively strips content to fit budget.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden, and it does disclose the key behavioral trait: automatic 30-day expiration. It also names the disposal path (nmem_forget). It omits other relevant behavior such as what the call returns (an ID is presumably needed to later forget the item) and whether the write is idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler; the defining trait (quick, auto-expiring) is front-loaded before the disposal instruction. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-required-parameter write tool with no output schema and no annotations, the description covers lifetime and teardown adequately. It falls short on the return/identifier behavior needed to actually invoke nmem_forget later, and on how it differs from the other memory-writing siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so task, compact, priority, and token_budget are all already documented in the schema, including the 0-10 range and default. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the resource ('TODO memory') and its transient nature ('auto-expires in 30 days'), which implicitly distinguishes it from the persistent siblings nmem_eternal and nmem_remember. However, it never uses an explicit verb like 'create' or 'store', so the write action must be inferred from the required 'task' parameter. Clear but no direct sibling comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives one lifecycle instruction — 'Use nmem_forget to close when done' — which tells the agent how to dispose of the item. It does not say when to prefer nmem_todo over nmem_remember or nmem_eternal (e.g., 'for short-lived tasks only'), so the selection guidance against alternatives is left to inference from the 30-day expiry.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv4.62.0
    • First observednmem_auto
    • First observednmem_context
    • First observednmem_eternal
    • First observednmem_recall
    • First observednmem_recap
    • First observednmem_remember
    • First observednmem_remember_batch
    • First observednmem_session
    • First observednmem_situation
    • First observednmem_todo

TDQS

A3.6/5.0

Scored across 10 tools

Disambiguation3/5

The retrieval tools (nmem_situation, nmem_recap, nmem_recall, nmem_context) and the storage tools (nmem_remember, nmem_remember_batch, nmem_todo, nmem_auto, nmem_eternal) heavily overlap, and the descriptions spend significant effort cross-referencing each other ('use nmem_context instead', 'for specific queries use nmem_recall') to compensate. The guidance is helpful but signals genuine boundary blur, so an agent can still misselect among the four recall-style tools.

Naming Consistency4/5

All names share a uniform nmem_ prefix with lowercase snake_case, which is highly predictable. The only minor deviation is mixing action verbs (remember, recall) with noun-style names (situation, context, eternal, session), but the conventions themselves are consistent.

Tool Count4/5

Ten tools is a reasonable scope for a memory server with distinct storage and retrieval concerns. It is slightly on the heavy side given the functional overlap between recall/situation/context/recap, but each still earns a roughly distinct place.

Completeness2/5

nmem_todo's description instructs the agent to 'use nmem_forget to close when done,' but no nmem_forget tool exists, creating a real dead end. There is also no delete or update/contradict-resolution tool exposed despite the surface emphasizing memory lifecycle management.

Maintenance

ActivityNo data
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides persistent knowledge graph memory for AI agents, enabling them to store, recall, and query facts about people, projects, and relationships across sessions.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to maintain persistent, local memory with retrieval-augmented search, knowledge graphs, and context surfacing, without any cloud dependencies.
    1,027 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables persistent, graph-based memory for AI agents, allowing them to store, traverse, and recall relationships between facts, decisions, and context across sessions for efficient reasoning and reduced token usage.
    MIT