---
slug: "memory-distiller"
name: "memory-distiller"
version: "1.0.0"
displayName: "记忆蒸馏器"
summary: "智能日志蒸馏系统，分类型差异化压缩，含溯源链与质量评估，4-8倍压缩比零关键事件损失。记忆蒸馏器是面向 AI Agent 日志的智能压缩系统，针对日志膨胀、关键信息丢失、压缩后难回溯、 不同"
summary_zh: "智能日志蒸馏系统，分类型差异化压缩，含溯源链与质量评估，4-8倍压缩比零关键事件损失。记忆蒸馏器是面向 AI Agent 日志的智能压缩系统，针对日志膨胀、关键信息丢失、压缩后难回溯、 不同"
license: "MIT"
description: |-
  记忆蒸馏器是面向 AI Agent 日志的智能压缩系统，针对日志膨胀、关键信息丢失、压缩后难回溯、
  不同内容需不同策略四大痛点而设计。核心能力包括：分类型差异化压缩策略（事件/教训/待办/成长四类不同粒度）、
  压缩溯源链（每个摘要条目保留原始段落定位标记，可一键回溯）、混合提取引擎（关键词匹配+兜底提取+混合模式）、
  压缩质量评估器（压缩比/信息保留率/可读性/溯源覆盖率四维指标）、古文压缩四原则、多语言混合处理.
  借鉴古文压缩哲学，把冗长原始日志蒸馏为高密度结构化摘要，实现 4-8 倍压缩比且零关键事件损失.
  适用于 Agent 每日日志归档、长会话上下文压缩、项目复盘提炼、决策推理蒸馏等场景.
tools:
  - read
  - exec
  - write
homepage: ""
tags:
  - 智能助手
  - 记忆管理
  - 上下文
  - AI
  - memory
  - 教训
  - 待办
  - 用法
  - 记忆蒸馏
category: "Agents"
---
# 记忆蒸馏器

面向 AI Agent 日志的智能压缩系统，分类型差异化压缩，含溯源链与质量评估.
## 输入格式

| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 记忆蒸馏器处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |

## 付费版专享能力

| 能力 | 免费版 | 付费版 |
|:-----|:-----|:-----|
| 基础功能 | 支持 | 支持 |
| 记忆蒸馏器分类型差异化压缩 | 不支持 | 支持 |
| 记忆蒸馏器含溯源链与质量评估 | 不支持 | 支持 |
| 记忆蒸馏器8倍压缩 | 不支持 | 支持 |
| 多租户管理与权限分配 | 不支持 | 支持 |
| 操作审计与合规日志 | 不支持 | 支持 |

## 核心能力

### 1. 分类型差异化压缩策略
针对四类内容采用不同压缩粒度，避免一刀切导致的信息丢失或冗余保留.
- **参数**：内容类型（事件/教训/待办/成长）、压缩策略
- **用法**：自动识别日志内容类型并应用对应策略
- **输出**：按类型分组的差异化压缩摘要

| 内容类型 | 压缩策略 | 保留要素 | 压缩示例 |
|---:|---:|---:|---:|
| 事件 | 中度压缩 | 时间、地点、参与者、结果 | "07-18 与客户 A 确认需求范围，含 3 个模块" |
| 教训 | 轻度压缩 | 教训、触发条件、规避方法 | "WebSocket 重连间隔应指数退避，固定间隔会触发限流" |
| 待办 | 高度压缩 | 任务、优先级、截止时间 | "🔴 07-20 前完成 API 联调" |
| 成长 | 中度压缩 | 改进点、前后对比、效果 | "把构建从 webpack 换成 vite，构建时间 60s 到 8s" |

压缩优先级：待办 > 事件 > 成长 > 教训（待办压缩最狠，教训保留最细）.
**处理**: 解析分类型差异化压缩策略的输入参数,执行核心处理逻辑,返回结构化结果和执行状态.
### 2. 压缩溯源链
每个摘要条目保留原始段落定位标记，支持从摘要一键回溯到原始日志细节.
- **参数**：溯源标记格式 `[溯源: {文件路径}#{章节标题}-L{行号}]`
- **用法**：压缩时自动生成溯源标记，回溯时按标记定位原始文件
- **输出**：含溯源标记的摘要条目

