会话记忆自动驾驶:监听 DSH 会话,在会话结束与压缩前通过宿主 LLM(ctx.llm,默认 deepseek-official)就地抽取 OKF 条目,无需外部 API Key。
安装
# npm 包(预构建)
dsh plugin --profile web add @luisarg/memory-auto
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Luisarg03/dsh-memory-vault#path:/packages/memory-auto
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
该插件的 README 只有英文版本。
Cordis bundle that auto-captures session memory for DeepSeek Harness (DSH): it watches sessions and digests transcripts into an OKF vault at checkpoints — idle, git commit, compaction, and session end.
The digest runs in-process: extraction uses the harness's own LLM service
(ctx.llm.stream, provider/model configurable, deepseek-official by
default), and the resulting OKF entries are written through the vault's MCP
server (store_* tools over stdio), keeping the Markdown source of truth and
the SQLite FTS5 index in sync. No external CLI and no stored credentials — the
plugin uses the same key DSH is configured with.
Install
dsh plugin --profile web add @luisarg/memory-auto
Requires the vault server directory (memory-vault-server in this repository) and either uv
on PATH or Python ≥3.11: the bundled launcher.mjs runs the server with uv run and falls back
to a pip-managed venv (python3 -m venv + pip install -r requirements.txt) when uv is missing.
Skills
The package ships one skill, registered as a bundled provider (rank 600, the weakest in DSH's local discovery table — a same-named skill in a user or project root still wins):
| Command | Source | What it does |
|---|---|---|
/checkpoint-auto |
skills/checkpoint-auto/SKILL.md |
Explains and steers the automatic capture: the git-commit, compaction, idle and session-end triggers, what an injected [memory-checkpoint] prompt means, and the provider / model / maxTokens / minTranscriptChars / enabled knobs |
It deliberately does not restate the entry vocabulary: that lives in packages/memory-mcp's
checkpoint skill and in src/pure.ts, which builds the injected prompt so it keeps working with
no skill loaded. Registration happens before the enabled gate — the skill is how a session
learns that capture is off and how to turn it back on.
Configuration
| Field | Purpose | Default |
|---|---|---|
memoryPath |
vault directory | $DSH_MEMORY_PATH or ~/.memories |
serverDir |
directory containing the vault server.py |
$DSH_MEMORY_SERVER_DIR or $DSH_HOME/memory-vault-server |
provider |
LLM provider route (harness registry) | deepseek-official |
model |
LLM model id | deepseek-v4-flash |
maxTokens |
extraction output cap | 2048 |
minTranscriptChars |
minimum transcript size to digest | 200 |
enabled |
master switch | true |
Environment variables used at load time: DSH_MEMORY_PATH,
DSH_MEMORY_SERVER_DIR.
Behavior
session/created— registers the session and resolves the project name (openspec/present → directory basename; elsepackage.jsonname; elsepyproject.toml[project].name; else first#heading ofREADME.md; else directory basename).session/disposed— digests the transcript, skipping sessions with no activity. A dispose-timectx.effectbatch-digests any session still pending, using the tracked activity summary as a stand-in transcript.agent/statuswith statusidle— runs the auto-capture gate (idleCheckpoint): skips sessions without activity or already delivered, and on the first idle of a session also digests the tracked activity summary.session/event— tracks activity and queues checkpoints:tool/call(also accepted astool_call) whoseargs.commandmatchesgit commitqueues a commit checkpoint.compaction/startqueues a pre-compaction checkpoint (fires whenever there is activity, even if one was already delivered).user/messageandassistant/messageare recorded as tracked activity.
agent/pre-step— delivers the queued checkpoint by pushing it ontopayload.context(orpayload.messages), and the agent writes entries with thestore_*MCP tools.
Extraction failures are retried with bounded backoff and logged; a failed digest never takes the agent down.
Development
pnpm install
pnpm build
pnpm test
The bundle manifest (dsh.bundle) makes this package installable through the
standard dsh plugin add flow; the patch layer lives in cordis.patch.yml.
链接
同类插件
vectorize-io/hindsight#coding-agents★ 51291
Hindsight:会学习的 Agent 长期记忆系统,自动召回/保存、知识页、深度反思与按仓库隔离的记忆银行。
volcengine/OpenViking#examples/dsh-memory-plugin★ 40273
面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`viking://` URI 防护,以及对接 OpenViking 服务端的 recall/write 记忆工具。
agentscope-ai/ReMe#dsh★ 3646
将 DeepSeek Harness 接入 ReMe 本地优先、自进化的个人知识库:自动把已完成的主 Agent 对话沉淀为用户掌控的 Markdown 记忆,通过 reme_search 结合 BM25、可选向量检索和 wikilink 展开搜索对话与资料,并按日整理长期记忆。
zilliztech/memsearch#MemSearch★ 2759
供 DSH 与其他编程 Agent 共享的 Markdown 记忆,支持自动捕获、步骤前上下文注入、搜索召回,以及通过审阅面板实现 memory-to-skill 自进化。
vshulcz/deja-vu#extensions/dsh★ 1244
读取本机上其他三十三个编程智能体已经写下的会话文件——Claude Code、Codex、Cursor、VS Code Copilot Chat、opencode、OpenClaw、Hermes、Kimi、Cline、Zed 等,包括安装之前的历史:提供 deja_recall、deja_session、deja_blame、deja_fix、deja_how、deja_remember 六个工具与 /deja 命令,并可选地把召回结果加入运行时上下文。本地 BM25 索引,不用大模型,不用向量嵌入,不联网(dsh plugin --profile web add dsh-deja)。
adoresever/graph-memory★ 655
DeepSeek Harness 的可追溯、可检索跨会话记忆:把对话知识沉淀为带类型的图节点(任务/技能/事件)与关系边。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。