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)。

相关推荐
声网21 小时前
OpenAI Realtime API 重磅更新:锚定语音模型「深度推理+自主执行」演进路径|Voice Agent 学习笔记
笔记·学习
XD74297163621 小时前
科技早报晚报|2026年5月4日:Agent 的三件新基建——工作流桥接、增量记忆与本地深研,今天最值得跟进的 3 个机会
科技·github·开源项目·ai agent
前端摸鱼匠1 天前
【AI大模型春招面试题31】什么是“零样本学习(Zero-Shot)”“少样本学习(Few-Shot)”?大模型实现这类能力的核心原因?
人工智能·学习·面试·大模型·求职招聘
阿赛工作室1 天前
AI时代WEB开发人员生存与发展报告
前端·人工智能·node.js
ZC跨境爬虫1 天前
跟着 MDN 学 HTML day_36:(深入理解 Comment 接口与 DOM 注释节点)
前端·javascript·ui·html·音视频·视频编解码
一切皆是因缘际会1 天前
可自我迭代升级数字生命工程:从记忆厮杀到自我意识觉醒全链路——AGI内生智能硅基生命心智建模(下)
系统架构·大模型·agi·具身智能·通用人工智能·数字生命·自主智能体
石小石Orz1 天前
Harness Engineering 到底是什么?概念、实战与争议,一次全部讲清楚
前端·后端
悠哉摸鱼大王1 天前
cesium学习(三)-3d tiles
前端·cesium
前端那点事1 天前
Vue3自定义Hooks保姆级教程!从原理到企业级实战,告别混乱代码
前端·vue.js
前端那点事1 天前
别再乱用Vue3响应式!ref、reactive、toRef、toRefs完整区别+企业级落地实战
前端·vue.js