溯源回溯流程：

```text
摘要条目："WebSocket 重连间隔应指数退避"
溯源标记：[溯源: memory/2026-07-18.md#教训段落-L42]
# ...
回溯步骤：
1. 读取摘要中的溯源标记
2. 定位到原始文件 memory/2026-07-18.md
3. 跳转到第 42 行附近
4. 读取完整上下文
```

**处理**: 解析压缩溯源链的输入参数,执行核心处理逻辑,返回结构化结果和执行状态.
### 3. 混合提取引擎

三步提取策略，确保零数据丢失.
- **参数**：无额外参数，引擎自动选择策略
- **用法**：自动扫描日志标题与内容
- **输出**：提取后的关键信息条目

| 步骤 | 策略 | 说明 |
|:---:|:---:|:---:|
| 第一步 | 关键词匹配 | 扫描标题识别 40+ 中英文模式（重大进展/breakthrough/教训/insight/待办/todo/进化/evolution 等） |
| 第二步 | 兜底提取 | 关键词不匹配时（如 `## 08:44 站会`），自动提取每节顶部条目，确保零数据丢失 |
| 第三步 | 混合模式 | 多日合并文件中匹配章节用关键词提取，未匹配章节用兜底提取，两者共存 |

### 4. 压缩质量评估器

每次压缩后输出质量报告，四维指标量化压缩效果.
- **参数**：`--quality-report` 标志
- **用法**：`node （请参考skill目录中的脚本文件） memory/2026-07-18.md --quality-report`
- **输出**：质量评估报告

| 指标 | 计算方法 | 及格线 |
|:------|------:|:------|
| 压缩比 | 原始词数 / 压缩后词数 | 大于等于 4 倍 |
| 信息保留率 | 关键事件保留数 / 总关键事件数 | 大于等于 95% |
| 可读性评分 | 结构化程度（标题/列表/层级） | 大于等于 0.8 |
| 溯源覆盖率 | 含溯源标记的条目 / 总条目 | 等于 100% |

质量不达标处理：压缩比低于 4 检查大段重复；保留率低于 95% 检查兜底提取；可读性低于 0.8 增加层级结构.
### 5. 古文压缩四原则
借鉴古典中文写作的压缩智慧，结构化提炼而非简单缩短.
- **参数**：无，内置于压缩逻辑
- **用法**：自动应用于所有压缩操作
- **输出**：遵循四原则的结构化摘要

| 原则 | 含义 | 压缩示例 |
|---:|:---|---:|
| 去重复 | 提过一次就够 | 不在 3 个章节重复"WebSocket 重连" |
| 留转折 | 只记变化点 | "从 nginx 切到 Node.js WSS" 优于 5 段调试过程 |
| 去过程 | 结果优于过程 | "失败 3 次后用 X 解决" 优于 3 段失败描述 |
| 留白 | 让读者推断 | 层级列表暗示关系，无需连接词 |

**处理**: 解析古文压缩四原则的输入参数,执行核心处理逻辑,返回结构化结果和执行状态.
### 6. 多语言混合处理

中英文混杂日志的智能处理策略.
- **参数**：无，按段落自动检测
- **用法**：自动识别段落语言并应用对应关键词集
- **输出**：与原始段落语言一致的摘要

```text
检测：按段落识别主要语言
  - 中文段落：应用中文关键词集（重大进展、教训、待办...）
  - 英文段落：应用英文关键词集（breakthrough、lesson、todo...）
  - 混合段落：两套关键词集都尝试
# ...
压缩：
  - 中文内容：古文压缩四原则
  - 英文内容：标准摘要 + 关键句提取
  - 输出语言：与原始段落语言一致
```

### 7. 三层记忆架构蒸馏

