mcpField
S
SMRITI Memory

SMRITI Memory

本地服务
github.com/smriti-memcore记忆与知识36 天前更新

关于 SMRITI Memory

SMRITI Memory 是面向 AI Agent、多 Agent 框架和 MCP 客户端的持久记忆引擎。它将即时记录与异步整合结合为语义图谱,并提供私有空间和可视化浏览功能。

主要功能

  1. 01即时记录与异步整合
  2. 02语义图谱检索
  3. 03私有记忆空间
  4. 04工作记忆上下文支持
  5. 05图谱浏览与 Obsidian 同步
  6. 06兼容 AMP 的 MCP 工具

适用场景

  1. 01在编码 Agent 间共享项目记忆
  2. 02为 Agent 循环构建持久记忆
  3. 03将课程材料打包为离线导师
  4. 04将指定记忆排除在团队同步之外

MCP 相关

MCP 服务提供 19 种记忆工具,包括写入、检索、上下文获取、整合和隐私控制,并提供 AMP v1.0 别名工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"shivamtyagi18-smriti-memory": {
"command": "uvx",
"args": [
"smriti-memcore"
]
}
}
}
启动命令uvx smriti-memcore

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypismriti-memcore1.4.17

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

SMRITI Memcore

面向 LLM Agent、多 Agent 框架和 MCP 客户端的企业级、隐私优先长期记忆(LTM)引擎。

www.smriti-memcore.com

PyPI Python 3.9+ License: MIT Website SMRITI Memory MCP server

SMRITI 记忆浏览器与图谱探索器演示

交互式语义宫殿图谱浏览器(smriti ui) — 类别房间枢纽聚类、神经突触粒子流和实时双检查器。观看高清完整视频


什么是 SMRITI?

SMRITI 是一个高性能、受神经科学启发的长期记忆层,旨在为 AI Agent 提供持久、自适应的回忆能力,同时不阻塞其实时执行循环。

SMRITI 的设计灵感源自人类双加工认知理论,它将记忆操作分为:

  1. 系统 1(即时启发式处理):以毫秒级速度将原始交互解耦并摄入仅追加的情节缓冲区。
  2. 系统 2(异步整合):在后台由 LLM 驱动进行整合,提取知识图谱、解决矛盾、识别技能并衰减薄弱记忆。

SMRITI 与朴素 RAG 和向量数据库的比较

特性朴素 RAG / 向量数据库SMRITI 记忆引擎
延迟随上下文大小线性增长;会阻塞 Agent 循环摄入耗时不到 5 毫秒(系统 1);系统 2 异步运行
上下文窗口塞入原始日志,导致提示词膨胀并分散注意力**米勒定律(7 ± 2 个槽位)**限定容量的工作记忆
数据演变嵌入静态;难以处理矛盾和更正自动解决冲突、抽象和时间衰减
关系扁平的向量搜索;没有实体链接概念语义宫殿图谱,展示结构化的房间/主题关联
隐私与同步存储非此即彼;命名空间路由复杂原生支持私有房间和 private=True 标签,以隔离用户同步

核心能力

  • 双进程性能:实时循环零阻塞。立即写入,空闲时分析。
  • 人格宫殿与按需中心:下载为历史人物(例如 Albert Einstein、Isaac Newton)预先策划的认知记忆宫殿,并以真实的思维模型与他们对话。
  • 隐私优先(私人空间):创建本地语义空间,其记忆会自动排除在共享/团队同步之外。
  • Model Context Protocol(MCP):原生 MCP 服务集成,支持 Claude Code、Claude Desktop、Gemini Antigravity 和 Codex。
  • 符合 AMP v1.0 规范:可直接兼容任何符合 Agent Memory Protocol 的 Agent 框架。
  • 可视化图谱浏览器:简洁的 D3.js 可视化界面,并支持 Prometheus 指标监控。
  • Obsidian Vault 集成:自动将 Agent 的记忆图谱同步到 Obsidian vault,供人工整理。
  • 框架无关:原生集成 LangChain、LlamaIndex、CrewAI 和 AutoGen。

核心架构

                           ┌─────────────────────────────────┐
                           │    Asynchronous Consolidation   │
                           │      (8 Background Processes)   │
                           │  • Chunking      • Cross-Ref.   │
                           │  • Conflict Res. • Skill Ext.   │
                           │  • Forgetting    • Spaced Rep.  │
                           │  • Reflection    • Defragment.  │
                           └────────────────┬────────────────┘
                                            │ background
  ┌──────────┐   ┌──────────┐   ┌───────────▼─────────┐   ┌──────────┐
  │  Input   │──▶│ Attention │──▶│   Episode Buffer    │──▶│ Semantic │
  │  Text    │   │   Gate    │   │  (append-only log)  │   │  Palace  │
  │  └───────┘   │ (salience │   └─────────────────────┘   │  Graph   │
  │              │  filter)  │                              │ G=(V,E)  │
  └──────────┘   └──────────┘                              └────┬─────┘
                                                                │
  ┌──────────┐   ┌──────────┐   ┌───────────────────┐           │
  │  Query   │──▶│ Retrieval│──▶│  Working Memory   │◀──────────┘
  │          │   │  Engine  │   │   (7 ± 2 slots)   │
  └──────────┘   │ Q(v) =   │   └───────────────────┘
                 │ β₁cos +  │
                 │ β₂decay+ │   ┌───────────────────┐
                 │ β₃freq + │──▶│    Meta-Memory    │
                 │ β₄sal    │   │ (confidence map)  │
                 └──────────┘   └───────────────────┘

