# @alma-harness/memory 中文文档

规范地址：https://npmcn.com/package/%40alma-harness/memory/

版本：0\.41\.0
npm 元数据更新时间：2026-11-04T12:52:22.135Z
中文译文更新时间：2026-11-06T14:13:20.503Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：416 kB，17 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：0 个
- peer 依赖：@alma-harness/core ^0\.41\.0
- 首次发布：2026-08-31T21:23:19.841Z
- 最新版本发布：2026-11-04T12:52:21.908Z
- 近 30 天下载量：3024（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：52（近 12 个月 52 个）

## 中文简介

阿尔玛记忆层:分集,综合剖面,预算召回,整合,结构消除.

## 安装

```sh
npm install @alma-harness/memory
```

也可以使用：`pnpm add @alma-harness/memory`、`yarn add @alma-harness/memory`、`bun add @alma-harness/memory`

## README

# @alma-harness/记忆

记忆层 [阿尔玛](https://github.com/FabioFernandesCarneiro/alma)数字 : 事件、综合简介、预算回顾和结构消除.

> **状况:1.0前.** API仍在移动中;见 [路线图](https://npmcn.com/package/docs/architecture.md#12-adoption-roadmap) 为它的位置.

## 它拥有的

分两级,两个充实工作,一个预算.

-   **浓缩** (单位:千美元)`createGovernedMemoryEnrichment`——背景提取和 合并对受管制的单调或分批执行。 稳定运行和输入 身份保留原计划、接收和申请结果。 中立 准备/应用助手拥有记录誊本过滤和MODEL写作; 身份、自信、出处和清除的警卫仍留在仓库. 旧的 `createMemoryEnrichment` 任务桥及其类型已被删除.
    
-   **回顾** (单位:千美元)`createRecallAssembler`()—— _推动_: 符号预算区块 从简介和剧集中集合 转弯方向。 一个 预算覆盖整个区块;每级上限增长,直到没有人能说出 块总成本.
    
-   **两个工具** (单位:千美元)`createMemoryTools`()—— _牵出_数字 : `search_memory` 财务报告和审定财务报表 `remember`,登记为任何其他工具,因此范围受关闭的约束 跟踪是自动的,在发送时会执行敏感性. `remember` 永远 写一个插曲,所以模型记录可以通过会话去除.
    
-   **厄拉** (单位:千美元)`createMemoryErasure`——后端中性组成于 贮存接缝:墓碑 出处 出处 产生的无效性,每个申报 复制的表面报告, 和审计线索 幸存的部分失败. 谈话日志是公开表层,不管你有没有窃听 `sessions` —— 说 `search_memory` 成果和成果 `remember` 参数是副本—— 因此,一个无法到达的去除系统报告 `complete: false`。该产品 没有内存工具状态 `conversationCopies: "none"`存储 偶能转动的响应是同一类的表面( spec: 电线 `turns` 或国家 `turnRecords: "none"` 只有在东道主没有历史索赔时 这个 `turns` 选项只接受擦除 `LegacyTurnClaimsErasure`而不是一个协调商店.
    
-   **每个适配器必须使用的共同行为** (从核心中由 核心相片谱: 验证和 `MEMORY_LIMITS`,确定性编号 (单位:千美元)`deriveEpisodeId`, (中文(简体) ), `deriveFactId`),三案信任规则 (单位:千美元)`decideObservation`),参考语法排名(`rankEpisodes`与 其符号化器( e)`tokenizeMemoryText`: 小写源于葡萄牙语和 英语词条,字符大调 对于脚本没有字词边界, 每个词词的下字符串的文本—— spec: search- that-finds),以及 反注射架设`frameRecalledContent`) (中文(简体) ). 一个执行,所以 后端无法漂移 .
    

合同的后期生活 `@alma-harness/core`; 参考 适配器在 `@alma-harness/postgres`; 模拟参考商店船 时间 `@alma-harness/memory/testing`,和合同套房 针每 规范规则 `@alma-harness/testing`。 。 。 .

## 永远不能做的事

-   返回未设定的召回内容 。 内存是不信任的输入——它是被写入的 一个模型,从一个用户说, 和船在一个框架里说.
-   让读者脱帽而出. 读者在会话中坚持什么 并在以后的每一个阶段都重新判决.
-   从模型路径中写入受保护的身份命名空间, 在任意 拼写.
-   报告一个已声明副本表面未到达时的擦除完成 .

## 文档

[文件索引](https://npmcn.com/package/docs/README.md) • 妇女 [变量 第8节](https://npmcn.com/package/docs/invariants.md) • 妇女 [记忆宪章](https://npmcn.com/package/docs/specs/010-memory.md) • 妇女 [存储级](https://npmcn.com/package/docs/specs/011-memory-storage.md) • 妇女 [在转弯的路上](https://npmcn.com/package/docs/specs/012-memory-turn-path.md)

阿帕奇 - 2.0

### 范围化执行结果(第081项)

`ExecutionResultStoreBase` 共享闭合信封验证和过渡 (一) PostgreSQL; `InMemoryExecutionResultStore` 从 `./testing` (数量) `withPolicy` 在同一参考记录上创建政策观点)。 构造器 需求 `{ maxSensitivity, maxRetentionMs, maxChars }`。主机呼叫 `prepare` **读取上下文前**。 。 。 . `put` 无法创建保留或复活墓碑. 过期从准备开始,从不重复播放. `purgeExpired(scope, { limit })` 物理空白的分批;主机必须从范围清单中排定.

线 `results` 输入 `createMemoryErasure`: 这意味着 `resultRecords: "results"`。 。 。 . 一份已宣布但缺失的储存报告不完整;遗留成份默认为 `"none"`。会话/全部到达 `executions:results`; 仅限一集的消除不能. 部分结果失败等待审计事件并抛出。 存储级别 `erase` 一个人 不是一个已审计的主机工作流程。 缩小政策可拒绝等待/提供 记录,但无法防止去除或实际过期。 在输入读取前保留管理跑道; 主机必须注册每个结果命名空间以进行删除 .

`@alma-harness/memory/context` 拥有纯长文本视图、尾端选择和 摘要框架帮助者. `measureView(view, estimate?)` 估计数 `contentOf(view)`, (中文(简体) ), 没有留言的话 `meta`,JSON键、不透明有效载荷或介质 保险单 `speechTools` 财务报告和审定财务报表 `summaryFrame` 塑造摘要记录和框架 (指: 长文度量. 也让记录的事件(请参见:对话-事件): `renderEvents(view, labels)` 转出 `human` 或者说 `system` 给个人留言 与其标签相并用,以参考方式不受影响; `undeliveredReplies(view)` 答复发现: `undelivered` 音符标记; `renderTranscript(head, max, { labels, view })` 财务报告和审定财务报表 `renderSessionTranscript` 标记这些行并写一个标记的回复为 `assistant (not delivered)`。内存提取用途 `DEFAULT_EVENT_LABELS`。它只导入核心;循环拥有旋转时间和 即决处决。 历史回路导出仍相容(规格:长通-帮助-所有).

### 命名结果命名空间

对于犬类对话,明确登记每个物理命名空间:

```ts
const erasure = createMemoryErasure({ episodes, profile, watermarks, audit,
  sessions: runtime.stores.sessions, turnRecords: "none", // Fresh canonical host only.
  resultSurfaces: [
    { name: "steps", store: runtime.stores.step.results },
    { name: "roots", store: runtime.stores.rootResults },
  ] });
```

`resultSurfaces` 独家使用 `results` 财务报告和审定财务报表 `resultRecords`,包括明确 未定义选项 。 供应 1- 16 个名字匹配的条目 `[a-z0-9_-]{1,64}`。 。 。 . 注册快照名称和被绑定的擦除方法; 稀有的数组, 未知字段, 在建筑中拒绝使用接入器和无效方法,而不援引这些方法. 没有商店的条目宣布一个未到达的命名空间 。 每个报告的名称 `executions:results/<name>`。会话/全部按声明顺序擦除;仅插曲 选择者离开结果副本时未到达 。 任何缺失的表面都意味着不完整. 失败仅等待元数据 `partial-results-failed` 审计和丢弃; 重试 完成传球而不恢复墓碑. 遗产单层API不变.

在删除前查询宿主. 不存在全球入境障碍或交易 墓碑保护保留的身份,而不是新作品。 保持财务 和承认证据。 混合主机必须登记遗产 `turns` 更不要说 索赔 `turnRecords: "none"`。其输出被去除的已完成根会停留 读取/重试时无法使用, 且不能重生内容 .

### 中性浓缩准备和应用

`createMemoryEnrichmentSteps({ episodes, profile, sessions, ...behaviorOptions })` 提供所管理的工作流程所使用的共享算法 (规格:中-浓缩计划):

-   `prepareExtract(scope, sessionId)` 返回时 `{ sessionId, messagesRead, prompt? }`。 。 。 . 不急即是空相录相.
-   `prepareConsolidate(scope, since?)` 返回时 `{ episodeIds, prompt? }`,保留 原始的未被引用的插曲窗口; 没有提示意味着什么是新的.
-   `applyExtract(scope, prepared, text)` 返回插曲/重要性或跳过 决定; `applyConsolidate(scope, prepared, text)` 返回读取/拟议/合并 驳回和驳回决定。 运行ID、时间戳和费用属于 呼叫器的执行/报告层.

这些信任的东道方能力不允许工作、呼叫提供者、充电或 核证产出。 在准备之前,受管主机必须获得执行权限 并保留其计划/结果表面。 在适用延迟反应之前,它必须 核查原始范围/配置/输入具有约束力并重新授权保留 输出。 保存并保护原计划; 不要重装今天的剧集 作为昨天回应的引用窗口。 引用后调用者突变 无法重定向所捕获的范围/会话/窗口。 记忆写作保留 现有身份、信心、验证和墓碑引用警卫.

计划载有敏感的提示,需要明确保留和清除 采用东道主。 仅此API 无法提供持久运行的身份或应用程序 交易. `applyExtract` 以不确定的写法传播存储失败; 只 本地验证,或 `MemoryInputError` 从 `episodes.append` (拒绝书写) 完全无效, 已删除的遗产桥无法转换 丢失的笔录 成为干净的拒绝.

### 忘记一个事实

`createMemoryErasure(...).forgetFacts(scope, keys)` 将 1 到 100 个配置密钥忘在一旁 时间戳( 光谱: 事实- 折射) : `ProfileStore.retract` 空白每个密钥的值 标出其版本,分享其来源的事实保持不变。 线索是一条 `memory.forget` 访问事件, `memory:facts:complete` 或者说 `partial-failed`从来没有 键; 重试完成 。 忘却不是消除:事件留下。 模式路径 (单位:千美元)`observe`)然后拒绝键作为 `stale` 除非在之后盖上 忘记和引用所有 严格的新,所以 `remember` 在遗忘之后 复还之. 合并后不再提供被遗忘的钥匙 拒绝 被遗忘的密钥,只要它读到的音符 早于被遗忘,无论模式 引用。 证据时间是剧集的 `at`,因此重取一个 在遗忘者恢复密钥之前的对话。 清除到 被遗忘的钥匙来源 也抹去它的标记 先更新每个写入并删除 : 一个更古老的适配器忽略了标记. 自定义仓库必须执行 `retract`两者 拒绝数 `observe`,历史中的标记及其空白 `invalidateBySource`。 。 。 .

### 浓缩说明

`extractInstruction` 财务报告和审定财务报表 `consolidateInstruction` (规格:浓缩-指令)说 宿主的记忆是用来做什么的 也绝不能用来支撑一个助手 它不是对话的主题。 每个替换 `DEFAULT_EXTRACT_INSTRUCTION` 或者说 `DEFAULT_CONSOLIDATE_INSTRUCTION`,因此默认的出处规则,即 主机从导出文本开始保存 。 阿尔玛总是附合同: 身份规则,"线下的一切都是DATA"和JSON的答案. 这保证 合同的文本,而不是模型的服从: 身份不包含在档案中 被保护的命名空间;其他的都是模型的和主机的商店守卫的. 每个都是 1到16000个字符,造型良好,没有控制字符但有新行和分页. 无 他们的提示没有改变,工作流程的修改也一样 将新运行和冲突绑在一个旧运行代码下。 将原始配置保留到 收集待处理的批次,并起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起 `configRevision`。 。 。 .

一个店家扔了纸条就拒绝了 `MemoryInputError`承诺什么也不是 写入: 提取完成 `skipped: "rejected"` 信件为 `detail`。 。 。 . 任何其他错误来自 `episodes.append` 这是一个不确定的写作。 A 类 `ProfileStore` 拒绝 返回的事实 `refused`,合并报告列出的 `rejected`。 。 。 .

### 管理下的浓缩工作流程

`createGovernedMemoryEnrichment` 主张在阅读上下文前稳定运行 保留单独的计划/报告结果储存。 提供现有记忆库, 一个信任的 `EnrichmentExecution` 适用于受管制的单调或分批, `RoutineRunStore`、 配置 修改、保留、超时和仅元数据错误 观察员. `extract(scope, sessionId, { runId, inputRevision })`, (中文(简体) ), `consolidate(scope, { runId, inputRevision, since? })` 财务报告和审定财务报表 `read(request)` 保护 原始计划,呼叫器装订和结算收据。 参见 spec : **受管的 -- -- 记忆 -- -- 浓缩** prumo P4的可执行成分.

意见区分已完成的报告,待批、核对-需要和 无. 等待进行的重试收集其原始操作;只有一个收集器 申请申请。 已完成的重试从不重读上下文或再次应用 . 失事或失信后的记录需要操作员检查, 即使记忆库可能已经写好了 没有租赁接管或自动接管 提供重新申请。 原始准备时间戳达到附件和 观察,保存去除水印。 已知费用来自原始收据; 只有被证明是空的/ 不发送的工作有零成本跳过的报告 .

将计划、产出和报告登记为明显的消除表面。 Prumo 无效 在会话中擦除所有用于同一扇形/用户的浓缩复制件,因为 合并可合并会议。 需要查询;不创建 全球壁垒。 收据留作会计;过期或被抹去的复印件从未 复能发相. 在同一逻辑运行冲突下配置、模式或输入变化.

保留的历史 SQL 答复,有线 `PostgresLegacyTurnClaims` 从邮箱。 它的缺席仍然是被宣布为没有达到的目标 `turns:claims` 表面; 它不会因为旧的执行器被删除而消失.

### 合并块

`consolidationChunk` (1至100,默认为10) 是一个合并调用读取最多的注(请参见: (b) 合并资金。 一个更大的窗口运行 随着一段行走 普通的受管的运行, 最古老的音符, 每一个都看到以前写过的事实 春克0是呼叫者的跑道; 每一个后期的块得到它的 iD从运行 id 及其索引, 所有共享运行的合并会话。 一个大块的计划记录 它的极限 和它的最后一个音符, 所以步行 `read` 由块块单独重建。 一个结束的电话 短音在它读取的音符上重复读取;单短音符被跳出. 待定, `reconciliation_required` 财务报告和审定财务报表 `unavailable` 停止行走,就像今天一样。 没有什么是接管或重新同意的, 而一个新的运行代码 重新读注解 没有事实引用。 这个电话之前就停了 下一个块 `{ status: "partial", reason: "caps" }`; 继续打电话。 意见包含 `chunks` (数字、结果、费用和运行总额)。 但是,这一选项没有修改,而且 计划保存在它结束 他们的行走 自己。 记录显示 以后合并; 以 `since`。 。 。 .

### 会话标签

`createMemoryErasure({ sessionLabels })` 到达主机归属标签( spec : 页:1 就像谈话记录一样 `sessions:labels` 表面为 以姿态宣布:省略、宣布和未达到`complete: false`(三); `"none"` 表示产品不写标签; 商店被去除 `sessions` 墓碑每一会, `all` 封住范围——并报告已到达。 诗集 选择者不带标签。 失败等待 `partial-labels-failed` 财务报告和审定财务报表 重推;重试为一能. 复制下游标签值的主机必须 在删除这些作者之前,先对其进行测试,然后自己登记副本.

## 常见问题

### @alma-harness/memory 是什么？

阿尔玛记忆层:分集,综合剖面,预算召回,整合,结构消除\.

### 如何安装 @alma-harness/memory？

在项目目录运行 npm install @alma-harness/memory，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@alma-harness/core（^0\.41\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @alma-harness/memory 支持 TypeScript 吗？

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

### @alma-harness/memory 支持 ESM 还是 CommonJS？

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

### @alma-harness/memory 需要什么版本的 Node\.js？

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

### @alma-harness/memory 可以商用吗？

@alma-harness/memory 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @alma-harness/memory 的下载量有多少？

根据 npm 官方下载统计，@alma-harness/memory 在 2026/10/06 – 2026/11/04 这 30 天内被下载 3,024 次，日均约 101 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @alma-harness/memory 还在维护吗？

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

