mcpField
S
shodh-memory

shodh-memory

本地服务
github.com/varun29ankuS记忆与知识3164 周前更新

关于 shodh-memory

shodh-memory 是面向 AI Agent 的持久化认知记忆 MCP 服务,数据存储在本机。它基于三层记忆模型,结合语义搜索、Hebbian 学习和知识图谱,适合需要跨会话保留上下文的开发者。

主要功能

  1. 01三层记忆架构(工作、会话、长期)
  2. 02基于 MiniLM-L6 的语义搜索
  3. 03Hebbian 学习强化记忆之间的关联
  4. 04知识图谱与实体关系追踪
  5. 05内容哈希去重,避免重复存储
  6. 06内置 GTD 风格的待办与提醒管理

适用场景

  1. 01让编码 Agent 跨会话记住用户的技术偏好
  2. 02在长期项目中检索历史决策与上下文
  3. 03为 AI 助手管理待办、项目和提醒

MCP 相关

该服务以 MCP 服务形式暴露 51 个工具,涵盖记忆、待办、项目、提醒和系统维护,并支持资源与提示词,供 MCP 客户端调用。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"varun29ankus-shodh-memory": {
"command": "npx",
"args": [
"-y",
"@shodh/memory-mcp"
],
"env": {
"SHODH_API_URL": "<SHODH_API_URL>",
"SHODH_API_KEY": "<SHODH_API_KEY>",
"SHODH_USER_ID": "<SHODH_USER_ID>"
}
}
}
}
启动命令npx -y @shodh/memory-mcp
需要配置的环境变量
SHODH_API_URLURL of the shodh-memory backend server
SHODH_API_KEY密钥API key for authentication
SHODH_USER_IDUser ID for memory isolation

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

安装包
npm@shodh/memory-mcp0.2.0

工具

38

收录的工具列表 · 更新于 2 周前

参数类型必填说明
tagsarray否用于分类的可选标签
typeenum否记忆类型Observation | Decision | Learning | Error | Discovery | Pattern | Context | Task | CodeEdit | FileAccess | Search | Command | Conversation
rewardnumber否强化学习奖励信号(-1.0 至 1.0)
contentstring是要记住的内容(观察、决策、学习等)
emotionstring否主要情绪标签(例如,'joy'、'frustration'、'surprise')
headingnumber否以度为单位的朝向(0-360)
robot_idstring否多机器人系统中的机器人/无人机标识符
parent_idstring否用于分层组织的父级记忆 ID。创建记忆树(例如,'71-research' -> 'algebraic' -> '21×27≡-1')
created_atstring否记忆的可选 ISO 8601 时间戳(例如,'2025-12-15T06:30:00Z')。如果未提供,则使用当前时间。
episode_idstring否Episode ID——将记忆归入连贯的事件/对话
importancenumber否可选的重要性覆盖值(0.0-1.0)。绕过自动计算。用于已知重要性的记忆:Decision=0.8,Learning=0.7,Error=0.7,Discovery=0.6,Observation=0.3
mission_idstring否用于对经历分组的任务标识符
action_typestring否动作类型名称(例如,'navigate'、'grasp'、'dock')
credibilitynumber否可信度分数:0.0 至 1.0(1.0 = 已验证事实,0.3 = 推断)
sensor_dataobject否原始传感器读数(例如,{battery: 72.5, temperature: 23.1})
source_typeenum否来源类型:信息的来源user | system | api | file | web | ai_generated | inferred
geo_locationarray否WGS84 中的 GPS 坐标 [latitude, longitude, altitude]
outcome_typestring否结果类型:success、failure、partial、aborted、timeout
terrain_typestring否地形类型:indoor、outdoor、urban、rural、water、aerial
local_positionarray否以米为单位的局部位置 [x, y, z](机器人局部坐标系)
sequence_numbernumber否Episode 内的序列号(1, 2, 3...)
emotional_arousalnumber否唤醒水平:0.0(平静)至 1.0(高度唤醒)。例如,常规任务:0.2,严重问题:0.9
emotional_valencenumber否情感效价:-1.0(负面)到 1.0(正面),0.0 = 中性。例如,发现 bug:-0.3,发布功能:0.7
preceding_memory_idstring否前一条记忆的 ID(用于时间链)

