Bleed00/dsh-claude-mem

DeepSeek Harness 插件,集成 claude-mem(dsh 的记忆功能)

项目介绍Project Overview

dsh-claude-mem 是 DeepSeek Harness 插件,接入本地 claude-mem worker 的 HTTP API,提供跨会话记忆搜索、时间线、详情读取、手动保存与会话启动上下文注入,并可按需采集工具结果、生成会话摘要。需要让代理复用项目历史记忆时使用。注意:需先运行 claude-mem worker;GitHub 源码安装可能要在 pnpm-workspace.yaml 允许 prepare 构建。

dsh-claude-mem is a DeepSeek Harness plugin that connects to a local claude-mem worker over HTTP. It provides memory search, timeline lookup, observation retrieval, manual memory saving, session-start context injection, and optional tool-result ingestion plus session summarization. Use it when an agent should reuse persisted project memory across sessions. Caveat: the claude-mem worker must already be running; GitHub installs may require allowlisting the prepare build.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

npx -y @deepseek-ai/dsh plugin --profile demo add @bleed00/dsh-claude-mem

Bleed00/dsh-claude-mem 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-claude-mem

A DeepSeek Harness plugin that integrates claude-mem: query persisted cross-session memory, inject per-project context at session start, save manual memories, and drive session summarization — all through a local claude-mem worker's HTTP API.

npm npm downloads GitHub CI License TypeScript Node.js DeepSeek Harness dsh-plugin

It registers the model-facing tools mem_search, mem_timeline, mem_get_observations, mem_save, and mem_context, the mem-search skill, and the lifecycle hooks (agent/session-start context injection, optional tools/post-execute ingestion, optional agent/turn-stopping summarization). It is a single self-contained package with no monorepo-only dependencies.

Install

One-liner with npx (no global install — npx fetches the dsh launcher and dsh plugin forwards add to pnpm in the target profile):

npx -y @deepseek-ai/dsh plugin --profile demo add @bleed00/dsh-claude-mem

If you already have dsh on PATH, the same command without npx:

dsh plugin --profile demo add @bleed00/dsh-claude-mem

npm (recommended — ships prebuilt lib/, no build permission needed):

npx -y @deepseek-ai/dsh plugin --profile demo add @bleed00/dsh-claude-mem

GitHub (sources; runs a prepare build on first install):

npx -y @deepseek-ai/dsh plugin --profile demo add github:Bleed00/dsh-claude-mem

A GitHub install fetches sources, not build output, so pnpm runs this package's prepare script to build from src/. pnpm ≥10 refuses to run a git dependency's prepare until it is allowlisted; the first add fails and points at the fix — copy the exact package key pnpm printed into the profile's pnpm-workspace.yaml:

allowBuilds:
  '@bleed00/dsh-claude-mem': true

then re-run the add. Treat that allowance as permission to run this package's code at install time; pin a commit for reproducible installs:

dsh plugin --profile demo add github:Bleed00/dsh-claude-mem#<sha>

Local checkout:

dsh plugin --profile demo add ./dsh-claude-mem

Requirements

  • A DeepSeek Harness installation with dsh on PATH.
  • The claude-mem worker already running on its default port (http://127.0.0.1:37700). Override with the baseUrl config or the DSH_MEM_BASE_URL environment variable.

Config

Field Default Description
baseUrl http://127.0.0.1:<37700 + uid % 100> Worker base URL.
timeoutMs 30000 Per-request timeout (ms).
dedupe true Collapse duplicate observations in query results (content fingerprint, never identity).
platformSource unset Optional platform filter; omitted = search all memory.
project unset Project name; defaults to the session cwd basename.
injectContext true Inject session-start context.
ingest false Save observed tool results as memories.
summarize false Summarize sessions on turn stop.
toolFilter.names read, write, edit, bash Tools observed when ingest is true.

Platform scoping is a signal, never a restriction: default requests are unfiltered, and platformSource only adds an opt-in filter.

Duplicate handling

The worker can persist the same observation many times (a boilerplate "session initiated" record, or a re-run tool result) — identical content, different id. With dedupe: true (the default), query results collapse those copies: an observation's content fingerprint is built from title + subtitle + text + narrative + facts (normalized), so two entries that merely share a generated title but differ in narrative are kept. The first copy (lowest id) is retained. Structured results (mem_get_observations) are deduplicated by fingerprint; rendered index/text results are deduplicated by exact rendered row. Set dedupe: false to see the raw, unfiltered results.

Example override in the profile's cordis.patch.yml

- id: claude-mem
  config:
    baseUrl: http://127.0.0.1:37700
    platformSource: dsh
    ingest: true
    summarize: true

Tools

Tool Purpose
mem_search Search memory; returns an index (ids, titles, types).
mem_timeline Get context around one observation.
mem_get_observations Fetch full details for ids.
mem_save Save one manual memory.
mem_context Render the worker's session-start context text.

The mem-search skill teaches the model the search → filter → fetch workflow that keeps token usage low.

Development

pnpm install
pnpm run build   # tsc + tsdown → lib/index.js
pnpm test

The package targets Node ≥ 20.12, TypeScript 6.0, and is authored against the @deepseek-ai/* framework packages (cordis, schemastery, dsh-tools, dsh-llm, dsh-skill, dsh-agent).

License

Apache-2.0 © Bleed00

上一个 Prev dsh-plugin-manager 下一个 Next dsh-git-plugin