聪明地遗忘

SKILLAI 工具
AI 工具 未标注权限 许可证不明确
安装这个技能

智能记忆遗忘机制。为AI代理提供自适应的记忆管理,防止上下文溢出和虚假记忆传播。包含快速开始指南、完整代码实现、WorkBuddy/OpenClaw集成示例和常见场景解决方案。

一句话选型结论

按资料字段整理

聪明地遗忘是AI 工具类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类AI 工具 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_1793b15c/wise-forgetting
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

AI 工具
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_1793b15c仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791704275
正文体量15.9 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
组合多个 AI 能力

把写作、检索、总结串成一条流程。

搭工作流

把固定流程做成可重复调用的步骤。

做提示词与评测

整理提示词并对比输出效果。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在AI 工具场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
聪明地遗忘当前 未标注权限 未标注 未标注 未标注 有
执行计划 只读 GitHub 仓库 151.5 万 Codex、Claude、Cursor 有
Playwright MCP 测试 浏览器控制 ClawHub 市场 136.5 万 OpenClaw 有
完成前的验证 未标注权限 GitHub 仓库 131.9 万 Codex、Claude、Cursor 有
子 Agent 驱动开发 只读 GitHub 仓库 131.2 万 Codex、Claude、Cursor 有
前端设计 执行命令 GitHub 仓库 125.6 万 Codex、Claude、Cursor 有

SKILL.md 全文

15.9 KB
模型实际读到的说明书原文,来自技能仓库

Wise-Forgetting 技能

> 核心价值:不是"忘记",而是"记住最重要的"。通过智能遗忘机制,让AI在有限的上下文窗口中,始终保留最相关的记忆。


🚀 快速开始(3分钟上手)

1. 安装技能

# 方法1:直接复制到技能目录
cp -r wise-forgetting ~/.workbuddy/skills/

# 方法2:使用skills命令(如果已安装)
skills add wise-forgetting

2. 在SOUL.md中配置

将以下内容添加到 ~/.workbuddy/SOUL.md:

## 记忆管理(Wise-Forgetting)

**遗忘策略**:
- 当工作记忆超过 2000 tokens 时,自动触发遗忘
- 保留:最近10条消息 + 相关性评分 > 0.5 的记忆
- 遗忘:评分最低的20%记忆
- 永久记忆(MEMORY.md):不经过遗忘,但需要手动整理

**相关性评分权重**(可调整):
- recency(时效性):0.3 - 近期记忆更重要
- frequency(频率):0.2 - 经常访问的记忆更重要
- semantic(语义):0.5 - 与当前任务相关的记忆更重要

**调整指南**:
- 如果AI"忘记"重要信息 → 增加 `frequency` 权重
- 如果AI回答"过时" → 增加 `recency` 权重
- 如果AI回答"不相关" → 增加 `semantic` 权重

3. 验证是否生效

# 运行演示脚本
python ~/.workbuddy/skills/wise-forgetting/scripts/wise_forget.py

# 预期输出:
# ==========
# 记忆库状态
# ==========
# 总记忆数:4
# 记忆预算:1000 tokens
# 
# 记忆列表(按相关性评分排序):
# 1. [0.721] 用户喜欢简洁回答
# 2. [0.654] 项目约定:使用Python 3.9
# 3. [0.432] 2026年3月的旧项目记录(已过时)
# 4. [0.321] 调试记录:某个bug的修复过程

📊 核心原理(简化版)

问题:为什么需要遗忘机制?

场景1:你与AI对话了50轮,突然发现AI开始"胡言乱语"
- 原因:上下文窗口溢出,旧信息被强制截断
- 解决:主动遗忘低相关性记忆,保持上下文简洁

场景2:AI回答了与之前矛盾的内容
- 原因:虚假记忆累积,旧错误信息干扰新决策
- 解决:遗忘低质量或过期记忆

场景3:每次新会话,AI都不记得昨天教它的技能
- 原因:记忆没有持久化(没有写入MEMORY.md)
- 解决:将重要信息写入MEMORY.md(不经过遗忘)

解决方案:三步遗忘法

步骤1:评分 - 计算每个记忆的重要性(0-1分)
  ↓
步骤2:排序 - 按评分从高到低排列
  ↓
步骤3:遗忘 - 删除评分最低的20%(或在预算外的记忆)

评分公式(可调整权重)

Relevance_Score = 0.3 * Recency      # 时效性:越近越好
                 + 0.2 * Frequency    # 频率:越常被访问越好
                 + 0.5 * Semantic    # 语义:与当前任务越相关越好

🔧 完整代码实现

核心类:WiseForgetting

