mcpField
V
vanguard-memory-node

vanguard-memory-node

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

关于 vanguard-memory-node

Vanguard Memory Node 是面向 MCP 兼容 AI Agent 的本地持久化记忆服务。它以内容寻址方式存储文本,并通过确定性的 BM25 检索;还可选择同步到 ExergyNet 账本。

主要功能

  1. 01将文本存为 SHA-256 内容寻址分片
  2. 02以 BM25 排序搜索记忆库
  3. 03从分片中召回证据片段
  4. 04增量摄取持续增长的文件
  5. 05管理对象、命名空间和索引
  6. 06可选同步记忆对象至 ExergyNet

适用场景

  1. 01为 Agent 提供本地持久记忆
  2. 02按关键词搜索笔记和文档
  3. 03摄取会话或日志文件中的新增行
  4. 04跨设备和 Agent 同步选定记忆对象

MCP 相关

VMN 是 MCP 服务,提供摄取、搜索、召回、检查和管理本地记忆的工具。另有可选工具可将记忆对象同步到 ExergyNet LNES-17 记忆库,并需 API 密钥。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"ezumba-vanguard-memory-node": {
"command": "npx",
"args": [
"-y",
"@lnes/vanguard-memory-node"
]
}
}
}
启动命令npx -y @lnes/vanguard-memory-node

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

安装包
npm@lnes/vanguard-memory-node2.0.1

工具

11

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

参数类型必填说明
tagsarray否可选标签
textstring是要在本地导入并分片的文本内容
titlestring否可选的人类可读标题
sourcestring否可选的来源标签
namespacestring否可选的命名空间(默认值:"default")
content_typestring否可选的内容类型(默认值:"text/plain")

详细介绍

Vanguard Memory Node(VMN)

npm version npm downloads License: MIT MCP Badge

通过模型上下文协议(MCP)为 AI Agent 提供本地、确定性的记忆。

无需云服务。无需向量数据库。不会发生语义漂移。数据始终保留在你的设备上。


功能

VMN 为任何兼容 MCP 的 AI Agent 提供一个持久、可查询的记忆库,所有数据均存储在本地磁盘。文本只需导入一次,即会通过 SHA-256 进行内容寻址、分段,并使用分片 BM25 倒排索引建立索引。检索过程具有确定性:对于相同的数据,同一查询始终会返回相同的排序结果。

还可以选择将记忆库同步到 ExergyNet LNES-17 ledger,以便跨设备和跨 Agent 检索记忆,并保留加密溯源信息。


安装

npm install -g @lnes/vanguard-memory-node

或者无需安装即可运行:

npx @lnes/vanguard-memory-node

Claude Desktop 集成

Mac — ~/Library/Application Support/Claude/claude_desktop_config.json
Windows — %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "vanguard-memory": {
      "command": "npx",
      "args": ["-y", "@lnes/vanguard-memory-node"]
    }
  }
}

启用 ExergyNet 记忆库同步:

{
  "mcpServers": {
    "vanguard-memory": {
      "command": "npx",
      "args": ["-y", "@lnes/vanguard-memory-node"],
      "env": {
        "EXERGYNET_API_KEY": "sk-exergy-your-key",
        "EXERGYNET_NETWORK": "mainnet",
        "AUTO_SYNC_VAULT": "true"
      }
    }
  }
}

Windows 上的 WSL:

{
  "mcpServers": {
    "vanguard-memory": {
      "command": "wsl",
      "args": ["-d", "Ubuntu", "npx", "-y", "@lnes/vanguard-memory-node"]
    }
  }
}

工具(共 11 个)

vmn_ingest

将文本存储为通过 SHA-256 进行内容寻址的分片。对文本进行分段和索引,并更新本地目录。

参数类型必填描述
textstring是要存储的内容
titlestring否易于阅读的标签
namespacestring否逻辑分区(默认值:default)
tagsstring[]否搜索标签
content_typestring否MIME 类型提示(默认值:text/plain)
sourcestring否来源标签

返回:SHA-256 根哈希值 + 记忆库路径 + vault_synced 标记。

vmn_recall

使用词法 BM25 评分,从指定分片中检索一个 900 字符的证据窗口。

参数类型必填描述
hashstring是来自 vmn_ingest 的根哈希值
querystring是搜索查询

返回:最佳匹配的证据窗口;若无匹配项,则返回易于阅读的提示信息。

vmn_search

在所有已导入对象中搜索整个记忆库的关键词。返回带有摘要片段的排序结果。

参数类型必填描述
querystring是搜索查询
limitnumber否结果数量上限(默认值:10)
namespacestring否仅在此命名空间中搜索
vmn_ingest_file