快速开始

1. 安装 SMRITI

安装核心记忆引擎和 CLI:

pip install smriti-memcore

(可选:确保 Ollama 在本地运行,以实现 100% 私密、免费的 LLM 推理:ollama run mistral)


2. 教授与课程创建者指南:打包课程内容

将原始讲义文件夹转换为独立、离线优先的 认知宫殿包(.smritibundle),为学生提供全天候的苏格拉底式教学助手。

# Package a folder of slides, transcripts, readings, or notebooks into an offline bundle:
smriti pack ./my-course-folder -o cs101.smritibundle

# Or package directly from a declarative YAML/JSON persona spec:
smriti pack ./course-spec.yaml -o cs101.smritibundle --install
  • 支持的格式:PDF 幻灯片、WebVTT/SRT 视频课程字幕、Markdown、纯文本和 Jupyter 笔记本(.ipynb)。
  • 零云端费用:所有向量嵌入均在本地计算(无需支付 OpenAI/HuggingFace API 费用)。
  • 轻量分发:生成独立的归档文件(通常为 5–15 MB),其中包含向量索引、全文搜索和语义图谱。可直接上传到 Canvas、Blackboard、Piazza、Google Drive,或通过电子邮件发送给学生。

3. 学生指南:全天候苏格拉底式答疑时间

学生下载教授提供的 .smritibundle,即可直接在终端中与交互式课程导师对话——完全离线、私密且无需订阅。

# Step 1: Import the course bundle provided by your professor
smriti pull ./cs101.smritibundle

# Step 2: Start your 24/7 Socratic Office Hours
smriti chat cs101

# (Optional) Use a specific local Ollama model (e.g. Mistral, Qwen, Llama)
smriti chat cs101 --model mistral
smriti chat cs101 --model qwen3.5
  • 精准溯源:询问任何概念,即可查看准确的幻灯片页码和视频课程字幕引文。
  • 苏格拉底式教学法:课程人格不会直接给出作业答案,而是使用课程类比,从基本原理出发逐步引导学生。
  • 100% 本地且私密:所有对话都保留在学生的笔记本电脑上,不会向外部服务发送任何学生数据。
官方注册表中的预先策划导师

你也可以立即体验开箱即用的导师:

# List all available mentors and locally installed bundles
smriti list

# Socratic Distributed Systems Professor (Raft, Paxos, CAP theorem)
smriti chat prof-systems

# 100% Private, Local CBT & Mindfulness Companion
smriti chat mindful-counsellor

# Historical Thinkers
smriti chat einstein
smriti chat newton
smriti chat marcus-aurelius

4. Smriti DevBrain:通用开发者记忆(Cursor、Claude、Windsurf、Gemini、Zed)

SMRITI 通过在所有 AI 编码工具之间充当共享的本地认知大脑,解决跨 Agent 失忆问题。在 Claude Code 或 Gemini 中解决的 Bug 会立即被 Cursor 记住。

第 1 步:自动配置所有已安装的 IDE 和 Agent

运行一条命令,即可在几秒内扫描并配置 Cursor、Claude Code、Windsurf、Gemini 和 Zed:

smriti install

(或者指定工具:smriti install --client cursor,windsurf)

第 2 步:初始化代码库工作区

在任意代码仓库中运行:

smriti init

这会自动:

  • 在宫殿中为项目创建专用语义空间(repo:<name>)。
  • 创建 .cursorrules、.cursor/rules/smriti.mdc、CLAUDE.md 和项目 .cursor/mcp.json。
  • 安装轻量、非阻塞的 git post-commit 钩子,将近期提交和架构变更记录到记忆中。
Git 提交记忆钩子管理:
smriti hook install    # Enable automatic commit context logging
smriti hook uninstall  # Remove the post-commit hook

3. Python SDK

适用于构建自定义 Agent 循环的应用开发者。

pip install smriti-memcore[faiss] # FAISS is recommended for accelerated vector search
from smriti import SMRITI, SmritiConfig

# Initialize memory engine with OpenAI
config = SmritiConfig(
    storage_path="./my_agent_memory",
    llm_model="gpt-4o",
    openai_api_key="your-api-key-here"
)
memory = SMRITI(config=config)

# Ingest observations
memory.encode("User prefers using PyTorch for neural networks.")
memory.encode("User is allergic to shellfish.", context="medical")

