360 Secure SkillHub
360 安全技能中心

记忆蒸馏器

面向 AI Agent 日志的记忆蒸馏技能:按事件/教训/待办/成长分类型压缩,输出带溯源标记的结构化摘要,支持批量压缩、心跳归档与质量评估;实际压缩依赖随技能提供的 Node.js 脚本,但该脚本未包含在文件列表中。

thcjp
thcjp
热度 44.39
最近更新 2026-09-22 03:00:14
分类:知识依赖:代码执行 / 读写文件应用场景:摘要总结 / 笔记整理 / 工作流 / 自动化脚本 ...

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add memory-distiller-v2
Metadata
slug
memory-distiller-v2
name
memory-distiller
version
1.0.0
displayName
记忆蒸馏器
summary
解决日志膨胀、关键信息丢失、压缩后难回溯的分层记忆蒸馏器
license
MIT
description
记忆蒸馏器是面向 AI Agent 日志的智能压缩系统,针对"日志日均膨胀 2500 词、压缩后关键信息丢失、压缩结果难以回溯细节、不同内容需不同压缩策略"四大高频痛点而设计。它借鉴古文压缩哲学(去重复、留转折、去过程、留白),把冗长的原始日志蒸馏为高密度结构化摘要,实现 4-8 倍压缩比且零关键事件损失。 核心能力:三层记忆架构(身份层/精选层/原始层)、混合提取引擎(关键词匹配+兜底提取+混合模式)、40+ 中英文关键词模式识别、分类型差异化压缩策略、批量压缩与心跳集成、压缩溯源链(摘要可回溯到原始段落)、多语言混合日志处理。 适用场景:Agent 每日日志归档、长会话上下文压缩、项目复盘提炼、决策推理蒸馏、多日日志批量归档、记忆维护心跳任务。 差异化:相比仅做"摘要变短"的浅层压缩,本技能新增 (1) 分类型差异化压缩策略,针对事件/教训/待办/成长四类内容采用不同压缩粒度;(2) 压缩溯源链,每个摘要条目保留原始段落定位标记,可一键回溯;(3) 智能兜底提取,当关键词不匹配时自动提取各章节顶部条目,确保零数据丢失;(4) 多语言混合处理,中英文混杂日志按段落自动识别语言并应用对应压缩规则;(5) 压缩质量评估器,量化压缩比、信息保留率、可读性三维度。 触发关键词:日志压缩、记忆压缩、记忆蒸馏、日志归档、上下文压缩、memory compress、log distillation、memory distiller
tags
["记忆压缩","日志归档","上下文优化","信息蒸馏"]
tools
["read","exec"]

记忆蒸馏器(Memory Distiller)

面向 AI Agent 日志的智能压缩系统,借鉴古文压缩哲学,把冗长原始日志蒸馏为高密度结构化摘要,4-8 倍压缩比且零关键事件损失。

设计动机:四大高频痛点

痛点 典型表现 本技能对策
日志膨胀快 日均 2500 词,MEMORY.md 一周破万字 定期蒸馏,4-8 倍压缩比
关键信息丢失 压缩后忘了"为什么做这个决策" 分类型差异化压缩,事件/教训/待办分别处理
压缩后难回溯 想看细节但原始日志已删 溯源链:摘要保留原始段落定位标记
不同内容需不同策略 待办和教训用同一压缩逻辑,要么过细要么过粗 四类内容四套压缩规则

压缩哲学:古文压缩四原则

源自古典中文写作的压缩智慧:

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

压缩效果示例:

压缩前:2,500 词原始日志
压缩后:400 词结构化洞察
压缩比:6.25 倍

三层记忆架构

