mesh-memory:基於 Markdown 與 Syncthing 的跨設備智能體共享記憶

前言

在 DeepSeek Harness(DSH)裏跑智能體時,會話上下文會隨窗口關閉而消失;不少產品的「記憶」又落在廠商側,難以導出、難以 diff,換工具往往要從頭再來。若你希望記憶留在本機純文本里、多臺設備與多個入口讀同一份數據,並在衝突時顯式報錯而不是靜默覆蓋,可以瞭解社區插件 mesh-memory(倉庫 LanceRingHong/mesh-memory)。它在 DSH 生態裏歸類爲「記憶」,維護者爲 LanceRingHong;SkillHub 目錄頁見 skillhub.cn/plugins/LanceRingHong/mesh-memory。DSH 社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。

這是什麼

mesh-memory 的定位是:給 AI 智能體的共享記憶網——一份 Markdown,多臺設備、多個智能體共用;內容可自主生長,但每一步可審閱。簡介概括爲:File-based cross-device memory and DSH delegation for DeepSeek Harness(Markdown + Syncthing + DSH Remote)。

真源是能直接打開、能 diff 的 Markdown,不依賴向量庫黑盒,也不強制雲端賬號;記憶與行動默認不出你的設備,除非你顯式使用遠程中繼。項目原名 dsh-mesh,自 0.17.0 起對外名稱統一爲 mesh-memory;包名、部分路由與環境變量仍沿用舊標識,數據目錄當前爲 $DSH_HOME/dsh-memory(README 說明後續會一次性遷移)。許可證爲 MIT;運行要求 Node ≥18,README 標註兼容 DSH 0.2.x。

它解決什麼問題

主流 AI 工具的「記憶」常見問題是:存在廠商服務器、不能導出、看不見記住了什麼、換工具就重來。

mesh-memory 把記憶寫成一張張 Markdown 卡片,放在你自己的目錄裏:

  • 誰來讀都行:DSH 插件、MCP、CLI(mm)、HTTP 四種入口讀同一份文件;
  • 誰來寫都行:人與智能體改同一批 .md,frontmatter 的 checksum 做樂觀鎖,衝突返回 409 而不是靜默覆蓋;
  • 怎麼同步:Syncthing 只搬字節,衝突副本(如 .sync-conflict-*)留給上層在界面裁決;
  • 怎麼生長:會話結束或空閒約 5 分鐘可自動生成摘要草稿進本機收件箱(接受前不參與召回),mesh-* 技能負責反思、去重、體檢、整理。

它不是向量庫、不做雲服務、不同步原始會話日誌(單寫者會衝突)、不替上游做賬號與中繼。

核心功能

下面只列 README 中已說明的能力。

記憶與召回

能力 說明
記憶 CRUD 新建 / 編輯 / 歸檔 / 軟刪除(.trash/)/ 恢復,帶 checksum 樂觀鎖
記憶格式 v2 permalink、checksum、source、agent、status、validAt / invalidAt / supersededBy 等
自動召回 每輪 BM25 + baseline + wikilink 1 跳,注入 <mesh-memory> 上下文,帶預算與去重
無感記錄 會話結束或空閒 5 分鐘生成摘要草稿進收件箱,審閱接受後才參與召回
生命週期 active / archived / superseded / draft;歸檔與過期保留原文

維護相關技能包括:mesh-capture、mesh-reflect、mesh-curate、mesh-defrag、mesh-doctor、mesh-onboard、mesh-continue。

跨設備與任務

  • 記憶同步:Syncthing 同步共享目錄;
  • 行動委託:通過 DSH Remote 使用 mesh_run / mesh_read / mesh_interrupt 及文件傳輸;任務有 id / 狀態 / 結果 / 取消,隨共享目錄同步;
  • 備份:本機 git 快照(如 $DSH_HOME/dsh-mesh-backups.git),不進同步目錄。