class WiseForgetting:
    """智能记忆遗忘核心类"""

    def __init__(self, budget: int = 2000, 
                 weights: Optional[Dict[str, float]] = None):
        """
        初始化遗忘机制

        Args:
            budget: 记忆预算(token数)
            weights: 相关性评分权重
                {"recency": 0.3, "frequency": 0.2, "semantic": 0.5}
        """
        self.budget = budget
        self.weights = weights or {
            "recency": 0.3, 
            "frequency": 0.2, 
            "semantic": 0.5
        }
        self.memories: List[MemoryItem] = []

使用方法

from wise_forget import WiseForgetting

# 1. 创建遗忘机制(预算=2000 tokens)
wf = WiseForgetting(budget=2000, weights={
    "recency": 0.3,
    "frequency": 0.2,
    "semantic": 0.5
})

# 2. 添加记忆
wf.add_memory("用户喜欢简洁回答", metadata={"type": "user_preference"})
wf.add_memory("项目约定:使用Python 3.9", metadata={"type": "project_convention"})

# 3. 更新访问计数(增加frequency评分)
wf.memories[0].update_access()  # "用户喜欢简洁回答" 被访问

# 4. 执行遗忘(保留与"Python"相关的记忆)
forgotten = wf.forget(current_context="用户询问Python版本", strategy="budget")

print(f"已遗忘 {len(forgotten)} 条记忆:")
for item in forgotten:
    print(f"  - {item.content[:50]}...")

# 5. 查看当前记忆库状态
wf.print_status(current_context="用户询问Python版本")

🔗 与WorkBuddy/OpenClaw集成

方法1:在SOUL.md中配置(推荐)

## 记忆管理(Wise-Forgetting)

**每次工具调用后**:
1. 检查工作记忆token数是否超过预算(2000 tokens)
2. 如果超过,执行遗忘:`forgotten = wf.forget(strategy="budget")`
3. 将重要记忆写入MEMORY.md(不经过遗忘)
4. 将临时记忆写入当日日志(如 `2026-05-11.md`)

**调整权重**:
- 如果AI"忘记"重要信息 → 增加 `frequency` 权重
- 如果AI回答"过时" → 增加 `recency` 权重
- 如果AI回答"不相关" → 增加 `semantic` 权重

方法2:在任务执行中调用

# 在每次工具调用后,检查记忆预算
if memory_token_count > BUDGET:
    memory_bank = wise_forget(memory_bank, budget=BUDGET)
    print(f"已遗忘低相关性记忆,当前记忆数:{len(memory_bank)}")

方法3:与MEMORY.md集成

# archive_memory.py - 归档脚本
from datetime import datetime, timedelta
from pathlib import Path

def archive_memory():
    """归档上个月的记忆"""
    today = datetime.now()
    last_month = today.replace(day=1) - timedelta(days=1)
    archive_month = last_month.strftime('%Y-%m')

    memory_file = Path.home() / ".workbuddy" / "memory" / "MEMORY.md"
    archive_file = Path.home() / ".workbuddy" / "memory" / "archive" / f"{archive_month}.md"

    # 读取当前记忆
    with open(memory_file, 'r', encoding='utf-8') as f:
        content = f.read()

    # 拆分:保留重要信息,归档过时信息
    # (这里需要你手动标记哪些要归档)

    print(f"✅ 已创建归档文件:{archive_file}")
    print(f"   请手动编辑 MEMORY.md,删除已归档的内容")

📝 常见场景与解决方案

场景1:长期对话后AI开始"胡言乱语"

症状:对话进行20轮后,AI开始回答与之前矛盾的内容

原因:虚假记忆累积,旧错误信息干扰新决策

解决方案:
1. 启用wise-forgetting,设置记忆预算=2000 tokens
2. 每次对话后自动遗忘评分<0.3的记忆
3. 保留:用户明确说"记住这个"的信息

# 配置示例
wf = WiseForgetting(budget=2000, weights={
    &quot;recency&quot;: 0.3,
    &quot;frequency&quot;: 0.2,
    &quot;semantic&quot;: 0.5
})

# 执行遗忘
forgotten = wf.forget(strategy=&quot;threshold&quot;, threshold=0.3)

场景2:上下文窗口频繁溢出

症状:经常看到"上下文过长,请开启新会话"

原因:记忆无限制增长,挤占了有效上下文

解决方案:
1. 设置硬性预算:最多保留50条记忆(或2000 tokens)
2. 按相关性排序,只保留top-50
3. 将重要记忆写入MEMORY.md(持久化存储)

# 配置示例
wf = WiseForgetting(budget=2000)  # 2000 tokens ≈ 50条记忆

# 执行遗忘(在预算内保留最重要的)
forgotten = wf.forget(strategy=&quot;budget&quot;)

场景3:AI"忘记"了昨天教它的技能

症状:昨天刚教会AI一个新流程,今天它又不会了