┌────────────────────────────────────────────────┐
│           三层记忆系统                          │
├────────────────────────────────────────────────┤
│                                                │
│  第一层:身份层(SOUL.md)                      │
│          超压缩、稳定不变                       │
│          "你是谁、什么重要"                     │
│                                                │
│  第二层:精选记忆(MEMORY.md)  ◄──┐           │
│          4:1 压缩摘要              │           │
│          关键事件+教训+待办        │           │
│                                    │           │
│  第三层:原始日志(memory/YYYY-MM-DD.md)       │
│          完整细节、全部内容     ───┘           │
│          约 2,500 词/天                         │
│                                                │
│  记忆蒸馏器:第三层 ──► 第二层                  │
└────────────────────────────────────────────────┘

快速开始(< 60 秒)

单文件压缩

node scripts/memory-compress.js memory/2026-07-18.md

# 指定输出文件
node scripts/memory-compress.js memory/2026-07-18.md /tmp/compressed.md

# 压缩后追加到精选记忆
node scripts/memory-compress.js memory/2026-07-18.md /tmp/today.md
cat /tmp/today.md >> MEMORY.md

批量压缩多日

for file in memory/2026-07-{11..18}.md; do
    [ -f "$file" ] && node scripts/memory-compress.js "$file" "/tmp/$(basename $file)"
done

混合提取引擎

步骤 1:关键词匹配

扫描标题与内容,识别 40+ 中英文模式:

类别 中文模式 英文模式
事件 重大进展、突破、里程碑、决策 breakthrough、milestone、decision
教训 教训、反思、启示、经验 insight、takeaway、lesson
成长 进化、提升、改进、优化 evolution、improvement
待办 待办、🔴、🟡、下一步 todo、next step、action item

步骤 2:兜底提取(零数据丢失)