详细介绍

Shodh-Memory

Shodh-Memory MCP 服务

为 AI Agent 提供持久认知记忆

npm 许可证

文档 | GitHub | Python SDK | Rust Crate


功能

  • 认知架构:基于 Cowan 模型的三级记忆(工作记忆、会话记忆、长期记忆)
  • 赫布学习:“共同激活的神经元会连接在一起”——关联会随着使用而增强
  • 语义搜索:使用 MiniLM-L6 嵌入向量按含义查找记忆
  • 知识图谱:实体提取与关系追踪
  • 记忆整合:自动衰减、重放和强化
  • 幂等:按内容哈希去重——相同的记忆绝不会存储两次
  • 一键安装:自动下载适用于你平台的原生服务二进制文件
  • 离线优先:首次运行时自动下载所有模型(总计约 38MB),之后无需联网
  • 快速:API 响应低于 200ms,图查询低于 1 毫秒,语义搜索耗时 30–50ms
  • GTD 任务管理:完整的待办事项系统,包含项目、子任务、评论和提醒

安装

添加到你的 MCP 客户端配置中:

Claude Desktop / Claude Code(claude_desktop_config.json):

{
  "mcpServers": {
    "shodh-memory": {
      "command": "npx",
      "args": ["-y", "@shodh/memory-mcp"],
      "env": {
        "SHODH_API_KEY": "your-api-key-here"
      }
    }
  }
}

配置文件位置:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • Linux:~/.config/Claude/claude_desktop_config.json

Codex CLI(.codex/config.toml):

[mcp_servers.shodh-memory]
startup_timeout_sec = 60
command = "npx"
args = ["-y", "@shodh/memory-mcp"]
env = { SHODH_API_KEY = "your-api-key-here" }

默认情况下,MCP 服务通过 HTTP 与后端通信,可在所有平台上运行。若要改用经过身份验证的本地 IPC 处理普通请求,请添加 SHODH_IPC_ENDPOINT 并设置适用于相应平台的值。在 Windows 上,使用服务打印的当前用户命名管道(通常为 \\.\pipe\shodh-memory-<current-user-SID>);在 macOS/Linux 上,使用其 Unix 套接字的绝对路径(默认位于平台数据目录下的 shodh/shodh-memory.sock)。在 macOS/Linux 上设置 \\.\pipe\... 会被拒绝,不会悄悄转发给启动的后端。自动启动路径会将明确配置的端点传递给后端,以确保两个进程使用相同的值。

注意:首次运行时会下载服务二进制文件(约 15MB)和嵌入模型(约 23MB)。startup_timeout_sec = 60 可确保初始设置有充足的时间完成。

对于 Cursor/其他 MCP 客户端:使用 npx 命令进行类似配置。

环境变量

变量描述默认值
SHODH_API_KEY必需。用于身份验证的 API 密钥-
SHODH_IPC_ENABLED服务监听开关。自动启动的后端会遵循此值。true
SHODH_IPC_ENDPOINTMCP 请求的本地端点:Unix 套接字路径(macOS/Linux)或 \\.\pipe\name(Windows)。设置后,普通 MCP 请求会使用本地 IPC,而非 HTTP。macOS/Linux 上不接受 Windows 管道值。-
SHODH_IPC_REQUIRED如果 IPC 无法绑定或通过身份验证,则采取失败关闭策略。启用 IPC 时,TypeScript 客户端也要求设置 SHODH_IPC_ENDPOINT。false
SHODH_API_URL后端服务 URLhttp://127.0.0.1:3030
SHODH_USER_ID逻辑记忆命名空间;并非授权租户claude-code
SHODH_NO_AUTO_SPAWN设置为 true 以禁用后端自动启动false
SHODH_STREAM启用/禁用流式写入true
SHODH_STREAM_WEBSOCKET仅在 IPC 模式下,显式选择通过 SHODH_API_URL 使用 WebSocket 流式传输false
SHODH_PROACTIVE启用/禁用主动呈现记忆true
本地 IPC