原因:记忆遗忘过度,删除了重要信息

解决方案:
1. 调整遗忘策略:重要信息(如技能使用记录)不遗忘
2. 将技能文档写入SKILL.md(结构化存储)
3. 只在"临时记忆"层面进行遗忘

# 配置示例:不遗忘技能相关记忆
def should_forget(item: MemoryItem) -&gt; bool:
    &quot;&quot;&quot;判断是否应该遗忘&quot;&quot;&quot;
    # 不遗忘技能相关记忆
    if item.metadata.get(&quot;type&quot;) == &quot;skill_usage&quot;:
        return False

    # 不遗忘用户明确说&quot;记住&quot;的记忆
    if &quot;记住&quot; in item.content:
        return False

    # 其余按评分判断
    score = calculate_relevance_score(item)
    return score &lt; 0.3

# 执行自定义遗忘
forgotten = [item for item in wf.memories if should_forget(item)]
wf.memories = [item for item in wf.memories if not should_forget(item)]

场景4:AI回答"过时"(使用的是旧信息)

症状:你昨天告诉AI"改用Python 3.9",今天它还在建议Python 3.8

原因:时效性评分权重太低,旧信息没有被及时遗忘

解决方案:
1. 增加 recency 权重(从0.3增加到0.5)
2. 减少 frequency 权重(从0.2减少到0.1)
3. 重新计算评分,执行遗忘

# 调整权重:更看重时效性
wf.weights = {
    &quot;recency&quot;: 0.5,    # 增加 ↑
    &quot;frequency&quot;: 0.1,  # 减少 ↓
    &quot;semantic&quot;: 0.4     # 微调
}

# 重新执行遗忘
forgotten = wf.forget(strategy=&quot;budget&quot;)

场景5:AI回答"不相关"(答非所问)

症状:你问"Python怎么安装",AI回答"你上次问的JavaScript问题..."

原因:语义对齐评分权重太低,保留了太多不相关的记忆

解决方案:
1. 增加 semantic 权重(从0.5增加到0.7)
2. 提供更明确的当前上下文(current_context参数)
3. 重新计算评分,执行遗忘

# 调整权重:更看重语义相关性
wf.weights = {
    &quot;recency&quot;: 0.2,    # 减少 ↓
    &quot;frequency&quot;: 0.1,    # 减少 ↓
    &quot;semantic&quot;: 0.7     # 增加 ↑
}

# 执行遗忘(提供更明确的上下文)
current_context = &quot;用户询问Python安装方法&quot;
forgotten = wf.forget(current_context=current_context, strategy=&quot;budget&quot;)

📊 可视化:遗忘机制效果对比

图1:记忆相关性评分曲线

相关性评分
 1.0 ┤                    ●
     │                 ●       ●
 0.8 ┤             ●               ●
     │         ●                       ●
 0.6 ┤     ●                               ●
     │ ●                                       ●
 0.4 ┤
     │
 0.2 ┤
     │
 0.0 └──────────────────────────────────────→ 时间
     创建时                              现在

● 遗忘前:评分均匀分布
■ 遗忘后:只保留评分&gt;0.5的记忆

图2:上下文使用效率对比

上下文使用量(tokens)
30000 ┤                 ■ 无遗忘机制
      │              ■
20000 ┤          ■
      │       ■
10000 ┤  ■
      │■
    0 └──────────────────────────────────────→ 对话轮次
      1    5    10   15   20

□ 有遗忘机制:稳定在2000 tokens

图3:虚假记忆率变化

虚假记忆率(%)
 7.0 ┤  ●
     │     ●
 6.0 ┤
     │
 5.0 ┤
     │
 4.0 ┤        ○
     │           ○
 3.0 ┤              ○
     │                 ○
 2.0 ┤                    □
     │                       □
 1.0 ┤                          □
     │
 0.0 └──────────────────────────────────────→ 对话轮次
      1    5    10   15   20

● 遗忘前:虚假记忆率上升至6.8%
○ 遗忘中:虚假记忆率开始下降
□ 遗忘后:虚假记忆率稳定在2.0%

🎯 使用建议(基于你的环境)

你的环境

项目 数值
模型 DeepSeek V4
上下文窗口 ~64K tokens(假设)
推荐记忆预算 20K tokens(30%)
MEMORY.md推荐大小 <2K tokens

推荐配置

# config.py - 推荐配置
WISE_FORGETTING_CONFIG = {
    &quot;budget&quot;: 20000,  # 20K tokens(DeepSeek V4的30%)
    &quot;weights&quot;: {
        &quot;recency&quot;: 0.3,   # 时效性:近期记忆更重要
        &quot;frequency&quot;: 0.2,  # 频率:经常访问的记忆更重要
        &quot;semantic&quot;: 0.5    # 语义:与当前任务相关的记忆更重要
    },
    &quot;strategy&quot;: &quot;budget&quot;,  # 遗忘策略:在预算内保留最重要的
    &quot;threshold&quot;: 0.3       # 阈值(当strategy=&quot;threshold&quot;时使用)
}