在三层记忆系统（身份层 SOUL.md / 精选记忆 MEMORY.md / 原始日志 memory/YYYY-MM-DD.md）之间执行第三层到第二层的蒸馏转换.
- **参数**：输入日志文件路径、输出文件路径（可选）
- **用法**：`node （请参考skill目录中的脚本文件） memory/2026-07-18.md /tmp/compressed.md`
- **输出**：含溯源链的结构化蒸馏摘要

#
## 快速开始

1. 确认运行环境满足依赖说明中的要求
2. 在AI Agent对话中调用本技能,提供必要的输入参数
3. 检查输出结果,根据需要进行后续处理

> 详细的输入输出格式请参考下方章节说明。

## 使用流程

### 第一步：准备日志文件

确保 Agent 每日日志以 Markdown 格式存储在 `memory/YYYY-MM-DD.md` 文件中，标题使用 `## YYYY-MM-DD` 或 `## HH:MM 事件名` 格式.
### 第二步：执行蒸馏压缩

运行蒸馏脚本处理目标日志文件，可选择输出质量评估报告.
```bash
node （请参考skill目录中的脚本文件） memory/2026-07-18.md /tmp/compressed.md --quality-report
```

### 第三步：审查质量报告

检查四维质量指标是否达标：压缩比大于等于 4 倍、信息保留率大于等于 95%、可读性大于等于 0.8、溯源覆盖率等于 100%。不达标时按提示调整.
### 第四步：追加到精选记忆

将蒸馏后的摘要追加到 MEMORY.md，并更新维护时间戳.
```bash
cat /tmp/compressed.md >> MEMORY.md
date +%s > .last-memory-maintenance
```

### 第五步：归档原始日志

原始日志移到 `memory/archive/` 保留，不删除，确保溯源链可回溯.
```bash
mv memory/2026-07-18.md memory/archive/
```

#
## 错误处理

| 错误类型 | 原因 | 处理方式 |
|:------:|--------|:-------|
| 摘要缺失关键事件 | 关键词模式未覆盖日志中的事件表述，兜底提取未生效 | 检查兜底提取是否启用，确认日志标题格式符合识别模式，必要时补充关键词模式 |
| 溯源标记丢失 | 输出格式被手动修改或模板被覆盖 | 严格按输出格式模板生成摘要，溯源标记格式为 `[溯源: {文件路径}#{章节标题}-L{行号}]` |
| 压缩比低于 4 倍 | 日志本身已高度结构化，或大段重复未去除 | 检查是否有大段重复内容未应用去重原则，高度结构化日志属正常现象 |
| 信息保留率低于 95% | 兜底提取未覆盖所有章节，或关键词匹配遗漏 | 确认兜底提取对所有未匹配章节生效，检查日志是否有无标题段落 |
| 多日合并文件处理错乱 | 日期分隔符格式不统一（如混用 `## 2026-07-18` 和 `

### 7月18日`） | 标准化日期分隔符为 `## YYYY-MM-DD` 格式后重新蒸馏 |
| 中文日志压缩效果差 | 中文关键词集未正确加载或日志编码异常 | 确认日志为 UTF-8 编码，检查中文关键词模式是否匹配日志表述风格 |
| 超长单段落处理异常 | 单段超过 500 词无换行 | 脚本按句子切分提取关键句，若失败则手动分段后重新处理 |
| 可读性评分低于 0.8 | 输出摘要缺乏层级结构，全部为平铺列表 | 增加标题层级与嵌套列表，按事件/教训/待办/成长分组呈现 |

## 示例

### 示例一：每日日志归档（含质量报告）