设置 SHODH_IPC_ENDPOINT 后,工具调用、主动呈现、运行状况检查、 资源和提示词都会使用本地 IPC。每次调用都会建立一个本地连接,并 交换一个带版本号、以换行符分隔的 JSON 请求和响应。帧大小上限为 8 MiB。首先通过空身份验证运行状况质询,验证端点是否知道配置的密钥。 随后,普通请求会使用与该服务实例和请求正文绑定的 HMAC 证明;可复用的 API 密钥绝不会通过 IPC 发送,也不会写入 MCP 标准输出。

流式写入仍通过 WebSocket 实现。由于本地协议采用有限的请求/响应模式, IPC 模式下默认禁用流式写入。若要显式启用,请设置 SHODH_STREAM_WEBSOCKET=true,并将 SHODH_API_URL 配置为服务的 HTTP WebSocket 端点。普通操作仍会使用 IPC。

如果未设置 SHODH_IPC_ENDPOINT,MCP 服务会保留原有的 HTTP 和 WebSocket 行为。设置该变量即表示明确选择传输方式:如果 IPC 端点 不可用,系统会报告错误,而不会静默改用 HTTP 重试。

与使用 REST 时一样,SHODH_USER_ID 仍是一个逻辑命名空间。配置的 API 密钥拥有跨命名空间的权限。若相互不信任的租户需要授权边界,请使用不同的 服务/密钥实例。

MCP 工具(共 51 个)

记忆 — 存储、搜索和管理记忆
工具描述
remember存储记忆,可选指定类型、标签和元数据
recall语义搜索,查找相关记忆。传入 full_content: true 可在行内获取完整内容
proactive_context自动呈现与当前上下文相关的记忆。传入 full_content: true 可在行内获取完整内容
context_summary获取用于会话初始化的分类上下文
list_memories列出所有已存储的记忆
read_memory按 ID 读取特定记忆的完整内容
forget按 ID 删除特定记忆

记忆预览和截断。 recall、recall_by_tags 和 proactive_context 会返回每条记忆正文的预览(默认上限:500 个字符)。正文超过上限时,输出会被截断,并附带明确、如实的标记,报告实际长度和后续调用方式,例如 …[truncated 500/2340 chars — read_memory("<id>") for full]。预览绝不会在没有提示的情况下被截断——没有标记就表示你看到的是完整正文。要在行内获取完整正文(无标记),可在上述三个工具中的任意一个传入 full_content: true;这会增加 token 用量,因此建议仅用于结果数量较少的情况。read_memory 始终返回完整、未经截断的内容。

待办事项(GTD) — 使用项目和子任务管理任务
工具描述
add_todo创建任务,可设置优先级、截止日期、项目和上下文
list_todos使用语义或 GTD 风格筛选来列出/搜索待办事项
update_todo更新任务属性(状态、优先级、备注)
complete_todo将任务标记为已完成(定期任务会自动创建下一项)
delete_todo永久删除任务
reorder_todo在其状态组内向上或向下移动任务
list_subtasks列出父待办事项的子任务
add_todo_comment为任务添加评论(进度、解决情况)
list_todo_comments列出任务的所有评论
update_todo_comment编辑已有评论
delete_todo_comment删除评论
todo_stats获取按状态统计的待办事项数据和逾期项目
项目 — 将待办事项整理到各个分组中
工具描述
add_project创建项目,可选指定父项目(子项目)
list_projects列出所有项目及待办事项数量
archive_project归档项目(隐藏,但可恢复)
delete_project永久删除项目
提醒 — 按时间、时长和上下文触发提醒
工具描述
set_reminder设置提醒(按时间、时长或关键词触发)
list_reminders列出待处理/已触发/已忽略的提醒
dismiss_reminder确认已处理已触发的提醒
系统 — 健康状态、备份和诊断
工具描述
memory_stats获取已存储记忆的统计信息
verify_index检查向量索引完整性
repair_index重新索引孤立的记忆
token_status获取当前会话的 token 用量
reset_token_session为新会话重置 token 计数器
consolidation_report查看记忆整合活动
backup_create创建所有记忆的备份
backup_list列出可用备份
backup_verify验证备份完整性(SHA-256)
backup_restore从备份恢复
backup_purge清除旧备份,保留最近的 N 个

