记忆系统
概述
记忆系统会跟踪跨多次代码审查中反复出现的问题,帮助识别项目中的高风险文件和模式。记忆数据持久化存储在项目目录下的 .ai-review/memory.json 文件中。
核心能力:
- 自动记录每次审查中发现的警告
- 统计每个文件的警告出现频率
- 计算文件级风险分数
- 智能衰减避免重复提醒
风险分数
每个文件都有一个 0-10 的风险分数,基于历史警告频率计算:
| 风险分数 | 等级 | 含义 |
|---|---|---|
| 0 - 2 | 低 | 偶尔出现小问题,无需特别关注 |
| 3 - 5 | 中 | 存在反复出现的问题,建议关注 |
| 6 - 8 | 高 | 频繁出现问题,强烈建议重构 |
| 9 - 10 | 极高 | 严重问题反复出现,应优先处理 |
风险分数的计算考虑以下因素:
- 警告频率:同一问题出现的次数越多,分数越高
- 问题严重性:CRITICAL 级别的警告权重高于 WARNING
- 时间衰减:较久之前的警告权重逐渐降低
提醒策略
为避免对同一问题反复提醒造成干扰,记忆系统采用衰减提醒策略:
| 警告出现次数 | 提醒模式 | 说明 |
|---|---|---|
| 0 次 | Full(完整提醒) | 首次发现,展示完整的问题描述和修复建议 |
| 1 次 | Short(简短提醒) | 第二次出现,仅展示简要提示 |
| 2 次 | Minimal(极简提醒) | 第三次出现,仅标记文件为已知问题文件 |
| 3 次及以上 | Suppressed(抑制) | 后续不再提醒,避免干扰 |
首次发现 ──→ 第二次 ──→ 第三次 ──→ 后续
Full Short Minimal Suppressed
(完整) (简短) (极简) (抑制)INFO
即使提醒被抑制,问题仍会记录在记忆中,可以通过 ai-review status 查看完整的风险报告。
衰减机制
记忆系统内置自动衰减机制,确保历史数据不会永久影响当前审查:
- 自动过期:超过 30 天未被再次触发的警告将自动从记忆中移除
- 权重递减:随着时间推移,历史警告对风险分数的贡献逐渐降低
- 手动清理:可以通过命令手动清除记忆数据
bash
# 查看当前记忆状态
ai-review status
# 清除指定文件的记忆
ai-review memory --clear --file src/utils/helper.py
# 清除所有记忆数据
ai-review memory --clear --all查看风险报告
使用 ai-review status 命令查看当前项目的高风险文件和记忆摘要:
bash
ai-review status输出示例:
AI Code Review - 项目状态报告
═══════════════════════════════════
高风险文件 (风险分数 >= 6):
● src/auth/login.py ........ 风险分数: 7.2 (3 个活跃警告)
● src/api/handler.py ....... 风险分数: 6.5 (2 个活跃警告)
记忆摘要:
活跃警告数: 12
已抑制警告: 5
已过期警告: 3
建议:
▸ src/auth/login.py 存在重复的空指针检查问题,建议重构TIP
记忆系统仅在 Balanced 模式下启用。如果你使用 Strict 或 Fast 模式,记忆功能不会被触发。