# Recall relevant context using multi-factor retrieval
results = memory.recall("What framework does the user prefer?")
for mem in results:
    print(f"[{mem.strength:.2f}] {mem.content}")

# Manually trigger System 2 background consolidation
memory.consolidate()
memory.save()

# --- Or Load a Pre-Curated Persona (e.g. Albert Einstein) ---
einstein, manifest = SMRITI.from_persona("albert-einstein")
memories = einstein.recall("What thought experiment led to Special Relativity?")
for mem in memories:
    print(f"[{mem.strength:.2f}] {mem.content}")

MCP 工具参考

SMRITI 为客户端提供 19 个工具(13 个原生工具 + 6 个 AMP 别名):

核心工具
工具名称描述
smriti_encode摄取新的记忆。接受 private=True,以将其排除在团队同步之外。
smriti_recall使用语义检索和基于图的检索来提取记忆。
smriti_get_context用于将当前活跃的工作记忆槽注入上下文窗口的辅助工具。
smriti_how_well_do_i_know对给定主题执行元记忆置信度检查。
smriti_knowledge_gaps识别 Agent 已发现需要更多信息的主题。
smriti_pin将记忆标记为永久记忆(保护其免受强度衰减)。
smriti_forget软删除/归档记忆,并留下加密墓碑。
smriti_consolidate触发后台 System 2 整合任务。
smriti_stats返回全系统统计信息(记忆总数、房间数、私有记忆数量)。
smriti_create_private_room创建一个私有房间。房间内所有记忆均与其他可见范围隔离。
smriti_open_ui在默认浏览器中启动交互式 D3.js 记忆图谱。
smriti_sync_obsidian将 Semantic Palace 图结构导出为 Obsidian Vault 中的 Markdown 文件。
AMP v1.0 别名工具

这些端点确保完全符合标准 Agent Memory Protocol 规范:

AMP 工具原生映射返回格式
amp.encodesmriti_encodeAMP 标准 JSON 响应
amp.recallsmriti_recall{id, content, score, timestamp, status} 数组
amp.forgetsmriti_forget{status: "forgotten" | "not_found"}
amp.statssmriti_stats{memory_count, ...}
amp.pinsmriti_pin{status: "pinned" | "not_found"}
amp.consolidatesmriti_consolidate{status: "ok", memories_processed: int}

框架集成

LangChain 集成

使用 SmritiLangChainMemory 作为默认聊天缓冲区的即插即用替代方案。它使用工作记忆限制活跃上下文,并在后台将对话历史转存到 Semantic Palace 图谱中。

from langchain.chains import ConversationChain
from smriti.integrations.langchain_memory import SmritiLangChainMemory
from smriti import SMRITI

smriti_engine = SMRITI(storage_path="./langchain_smriti_db")
smriti_memory = SmritiLangChainMemory(smriti_client=smriti_engine, top_k=3)

conversation = ConversationChain(
    llm=my_llm,
    memory=smriti_memory,
)
conversation.predict(input="I prefer backend APIs in Python.")

基准测试与性能

1. LoCoMo(多系统上下文检索)

在 LoCoMo 长上下文对话数据集(28 轮、15 个评估问题)上对四种架构进行了测试:

系统F1 分数延迟每次查询的 Token 数整合
FullContext0.3451147ms550—
MemGPT-style0.3341397ms478—
NaiveRAG0.3121387ms145—
SMRITI0.2791317ms14641.2s(异步)
Mem0-style0.2351088ms106—

SMRITI 在大幅缩减查询上下文的同时保持较高的召回率。整合在后台运行,不会阻塞客户端交互。

2. LongMemEval(长期聊天会话)

使用 LongMemEval 测试框架,在 50 多个聊天会话上进行了评估:

系统配置精确匹配准确率平均查询延迟
基线(完整上下文)100.0%11.98s
SMRITI 双进程80.0%0.98s(延迟降低 12 倍)

配置参数

使用自定义参数初始化 SmritiConfig,以调整认知权重:

from smriti import SmritiConfig

config = SmritiConfig(
    working_memory_slots=7,          # Capacity limit (Miller's Law)
    
    # Retrieval scoring weights (sum to 1.0)
    recency_weight=0.2,
    relevance_weight=0.4,
    strength_weight=0.2,
    salience_weight=0.2,

    # Forgetting & Temporal Decay
    decay_rate=0.99,                 # Strength multiplier per day
    strength_hard_threshold=0.05,    # Memories dropping below this are forgotten
    
    # Palace Graph
    room_merge_threshold=0.85,       # Cosine similarity for auto-merging semantic rooms
)

引用

如果您在研究中使用 SMRITI,请引用我们的技术论文:

@article{tyagi2025smriti,
  title={SMRITI: A Scalable, Neuro-Inspired Architecture for Long-Term Event Memory in LLM Agents},
  author={Tyagi, Shivam},
  year={2025},
  doi={10.13140/RG.2.2.25477.82407}
}

许可证

SMRITI 基于 MIT License 授权。详情请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。