# @hy-sde-org/dsh-memory 中文文档

规范地址：https://npmcn.com/package/%40hy-sde-org/dsh-memory/

版本：0\.2\.1-rc\.5
npm 元数据更新时间：2026-11-01T04:23:39.695Z
中文译文更新时间：2026-11-01T09:36:51.172Z
软件包许可：MIT

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40hy-sde-org/dsh-memory
原文对照：https://npmcn.com/package/%40hy-sde-org/dsh-memory/?lang=original
项目主页：https://github.com/hy-sde/dsh-memory#readme
源码仓库：https://github.com/hy-sde/dsh-memory

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：179 kB，46 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.19\.0
- 运行依赖：1 个
- peer 依赖：@deepseek-ai/cordis ~4\.0\.5，@hy-sde-org/dsh-internal-urls ^0\.2\.1-rc\.5
- 首次发布：2026-08-26T03:24:20.973Z
- 最新版本发布：2026-11-01T04:23:39.516Z
- 已发布版本数：11（近 12 个月 11 个）

## 中文简介

用于DeepSeek Harness的代理管理的长期内存（ctx.memory）：持久的项目范围内的内存库，具有提供者注册表和已交付的本地后端-一个独立的插件，不需要更改上游的Harness。

## 安装

```sh
npm install @hy-sde-org/dsh-memory
```

也可以使用：`pnpm add @hy-sde-org/dsh-memory`、`yarn add @hy-sde-org/dsh-memory`、`bun add @hy-sde-org/dsh-memory`

## README

# @hy-sde-org dsh-memory

