DeepSeek Harness 插件

dsh-df-memory

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

跳到安装方式

来源信息

GitHub 仓库
lhdrc/dsh-df-memory
最近更新
2026年8月17日
分类
自动化与任务
GitHub stars
2
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/lhdrc/dsh-df-memory
插件名:dsh-df-memory
作者:lhdrc

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器2 个文件
README.md来源说明 · 只读预览

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 <profile 目录> && 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.jsondsh.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_idwait=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 必须有 metricmetric 需至少一条 facts) | | memory_init | 在工作区初始化记忆仓(initMemoryRepogit: 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_queryinject 经宿主 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

定位顺序:repoRootDF_MEMORY_ROOT → 当前会话 SessionHeader.cwdworkspaceRegistryprocess.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")

测试

bun install
bun test

引用

  • 核心仓(df-memory):<https://github.com/lhdrc/lhdrc-agent-memory>