Vanguard Memory Node

io.github.ezumba由 GitHub 帳號 ezumba 發布v2.0.1更新於 Oct 24, 2026

Local deterministic BM25 memory for AI agents. Offline-first, no API key, SHA-256 shards, stdio.

發布方自己的服務:Memory.fit

已驗證STDIO僅桌面檔案與儲存知識與記憶

概覽

AI 產生的概覽

為 AI 助理提供本機、離線的 BM25 關鍵字記憶庫:可寫入文字或檔案,並進行搜尋、召回、列出與刪除。

可以做什麼
  • 將文字或持續成長的檔案寫入本機儲存庫,以 SHA-256 內容定址,並支援命名空間與標籤
  • 對整個儲存庫做關鍵字搜尋並回傳排序片段,或從單一物件中召回最相符的證據片段
  • 列出已存物件、檢視其目錄中介資料,並永久刪除物件及其索引項目
  • 檢視儲存庫統計與 BM25 索引狀態,並從權威物件檔案重建索引
  • 設定 API 金鑰後,可將物件同步到 ExergyNet LNES-17 帳本
適用情境
適合希望助理跨工作階段記住文字、又不想使用雲端向量資料庫、API 金鑰或按次計費的情境,也適合要求同一查詢與同一資料始終回傳相同結果的用途。亦可用於透過反覆增量寫入檔案來持續蒐集日誌或工作階段內容。
執行需求
以本機 stdio 程序執行,可全域安裝或透過 npx 啟動,因此需要 Node.js;README 提供 Claude Desktop 的設定方式。資料存放在使用者家目錄下的 .vanguard 目錄。選用的 ExergyNet 同步需要 EXERGYNET_API_KEY,另有 EXERGYNET_NETWORK、EXERGYNET_VAULT_URL 與 AUTO_SYNC_VAULT 等設定。
安裝前請注意
寫入的文字與檔案會存到本機磁碟,vmn_delete 會永久刪除物件及其索引項目。選用的同步會把儲存庫物件上傳到第三方帳本,並需要 EXERGYNET_API_KEY;將 AUTO_SYNC_VAULT 設為 true 後,每次寫入都會自動上傳。README 的掛鉤範例會在每次工作階段結束時執行此套件,請先確認它會蒐集哪些內容。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Vanguard Memory Node,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Vanguard Memory Node (VMN)

[npm version] [npm downloads] [License: MIT] [MCP Badge]

Local deterministic memory for AI agents via the Model Context Protocol (MCP).

No cloud. No vector database. No semantic drift. Your data stays on your machine.


What it does

VMN gives any MCP-compatible AI agent a persistent, queryable memory vault stored entirely on local disk. Text is ingested once, content-addressed with SHA-256, segmented, and indexed with a sharded BM25 inverted index. Retrieval is deterministic: the same query always returns the same ranked result from the same data.

Optionally, vaults can be synced to the ExergyNet LNES-17 ledger for cross-device and cross-agent recall with cryptographic provenance.


Install

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

Or run without installing:

bash
npx @lnes/vanguard-memory-node

Claude Desktop integration

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

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

With ExergyNet vault sync enabled:

json
{  "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"      }    }  }}

WSL on Windows:

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

Tools (11 total)

vmn_ingest

Stores text as a SHA-256 content-addressed shard. Segments it, indexes it, and updates the local catalog.

ParameterTypeRequiredDescription
textstringyesContent to store
titlestringnoHuman-readable label
namespacestringnoLogical partition (default: default)
tagsstring[]noSearch tags
content_typestringnoMIME type hint (default: text/plain)
sourcestringnoSource label

Returns: SHA-256 root hash + vault path + vault_synced flag.

vmn_recall

Retrieves a 900-character evidence window from a specific shard using lexical BM25 scoring.

ParameterTypeRequiredDescription
hashstringyesRoot hash from vmn_ingest
querystringyesSearch query

Returns: best-matching evidence window, or a human-readable no-match message.

vmn_search

Full-vault keyword search across all ingested objects. Returns ranked results with snippets.

ParameterTypeRequiredDescription
querystringyesSearch query
limitnumbernoMax results (default: 10)
namespacestringnoRestrict search to this namespace only

vmn_ingest_file

Delta-ingests a growing file into the vault, tracking progress with a cursor so only new lines are ingested on each call. Designed for Stop hooks and continuous log pipelines — safe to call repeatedly with no duplicates.

ParameterTypeRequiredDescription
file_pathstringyesAbsolute path to the file
session_idstringnoCursor key (defaults to file path)
namespacestringnoNamespace for ingested content (default: file_ingest)
titlestringnoOptional title override
tagsstring[]noOptional tags

Returns: lines_ingested, cursor_line, and shard hash (null if no new content).

Stop hook example — ingest every Claude session automatically:

json
{  "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

Lists all memory objects in the vault.

ParameterTypeRequiredDescription
namespacestringnoFilter by namespace

vmn_inspect

Returns full catalog metadata for a specific object.

ParameterTypeRequiredDescription
hashstringyesRoot hash

vmn_delete

Permanently removes an object and all its index entries.

ParameterTypeRequiredDescription
hashstringyesRoot hash

vmn_stats

Returns aggregate vault statistics: entry count, total bytes, namespaces, oldest/newest timestamps.

vmn_index_status

Returns current BM25 index state (READY, REBUILD_REQUIRED, REBUILDING, DEGRADED).

vmn_rebuild_index

Rebuilds the full BM25 index from authoritative object files. Safe at any time — objects are never modified.

vmn_sync_vault

Syncs a local memory object to the ExergyNet LNES-17 vault. Requires EXERGYNET_API_KEY. Use EXERGYNET_NETWORK to target mainnet or testnet.

ParameterTypeRequiredDescription
xlmp_rootstringyesRoot hash of the object to sync
intentstringnoSync intent label (default: manual-sync)

Returns: xlmp_root, bytes_committed, status, and the resolved vault URL.


Environment variables

VariableDefaultDescription
AUTO_SYNC_VAULTfalseSet to true to auto-sync every vmn_ingest to ExergyNet
EXERGYNET_API_KEY—API key for ExergyNet vault access (sk-exergy-*)
EXERGYNET_NETWORKtestnetTarget substrate: mainnet → portal.exergynet.org, testnet → dt.portal.exergynet.org
EXERGYNET_VAULT_URL(resolved from EXERGYNET_NETWORK)Override vault base URL entirely

Vault layout

~/.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

How retrieval works

  1. Normalization — Unicode NFC → phrase alias substitution → tokenize → suffix stem → stop-word filter → token alias expansion
  2. Stemmer — 13-rule suffix stripper: 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). Rules applied longest-first; medications and medication both reduce to the same root.
  3. Alias expansion — clinical, technical, and legal synonym clusters (smok↔tobacco↔cigarett, physician↔doctor, hypertens↔bp, etc.)
  4. BM25 scoring — sharded 256-bucket inverted index; top-150 postings per term to cap high-DF stall
  5. Fallback — stemmed-token set comparison when BM25 score is zero; prevents false positives on partial-word matches

Comparison

VMNChromaDB / Pinecone
Result determinismSame query → same result, alwaysVaries with model version
Data locationLocal disk onlyCloud upload required
Per-query cost$0API charges
Setup time60 secondsAccount + key + SDK
Semantic driftNoneBreaks on model updates
Offline capableYesNo

License

MIT — free forever, no telemetry, no usage limits.

Built by ExergyNet.

來源:README.md,提交 67721a8

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v2.0.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Memory 整合