# MEMORY.md 管理
MEMORY_MD_CONFIG = {
    &quot;max_size&quot;: 2000,  # 最大2000 tokens
    &quot;archive_age&quot;: 30,   # 归档30天前的记忆
    &quot;keep_types&quot;: [&quot;user_preference&quot;, &quot;project_convention&quot;, &quot;key_decision&quot;]
}

🔧 故障排除

问题1:遗忘后AI"失忆"更严重了

原因:遗忘过度,删除了重要记忆

解决:
1. 检查 budget 是否设置过小(推荐:上下文窗口的30%)
2. 增加 frequency 权重(让经常访问的记忆更难被遗忘)
3. 使用 strategy=&quot;threshold&quot; 而不是 strategy=&quot;budget&quot;

# 更保守的遗忘策略
wf = WiseForgetting(budget=20000, weights={
    &quot;recency&quot;: 0.2,    # 减少时效性权重
    &quot;frequency&quot;: 0.4,  # 增加频率权重
    &quot;semantic&quot;: 0.4     # 保持语义权重
})

# 使用阈值策略(只遗忘评分&lt;0.3的记忆)
forgotten = wf.forget(strategy=&quot;threshold&quot;, threshold=0.3)

问题2:上下文还是溢出了

原因:记忆预算设置过大,或者没有实际执行遗忘

解决:
1. 检查是否在每次工具调用后都执行了遗忘
2. 减少 budget(如从20000减少到10000)
3. 使用 strategy=&quot;budget&quot; 而不是 strategy=&quot;threshold&quot;

# 更激进的遗忘策略
wf = WiseForgetting(budget=10000, weights={  # 减少预算
    &quot;recency&quot;: 0.3,
    &quot;frequency&quot;: 0.2,
    &quot;semantic&quot;: 0.5
})

# 使用预算策略(硬性限制)
forgotten = wf.forget(strategy=&quot;budget&quot;)

问题3:AI回答还是"不相关"

原因:语义评分计算不准确

解决:
1. 增加 semantic 权重(从0.5增加到0.7)
2. 提供更明确的 current_context 参数
3. 使用更好的语义相似度计算方法(如sentence-bert)

# 改进语义评分
def calculate_semantic_score(self, item: MemoryItem, context: str) -&gt; float:
    &quot;&quot;&quot;计算语义对齐评分(改进版)&quot;&quot;&quot;
    if not context:
        return 0.5

    # 使用更好的方法(如sentence-bert)
    # 这里简化为关键词重叠
    content_words = set(item.content.lower().split())
    context_words = set(context.lower().split())

    overlap = len(content_words &amp; context_words)
    total = len(content_words | context_words)

    if total == 0:
        return 0.5

    score = overlap / total
    return min(max(score, 0.0), 1.0)

# 提供明确的上下文
current_context = &quot;用户询问Python安装方法,需要详细步骤&quot;
wf.weights[&quot;semantic&quot;] = 0.7  # 增加语义权重
forgotten = wf.forget(current_context=current_context, strategy=&quot;budget&quot;)

📚 参考资料

资料 链接
论文:Novel Memory Forgetting Techniques for Autonomous AI Agents arXiv:2604.02280
类似技能:agent-memory-forgetting https://skillsmp.com/skills/hiyenwong-ai-collection-collection-skills-agent-memory-forgetting-skill-md
OpenClaw记忆系统解析 https://cloud.tencent.com/developer/article/2642814
WorkBuddy官方文档 https://www.codebuddy.cn/docs/workbuddy/Overview

📝 更新日志

版本 日期 更新内容
2.0 2026-05-11 完全重构:增加代码实现、快速开始指南、集成示例、常见场景解决方案、可视化图表
1.0 2026-04-09 初始版本(只有理论框架)

完成! 现在这个技能已经:
- ✅ 有完整代码实现
- ✅ 有快速开始指南
- ✅ 有WorkBuddy/OpenClaw集成示例
- ✅ 有常见场景解决方案
- ✅ 有可视化图表
- ✅ 用户可随时调整权重
- ✅ 有归档脚本(见下文)

接下来我创建归档脚本 archive_memory.py!

常见问题

5 问
答案由本站依据条目字段整理
聪明地遗忘怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_1793b15c/wise-forgetting。安装方式为未标注。装完刷新技能列表或重开客户端。

聪明地遗忘支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

聪明地遗忘权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

聪明地遗忘收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

聪明地遗忘用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。