增量导入不断增长的文件,并通过游标跟踪进度,因此每次调用只会导入新增行。专为 Stop 钩子和持续日志管道设计,可安全地重复调用,不会产生重复内容。

参数类型必填描述
file_pathstring是文件的绝对路径
session_idstring否游标键(默认为文件路径)
namespacestring否导入内容的命名空间(默认值:file_ingest)
titlestring否可选的标题覆盖值
tagsstring[]否可选标签

返回:lines_ingested、cursor_line 和分片 hash(若没有新内容则为 null)。

Stop 钩子示例 — 自动导入每个 Claude 会话:

{
  "hooks": {
    "Stop": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "npx -y @lnes/vanguard-memory-node vmn_ingest_file --file_path \"$CLAUDE_SESSION_FILE\" --session_id \"$CLAUDE_SESSION_ID\""
      }]
    }]
  }
}
vmn_list

列出记忆库中的所有记忆对象。

参数类型必填描述
namespacestring否按命名空间筛选
vmn_inspect

返回指定对象的完整目录元数据。

参数类型必填描述
hashstring是根哈希值
vmn_delete

永久删除一个对象及其所有索引条目。

参数类型必填描述
hashstring是根哈希
vmn_stats

返回知识库的汇总统计信息:条目数、总字节数、命名空间以及最早/最晚时间戳。

vmn_index_status

返回当前 BM25 索引状态(READY、REBUILD_REQUIRED、REBUILDING、DEGRADED)。

vmn_rebuild_index

根据权威对象文件重建完整的 BM25 索引。随时都可安全执行——对象绝不会被修改。

vmn_sync_vault

将本地记忆对象同步到 ExergyNet LNES-17 知识库。需要 EXERGYNET_API_KEY。使用 EXERGYNET_NETWORK 指定目标为主网或测试网。

参数类型必填描述
xlmp_rootstring是要同步对象的根哈希
intentstring否同步意图标签(默认值:manual-sync)

返回:xlmp_root、bytes_committed、status 和解析后的知识库 URL。


环境变量

变量默认值描述
AUTO_SYNC_VAULTfalse设置为 true,即可将每次 vmn_ingest 自动同步到 ExergyNet
EXERGYNET_API_KEY—用于访问 ExergyNet 知识库的 API 密钥(sk-exergy-*)
EXERGYNET_NETWORKtestnet目标网络:mainnet → portal.exergynet.org,testnet → dt.portal.exergynet.org
EXERGYNET_VAULT_URL(resolved from EXERGYNET_NETWORK)完全覆盖知识库基础 URL

知识库布局

~/.vanguard/
├── local_vault/
│   └── <sha256>.txt              # authoritative object files (never modified after write)
├── catalog/
│   └── <sha256>.json             # per-object metadata (O(1) reads)
├── segments/
│   └── <sha256>.json             # segment records with term frequencies
├── cursors/
│   └── <session_id>.json         # cursor state for vmn_ingest_file
└── index/
    └── v2/
        ├── index_manifest.json   # version + state header
        ├── corpus_stats.json     # BM25 corpus statistics
        └── postings/
            └── <2-hex>.json      # 256 sharded posting buckets

检索原理

  1. 规范化 — Unicode NFC → 短语别名替换 → 分词 → 后缀词干提取 → 停用词过滤 → 词元别名扩展
  2. 词干提取器 — 13 条后缀剥离规则:tions→ (5)、ions→ (4)、tion→ (4)、ings→ (4)、ing→ (3)、ers→ (3)、ies→ (3)、ic→ (2)、er→ (2)、ed→ (2)、es→ (2)、s→ (1)、y→ (1)。规则按长度从长到短应用;medications 和 medication 都会归约为相同的词根。
  3. 别名扩展 — 临床、技术和法律同义词簇(smok↔tobacco↔cigarett、physician↔doctor、hypertens↔bp 等)
  4. BM25 评分 — 分片式 256 桶倒排索引;每个词项最多取前 150 条倒排记录,以限制高 DF 导致的停滞
  5. 回退 — 当 BM25 分数为零时比较词干化词元集合;防止部分词匹配导致误报

对比

VMNChromaDB / Pinecone
结果确定性同一查询始终返回相同结果随模型版本而变化
数据位置仅限本地磁盘需要上传到云端
单次查询成本$0API 费用
设置时间60 秒账户 + 密钥 + SDK
语义漂移无模型更新时会失效
支持离线运行是否

许可证

MIT — 永久免费,无遥测,无使用限制。

由 ExergyNet 构建。

评论

支持 Markdown

第一次接触 MCP?

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

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