快速了解
它能做什么
一组用于可搜索本地记忆和自动会话摘要捕获的 DSH 插件包。
本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。
Web Profile
Not declared in supplied evidence
证据已验证
核对日期 2026/9/15 UTC 14:13
选择前先看
DSH Memory Vault 包含两个关联插件:memory-mcp 通过本地 stdio MCP 记忆服务器连接 DeepSeek Harness,memory-auto 自动写入会话摘要。Vault 使用 Markdown 条目和 SQLite FTS5 索引,默认位于 Harness 主目录下。
适合谁
希望保留可搜索的项目记忆,并愿意检查本地插件配置的 DeepSeek Harness 用户。
常见任务
- 让智能体搜索已保存的项目记忆。
- 通过记忆 MCP 工具保存事实或决策。
- 在提交、压缩、空闲活动和会话结束时自动捕获有用上下文。
- 导出记忆或获取已保存的个人资料。
权限与数据
插件管理本地 vault 文件并启动本地 stdio MCP 服务器;自动捕获会通过已配置的 Harness LLM 服务处理由对话记录生成的摘要。
权限- 设置时读取 DSH_MEMORY_PATH 和 DSH_MEMORY_SERVER_DIR。
- 默认在 DSH_HOME 下创建或使用 vault 和服务器目录。
- 通过 Node 启动器和 stdio 传输启动记忆服务器。
- 以 Markdown 保存记忆条目,并使用 SQLite FTS5 建立索引。
- 自动摘要会写入已配置的 vault。
- 源码称首次启动复制的现有 vault 文件不会被覆盖。
- 自动摘要生成使用 Harness 中配置的 LLM 提供商。
- 缺少 uv 时,首次启动可能通过网络安装 Python 依赖。
- 未声明额外插件凭据;自动捕获使用 DSH 已配置的密钥。
局限
- 提供的证据未验证 npm 注册表中的包版本;请使用不可变 Git 插件包源码。
- 本次整理未实际执行安装或运行时行为。
- memory-auto 声明了 prepare 构建脚本。
- 提供的补丁默认启用自动捕获,并使用默认 DeepSeek 提供商和模型,除非重新配置。
DSHub 已核对
- 固定提交中的两个包清单和 Cordis 插件包补丁均已通过结构验证。
- @luisarg/memory-mcp 与 @luisarg/memory-auto 的不可变 Git 插件包交付已验证。
- 源码声明 MIT 许可证。
DSHub 未核对
- 未运行成功安装、首次启动依赖安装、MCP 连通性或记忆写入。
- 提供的证据未声明 DeepSeek Harness 版本范围。
- 未验证 npm 上是否提供 0.1.4 版本。
固定版本安装
安装 DSH Memory Vault
这个Plugin Bundle没有 DSH Plugin 安装操作,请根据源码文档使用真实交付方式。
维护者原文
项目 README
dsh-memory-vault
Persistent OKF memory for DeepSeek Harness (DSH):
a Python MCP server (SQLite FTS5 + Markdown), two Cordis plugins (memory-mcp, memory-auto)
and a vault starter with templates and a type registry.