多入口與界面

架構上:入口層(DSH 插件、MCP、CLI、HTTP)→ 核心(store、recall、query、tasks、maintenance、capture 等)→ 真源(memory/<collection>/*.md、sessions/、tasks/ 等)→ 投影索引(可刪、可重建)→ 同步(Syncthing、DSH Remote、本機 git)。

Web 客戶端提供共享庫、召回測試、活動、拓撲、任務、設置等視圖。開發排障可訪問 http://127.0.0.1:8767/,README 明確該地址僅開發用,不是產品入口;DSH 桌面端「記憶」等應用內嵌形態在路線圖中仍在演進(S4 等階段)。

DSH 會話內可用的工具包括 mesh_status、mesh_memory_*、mesh_run 等;MCP 位於 adapters/mcp-server.mjs;CLI 爲 bin/mm.mjs;HTTP 由 bin/mm-serve.mjs 提供 REST + SSE。寫操作要求 x-mesh-action: 1 且同源,服務只綁回環。

安裝與啓用

官方 README 的安裝方式是通過倉庫內的 PowerShell 腳本寫入 DSH profile(建議先備份,腳本支持 -Rollback),不是憑插件名拼接 dsh plugin add github:...。在克隆或解壓到本地的倉庫根目錄下執行:

pwsh -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -Profiles desktop

可選:啓動 Web 客戶端(插件內也會託管一份構建產物):

npm run serve

默認開發服務爲 http://127.0.0.1:8767/。客戶端源碼在倉庫外的 client/(Vite + React),構建輸出到 plugin/public,隨 install.ps1 一併安裝。

驗證可運行:

npm test

典型用法

記憶卡片格式

新建或編輯記憶時,frontmatter 需符合 v2 約定,例如:

---
title: 家裏網絡是 iKuai,網關 192.168.9.1
description: 一句話說清結論(檢索主要靠這行)
kind: facts
memoryType: reference
tags: [network, home]
device: mate-book-gt-14
agent: dsh-desktop
permalink: 家裏網絡是-ikuai-網關-192-168-9-1
checksum: 3d1f8c2a
status: active
createdAt: 2026-11-01T10:00:00+08:00
updatedAt: 2026-11-01T10:00:00+08:00
---

正文……

正文中的 [[wikilink]] 會進入關係圖;supersededBy / invalidAt 用於表達過時但不刪。

CLI 與 MCP

腳本與運維可走 CLI:

npm run mm -- search …

任意 MCP 客戶端可啓動:

npm run mcp

(即 node adapters/mcp-server.mjs。)

召回復現

Web 召回測試臺支持深鏈 #/recall?q=你的問題,便於把某次召回原樣發給他人復現。

適用場景與注意

適合誰:需要在 DSH 與其它 MCP/CLI 客戶端之間共享同一套可審閱記憶;有多臺設備並通過 Syncthing 同步目錄;希望跨設備派發任務並經由 DSH Remote 回收結果的用戶。

安全與邊界(來自 README):HTTP 只監聽迴環;寫操作需自定義頭與同源校驗;文件傳輸限定在配置根目錄內,拒絕密鑰/憑據類文件;遠程內容當不可信數據處理;記憶默認不出本機/局域網,出網需顯式啓用 Remote 中繼。

安裝前務必知曉:插件在 DSH 進程權限下運行,安裝前應自行閱讀 GitHub 源碼 與 MIT 許可證,確認腳本與同步範圍符合你的安全策略。Syncthing 衝突不會自動合併,需要你在界面或流程中裁決。

結尾

mesh-memory 把智能體記憶落在 Markdown 真源上,用 Syncthing 做字節同步、用 DSH Remote 做跨設備行動,並用 checksum 與審閱流程控制「自主生長」。若你在 DSH 生態裏做長期、可遷移、可 diff 的記憶,可從目錄頁與倉庫 README 的快速開始步驟入手。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