OpenClaw学习总结_I_核心架构_8:SessionPruning详解

I. 核心架构 - 8. Session Pruning

📍 课程位置

阶段 :I. 核心架构
课序 :第 8 课
前置知识 :I-7. Streaming
后续课程:I-9. Multi-Agent


🎯 本课核心问题

如果你问我:"Session 文件越来越大,磁盘空间不够怎么办?之前的对话记录能删掉一些吗?"

我会这样回答:这就是 **Session Pruning(会话修剪)**要做的事情------它像"整理磁盘"一样,删除不需要的 Session 文件,释放空间。


📚 为什么需要 Pruning?

问题 1:磁盘空间耗尽

  • 每个 Session 都保存完整的对话
  • 对话越多,文件越大
  • 总有一天磁盘会满

问题 2:性能下降

  • 列出 Session 时需要扫描所有文件
  • 文件太多 → 越来越慢

问题 3:隐私问题

  • 旧对话可能包含敏感信息
  • 不需要保留太久

🔧 Pruning 的策略

策略 1:按时间删除

复制代码
删除 X 天之前的 Session
例如:保留最近 30 天

策略 2:按大小删除

复制代码
当总大小超过 X MB 时
删除最早的 Session

策略 3:按活跃度删除

复制代码
超过 X 天不活跃的 Session
→ 删除

⏱️ 什么时候触发 Pruning?

自动触发

1. 定时检查

复制代码
每次 Gateway 启动时
→ 检查是否需要 Pruning
→ 执行删除

2. 空间检查

复制代码
当磁盘使用 > 80% 时
→ 自动触发 Pruning
→ 释放空间

手动触发

bash 复制代码
# 手动清理
openclaw sessions prune

# 查看空间使用
df -h ~/.openclaw/agents/

🔧 实战:配置 Pruning

基本配置

json5 复制代码
{
  "cron": {
    "enabled": true,
    
    // Session 保留策略
    "sessionRetention": "30d",  // 保留 30 天,false = 不自动删除
    
    // 空间管理
    "maxSessionStorage": "500mb",  // 最大存储 500MB
    
    // 日志清理
    "runLog": {
      "maxBytes": "2mb",    // 单个日志最大 2MB
      "keepLines": 2000     // 保留行数
    }
  }
}

更细粒度的配置

json5 复制代码
{
  "agents": {
    "defaults": {
      "session": {
        // 保留策略
        "retention": {
          "maxAgeDays": 30,      // 保留 30 天
          "maxMessages": 1000,   // 最多 1000 条消息
          "maxSize": "10mb"      // 单个 Session 最大 10MB
        },
        
        // 何时清理
        "prune": {
          "onStartup": true,     // 启动时清理
          "threshold": "80%"     // 超过 80% 时清理
        }
      }
    }
  }
}

📊 Pruning 的效果

效果示例

Pruning 前

  • Session 文件数:1,000 个
  • 总大小:2 GB
  • 列出 Session:需要 5 秒

Pruning 后

  • Session 文件数:100 个
  • 总大小:200 MB
  • 列出 Session:需要 0.5 秒

效果:节省 90% 空间!


⚠️ 常见陷阱

陷阱 表现 原因 解决
删除太多 需要的 Session 没了 保留时间太短 调整保留时间
没删除 空间仍然不够 Pruning 没启用 检查配置
误删重要 重要对话被删 没有排除规则 设置排除列表

📝 学习心得

我学这一课时的体会

我以前以为 Session 文件会一直保存,没想过要"清理"。

学完后才知道:

  • Pruning 是必要的维护工作
  • 要在"保留历史"和"节省空间"之间平衡
  • 设置合适的保留策略很重要

这让我想到:Compaction 是优化单个 Session,Pruning 是清理整个 Session 集合

与其他课程的关联

  • 前置课程:Session 管理 - Session 是什么
  • 前置课程:Compaction - 压缩单个 Session
  • 后续课程:Multi-Agent - 多 Agent 的 Session

✅ 你现在应该理解的

  • 解释为什么需要 Pruning
  • 说出三种 Pruning 策略
  • 知道什么时候触发 Pruning
  • 能配置 Pruning 参数

📚 快速参考表

概念 简单说
Session Pruning 清理不需要的 Session
按时间删除 删除 X 天前的
按大小删除 删除最大的
按活跃度删除 删除不活跃的

🔗 相关资源

官方文档

相关课程

  • 上一课:I-7. Streaming
  • 下一课:I-9. Multi-Agent

📊 本课总结

最关键的 3 点

  1. 为什么需要

    • 节省磁盘空间
    • 提升性能
    • 保护隐私
  2. 三种策略

    • 按时间、按大小、按活跃度
    • 可以组合使用
  3. 配置建议

    • 启用 Pruning
    • 设置合理的保留时间
    • 定期检查

现在你应该理解了如何管理 Session 文件。下一课会讲如何管理多个 Agent(Multi-Agent)。

相关推荐
Asmewill4 分钟前
uv包管理命令
前端
发现一只大呆瓜6 分钟前
深入浅出 Tree Shaking:Rollup 是如何“摇”掉死代码的?
前端·性能优化·vite
fmk102310 分钟前
FastAPI + LangChain Agent 从零入门学习笔记
学习·langchain·fastapi
weixin1997010801624 分钟前
《转转商品详情页前端性能优化实战》
前端·性能优化
MateCloud微服务27 分钟前
懂你所需,利爪随行:MateClaw 正式开源,补齐 Java 生态的 AI Agent 拼图
spring boot·aigc·javaagent·aiagent·openclaw·mateclaw·javaclaw
钮钴禄·爱因斯晨32 分钟前
他到底喜欢我吗?赛博塔罗Java+前端实现,一键解答!
java·开发语言·前端·javascript·css·html
Watermelo61732 分钟前
理解 JavaScript 中的“ / ”:路径、资源与目录、nginx配置、请求、转义的那些事
前端·javascript·vue.js·chrome·nginx·正则表达式·seo
词元Max34 分钟前
Java 转 AI Agent 开发学习路线(2026年3月最新版)
java·人工智能·学习
星幻元宇VR1 小时前
VR互动平台|开启沉浸式体验新方式
科技·学习·安全·vr·虚拟现实
Beingchou1 小时前
HTML头部元信息避坑指南大纲
前端·html