neural-memory
NeuralMemory
당신의 AI 에이전트는 세션 사이에 모든 것을 잊어버립니다. Neural Memory가 두뇌를 제공합니다.
기억은 상호 연결된 뉴런으로 저장되고 확산 활성화를 통해 회상됩니다 — 인간 두뇌가 작동하는 방식과 동일합니다. 벡터 데이터베이스 없음. API 호출 없음. 월 임베딩 비용 없음.
pip install neural-memoryAI 도구를 다시 시작하세요. 이제 에이전트가 기억합니다 — init이 필요 없으며, MCP 서버는 첫 사용 시 자동으로 초기화됩니다.
이미 설치하셨나요? nmem update는 제자리에서 업그레이드하며 pip 또는 소스에서 설치했는지 감지합니다. nmem update --check는 사용 가능한 항목만 보고합니다.
CLI는
nmem입니다 (또는 더 긴neural-memory).nm바이너리는 없습니다.
3가지 도구. 그것뿐입니다.
63개의 MCP 도구가 제공되지만, 필요한 것은 세 가지뿐입니다:
도구 | 기능 |
| 기억 저장 — 유형, 태그, 연결을 자동 감지 |
| 확산 활성화를 통한 회상 — 관련 기억이 자연스럽게 떠오릅니다 |
| 두뇌 건강 점수 (A–F) 및 실행 가능한 수정 제안 |
그 외의 모든 것 — 세션, 컨텍스트 로딩, 습관 추적, 유지 관리 — 은 백그라운드에서 투명하게 작동합니다.
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 필요 | 예 (임베딩) | 아니요 — 완전 오프라인 |
다중 홉 추론 | 다중 쿼리 | 단일 탐색 |
메모리 수명 주기 | 정적 | 감쇠, 강화, 통합 |
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에서 한 번의 명령으로 마이그레이션
수명 주기 및 저장
메모리 통합 — 일화 기억이 시간이 지나면서 의미 지식으로 성숙
압축 계층 — 전체 → 요약 → 본질 → 유령 → 메타데이터 (저장 공간 확보, 의미 유지)
두뇌 버전 관리 — 스냅샷, 롤백, diff, 두뇌 간 메모리 이식
커뮤니티
Brain Store — 커뮤니티 마켓플레이스에서 사전 구축된 두뇌를 탐색, 가져오기, 게시
3개의 시드 두뇌 — Python 모범 사례, Git 워크플로우, Docker 필수 요소 (가져올 준비 완료)
생태계
웹 대시보드 — 그래프 시각화, 건강 레이더, 타임라인, 마인드맵, 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/dashboardimport 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개 도구, 무제한 메모리, 완전 오프라인. 결제할 필요가 없습니다.
하지만 10K 메모리를 넘어서면 상황이 달라집니다. 키워드 일치는 의미적으로 관련된 콘텐츠를 놓칩니다. 통합은 몇 분으로 느려집니다. 저장 공간은 무한정 늘어납니다. 에이전트의 두뇌가 커지고 있다면, 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) |
1M 뉴런에서 속도 | ~500ms | <5ms |
테스트된 규모 | ~50K 뉴런 | 2M+ 뉴런 |
압축 | 텍스트 수준 트리밍 | 5계층 벡터 압축 (97% 절약) |
통합 | O(N²) 무차별 대입 | O(N×k) HNSW 클러스터링 |
1M당 저장 공간 | ~5 GB | ~1 GB |
클라우드 동기화 | 수동 푸시/풀 | Merkle 델타 (자동, 차이만) |
Pro 전용 기능
Cone Queries — 조정 가능한 의미 회상. 정밀도를 위해 원뿔을 좁히고, 탐색을 위해 넓히세요
Smart Merge — HNSW 이웃 클러스터링을 사용하여 1M+ 뉴런으로 확장되는 통합
Directional Compression — 의미를 보존하면서 여러 의미 축을 따라 압축
5-Tier Auto Lifecycle — 메모리는 float32 → float16 → int8 → binary → metadata로 흐릅니다. 접근 시 자동 승격
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-marketplacepip install neural-memory편집기의 MCP 구성에 추가하세요:
{
"mcpServers": {
"neural-memory": { "command": "nmem-mcp" }
}
}스킬 — ClawHub를 통해 한 번의 클릭. 모든 릴리스에서 게시됩니다:
clawhub.ai/skills/neural-memory
플러그인 — 메모리 슬롯 대체. NeuralMemory가 호출하는 스킬이 아니라 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로 자동 마이그레이션됩니다.
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.2초 (121배 느림) | 290.6초 (80배 느림) |
20개 쿼리 읽기 | 1.8s | 2.9s | 34.6s |
API 호출 | 0 | 70 | 149 |
LLM 호출 0회, API 비용 0원. 전체 벤치마크 → · 인지 효율성 릴리스 증거 →
문서
가이드 | 설명 |
애니메이션 데모가 포함된 대화형 가이드 | |
Pro 기능 시작하기 | |
82개 CLI 명령 전체 | |
매개변수가 포함된 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 toolsnmem_autoA
Auto-extract memories from text. 'process'=analyze+save, 'flush'=emergency capture before compaction. Use at session end or when processing large text blocks.
| Name | Required | Description | Default |
|---|---|---|---|
| save | No | Force save even if auto-capture disabled (for 'analyze') | |
| text | No | Text to analyze (required for 'analyze' and 'process') | |
| action | Yes | Action: 'process' analyzes and saves, 'analyze' only detects, 'flush' emergency capture before compaction (skips dedup, lower threshold) | |
| compact | No | Return compact response (strip metadata hints, truncate lists). Saves 60-80% tokens. | |
| token_budget | No | Max tokens for response. Progressively strips content to fit budget. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent memories (default: 10) | |
| compact | No | Return compact response (strip metadata hints, truncate lists). Saves 60-80% tokens. | |
| fresh_only | No | Only include memories < 30 days old | |
| token_budget | No | Max tokens for response. Progressively strips content to fit budget. | |
| include_ghosts | No | Include faded ghost memories at bottom of context with recall keys (default: true). Set false to suppress. | |
| warn_expiry_days | No | If set, warn about memories expiring within this many days. Adds expiry_warnings to response. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | status=view memory counts and session state, save=store project context/decisions/instructions | |
| reason | No | Reason for the decision | |
| compact | No | Return compact response (strip metadata hints, truncate lists). Saves 60-80% tokens. | |
| decision | No | Add a key decision (saved as DECISION) | |
| tech_stack | No | Set tech stack (saved as FACT) | |
| instruction | No | Add a persistent instruction (saved as INSTRUCTION) | |
| project_name | No | Set project name (saved as FACT) | |
| token_budget | No | Max tokens for response. Progressively strips content to fit budget. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Recall mode: 'associative' (default) returns formatted context, 'exact' returns raw neuron contents verbatim without truncation or summarization. | |
| tags | No | Filter by tags. Checks tags, auto_tags, and agent_tags columns. | |
| tier | No | Filter results by memory tier. Only return memories matching this tier. | |
| as_of | No | ISO 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. | |
| depth | No | Search 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. | |
| layer | No | Layer scope: 'auto' (default) merges project + global brains, 'project' restricts to current brain only, 'global' queries only the global brain. | |
| query | Yes | The query to search memories | |
| brains | No | Optional list of brain names to query across (max 5). When provided, runs parallel recall across all specified brains and merges results. | |
| domain | No | Domain 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. | |
| compact | No | Compact 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. | |
| valence | No | Filter: 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_mode | No | Tag matching mode: 'and' (default, all tags must match) or 'or' (any tag matches). | |
| valid_at | No | ISO datetime string to filter memories valid at that point in time (e.g. '2026-02-01T12:00:00') | |
| min_trust | No | Filter: only return memories with trust_score >= this value. Unscored memories (NULL) are always included. | |
| max_tokens | No | Maximum tokens in response (default: 500) | |
| min_arousal | No | Filter: 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_budget | No | Max tokens for response. Progressively strips content to fit budget. | |
| include_paths | No | Include activation paths (thought chains) showing how each neuron was reached. Returns top-5 paths with neuron content and hop distance. Default: false. | |
| prefer_recent | No | Re-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_status | No | Lifecycle 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_confidence | No | Minimum confidence threshold | |
| permanent_only | No | Exclude ephemeral (session-scoped) memories from results. Default: false (include all). | |
| show_provenance | No | Append 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_prompt | No | Return clean bullet-point text without section headers or neuron-type tags. Default: true. | |
| exclude_reflexes | No | Exclude reflex (always-on) neurons from this recall. Default: false. | |
| warn_expiry_days | No | If set, warn about memories expiring within this many days. Adds expiry_warnings to response. | |
| include_citations | No | Include citation and audit trail in exact recall results (default: true). | |
| include_conflicts | No | Include full conflict details in response (default: false). When false, only has_conflicts flag and conflict_count are returned. | |
| simhash_threshold | No | SimHash 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_budget | No | When 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Detail level: 1=quick (~500 tokens), 2=detailed (~1300 tokens), 3=full (~3300 tokens). Default: 1 | |
| topic | No | Search for a specific topic in context (e.g., 'auth', 'database') | |
| compact | No | Return compact response (strip metadata hints, truncate lists). Saves 60-80% tokens. | |
| token_budget | No | Max tokens for response. Progressively strips content to fit budget. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tags for categorization | |
| tier | No | Memory tier: hot (always in context, slow decay), warm (default, semantic match), cold (explicit recall only, fast decay). Boundary type auto-promotes to hot. | |
| type | No | Memory type (auto-detected if not specified) | |
| domain | No | Domain 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. | |
| compact | No | Compact response: return only success + fiber_id + memory_type, skip verbose metadata. Saves 200-400 tokens. Default: true. Set false for full response. | |
| content | Yes | The content to remember | |
| context | No | Structured 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_at | No | ISO 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. | |
| priority | No | Priority 0-10 (5=normal, 10=critical) | |
| encrypted | No | Force encrypt this memory's neuron content (default: false). When true, content is encrypted with the brain's Fernet key regardless of sensitive content detection. | |
| ephemeral | No | Session-scoped memory: auto-expires after TTL (default 24h), never synced to cloud, excluded from consolidation. Use for scratch notes, debugging context, temporary reasoning. | |
| source_id | No | Link this memory to a registered source. Creates a SOURCE_OF synapse for provenance tracking. | |
| valid_from | No | Inclusive 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_score | No | Trust level 0.0-1.0. Capped by source ceiling (user_input max 0.9, ai_inference max 0.7). NULL = unscored. | |
| valid_until | No | Inclusive 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_days | No | Days until memory expires | |
| token_budget | No | Max tokens for response. Progressively strips content to fit budget. | |
| verbose_extraction | No | Surface concept-extraction observability stats (dropped_short, dropped_noise, dropped_duplicate_entity). Default: false. Useful for debugging noise filter or measuring memory hygiene. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| compact | No | Return compact response (strip metadata hints, truncate lists). Saves 60-80% tokens. | |
| memories | Yes | Array of memories to store (max 20) | |
| token_budget | No | Max tokens for response. Progressively strips content to fit budget. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Current specific task | |
| notes | No | Additional context notes | |
| action | Yes | get=load current session, set=update session state, end=close session | |
| compact | No | Return compact response (strip metadata hints, truncate lists). Saves 60-80% tokens. | |
| feature | No | Current feature being worked on | |
| progress | No | Progress 0.0 to 1.0 | |
| token_budget | No | Max tokens for response. Progressively strips content to fit budget. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| compact | No | Return compact response (strip metadata hints, truncate lists). Saves 60-80% tokens. | |
| token_budget | No | Max tokens for response. Progressively strips content to fit budget. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | The task to remember | |
| compact | No | Return compact response (strip metadata hints, truncate lists). Saves 60-80% tokens. | |
| priority | No | Priority 0-10 (default: 5) | |
| token_budget | No | Max tokens for response. Progressively strips content to fit budget. |
TDQS
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.
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.
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.
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.
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.
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.
10 tool updates
v4.62.0- First observed
nmem_auto - First observed
nmem_context - First observed
nmem_eternal - First observed
nmem_recall - First observed
nmem_recap - First observed
nmem_remember - First observed
nmem_remember_batch - First observed
nmem_session - First observed
nmem_situation - First observed
nmem_todo
TDQS
Scored across 10 tools
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.
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.
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.
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
Related MCP Connectors
Shared long-term memory for AI agents: save and recall context as a searchable knowledge graph.
- GoMindOAuthcom.gominddb
Persistent knowledge graph for AI agents. Remember, recall, and forget facts.
Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.
Graph memory for AI agents: entities, cause-effect links, cross-session recall, time travel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables LLM agents to use associative memory with key/value graph-based retrieval, supporting multi-hop traversal and human-like associative leaps beyond embedding similarity.10MIT
- AlicenseNot gradedqualityDmaintenanceProvides persistent knowledge graph memory for AI agents, enabling them to store, recall, and query facts about people, projects, and relationships across sessions.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to maintain persistent, local memory with retrieval-augmented search, knowledge graphs, and context surfacing, without any cloud dependencies.1,027 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables 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