用户当天产生了 2800 词的开发日志，需要压缩归档并验证质量.
```text
用户："今天的日志太长了，帮我压缩归档，要保证不丢关键信息"
# ...
输入文件：memory/2026-07-18.md（2,800 词）
# ...
执行：
1. 运行：node （请参考skill目录中的脚本文件） memory/2026-07-18.md /tmp/compressed.md --quality-report
2. 混合提取引擎扫描：
   - 关键词匹配：识别"重大进展""教训""待办""进化"等模式
   - 兜底提取：未匹配的 ## 09:30 站会 等时间标题章节
   - 混合模式：两部分共存
3. 分类型差异化压缩：
   - 事件（中度压缩）：保留时间、参与者、结果
   - 教训（轻度压缩）：保留触发条件、规避方法
   - 待办（高度压缩）：保留任务、优先级、截止时间
   - 成长（中度压缩）：保留改进点、前后对比
4. 生成溯源标记：每个条目附 [溯源: memory/2026-07-18.md#章节-L行号]
5. 输出质量报告
# ...
输出文件：/tmp/compressed.md（420 词，压缩比 6.67 倍）
# ...
质量报告：
  压缩比：6.67 倍（及格线 4 倍）✓
  信息保留率：98%（及格线 95%）✓
  可读性评分：0.92（及格线 0.8）✓
  溯源覆盖率：100%（及格线 100%）✓
# ...
输出内容结构：
  ## 2026-07-18 关键经验
  ### 关键事件
  - **完成支付模块联调**
    - 对接支付宝与微信支付 API
    - PostgreSQL数据库事务回滚测试通过
    - [溯源: memory/2026-07-18.md#支付模块联调-L15]
  ### 核心教训
  - WebSocket 重连间隔应指数退避，固定间隔触发限流
    - [溯源: memory/2026-07-18.md#教训段落-L42]
  ### 待办/未完成
  - 🔴 07-20 前完成订单模块测试
    - [溯源: memory/2026-07-18.md#待办事项-L58]
  ### 成长记录
  - 把构建从 webpack 换成 vite，构建时间 60s 到 8s
    - [溯源: memory/2026-07-18.md#构建优化-L67]
# ...
后续操作：
  cat /tmp/compressed.md >> MEMORY.md
  mv memory/2026-07-18.md memory/archive/
```

### 示例二：长会话上下文压缩

用户一个会话聊了 50 轮，上下文即将超限，需要压缩早期轮次保留关键信息.
```text
用户："这个会话聊了 50 轮，上下文快爆了，帮我压缩"
# ...
执行：
1. 提取会话历史为日志格式（memory/2026-07-18-session.md）
2. 运行蒸馏器压缩：
   node （请参考skill目录中的脚本文件） memory/2026-07-18-session.md /tmp/session-compressed.md
3. 分类型压缩：
   - 决策类内容（事件策略）：保留决策内容与原因
   - 教训类内容（教训策略）：保留问题与规避方法
   - 待办类内容（待办策略）：保留任务与优先级
4. 保留最近 5 轮原文 + 早期 45 轮蒸馏摘要
5. 重新加载压缩后上下文
# ...
结果：
  原始上下文：约 12,000 token（50 轮）
  压缩后上下文：约 3,500 token（5 轮原文 + 45 轮摘要）
  压缩比：约 3.4 倍
  溯源链：所有摘要条目可回溯到原始会话记录
```

### 示例三：周度批量压缩

用户一周未维护记忆，7 天日志累积约 17500 词，需要批量蒸馏并生成跨日关联.
```text
用户："把这周的日志都蒸馏了，要能回溯"
# ...
执行：
1. 批量处理 7 天日志：
   for file in memory/2026-07-{12..18}.md; do
       [ -f "$file" ] && node （请参考skill目录中的脚本文件） "$file" "/tmp/$(basename $file)" --quality-report
   done
2. 每天单独蒸馏（保留日期维度与溯源链）
3. 逐个审查质量报告
4. 依次追加到 MEMORY.md
5. 原始日志批量归档到 memory/archive/
# ...
结果：
  原始总量：约 17,500 词
  蒸馏后总量：约 2,800 词
  整体压缩比：6.25 倍
  溯源覆盖率：100%
  所有摘要条目可通过溯源标记回溯到 memory/archive/ 中的原始日志
```

## FAQ

### Q1：压缩后想看原始细节怎么办？

