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

记忆中枢 lhdrc/dsh-df-memory

DeepSeek Harnessv0.5.1
lhdrc79 天前有提交已提供中文文档扫描:含敏感能力

让 Agent 检索、读取并写入长期记忆

29/100
综合分
3
GitHub 星标
36
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-df-memory
npm 源 · dsh-df-memory 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · chat
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/10/24·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 79 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-df-memory @ 0.5.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/23 11:36:35

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件
查看扫描证据(共 18 处,展示前 15 条)
  • 读取本地文件
    dist/index.js:366
    const { data } = parseFrontmatter(await readFile(rel, "utf8"));
  • 读取本地文件
    dist/index.js:380
    if (existsSync(localAbs)) {
  • 读取本地文件
    dist/index.js:390
    if (existsSync(sharedAbs))
  • 读取本地文件
    dist/index.js:538
    const raw = await readFile(join(repoRoot, f.rel), "utf8");
  • 读取本地文件
    dist/index.js:720
    if (!existsSync(join(host.repoRoot, rel))) {
  • 读取本地文件
    dist/index.js:1444
    if (!force && existsSync2(join2(target, "memory.yml"))) {
  • 读取本地文件
    src/tools.ts:790
    if (!force && existsSync(join(target, "memory.yml"))) {
  • 读取本地文件
    src/tools.ts:1126
    if (!existsSync(yml)) {
  • 读取本地文件
    src/skills.ts:67
    const { data } = parseFrontmatter(await readFile(rel, "utf8"));
  • 读取本地文件
    src/skills.ts:91
    if (existsSync(localAbs)) {
  • 读取本地文件
    src/skills.ts:101
    if (existsSync(sharedAbs)) return readSkillFile(sharedAbs);
  • 读取本地文件
    src/skills.ts:270
    const raw = await readFile(join(repoRoot, f.rel), "utf8");
  • 读取本地文件
    src/skills.ts:465
    if (!existsSync(join(host.repoRoot, rel))) {
  • 读取本地文件
    src/hooks.ts:228
    if (!existsSync(host.repoRoot)) return;
  • 读取本地文件
    src/hooks.ts:325
    if (!existsSync(host.repoRoot)) return;
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 检索长期记忆
  • 读取长期记忆
  • 写入长期记忆

README

由 DeepSeek 最新模型翻译生成
dsh-df-memory DeepSeek Harness(Cordis)插件:把 lhdrc-agent-memory(df-memory 核心仓)的记忆能力接入 agent 工具面。 当前版本 0.5.1(npm 已发布)。 安装 方式一:npm 安装(推荐) dsh plugin --profile web add dsh-df-memory 或 cd && pnpm add dsh-df-memory 核心库会作为依赖自动从 npm 拉取,无需手动安装。 方式二:clone 本地安装(开发用) git clone https://github.com/lhdrc/lhdrc-agent-memory git clone (https://github.com/lhdrc/dsh-df-memory.git) 本地 link 安装插件(改动插件源码即时生效) dsh plugin --profile web add ./dsh-df-memory 或 dsh --patch ./dsh-df-memory/cordis.patch.yml clone 方式下插件的核心依赖指向 npm;若需直接使用本地 core 源码,请手动改为 file:../lhdrc-agent-memory/packages/core。
展开完整文档(README 剩余 1 节)
dsh-df-memory

DeepSeek Harness(Cordis)插件:把 lhdrc-agent-memory(df-memory 核心仓)的记忆能力接入 agent 工具面。

当前版本 0.5.1(npm 已发布)。

安装

方式一:npm 安装(推荐)

dsh plugin --profile web add dsh-df-memory
或
cd && pnpm add dsh-df-memory

核心库会作为依赖自动从 npm 拉取,无需手动安装。

方式二:clone 本地安装(开发用)

git clone https://github.com/lhdrc/lhdrc-agent-memory
git clone (https://github.com/lhdrc/dsh-df-memory.git)
本地 link 安装插件(改动插件源码即时生效)
dsh plugin --profile web add ./dsh-df-memory
或
dsh --patch ./dsh-df-memory/cordis.patch.yml

clone 方式下插件的核心依赖指向 npm;若需直接使用本地 core 源码,请手动改为 file:../lhdrc-agent-memory/packages/core。

安装后若 bundles 列表未自动更新,检查 profile package.json 的 dsh.profile.bundles 包含 dsh-df-memory。

主 API 是工具,不是读仓文件

Agent 应通过以下工具访问记忆,不要把 cat brains/… 或直接读 markdown 当作主路径:

| 工具 | 用途 |
| memory_query | 检索相关记忆;可选 type 过滤(decision\|lesson\|note\|experience\|skill),命中带 schema_type 层标签。默认排除 skill 与 .overview.md/.abstract.md 侧车(显式 type=skill 时豁免;侧车原文仍可 memory_read)。experience/skill 命中额外带 eta_score/support/source_paths(snippet 优先 trigger)。可选 brain 覆盖本次调用的 brain |
| memory_read | 读单个节点原文;可选 brain |
| memory_remember | LLM 编译写入(默认异步:返回 accepted+task_id;wait=true 同步等到 kept;无 Key 且无 bridge → E_DISABLED)。可选 brain |
| memory_job_status | 查询 remember/compile 任务状态(.dfmemory/jobs/{brainId}/)。只给 task_id 时只查当前默认 brain,不扫其它 brain;可另传 brain |
| memory_capture | 零 LLM 显式写一条 L0 笔记(captureNode,ADD-only,llm.provider=off 也可用)。可选 metric/value/unit/period 为该次 facts 记量纲(value 必须有 metric,metric 需至少一条 facts) |
| memory_init | 在工作区初始化记忆仓(initMemoryRepo;git: init\|existing\|off) |
| memory_tree | 只读盘点仓内目录/文件(listTree/renderTree) |
| memory_forget | 软归档节点(status=archived,D17,记 ledger) |
| memory_sync | 显式把 dirty 刷进 git 账本(flushRepoLedger explicit,等价 sync --commit) |
| memory_brain | brain 管理:list(含 sources / is_default)/ create(已有则保持) |
| memory_rebuild_index | 从 md 重建索引(rebuildIndex;D1 索引可丢可重建) |
| memory_events | 列出近期 ledger 事件(listLedgerEvents) |
| memory_skill | 规则层:list / find / read / inject;skill 不混默认 memory_query。inject 经宿主 ctx.skills.register 登记为会话 skill(trigger + procedure 摘要,非全文)。可选 brain |
| memory_skill_outcome | 显式打分 { name, success, note? } → eta_score/support/status;不因 success 自动 activate |
| memory_trend | 查指标趋势 { metric, threshold?, direction?, brain? } → 扫 facts 的 metric/value 检测回归;points:[] 是合法结果(不报错)。数据用 memory_capture + metric/value 写入 |

Prompt section df-memory 会在 system prompt 中提醒模型遵守上述约定。

配置(cordis.yml)

repoRoot: null # 默认从 DSH 会话工作区向上找 memory.yml(不是 dsh 进程 cwd) brainId: null # 默认仓内 brain_id agentId: dsh # created_by 前缀 llmBridge: true # provider=off 时用 DSH 的 LLM 跑 memory_remember;false 关闭 llmProvider: deepseek-official # bridge 路由 provider(可选) llmModel: deepseek-v4-flash # bridge 路由 model(可选) skillInjectMaxChars: 2000 # 单 skill 注入体上限(可选) skillInjectMaxCount: 3 # 会话级注入 skill 个数上限(可选) injectTopK: 5 # pre-step 知识注入 top-k(可选) bootInjectExperiences: true # session-start 注入成熟经验(可选) bootInjectTopK: 3 # 启动注入条数(可选) rememberAsync: true # false 时 remember 等价 wait:true compile.job_timeout_ms: 120000 # 写在 memory.yml 的 compile 段;超时 job 标 failed + E_TIMEOUT,不写 L0

定位顺序:repoRoot → DF_MEMORY_ROOT → 当前会话 SessionHeader.cwd → workspaceRegistry → process.cwd()。Web UI 里请把工作区选成含 memory.yml 的目录。若仍报「未找到 memory.yml」,在插件 config 里写绝对 repoRoot,或让 agent 调用 memory_init 建仓。

自动行为(挂钩)

- 会话摄入:autoBuffer 默认 true。session/event 只收 user/model + assistant;达窗 / dispose 入队 compile(任务权威 .dfmemory/jobs/,不进检索、不进 git)。autoBuffer: false 可关。
- 门控注入:pre-step 命中 shouldQueryMemory → 检索 top-k 注入(injectOnGate / injectTopK),失败 fail-open。
- 启动注入:agent/session-start 注入该 brain active 经验 top-3(bootInjectExperiences 默认 true);与门控注入按 path 去重。不注 skill、不注 L0。
- LLM bridge:仓内 llm.provider=off 时,memory_remember 自动走 DSH 自己的 LLM(ctx.get("llm") → complete()),无需在仓内配 API key;bridge 覆盖 compile 抽取与懒蒸馏。kill_switch 仍优先。

宿主侧注意:ctx.llm 属性不可读(llm 不在插件 inject 列表),必须走规范访问 ctx.get("llm")。

测试 bash
bun install
bun test

引用

- 核心仓(df-memory):
预览分享卡片长什么样 ↓lhdrc/dsh-df-memory
分享 · DeepSeek Harness Hub
lhdrc/dsh-df-memory

让 Agent 检索、读取并写入长期记忆

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