mesh-memory: Cross-device Agent Shared Memory Based on Markdown and 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 的快速开始步骤入手。

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

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

Xiaoye