@luisarg/memory-auto
会话记忆自动驾驶:监听 DSH 会话,在会话结束与压缩前通过宿主 LLM(ctx.llm,默认 deepseek-official)就地抽取 OKF 条目,无需外部 API Key。
安装
dsh plugin --profile web add @luisarg/memory-auto
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | ✓ |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
@luisarg/memory-auto
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; else package.json name; else
pyproject.toml [project].name; else first # heading of README.md;
else directory basename).
session/disposed— digests the transcript, skipping sessions with no
activity. A dispose-time ctx.effect batch-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.commandmatches
git commit queues 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 onto
payload.context (or payload.messages), and the agent writes entries with
the store_* 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.
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:12,最后更新 2026-10-27