REST API(面向开发者)

服务在 http://127.0.0.1:3030 提供 REST API:

// Store a memory
const res = await fetch("http://127.0.0.1:3030/api/remember", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-API-Key": "your-api-key"
  },
  body: JSON.stringify({
    user_id: "my-app",
    content: "User prefers dark mode",
    memory_type: "Observation",
    tags: ["preferences", "ui"]
  })
});

// Semantic search
const results = await fetch("http://127.0.0.1:3030/api/recall", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-API-Key": "your-api-key"
  },
  body: JSON.stringify({
    user_id: "my-app",
    query: "user preferences",
    limit: 5
  })
});
关键端点
端点方法描述
/healthGET健康检查
/api/rememberPOST存储一条记忆
/api/recallPOST语义搜索
/api/recall/tagsPOST按标签搜索
/api/recall/datePOST按日期范围搜索
/api/memoriesPOST列出所有记忆
/api/memory/{id}GET/PUT/DELETECRUD 操作
/api/context_summaryPOST获取上下文摘要
/api/relevantPOST主动呈现上下文
/api/batch_rememberPOST存储多条记忆
/api/upsertPOST按 external_id 创建或更新
/api/graph/{user_id}/statsGET知识图谱统计信息
/api/consolidation/reportPOST记忆整合报告
/api/index/verifyPOST验证索引完整性
/metricsGETPrometheus 指标

认知功能

Hebbian 学习

经常同时访问的记忆会形成更强的关联。系统会自动:

  • 在共同检索到的记忆之间建立边
  • 通过重复共同激活来增强关联
  • 通过长时程增强(LTP)实现永久关联
记忆整合

后台进程会维护记忆状态:

  • 衰减:未使用的记忆会逐渐降低激活度
  • 重放:定期重放高价值记忆
  • 修剪:移除较弱的关联
  • 晋升:将重要记忆移至长期存储
三级架构

基于 Cowan 的工作记忆模型:

  1. 工作记忆:近期且高度活跃的记忆
  2. 会话记忆:当前会话的上下文
  3. 长期记忆:带有向量索引的持久存储

工作原理

  1. 安装:npx -y @shodh/memory-mcp 会下载软件包
  2. 自动启动:首次运行时,会下载原生服务二进制文件(约 15MB)和嵌入模型(约 23MB)
  3. 连接:MCP 客户端通过 stdio 连接到此 MCP 服务;当设置了 SHODH_IPC_ENDPOINT 时,后端请求使用本地 IPC,否则使用 HTTP
  4. 就绪:开始使用 remember 和 recall 工具
  5. 会话结束:当宿主关闭 stdin 时(例如,Claude Desktop 切换线程),shim 会完成所有正在执行的工具调用,并在退出前将响应写入仍保持打开状态的 stdout,因此不会静默丢弃正在处理的请求。排空过程受宽限时间限制;若超时,调用方会收到明确错误,而不是一直等待宿主超时。

后端服务在本地运行,所有数据都存储在你的计算机上。无需依赖云服务。

使用示例

"Remember that the user prefers Rust over Python for systems programming"
"Recall what I know about user's programming preferences"
"What context do you have about this project?"
"List my recent memories"
"Show me the consolidation report"

平台支持

平台架构状态
Linuxx64支持
macOSx64支持
macOSARM64 (M1/M2)支持
Windowsx64支持

相关软件包

  • Python SDK:pip install shodh-memory - 原生 Python 绑定
  • Rust Crate:cargo add shodh-memory - 作为库使用

链接

许可证

Apache-2.0

评论

支持 Markdown

第一次接触 MCP?

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

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