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

分层记忆体 cnlove7777777-art/dsh-memos-compat

DeepSeek Harness
cnlove7777777-art16 天前有提交已提供中文文档扫描:高危

为智能体提供四层记忆与自进化技能,持续从反馈中学习

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 16 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0
🔴 扫描:高危尚无人工评估

静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。

安装时即执行脚本可执行外部命令读写/删除本地文件
查看扫描证据(共 28 处,展示前 28 条)
  • 读取本地文件
    adapters/deepseek-harness/index.ts:151
    const pluginRoot = existsSync(resolve(runtimeRoot, "package.json"))
  • 读取本地文件
    adapters/openclaw/index.ts:70
    const packageJsonPath = candidates.find((candidate) => existsSync(candidate));
  • 读取本地文件
    adapters/openclaw/index.ts:72
    const pkg = JSON.parse(readFileSync(packageJsonPath, "utf8")) as {
  • 读取本地文件
    adapters/openclaw/index.ts:114
    existsSync(path.join(candidate, "package.json")),
  • 读取本地文件
    adapters/openclaw/index.ts:132
    return candidates.find((candidate) => existsSync(candidate)) ?? candidates[0];
  • 执行外部命令来自配置/变量
    bridge/hermes-process.ts:74
    childProcess.execFileSync(file, [...args], options) as unknown as string;
  • 读取本地文件
    bridge/status.ts:45
    fs.readFileSync(statusFile, "utf8"),
  • 写入本地文件
    bridge/status.ts:147
    fs.mkdirSync(path.dirname(statusFile), { recursive: true });
  • 写入本地文件
    bridge/status.ts:148
    fs.writeFileSync(statusFile, JSON.stringify(next), "utf8");
  • 读取本地文件
    bridge.mts:109
    const raw = fs.readFileSync(pidPath, "utf8").trim();
  • 写入本地文件
    bridge.mts:120
    fs.mkdirSync(path.dirname(pidPath), { recursive: true });
  • 写入本地文件
    bridge.mts:121
    fs.writeFileSync(pidPath, String(process.pid), "utf8");
  • 读取本地文件
    bridge.mts:126
    const content = fs.readFileSync(pidPath, "utf8").trim();
  • 删除本地文件
    bridge.mts:127
    if (content === String(process.pid)) fs.unlinkSync(pidPath);
  • 读取本地文件
    bridge.mts:188
    fs.readFileSync(path.join(rootDir, "package.json"), "utf8"),
  • 读取本地文件
    bridge.mts:543
    if (fs.existsSync(path.join(__dirname, "package.json"))) return __dirname;
  • 读取本地文件
    bridge.mts:545
    if (fs.existsSync(path.join(parent, "package.json"))) return parent;
  • 读取本地文件
    scripts/copy-runtime-assets.cjs:15
    if (!fs.existsSync(asset.from)) {
  • 删除本地文件
    scripts/copy-runtime-assets.cjs:18
    fs.rmSync(asset.to, { recursive: true, force: true });
  • 写入本地文件
    scripts/copy-runtime-assets.cjs:19
    fs.mkdirSync(asset.to, { recursive: true });
  • 读取本地文件
    scripts/copy-runtime-assets.cjs:20
    for (const entry of fs.readdirSync(asset.from, { withFileTypes: true })) {
  • 写入本地文件
    scripts/copy-runtime-assets.cjs:22
    fs.copyFileSync(path.join(asset.from, entry.name), path.join(asset.to, entry.name));
  • 写入本地文件
    scripts/generate-telemetry-credentials.cjs:30
    fs.writeFileSync(out, JSON.stringify({ endpoint, pid, env }, null, 2) + "\n", "utf-8");
  • 读取本地文件
    scripts/sync-hermes-version.cjs:19
    if (!fs.existsSync(packageJsonPath)) {
  • 读取本地文件
    scripts/sync-hermes-version.cjs:22
    if (!fs.existsSync(manifestPath)) {
  • 读取本地文件
    scripts/sync-hermes-version.cjs:28
    packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
  • 读取本地文件
    scripts/sync-hermes-version.cjs:39
    const manifest = fs.readFileSync(manifestPath, "utf8");
  • 写入本地文件
    scripts/sync-hermes-version.cjs:55
    fs.writeFileSync(manifestPath, synchronized, "utf8");
扫描于 2026/11/5(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-timeout@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
@memtensor/memos-local-plugin 面向 AI 智能体的 Reflect2Evolve 记忆插件。 一套算法核心,配 OpenClaw、Hermes Agent、DeepSeek Harness 三个适配器。 这是什么 一套本地优先、以文件为存储的记忆系统。它给智能体四层相互配合的记忆,外加一个由反馈驱动的自进化循环: - L1 trace —— 步骤级的事实记录(动作 + 观察 + 反思 + 价值)。 - L2 policy —— 从大量 trace 中归纳出的子任务策略。 - L3 world model —— 由 L2 + L1 压缩得到的环境认知。 - Skill —— 可调用、已结晶的能力,智能体能直接调用。 插件从两条反馈通道持续学习: - 步骤级 —— 模型 ↔ 环境(工具结果、观察变化量)。 - 任务级 —— 人 ↔ 模型(显式评分 + 隐式信号)。 反思加权的奖励沿每条 trace 反向传播,高价值模式结晶成可复用的 Skill。推理时,三层检索器(Skill → trace/episode → world model)在合适的时机注入合适的上下文。
展开完整文档(README 剩余 1 节)
@memtensor/memos-local-plugin

面向 AI 智能体的 Reflect2Evolve 记忆插件。
一套算法核心,配 OpenClaw、Hermes Agent、DeepSeek Harness 三个适配器。

这是什么

一套本地优先、以文件为存储的记忆系统。它给智能体四层相互配合的记忆,外加一个由反馈驱动的自进化循环:

- L1 trace —— 步骤级的事实记录(动作 + 观察 + 反思 + 价值)。
- L2 policy —— 从大量 trace 中归纳出的子任务策略。
- L3 world model —— 由 L2 + L1 压缩得到的环境认知。
- Skill —— 可调用、已结晶的能力,智能体能直接调用。

插件从两条反馈通道持续学习:

- 步骤级 —— 模型 ↔ 环境(工具结果、观察变化量)。
- 任务级 —— 人 ↔ 模型(显式评分 + 隐式信号)。

反思加权的奖励沿每条 trace 反向传播,高价值模式结晶成可复用的 Skill。推理时,三层检索器(Skill → trace/episode → world model)在合适的时机注入合适的上下文。

目录结构(概览)

apps/memos-local-plugin/
├── agent-contract/ # Stable types + JSON-RPC protocol shared with adapters
├── core/ # Agent-agnostic algorithm (memory, reward, retrieval, skill, hub, …)
├── server/ # HTTP + SSE server (powers the viewer)
├── bridge.cts + bridge/ # JSON-RPC bridge (used by Hermes Python adapter)
├── adapters/openclaw/ # In-process TS adapter for OpenClaw
├── adapters/hermes/ # Python adapter that talks to bridge.cts
├── adapters/deepseek-harness/ # In-process Cordis bundle for DSH
├── templates/ # config.yaml templates copied to the user's home on install
├── viewer/ # Runtime viewer (Vite, served by server/)
├── docs/ # Developer-facing docs (algorithm, data model, prompts, …)
├── scripts/ # Build / packaging / release helpers
└── tests/ # unit / integration / e2e (vitest)

完整结构说明见 ARCHITECTURE.md。

数据放在哪

运行时代码和用户状态分开存放。install.sh 创建 OpenClaw 和 Hermes 的主目录;DSH 用 dsh plugin 把包装进配置档,首次启动时初始化运行时主目录:

| 智能体 | 代码安装到 | 运行时数据 + 配置在 |
| OpenClaw | ~/.openclaw/plugins/memos-local-plugin/ | ~/.openclaw/memos-plugin/ |
| Hermes | ~/.hermes/plugins/memos-local-plugin/ | ~/.hermes/memos-plugin/ |
| DeepSeek Harness | 由 dsh plugin 管理的配置档依赖 | $DSH_HOME/memos-plugin/(默认 ~/.dsh/memos-plugin/) |

运行时目录内部:

config.yaml # MemOS core config (includes API keys; chmod 600 when written)
data/memos.db # SQLite (L1/L2/L3/Skill/Episode/Feedback/…)
skills/ # crystallized skill packages
logs/ # rotating logs (memos.log, error.log, audit.log, llm.jsonl, perf.jsonl, events.jsonl)
daemon/ # bridge pid/port files

适配器只创建自己用到的目录。DSH 在 DSH Node.js 进程里运行 MemoryCore 和现有的 HTTP/SSE Viewer,不需要 JSON-RPC 桥接,也不需要 sidecar 守护进程。Viewer 默认监听 http://127.0.0.1:18801;在 DSH Cordis 行里设置 viewerEnabled: false,就能不启动这个监听器。DSH 仍把 MemOS 的文件日志交给宿主处理,所以它正常的运行时产物只有可选的 config.yaml、data/,以及生成技能时的 skills/。

卸载插件不会删除 data/、skills/、logs/ 或 config.yaml。升级后首次启动可能迁移 SQLite schema,升级前请先备份运行时目录。

快速开始

[!IMPORTANT]
不要运行 npm install -g @memtensor/memos-local-plugin。
这是智能体插件包,不是独立的命令行工具。全局 npm 安装只会把发布的 tarball 下载到你的 node_modules 目录里,不会接入 OpenClaw、Hermes 或 DSH。tarball 里包含构建好的运行时,以及智能体安装器需要的源码和元数据;viewer/ 源码、website/、测试和其他仅开发用的文件仍留在本仓库。
OpenClaw 或 Hermes 请用 install.sh / install.ps1。DeepSeek Harness 请用 Unix 安装器的 --agent dsh 目标,或 DSH 更底层的 dsh plugin 命令。

OpenClaw 和 Hermes 的安装器会从 npm 下载包,部署到对应智能体目录,安装生产依赖,写入初始 config.yaml,需要时重启智能体运行时。

在本仓库中:

cd apps/memos-local-plugin
bash install.sh --version 2.0.0

或直接安装最新发布的包:

bash install.sh

安装器会自动检测 OpenClaw 和 Hermes。在交互式终端里,它会询问要装给哪个智能体;在非交互环境里,它装给检测到的智能体。发布前想测试本地包,传 tarball 路径而不是 registry 版本号:

npm pack
bash install.sh --version ./memtensor-memos-local-plugin-1.0.0-beta.1.tgz

OpenClaw 装本地归档也用安装器:

bash install.sh --agent openclaw --version ./memtensor-memos-local-plugin-2.0.16-beta.1.tgz

不要用 openclaw plugins install ./package.tgz 代替这条命令:走原始归档这条路,可能解析到仅开发用的 DeepSeek peer 依赖,报 ERESOLVE 失败,OpenClaw 2026.9.1 和 2026.9.2 上都会出现。安装器会暂存生产依赖并重新构建 better-sqlite3。OpenClaw 较新的 npm-pack: 路径能避开 peer 解析冲突,但托管安装成功本身并不能验证原生绑定,也不会初始化 MemOS 运行时配置;上面这个安装器仍是受支持的安装方式。
升级 OpenClaw 本身时,先运行 openclaw doctor --fix 迁移已停用的宿主配置,再安装 MemOS。MemOS 安装器会删除自己的旧 plugins.installs 记录,保留其他插件的旧宿主记录,并在可用时通过宿主命令行征得能力授权。它不会改写宿主内部的安装数据库。已测试的版本和限制见兼容性测试结果。

在 Windows 上,为 OpenClaw 或 Hermes 安装时,请在 PowerShell 中运行 install.ps1,不要用 install.sh。DSH 的一键安装目标目前支持 macOS/Linux;Windows 用户可以使用 DSH 更底层的 dsh plugin 流程。

DeepSeek Harness

DSH 支持是一个树外的 Cordis bundle。一键安装器让 DSH 继续掌控自己的配置档,同时以非交互方式处理 pnpm 经审核的原生依赖构建策略。如果 pnpm 不在 PATH 中,安装器会为本次运行准备一个隔离的 pnpm@11.7.0,不改动用户的全局包管理器设置:

curl -fsSL https://raw.githubusercontent.com/MemTensor/MemOS/main/apps/memos-local-plugin/install.sh \
| bash -s -- --agent dsh --profile web --version 2.0.16

安装器把包归属和 bundle 协调交给 dsh plugin。如果 pnpm 报告了经审核的构建脚本集合,安装器会启用 better-sqlite3、esbuild、onnxruntime-node 和 sharp,显式禁用不需要的 protobufjs 和 MemOS 提示脚本,重试同一个包规格,并校验组合后的 memos-local-memory 行。任何未知的构建脚本包都会按失败关闭处理,留待人工审核;安装器绝不使用 approve-builds --all。

安装器退出时会删除临时 pnpm。正常使用 dsh --profile ... 运行时不需它。之后直接运行更底层的 dsh plugin 命令的用户仍需 PATH 中有 pnpm;如有需要,用 npm install -g pnpm@11.7.0 持久安装 DSH 锁定的版本。

如果想从本地检出开发,先构建,再直接加到目标 DSH 配置档:

cd /path/to/MemOS/apps/memos-local-plugin
npm install
npm run build:package
dsh plugin --profile web add .

适配器默认复用 DSH 中已配置的服务商/模型和凭据,供 MemOS 辅助 LLM 调用;无需第二个 API key。对于有界结构化辅助调用,它在可用时使用模型声明的 off 推理强度,不改动智能体会话的选择。仍可显式指定 MemOS LLM 服务商作为覆盖。

每个被接受、非空的直接用户 DSH 轮次都会执行一次自动回忆,包括问候语;没有问候语或意图分类的例外,同一逻辑轮次内的重入会去重。查询排在带来源标签的 memos-local-memory 上下文之前,不过其他 DSH 上下文贡献可能出现在两者之间。恢复的会话和分支每轮都遵循同一规则,但插件和工具消息不会触发自动召回。模型还可以额外调用 memos_search,做更短或改写后的查询。

自动召回和显式 memos_search 共用一个绝对截止时间:min(recallTimeoutMs, 3000) ms。默认 3,000 ms,配置可以缩短这个 DSH 前台时限,但不能延长。DSH 检索过滤不会重试格式错误的 JSON;格式错误输出、服务商失败或可取消的超时,都会回退到对排序候选执行机械的 safeCutoff。没有排序候选时,自动召回不注入任何内容,工具返回空结果。完全不可取消的服务商会在同一有效截止时间触发硬性保护;自动召回保留原始查询路径,而 memos_search 返回空结果并标记 timedOut: true。DSH 会等待 agent/pre-step,所以查询气泡仍可能只在该轮有界召回之后出现,但最终顺序仍是先查询后上下文。捕获、关系、意图、摘要和嵌入仍是后台工作,下一轮从不等待上一轮的队列。这些 DSH 专属策略不会改变 OpenClaw 或 Hermes 的行为。

DSH 配置档启动后,打开已有的 MemOS Viewer:http://127.0.0.1:18801。服务器与适配器共享进程内的 MemoryCore;它不是第二个记忆运行时,也不是边车进程。Cordis 字段 viewerEnabled 和 viewerPort 控制它是否启动以及使用哪个端口;共享的 config.yaml 字段 viewer.bindHost 将绑定接口默认设为 127.0.0.1。DSH Viewer 目前仅支持本机使用,只接受 localhost 或 IPv4 127.* 回环地址。正常的一次 Ctrl+C/SIGINT 或 SIGTERM 重启不需要 MemOS 专属停止命令,也不用等端口:活动的 Viewer SSE 流会关闭,暂时繁忙的 Viewer 端口会在后台重试。

Node 兼容性细节、DSH_HOME、重启/卸载步骤,以及已审核的 pnpm 审批流程(用于原生/传递依赖安装脚本)、Viewer 生命周期和端口冲突行为,见 DeepSeek Harness 适配器指南。

故障排查

npm install -g @memtensor/memos-local-plugin 提示 "not found" 或 "404"。 你多半在看旧版 README,或者把这个包当成独立命令行来装。该包发布在公共 npm 注册表的 @memtensor 作用域下,但设计上由智能体专属安装器拉取,不要全局安装。OpenClaw/Hermes 用 bash install.sh,DSH 用上文所示的 dsh plugin。

我克隆了这个仓库,但 web/ 或 site/ 目录里只有 README.md(没有 src/,没有 vite.config.ts,没有 index.html)。 这些目录名已过时。运行时 viewer 源码在 viewer/ (原 web/),site/ 下未完成的营销站点脚手架也已全部移除。如果你看到某个 web/ 或 site/ 目录里只有一个 README,那说明你拿到的是已发布的 npm tarball(只打包 viewer/dist/),不是本仓库的新鲜 git clone。克隆仓库才能拿到完整源码树,或者直接运行 install.sh 部署预构建的 viewer。

配置

共享的 MemOS 核心从运行时目录读取 config.yaml。DSH 宿主侧的开关,比如 viewerEnabled 和 viewerPort,放在配置档的 Cordis 行里;共享的 Viewer 设置,比如 viewer.bindHost,仍留在 config.yaml。运行时与配置的位置按以下优先级解析:

1. MEMOS_HOME 环境变量 —— 指向运行时根目录(例如 /opt/data/.hermes/memos-plugin)
2. MEMOS_CONFIG_FILE 环境变量 —— 直接指向配置文件(例如 /opt/data/.hermes/memos-plugin/config.yaml)
3. 适配器显式指定的 home —— DSH Cordis 的 home 字段,或 --home 桥接参数
4. DSH_HOME(仅 DSH)—— 把 DSH 记忆根目录默认为 $DSH_HOME/memos-plugin/
5. 默认路径 —— 按智能体不同,取 ~/.hermes/memos-plugin/、~/.openclaw/memos-plugin/ 或 ~/.dsh/memos-plugin/

Docker 部署

在 Docker 容器里运行守护进程时,如果配置位置与默认路径不同,必须显式指定。有三种做法:

方案 1:环境变量(推荐)

设置 MEMOS_HOME 指向运行时目录:

ENV MEMOS_HOME=/opt/data/home/.hermes/memos-plugin
CMD ["node", "bridge.cts", "--agent=hermes", "--daemon"]

方案 2:命令行参数

直接给桥接命令传 --home:

CMD ["node", "bridge.cts", "--agent=hermes", "--daemon", "--home=/opt/data/home/.hermes/memos-plugin"]

方案 3:配置文件路径

设置 MEMOS_CONFIG_FILE 直接指向配置文件:

ENV MEMOS_CONFIG_FILE=/opt/data/home/.hermes/memos-plugin/config.yaml
CMD ["node", "bridge.cts", "--agent=hermes", "--daemon"]

Docker 部署示例

以 Hermes Agent 的 Docker 镜像为例:

FROM nousresearch/hermes-agent:latest

Install memos-local-plugin
RUN bash -c "$(curl -fsSL https://raw.githubusercontent.com/MemTensor/MemOS/main/apps/memos-local-plugin/install.sh)"

Set the config location
ENV MEMOS_HOME=/opt/data/.hermes/memos-plugin

Start daemon in background, then run Hermes
CMD node /opt/data/.hermes/plugins/memos-local-plugin/bridge.cts --agent=hermes --daemon && hermes chat

故障排查

如果看到这样的警告:

config file not found at /opt/data/.hermes/memos-plugin/config.yaml; using defaults

说明桥接进程找错了位置。检查:

1. 确认 config.yaml 存在:ls -la ~/.hermes/memos-plugin/config.yaml
2. 设置 MEMOS_HOME,或用 --home 指向正确目录
3. 确认路径与 install.sh 生成配置的位置一致

配置缺失时,插件会回退到默认值(本地 embedding、无 LLM 服务商)。轻量级 trace 记忆仍可正常工作;在配置服务商之前,依赖 LLM 的反思与进化会被跳过或降级。
预览分享卡片长什么样 ↓cnlove7777777-art/dsh-memos-compat
分享 · DeepSeek Harness Hub
cnlove7777777-art/dsh-memos-compat

为智能体提供四层记忆与自进化技能,持续从反馈中学习

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部