🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

跨端共享记忆 shadyyoung/dsh-shared-memory

DeepSeek Harness
shadyyoung8 天前有提交已提供中文文档扫描:含敏感能力

让各会话与 AI 应用共用同一份长期记忆

30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add shadyyoung/dsh-shared-memory
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 8 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
  • 读取密钥环境变量
    mcp/server.mjs:213
    if (typeof process.env.DSH_MEMORY_TOKEN === 'string' && process.env.DSH_MEMORY_TOKEN.trim()) {
  • 读取密钥环境变量
    mcp/server.mjs:214
    token = process.env.DSH_MEMORY_TOKEN.trim();
  • 发起网络请求
    mcp/server.mjs:289
    response = await fetch(url, {
  • 读取密钥环境变量
    standalone/server.mjs:107
    apiToken: args.token ?? process.env.SHARED_MEMORY_TOKEN ?? '',
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
AI 跨平台记忆增强 · Shared Memory 跨会话、跨 AI 应用、跨平台的记忆增强层(DeepSeek Harness 插件形态):让所有会话(包括不同工作区、不同会话)和其他 AI 应用共用同一份记忆 —— 记住用户说过的话、长期偏好、正在做的项目,以及「现在要做的事」。 - 形态:DeepSeek Harness Host 插件(bundle) + 零依赖 MCP stdio 桥 + 可复用 Agent Skill - 存储位置:~/.dsh/shared-memory/ - 包名 / 行 id:@local/shared-memory / shared-memory - 版本:1.2.0 · License:MIT 原名 共享记忆,自 v1.0.0 起中文名改为 AI 跨平台记忆增强 1.0;英文名保持 Shared Memory 不变。内部标识(包名、skill id、存储目录)保持不变,不影响已有安装与数据。 注意:它不是单独的 Agent Skill。Skill 只是「客户端适配层」——让 WorkBuddy / 其他支持 skills 的 Agent 学会调用本插件暴露的 HTTP API。真正的记忆服务是 Harness 插件,其他应用通过 MCP 桥或 HTTP 接入。
展开完整文档(README 剩余 1 节)
AI 跨平台记忆增强 · Shared Memory

跨会话、跨 AI 应用、跨平台的记忆增强层(DeepSeek Harness 插件形态):让所有会话(包括不同工作区、不同会话)和其他 AI 应用共用同一份记忆 —— 记住用户说过的话、长期偏好、正在做的项目,以及「现在要做的事」。

- 形态:DeepSeek Harness Host 插件(bundle) + 零依赖 MCP stdio 桥 + 可复用 Agent Skill
- 存储位置:~/.dsh/shared-memory/
- 包名 / 行 id:@local/shared-memory / shared-memory
- 版本:1.2.0 · License:MIT

原名 共享记忆,自 v1.0.0 起中文名改为 AI 跨平台记忆增强 1.0;英文名保持 Shared Memory 不变。内部标识(包名、skill id、存储目录)保持不变,不影响已有安装与数据。

注意:它不是单独的 Agent Skill。Skill 只是「客户端适配层」——让 WorkBuddy / 其他支持 skills 的 Agent 学会调用本插件暴露的 HTTP API。真正的记忆服务是 Harness 插件,其他应用通过 MCP 桥或 HTTP 接入。

仓库结构

├── index.js # Host 插件:捕获/存储/工具/提示注入/HTTP API ├── cordis.patch.yml # bundle 行声明与默认 config ├── standalone/server.mjs # 独立 Hub(不依赖 DSH,跨平台) ├── ui/index.html # 浏览器查看/编辑页面(/dsh-memory/ui) ├── mcp/server.mjs # 零依赖 MCP stdio 桥(复制到 ~/.dsh/shared-memory/) ├── skills/shared-memory/ # 可复用 Agent Skill(WorkBuddy 等) │ └── SKILL.md ├── docs/API.md # 冻结的 HTTP / 存储 / MCP 约定 ├── docs/HOW-IT-WORKS.md # 工作原理与设计说明 ├── docs/CONNECT-APPS.md # 各 AI 应用接入说明 ├── docs/assets/architecture.svg ├── test/host-smoke.mjs # Host 半集成测试 ├── test/mcp-smoke.mjs # MCP 协议冒烟测试(35 项断言) ├── test/standalone-smoke.mjs # 独立 Hub + 桥的端到端测试 ├── .github/workflows/ci.yml # 三平台 CI(macOS / Linux / Windows) ├── locale/en.json · zh.json # 插件显示名 ├── CHANGELOG.md └── icon.svg

架构

flowchart LR
subgraph Apps["其他 AI 应用"]
WB[WorkBuddyskill + curl]
CUR[CursorMCP stdio]
CDX[ChatGPT CodexMCP stdio]
CL[Claude Desktop / CodeMCP stdio]
end

subgraph DSH["DeepSeek Harness 进程"]
EV[会话事件session/event]
PLUG[共享记忆插件SharedMemoryStore]
PROMPT[系统提示摘要order 700 · 每个 step]
TOOLS[memory_* 工具]
HTTP[HTTP API/dsh-memory]
MCP[MCP 桥mcp-server.mjs]
end

STORE[(~/.dsh/shared-memorymemories.jsonl · focus.json · activity.json)]

EV --> PLUG
PLUG <--> STORE
PLUG --> PROMPT
TOOLS --> PLUG
WB --> HTTP
CUR --> MCP
CDX --> MCP
CL --> MCP
MCP --> HTTP
HTTP <--> PLUG
PROMPT --> LLM[模型请求]

架构图

设计取舍、数据流、生命周期、安全边界见 docs/HOW-IT-WORKS.md。

两种运行方式

| 方式 | 需要 DSH | 能力 | 适合 |
| DSH 插件(默认) | ✅ | 自动捕获会话消息、系统提示注入、模型工具、HTTP、MCP | 日常在 DeepSeek Harness 里用 |
| 独立 Hub standalone/server.mjs | ❌ | 存储 / 搜索 / 当前焦点 / HTTP API / MCP(无自动捕获与提示注入) | Windows、Linux、服务器、不想装 DSH |
两者读写同一份 store(默认 ~/.dsh/shared-memory/),并写同一份 runtime.json,所以 MCP 桥、Cursor、Codex、WorkBuddy 的配置完全不用改。

⚠️ 同一个 store 目录只能运行其中一个(插件或 Hub),不要同时跑——单写者假设会被破坏。

快速开始(独立 Hub,跨平台)

要求:Node.js ≥ 18,无其他依赖。

git clone https://github.com/shadyyoung/dsh-shared-memory.git
cd dsh-shared-memory
node standalone/server.mjs # http://127.0.0.1:7400/dsh-memory
或指定端口/地址/存储目录
node standalone/server.mjs --port 7400 --host 127.0.0.1 --store ~/.dsh/shared-memory

启动后:

- HTTP:http://127.0.0.1:7400/dsh-memory(/health、/api/* 同契约,见 docs/API.md)
- MCP:node ~/.dsh/shared-memory/mcp-server.mjs(Hub 启动时会把桥复制到 store 目录并写 runtime.json)
- 数据:~/.dsh/shared-memory/

安装

前置:DeepSeek Harness Desktop(含 plugin_manager / Cordis 插件体系)、Node.js ≥ 18。

1. 克隆本仓库到任意目录:
git clone https://github.com/shadyyoung/dsh-shared-memory.git

2. 用绝对路径安装 bundle(Harness 的 plugin_manager 工具或设置页): plugin_manager: install_bundle target=/绝对路径/dsh-shared-memory

安装后用 cordis_inspect_query 的 Tool.listTools 应能看到 memory_remember / memory_search / memory_forget / memory_current。
3. 其他 AI 应用接入:见 docs/CONNECT-APPS.md(MCP 桥路径是 ~/.dsh/shared-memory/mcp-server.mjs,由插件激活时自动复制)。
4. 可选:把 skills/shared-memory/SKILL.md 复制到支持 skills 的 Agent,例如 WorkBuddy:
mkdir -p ~/.workbuddy/skills/shared-memory
cp skills/shared-memory/SKILL.md ~/.workbuddy/skills/shared-memory/

兼容性

- 独立 Hub:macOS / Linux / Windows + Node.js ≥ 18;CI 三平台矩阵(ubuntu-latest / windows-latest / macos-latest)实测。
- DSH 插件:DeepSeek Harness Desktop(desktop profile,插件 API 0.2.x),随 DSH 支持的平台走;插件本身无 npm 依赖。
- 已验证接入:DeepSeek Harness 所有会话(读写)、WorkBuddy(读写)、Cursor(读写)、ChatGPT 桌面版 Codex(读写)。
- 未支持:ChatGPT 纯聊天窗口 / 网页版(只支持远程 Connector)。

能力

| 能力 | 说明 |
| 自动捕获用户消息 | 监听 session/event 的 user/message 写成短期原话缓存(默认 30 天过期,跳过子代理与合成消息);长期记忆只由模型主动 memory_remember 写入 |
| 当前焦点 | 用户一说新的实质任务就自动更新(过滤“继续/再来一次”这类短句),也可由模型/任意应用显式设置 |
| 会话动态 | 每条根会话的最近用户消息、最近助手回复、消息数、目录、标题,跨会话可见 |
| 系统提示注入 | 每个模型请求前注入一段 ## 共享记忆 摘要(默认上限 1200 字符),模型因此“知道”其他会话/应用里发生过什么 |
| 模型工具 | memory_remember / memory_search / memory_forget / memory_update / memory_current |
| 查看编辑 UI | 浏览器打开 /dsh-memory/ui:浏览、搜索、编辑、删除、焦点编辑、导出 JSONL |
| HTTP API | http://127.0.0.1:<端口>/dsh-memory(端口随 Harness 启动变化,见 runtime.json) |
| MCP 桥 | ~/.dsh/shared-memory/mcp-server.mjs,零依赖 stdio MCP 服务,供 Claude Desktop / Claude Code / Cursor / Codex 等接入 |

演示

$ node ~/.dsh/shared-memory/mcp-server.mjs
MCP initialize → tools/call memory_status
共享记忆服务运行中(dsh-shared-memory v1.1.0)地址:http://127.0.0.1:57545/dsh-memory(来源:runtime.json)存储目录:/Users/you/.dsh/shared-memory 统计:34 条记忆 / 18 条原话 / 3 个会话 / 当前焦点:有

tools/call memory_search { "q": "插件" } 查询“插件”:共 3 条,显示 3 条

- [project · 12 分钟前] 共享记忆插件已开源到 GitHub…
- [note · 1 小时前] 首次安装失败原因:output.schema 用了参数 DSL 的 required 写法…
- [profile · 2 小时前] 用户偏好中文、希望所有 AI 共用一份记忆…
任何一端说「记住:…」或写入一条记忆,其余会话的下一个 step 就会在系统提示摘要里看到它。

查看与编辑(UI)

浏览器打开服务地址下的 /ui 即可(DSH 插件和独立 Hub 都提供同一个页面):

http://127.0.0.1:<端口>/dsh-memory/ui

独立 Hub 默认:http://127.0.0.1:7400/dsh-memory/ui

- 统计信息、当前焦点编辑(focus + 下一步)
- 记忆列表:搜索、按 kind 过滤、加载更多、编辑(正文/类型/标签)、删除
- message 原话缓存只读(可删除),避免破坏「原话」语义
- 一键导出 JSONL 备份
- 设置过 apiToken 时,页面会提示输入 token(只存在浏览器 localStorage)

界面是纯静态 HTML/CSS/JS,无构建步骤;同源访问 API,所以也不需要改 CORS。

接入其他 AI 应用

看生成好的说明:~/.dsh/shared-memory/CONNECT-APPS.md(源码版:docs/CONNECT-APPS.md)。三步:

1. 打开 DeepSeek Harness(HTTP API 跑在 Harness 进程里)。
2. 在各应用里配置 MCP:命令 /usr/local/bin/node,参数 ~/.dsh/shared-memory/mcp-server.mjs。
3. 让应用调用 memory_status 验证;之后它就能看到并写入同一份记忆。

存储格式

~/.dsh/shared-memory/
├── memories.jsonl # 一行一条记忆(唯一写者是 Harness 进程) ├── focus.json # 当前焦点 + nextSteps ├── activity.json # 每个根会话的最近动态 ├── runtime.json # 插件激活时写入的 API 地址/端口/token(其他应用据此发现服务) ├── mcp-server.mjs # MCP 桥(随插件版本更新) ├── CONNECT-APPS.md # 接入说明 ├── digest.md # 人类可读快照(每隔几秒重写) ├── README.md └── token # 仅当 config.apiToken 非空

记忆记录:{ id, kind, text, tags, source:{app,sessionId,cwd,title}, createdAt },kind ∈ note/profile/preference/goal/project/task/message。相同 kind + text 自动去重。

配置

改 ~/.dsh/profiles/desktop/package.json 里 bundle 的配置不会生效——本插件通过自己的 cordis.patch.yml 插入行并携带 config。要调参,修改本目录的 cordis.patch.yml 后重新安装/启用 bundle。

| 字段 | 默认 | 说明 |
| storeDir | ~/.dsh/shared-memory | 存储目录 |
| captureUserMessages | true | 自动捕获根会话的用户消息(短期原话缓存,非长期记忆) |
| messageRetentionDays | 30 | 原话缓存保留天数,0=永久;过期只删 message,不删主动记忆 |
| promptDigest | true | 把共享记忆摘要注入系统提示 |
| maxDigestChars | 1200 | 摘要注入上限 |
| maxStoredMessages | 3000 | 原话缓存的条数上限(超出丢最旧) |
| maxActivitySessions | 200 | 会话动态保留的会话数上限 |
| apiEnabled | true | 是否注册 HTTP 路由 |
| apiPath | /dsh-memory | 路由前缀 |
| apiToken | "" | 非空则要求 Authorization: Bearer <token> |
| autoFocusMinutes | 90 | 自动焦点的过期/刷新间隔,0 关闭自动焦点 |
| writeHumanDigest | true | 是否写 digest.md |

验证 bash

1. 服务健康(端口从 ~/.dsh/shared-memory/runtime.json 读取)

curl -s "$(node -e "console.log(require(process.env.HOME+'/.dsh/shared-memory/runtime.json').apiBase)")/health"

2. 本地单元/集成测试(不依赖正在运行的 Harness)

node test/host-smoke.mjs # 工具、捕获、提示摘要、HTTP API、鉴权
node test/mcp-smoke.mjs # MCP 协议 35 项断言(自带 mock 服务)
node test/standalone-smoke.mjs # 独立 Hub + MCP 桥端到端(无需 Harness)

实测结果(2026-10-26):两套测试全部通过;运行中的 Harness 上 HTTP /health 正常,MCP 桥 memory_status / memory_search / memory_current 可读写同一份数据,系统提示已注入共享记忆摘要。

已知失败记录(首次安装)

现象:plugin_manager install_bundle 返回 application: failed,诊断:

JsonSchemaError: unsupported JSON schema:
schema.properties.item.properties.id.required is not supported on type "string"
…

原因:ctx.tools.register() 的 output.schema 是严格 JSON Schema 子集,不是参数 DSL。首版把参数的写法(属性级 required: true)用在了 output 上;该子集要求 required 只能是对象级字符串数组,且不能出现在 string/number/array 等类型上。

修复:四个工具的 output schema 改为标准 JSON Schema(对象级 required: [...] + properties,可空焦点用 oneOf: [object, null]);随后 set_bundle(false) → set_bundle(true) 重新激活,返回 application: applied。

同期修复的另外两个问题:

1. forget() 在写队列里再次入队导致自锁(删除记忆会永久挂起)——改为直接 await #rewriteMemories()。
2. 自动焦点会被「继续 / 再来一次」这类短句覆盖——新增 isSubstantiveTask() 过滤(≥8 字符、非寒暄/续跑短句)。该启发式改动需重启 Harness(或重新启用 bundle)后才在新进程里生效。

限制与说明

- 没有独立的 Web UI 面板:记忆的查看/编辑通过工具、HTTP API、digest.md,或直接看 memories.jsonl。
- HTTP 服务依附 Harness 进程:Harness 未运行时,MCP 桥会返回「服务未运行」的可读错误;启动 Harness 后自动恢复,不需要重启其他应用。
- 默认只监听本机;需要跨机器访问时请自行加 apiToken 并处理端口暴露。
- 记忆是明文 JSONL(~/.dsh/shared-memory/),包含用户消息原文;不希望落盘的场景可用 captureUserMessages: false。

变更记录

见 CHANGELOG.md。
预览分享卡片长什么样 ↓shadyyoung/dsh-shared-memory
分享 · DeepSeek Harness Hub
shadyyoung/dsh-shared-memory

让各会话与 AI 应用共用同一份长期记忆

这是你的仓库?认领条目

回到顶部