**代理策划的长视界记忆** 为深寻挽具- `ctx.memory` 服务及其提供程序注册中心，从 [@oh-my-pi](https://github.com/oh-my-pi) 编码代理内存表面(端口位于 [hy-sde叉](https://github.com/hy-sde/deepseek-harness)）. 记忆是持久的， **项目范围** 数据，代理用 `retain`/`recall`/`reflect`/`memory_edit`/`learn` 工具(由 `@hy-sde-org/dsh-tool-memory`)，确实如此 **在下一个开始时重新加载 会话** 通过及时注射。它补充了DSH的会话查询和 压缩而不是重叠：那些回放对话历史， 这家银行会回答“我们在这里决定了什么/更喜欢什么/学到了什么？”

这是一个 **独立插件构建**线束集成（主机平面） `memory` 把船划进 `cordis.patch.yml`，以及代理平面工具 `@hy-sde-org/dsh-tool-memory`． 上游的深寻线束里没有 （`dsh-v0.2.0-rc.2` （后来）需要改变。

只有 **`local` 后端** 船只。注册表保持接缝打开 后见之明/记忆模式的提供商——未来的提供商会注册一个 `MemoryBackend` 同样的工具不会改变。

## 安装

```bash
pnpm install --global @deepseek-ai/dsh
```

### 直接来自npm（已发布）

这两个包都发布在npm注册表的 `hy-sde-org` 组织(`@hy-sde-org/dsh-memory` 和 `@hy-sde-org/dsh-tool-memory`， 版本 `0.2.0-rc.2`）. 添加服务，然后通过预设挂载工具：

```bash
# one command; the tool package comes in as a transitive dependency
dsh plugin --profile web add @hy-sde-org/dsh-memory @hy-sde-org/dsh-tool-memory
```

然后复制 `examples/agent-preset/` 从已安装的包（或此repo） 来 `~/.dsh/.agent-presets/<id>/` 并在Web UI预设选择器中选择它 (或 `dsh agent`）. 预设行使用 `@hy-sde-org/dsh-tool-memory`.

### 从git签出（预发布/开发）

```bash
git clone git@github.com:hy-sde/dsh-plugins.git
cd dsh-plugins
pnpm install
pnpm --filter @hy-sde-org/dsh-memory build

MEMORY_TGZ="$(cd dsh-memory/packages/memory && pnpm pack --pack-destination /tmp | tail -n 1)"
TOOLMEMORY_TGZ="$(cd dsh-memory/packages/tool-memory && pnpm pack --pack-destination /tmp | tail -n 1)"
dsh plugin --profile web add "$MEMORY_TGZ" "$TOOLMEMORY_TGZ"
```

## 布局

服务是主机平面的：存储是交叉的持久项目数据 会话,所以 `cordis.patch.yml` 在配置文件中插入一行；这个 每个会话工具解决这个问题。数据存在于 `<harness home>/memories/<project>/` 哪里 `<project>` 是一个编码的绝对CWD -每个项目一个内存根， 由它的每个会话和工具共享。

每个项目根包含三个工件：

-   `bank.jsonl.zstd` -编写的可编辑工作条目 `retain` (身份证、 内容、上下文、来源、重要性、时间戳、活动标志)。支持 `memory_edit`． 磁盘上的容器是与线束相同的zstd帧格式 会话日志使用：每个保存批处理是一个checksum Zstandard帧 （连接，仅追加，自我修复）。前重命名明文 `bank.jsonl` 仍然是读的，并且在第一次写时被迁移；集 `compression: 'none'` 在 `LocalMemoryConfig` 对于原始行追加 格式。编解码器包含在此包中(`/frame-codec` 子路径, `node:zlib`只有)。
-   `learned.md` - new -first, deduped, capped（100）课子弹由 `learn`;omp保持相同的格式和规范化。幸存了下来 整合; `learn` 写是注入中和和秘密编辑的。
-   `memory_summary.md` -可选的综合汇总（手工或工具维护） 那 `recall`， `reflect`、提示注射面。

## 服务API

```ts
const memory = ctx.memory                       // MemoryService
await memory.save({ cwd }, { content, context, source, importance })
await memory.learn({ cwd }, { content, context })
await memory.search({ cwd }, 'query', { limit: 10 })
await memory.edit({ cwd }, 'update' | 'forget' | 'invalidate', { id, content, importance, replacementId })
await memory.summaries({ cwd })                 // { summary?, learned?, block }
await memory.status({ cwd })
await memory.clear({ cwd })
```

后端注册到服务中： `memory.register(backend)` 返回一个 处理者, `memory.resolve()` 返回配置的（默认：first） 后端。突变发出 `memory/change` （`{ cwd }`)，所以进程内消费者 可以使缓存无效。

一、 `MemoryBackend` 一打方法结束了吗 `@hy-sde-org/dsh-memory/types`； 运来的那个， `LocalMemoryBackend`，为纯节点(`node:fs`)用… 进程内的每个文件写链，所以从兄弟会话并发保存可以 永远不要把对方的信弄丢。

## `memory://` 内部url

当主机组合挂载时 `@hy-sde-org/dsh-internal-urls` (共享 注册表后面的读取/grep工具)，这个插件注册一个 `memory://` 计划 `ctx.internalUrls` -每个进程一次，via `ctx.inject`，它是 在没有注册表的组合中优雅的无操作。每个已解决的资源 是 `immutable: true`：代理永远不会通过 file-shaped URL; `memory_edit` 是突变面。

两种URL形式：

-   `memory://root` -项目的合并内存概述(摘要+ 吸取教训+工作库，同块提示注入使用)。 空项目将读取“项目内存为空”指针。
-   `memory://<id>` -一个完整的存储条目，带有元数据头 （`id`， `source`， `importance`， `timestamp`， `readonly`）. id是一样的 的 `recall`/`reflect` 表面：银行行由他们 `m_*` 我，教训是 `lesson_<hash>` （只读），合并摘要为 `summary_0` (只读)。读取的范围限定在调用会话的项目(`cwd`）。

修正误差，沿着上游的oh-my-pi （`coding-agent/src/internal-urls/memory-protocol.ts`) HINDSIGHT\_UNADDRESSABLE 模式:

-   **没有可寻址** -选择的后端没有 `readEntry` (一个 不可寻址存储)：“The `…` 内存后端不能通过 内存：//<id>"，指向 `recall`/`reflect`.
-   **没有找到** id在这个项目中不存在（或者已经退役了） “记忆 `…` 在这个项目中不存在”，指的是 `recall`/`memory_edit`.
-   丢失的名称空间、丢失的cwd、未注册的后端和路径 `root`/和id都得到自己的纠正信息。

完成: `complete()` 返回 `root` 加上每个可寻址条目id （`listEntries`，最新的第一，上限为50)与一行内容预览； 后端只实现 `readEntry` 回到a `<id>` 占位符, 一个两者都没有的人只完成了 `root`。这个 `memory://` 计划永远 接受一个路径（后端形状，而不是文件形状）。

## 配置( `memory` 行)

| 关键 | 默认的 | 意义 |
| --- | --- | --- |
| `root` | `<harness home>/memories` | 记忆根(`~`/`$HOME` 扩大)。 |
| `backend` | 第一次注册 | 服务委托的后端id。 |
| `defaultImportance` | `0.7` | 基线重要性是指保存忽略了它。 |
| `searchLimit` | `10` | 一次搜索的默认结果上限。 |

每个条目上限：银行内容4000个字符，银行上下文800个字符，课程内容 2000年，课程内容400节，课程上限为100节，最新第一。所有存储的文本 通过注入中和（控制字符）， `<`/引号, `~~~` 围栏) 然后是秘密编辑，写和读。

## 测试

```sh
pnpm -r --filter @hy-sde-org/dsh-memory test
```

## 常见问题

### @hy-sde-org/dsh-memory 是什么？

用于DeepSeek Harness的代理管理的长期内存（ctx\.memory）：持久的项目范围内的内存库，具有提供者注册表和已交付的本地后端-一个独立的插件，不需要更改上游的Harness。

### 如何安装 @hy-sde-org/dsh-memory？

在项目目录运行 npm install @hy-sde-org/dsh-memory，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@deepseek-ai/cordis（~4\.0\.5）、@hy-sde-org/dsh-internal-urls（^0\.2\.1-rc\.5）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @hy-sde-org/dsh-memory 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @hy-sde-org/dsh-memory 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @hy-sde-org/dsh-memory 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22\.19\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @hy-sde-org/dsh-memory 可以商用吗？

@hy-sde-org/dsh-memory 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @hy-sde-org/dsh-memory 还在维护吗？

最新版本 0\.2\.1-rc\.5 发布于 2026/11/01（2 天前）；至今共发布 11 个版本，其中过去 12 个月发布了 11 个；首次发布于 2026/08/26。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