每个摘要条目都含溯源标记 `[溯源: {文件路径}#{章节标题}-L{行号}]`，按标记回溯到原始日志即可。原始日志建议归档到 `memory/archive/` 而非删除，确保溯源链始终可回溯。回溯流程：读取摘要中的溯源标记 → 定位到归档文件 → 跳转到指定行号附近 → 读取完整上下文.
### Q2：压缩会不会丢掉重要信息？

混合提取引擎有三重保障：第一步关键词匹配提取 40+ 中英文模式；第二步未匹配时兜底提取章节顶部条目；第三步多日文件用混合模式。质量评估器检查信息保留率大于等于 95%，达不到会告警。分类型差异化压缩确保教训类内容轻度压缩（保留最细），待办类内容高度压缩（只留任务与优先级）.
### Q3：压缩比能到多少？

典型 4-8 倍，取决于原始日志的冗余度与内容类型分布。重复内容多则压缩比高（可达 8 倍），结构化日志压缩比相对低（约 4 倍）。日均 2500 词的日志通常蒸馏到 400 词左右。质量评估器会报告实际压缩比，低于 4 倍时会提示检查大段重复.
### Q4：分类型差异化压缩有什么好处？

避免一刀切导致的问题。待办只需任务与优先级，高度压缩不影响理解；教训需要触发条件与规避方法，过度压缩会丢失关键细节。四类内容四套压缩规则，在信息保留与体积控制之间取得最优平衡。压缩优先级为待办 > 事件 > 成长 > 教训，教训保留最细.
### Q5：质量评估器的四个指标分别什么含义？

压缩比衡量体积缩减程度（及格线 4 倍）；信息保留率衡量关键事件是否遗漏（及格线 95%）；可读性评分衡量结构化程度（及格线 0.8，看标题/列表/层级是否充分）；溯源覆盖率衡量回溯能力（及格线 100%，所有条目必须含溯源标记）。四项全达标才算合格蒸馏.
### Q6：MEMORY.md 越来越大怎么办？

MEMORY.md 也需要定期治理。建议：超过 5000 词时把早期内容二次压缩到 SOUL.md（身份层）；按月归档 MEMORY.md 到 `memory/archive/`；仅保留近 30 天摘要在 MEMORY.md 中。配合心跳任务每 2-3 天执行一次蒸馏可控制增长速度.
## 依赖说明

### 运行环境

- **Agent 平台**：支持 SKILL.md 的任意 AI Agent（Claude Code / Cursor / Codex / Gemini CLI 等）
- **操作系统**：Windows / macOS / Linux
- **运行时**：Node.js 16+

### 依赖项

| 依赖项 | 类型 | 是否必需 | 获取方式 |
|----|:--:|---:|----|
| Node.js | 运行时 | 必需 | Node.js 官网安装，版本 16+ |
| memory-compress.js | 脚本 | 必需 | 随技能提供 |
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供 |

### API Key 配置

本技能基于本地 Node.js 脚本处理日志文件，无需额外 API Key。蒸馏逻辑由脚本本地执行，不调用外部 API.
### 可用性分类

- **分类**：MD+EXEC（Markdown 指令驱动，需 exec 执行 Node.js 脚本）
- **说明**：基于 Markdown 的 AI Skill，通过自然语言指令驱动 Agent 运行蒸馏脚本并处理结果

## 已知限制

- 依赖 Node.js 运行时，无 Node.js 环境无法使用
- 蒸馏质量取决于原始日志的 Markdown 结构化程度，无结构纯文本压缩效果较差
- 溯源链依赖原始日志保留，若原始日志被删除则溯源标记失效
- 不支持二进制格式（.docx、.pdf），需预先转换为 Markdown
- 质量评估器的信息保留率基于关键事件识别，无法覆盖所有类型的信息丢失
- 多日合并文件的日期分隔符需统一为 `## YYYY-MM-DD` 格式，否则可能处理错乱
以下是记忆蒸馏器的YYYY-MM-DD` 格式，否则可能处理错乱说明，包含具体配置与使用方式.