Components
| Component | What it does | Bundle |
|---|---|---|
memory-mcp |
MCP stdio wrapper: connects DSH to the memory vault server | @luisarg/memory-mcp |
memory-auto |
Auto memory capture: session digest with commit/compaction checkpoints | @luisarg/memory-auto |
memory-vault-server/ |
Python MCP server: SQLite FTS5 + Markdown OKF | — |
memory-vault/ |
Vault starter: templates + type registry + tag vocabulary | — |
scripts/digest_session.py |
Optional standalone post-session digest (CLI, not used by the plugins) | — |
Quickstart
pnpm install
pnpm -r build
# local dev with an overlay (paths relative to the repo cwd)
dsh web --patch ./examples/dev-memory.cordis.yml
Install
# 1. install both plugins (npm, prebuilt — no build approvals, no repo clone)
dsh plugin --profile web add @luisarg/memory-mcp@0.1.4 @luisarg/memory-auto@0.1.4
# 2. launch — first boot installs the vault server + starter under $DSH_HOME
# (~/.dsh/memory-vault-server and ~/.dsh/memory-vault) automatically
dsh web
# verify
dsh --profile web --dump-config | grep -A8 memory
uvon PATH is recommended but no longer required: the bundledlauncher.mjsruns the server withuv runwhen uv is present and falls back to a pip-managed venv (python3 -m venv+pip install -r requirements.txt, first boot needs network) when it is not. The packages are self-contained: they ship the Python vault server and the OKF vault starter, and copy them into place on first boot (existing files are never overwritten; upgrades copy only the missinglauncher.mjsandrequirements.txt). The version is pinned because pnpm's defaultminimumReleaseAge(3 days) would otherwise resolve an older release. Paths resolve as: env (DSH_MEMORY_PATH,DSH_MEMORY_SERVER_DIR) →$DSH_HOME/memory-vault(-server)→ profile patch (see Path resolution). Launch from any directory.
Developers (local checkout instead of npm):
dsh plugin --profile demo add ./packages/memory-mcp ./packages/memory-auto
Offline: pnpm --filter @luisarg/memory-mcp pack and add the .tgz files.
Installing the repo root from GitHub is not supported (root has no
dsh.bundle; pnpm lacks git subdirectory specs) — use npm or the tarball.
Releases are published by CI: pushing a v<version> tag builds, tests,
validates the tarballs and publishes both packages to npm with a
provenance attestation,
authenticated by GitHub OIDC — no publish token exists in this repository or on
the maintainer's machine. What runs before an artifact ships, and the guardrails
around it, are in docs/releasing.md.
Usage & interaction commands
Once installed, the agent can read and write the vault through the
mcp__memory__* tools — just ask it in the chat:
| You say | Tool the agent uses |
|---|---|
"search your memory for <topic>" |
mcp__memory__search_memory |
"remember this: <fact/decision>" |
mcp__memory__store_decision / store_fact / … |
"export everything you know about <project>" |
mcp__memory__export_memories |
| "summarize my profile" | mcp__memory__get_profile |
Automatic capture (memory-auto): git commits, compactions and session
ends trigger digests; idle checkpoints capture when there is activity. Digests
log as [memory-auto] … lines in the harness console, and writes land under
<vault>/projects/<project>/<type>/ (Markdown) + the SQLite FTS5 index.
Verify the installation and the stored memory:
# composed config shows both bundles with the resolved paths
dsh --profile web --dump-config | grep -A8 memory
# what the vault holds (default vault: ~/.dsh/memory-vault)
ls ~/.dsh/memory-vault/projects/ # per-project OKF entries
grep -i "digest" ~/.dsh/memory-vault/log.md # digest markers
# talk to the vault MCP server directly (standalone smoke test)
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"cli","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"ping","arguments":{}}}' \
| MEMORY_PATH=$HOME/.dsh/memory-vault uv run --directory memory-vault-server python server.py
Run a second harness instance on another port (for testing without touching your main session):
pnpm dsh web --port 3090
Second MCP client: opencode (zona central ~/.memories)
Since 2026-09-09 the vault lives in a dedicated git repo at ~/.memories
(union of the former DSH vault and the legacy opencode-memory-vault
bundle; see docs/central-zone.md). opencode is a
second stdio MCP client over the same server and vault — ~/.config/opencode/opencode.json:
"mcp": {
"memory-server": {
"type": "local",
"command": ["uv", "run", "--directory", "<repo>/memory-vault-server", "python", "server.py"],
"enabled": true,
"environment": { "MEMORY_PATH": "<absolute path to your vault>" }
}
}
opencode requires the key
environment(notenv— that one is silently ignored and the server falls back to the repo default vault).
Memory stack
The plugins work on an OKF vault (memory-vault/ in this repo, or your own).
Runtime: uv on PATH, or Python ≥3.11 with a network on first boot — both
launch paths go through the bundled launcher.mjs, which uses uv run and
falls back to a pip-managed .venv (requirements.txt) when uv is missing.
The post-session digest runs in-process through the harness's own LLM
service (ctx.llm, provider deepseek-official by default — configurable with
provider/model), so the plugins need no external CLI and store no
credentials: they use the same key DSH is configured with.
Path resolution (cwd-independent)
DSH does not chdir — the launch directory is irrelevant. Paths resolve in this order:
- Env vars (override everything):
DSH_MEMORY_PATH,DSH_MEMORY_SERVER_DIR. - Defaults under the harness home:
$DSH_HOME/memory-vaultand$DSH_HOME/memory-vault-server(~/.dshwhen$DSH_HOMEis unset). - Profile patch (
cordis.patch.yml) or--patchoverlay with explicit values.
| Env var | Used for | Default |
|---|---|---|
DSH_MEMORY_PATH |
vault directory | $DSH_HOME/memory-vault |
DSH_MEMORY_SERVER_DIR |
directory with server.py (MCP server) |
$DSH_HOME/memory-vault-server |
# run the MCP server standalone:
MEMORY_PATH=./memory-vault uv run --directory ./memory-vault-server python server.py
Vault
memory-vault/ is an OKF bundle: templates/ (per-type templates),
type-registry.yaml (source of truth for types), tag-vocabulary.json
(tag normalization). Runtime data (projects/, raw/, logs/, memory.db)
is created by the server on first use and excluded from git (.gitignore).
Architecture & diagrams
Interactive versions of the diagrams (standalone HTML, open in any browser):
- stack.html — architecture
- session-digest.html — dataflow
- mcp-tool-call.html — sequence
- capture-lifecycle.html — lifecycle
Editable specs live in docs/diagrams/*.json (generated with
archify). Full write-up:
docs/architecture.md; index: docs/README.md.
Repository layout
packages/memory-mcp/ # cordis bundle: MCP stdio client to the vault
packages/memory-auto/ # cordis bundle: automatic session digest
memory-vault-server/ # Python MCP server (SQLite + Markdown OKF)
memory-vault/ # vault starter (templates + type registry)
scripts/digest_session.py # optional standalone digest CLI (not used by the plugins)
examples/dev-memory.cordis.yml # memory-mcp
examples/dev-memory-auto.cordis.yml # memory-mcp + memory-auto
Layer order
dsh.profile.bundles(base + every installed bundle)$DSH_HOME/profiles/<name>/cordis.patch.yml$DSH_HOME/cordis.patch.yml--patchoverlays
Patch replaces config wholesale — it does not merge.
Troubleshooting pnpm
unable to open database file→ the pnpm store is not writable in a sandboxed environment. Use--store-dir ./.pnpm-storeon everypnpm installand ondsh plugin --profile X --store-dir ./.pnpm-store add ....dsh: pnpm failedwhen installing from GitHub → only applies to packages with apreparescript; copy the printed key into the profile'spnpm-workspace.yaml(allowBuilds). Note: the subpackages of this monorepo cannot be installed withgithub:...(pnpm has no git-subdirectory support) — use npm or a tarball.
Docs
docs/— public documentation (architecture + diagrams)- Releasing & version tags — which commit each
v*tag maps to - Your first plugin
- Build a tool
- Plugin configuration
- Package and install
有意识地管理
安装与管理
前置条件与目标 Profile
目标: Web Profile
交付方式: Git Bundle — Luisarg03/dsh-memory-vault#e862b23967bbadf37c2d126797f0ec7070b2c8d5。
验证、更新与移除
显示生命周期命令
dsh plugin --profile web list兼容性与访问范围
DeepSeek Harness DSH bundles; memory-auto requires dsh-llm: Not declared in supplied evidence。
风险事实
Stores memory as Markdown and a SQLite FTS5 index under the configured vault path.
证据 ↗Automatic digest capture uses the Harness LLM service; the default configuration selects deepseek-official and deepseek-v4-flash.
证据 ↗Without uv on PATH, first boot may create a Python virtual environment and install requirements over the network.
证据 ↗证据与编辑审查Manifest、Bundle patch、分发与新鲜度
不可变证据
审查状态与源码活动
这是一个带自动捕获选项的本地记忆插件包;用于敏感会话前,请检查其路径与 LLM 配置。
AI 审查于 2026/9/15 UTC 14:14。GitHub 事实核对日期: 2026/9/15 UTC 14:14。
自当前证据基线以来,没有记录到重要源码变化。