当关键词不匹配时(如基于时间的标题 ## 08:44 站会),自动提取每个章节的顶部条目。确保永不丢数据。

步骤 3:混合模式

多日合并文件时,匹配章节用关键词提取,未匹配章节用兜底提取,两者共存。

分类型差异化压缩策略

针对四类内容采用不同压缩粒度:

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

压缩优先级:待办 > 事件 > 成长 > 教训(待办压缩最狠,教训保留最细)

输出格式

## 2026-07-18 关键经验

### 关键事件
- **事件标题**
  - 细节 1
  - 细节 2
  - [溯源: memory/2026-07-18.md#事件标题]

### 核心教训
- 教训内容
  - [溯源: memory/2026-07-18.md#教训段落]

### 待办/未完成
- 🔴 紧急项
- 🟡 重要项

### 成长记录
- 改进点与效果

压缩溯源链

每个摘要条目保留原始段落定位标记,支持回溯:

摘要条目:
  "WebSocket 重连间隔应指数退避"

溯源标记:
  [溯源: memory/2026-07-18.md#教训段落-L42]

回溯流程:
  1. 读取摘要中的溯源标记
  2. 定位到原始文件 memory/2026-07-18.md
  3. 跳转到第 42 行附近
  4. 读取完整上下文

溯源标记格式:[溯源: {文件路径}#{章节标题}-L{行号}]

压缩质量评估器

每次压缩后输出质量报告:

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

质量不达标处理:

  • 压缩比 < 4:检查是否有大段重复未去除
  • 保留率 < 95%:检查兜底提取是否生效
  • 可读性 < 0.8:增加层级与标题结构

边界情况处理

场景 行为
空文件 优雅跳过,输出空摘要
BOM 编码 自动检测并剥离
非 UTF-8 警告并继续处理可识别部分
输出目录缺失 自动创建
无 Markdown 结构 友好提示,尝试按段落提取
多日合并文件 混合策略,所有日期均保留
中英文混合 按段落识别语言,应用对应关键词集
超长单段落 按句子切分,提取关键句

心跳集成

集成到 Agent 维护周期:

## 记忆维护(每 2-3 天)
1. 运行:node scripts/memory-compress.js memory/YYYY-MM-DD.md /tmp/compressed.md
2. 审查压缩结果准确性
3. 追加:cat /tmp/compressed.md >> MEMORY.md
4. 标记维护时间:date +%s > .last-memory-maintenance
5. (可选)归档原始日志:mv memory/YYYY-MM-DD.md memory/archive/

CLI 用法

node scripts/memory-compress.js <日志文件> [输出文件]
node scripts/memory-compress.js --help
node scripts/memory-compress.js --batch memory/2026-07-{11..18}.md
node scripts/memory-compress.js --quality-report  # 输出质量评估

典型工作流(3 个真实场景)

场景一:每日日志归档

用户:"今天的日志太长了,帮我压缩归档"

流程:
1. 运行 memory-compress.js 处理今日日志
2. 输出压缩摘要(含溯源链)
3. 审查摘要准确性
4. 追加到 MEMORY.md
5. 原始日志移到 memory/archive/

场景二:周度批量压缩

用户:"把这周的日志都压缩了"

流程:
1. 批量处理 7 天日志
2. 每天单独压缩(保留日期维度)
3. 生成周度汇总(跨日事件关联)
4. 输出质量报告
5. 追加到 MEMORY.md,原始日志归档

场景三:长会话上下文压缩

用户:"这个会话聊了 50 轮,上下文快爆了"

流程:
1. 提取会话历史为日志格式
2. 运行蒸馏器压缩
3. 保留最近 5 轮原文 + 早期轮次摘要
4. 重新加载压缩后上下文
5. 继续会话

多语言混合处理

中英文混杂日志的处理策略:

检测:按段落识别主要语言
  - 中文段落:应用中文关键词集(重大进展、教训、待办...)
  - 英文段落:应用英文关键词集(breakthrough、lesson、todo...)
  - 混合段落:两套关键词集都尝试

压缩:
  - 中文内容:古文压缩四原则
  - 英文内容:标准摘要 + 关键句提取
  - 输出语言:与原始段落语言一致

FAQ

Q1:压缩后想看原始细节怎么办? A:每个摘要条目都含溯源标记 [溯源: 文件路径#章节-L行号],按标记回溯到原始日志即可。原始日志建议归档而非删除。

Q2:压缩会不会丢掉重要信息? A:混合提取引擎有三重保障:(1) 关键词匹配提取;(2) 未匹配时兜底提取章节顶部条目;(3) 质量评估器检查信息保留率 >= 95%。达不到会告警。

Q3:压缩比能到多少? A:典型 4-8 倍,取决于原始日志的冗余度。重复内容多则压缩比高,结构化日志压缩比相对低。

Q4:支持哪些日志格式? A:Markdown 格式最佳。纯文本也能处理(按段落切分)。不支持二进制格式。

Q5:压缩后 MEMORY.md 越来越大怎么办? A:MEMORY.md 也需要定期治理。建议:(1) 超过 5000 词时把早期内容二次压缩到 SOUL.md;(2) 按月归档 MEMORY.md 到 memory/archive/;(3) 仅保留近 30 天摘要在 MEMORY.md。

故障排查

症状 可能原因 解决方案
压缩比为 1(没压缩) 日志本身已高度结构化 正常现象,或调整压缩策略为激进模式
摘要缺关键事件 关键词未覆盖 检查兜底提取是否生效,补充关键词模式
溯源标记丢失 输出格式被修改 严格按输出格式模板生成
多日合并处理出错 日期分隔符不统一 标准化日期分隔符为 ## YYYY-MM-DD
中文日志压缩效果差 未识别中文关键词 确认中文关键词集已加载

依赖说明

运行环境

  • Agent 平台:支持 SKILL.md 的任意 AI Agent(Claude Code / Cursor / Codex / Gemini CLI 等)
  • 操作系统:Windows / macOS / Linux
  • 运行时:Node.js(运行压缩脚本)

第三方依赖

依赖项 类型 是否必需 获取方式
Node.js 运行时 必需 https://nodejs.org 安装
memory-compress.js 脚本 必需 随技能提供

API Key 配置

  • 本技能基于本地脚本处理,无需任何 API Key

可用性分类

  • 分类:MD+EXEC(Markdown 指令驱动,需 exec 执行 Node.js 脚本)
  • 说明:基于 Markdown 的 AI Skill,通过自然语言指令驱动 Agent 运行压缩脚本并处理结果