Cleanup Sessions

Polar Sponsor
爱发电 赞助
.NET 9.0

清理已中止且48小时未更新的子Agent会话及过期备份文件,释放磁盘空间并同步更新索引。

cleanup-sessions

功能概述

cleanup-sessions是一项面向实际任务的技能,主要用于清理已中止的子 agent 会话文件及备份文件,释放磁盘空间;用户提到:;

核心要点

  • 清理子 agent 会话;
  • 删除 aborted 的会话;
  • 清理会话文件;

使用与执行

清理 sessions 目录;清理备份文件;清理 .deleted / .reset 文件;清理过期会话;预览模式 :列出所有 abortedLastRun: true 的会话文件,显示大小和路径;清理模式 :删除。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

结果检查与注意事项

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

cleanup-sessions

清理已中止的子 agent 会话文件及备份文件,释放磁盘空间。

触发条件

用户提到:

  • 清理子 agent 会话
  • 删除 aborted 的会话
  • 清理会话文件
  • 清理 sessions 目录
  • 清理备份文件
  • 清理 .deleted / .reset 文件
  • 清理过期会话

功能

  1. 预览模式:列出所有 abortedLastRun: true 的会话文件,显示大小和路径
  2. 清理模式:删除已确认的废弃会话文件
  3. 同步清理:同时清理 sessions.json 索引中的对应条目
  4. 备份清理:清理 .jsonl.deleted.* 和 .jsonl.reset.* 备份文件

使用方式

直接清理(用户明确同意时)

// 1. 列出所有会话
const sessions = await sessions_list();

// 2. 过滤出 aborted 的子 agent 会话
const abortedSessions = sessions.sessions.filter(s => 
  s.kind === 'other' && 
  s.key.includes('subagent') && 
  s.abortedLastRun === true
);

// 3. 提取会话 ID 并删除对应文件
for (const session of abortedSessions) {
  const sessionId = session.sessionId;
  const filePath = `/Users/miaofengkai115572/.openclaw/agents/main/sessions/${sessionId}.jsonl`;
  // 执行删除
}

完整清理流程

A. 清理已中止的子 agent 会话

  1. 调用 sessions_list() 获取会话列表
  2. 过滤出 abortedLastRun: true 且 key 包含 subagent 的会话
  3. 保护近期会话:排除 48 小时内更新的会话(updatedAt > Date.now() - 48*60*60*1000)
  4. 向用户展示待删除的文件列表(路径 + 大小 + 最后更新时间)
  5. 用户确认后执行删除 .jsonl 文件
  6. 同步清理 sessions.json 中的对应条目

B. 清理备份文件

  1. 扫描 *.jsonl.deleted.* 文件(删除备份)
  2. 扫描 *.jsonl.reset.* 文件(重置备份,保留 7 天内)
  3. 展示待删除的备份文件数量和总大小
  4. 用户确认后执行删除

清理策略:

  • .deleted 文件:全部删除(会话已删,备份无用)
  • .reset 文件:删除 7 天前的(保留近期备份)
  • 保护期:48 小时内的会话不删除(即使 abortedLastRun: true)

注意事项

  • 只删除子 agent 会话:key 包含 subagent 的会话
  • 只删除已中止的:abortedLastRun === true
  • 保留主会话:不要删除用户正在使用的会话
  • 48 小时保护:不删除 48 小时内更新的会话(即使已中止)
  • 建议先预览:删除前展示文件列表和总大小
  • 同步清理 sessions.json:删除 .jsonl 后必须清理索引文件,否则数据不一致
  • 备份文件说明:
    • .jsonl.deleted.* → 会话删除前的备份,可安全删除
    • .jsonl.reset.* → 会话重置/压缩前的备份,建议保留 7 天
  • 定期清理:建议每周清理一次备份文件,避免占用过多磁盘空间

相关文件

  • 会话目录:~/.openclaw/agents/main/sessions/*.jsonl
  • 会话元数据:通过 sessions_list() 获取

示例输出

A. 子 agent 会话清理

找到 2 个可清理的已中止子 agent 会话:

| 会话 ID | 大小 | 标签 | 最后更新 |
|---------|------|------|----------|
| 46bf8f99-... | 76K | feishu-creator | 7 天前 |
| a5348a20-... | 149K | feishu-doc-creator | 7 天前 |

已保护:1 个会话(48 小时内更新)
总计可释放:225KB

确认删除?

B. 备份文件清理

扫描备份文件:

| 类型 | 文件数 | 总大小 |
|------|--------|--------|
| .deleted | 18 | 2.1 MB |
| .reset (7 天前) | 12 | 4.1 GB |

总计可释放:4.1 GB

确认删除?

技术实现

核心工具

  • sessions_list() - 获取会话列表和状态
  • Node.js fs 模块 - 删除会话文件
  • sessions.json 同步更新 - 保持索引一致性

伪代码示例

// 获取会话列表
const sessions = await sessions_list();

// 过滤条件
const shouldDelete = sessions.filter(s => 
  s.key.includes('subagent') && 
  s.abortedLastRun === true &&
  Date.now() - s.updatedAt > 48 * 60 * 60 * 1000  // 48 小时保护
);

// 用户确认后删除文件并更新索引

扩展建议

  • 添加 --dry-run 模式(预览不删除)
  • 添加按时间过滤(只清理 N 天前的)
  • 添加按大小过滤(只清理大于 X 的)
  • 定期自动清理(结合 heartbeat)

相关专题

更多
cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

2025.08.19

1446

14

session失效解决方法
session失效解决方法

session失效通常是由于 session 的生存时间过期或者服务器关闭导致的。其解决办法:1、延长session的生存时间;2、使用持久化存储;3、使用cookie;4、异步更新session;5、使用会话管理中间件。

2023.10.18

856

5

session失效的原因
session失效的原因

session失效的原因有会话超时、会话数量限制、会话完整性检查、服务器重启、浏览器或设备问题等等。详细介绍:1、会话超时:服务器为Session设置了一个默认的超时时间,当用户在一段时间内没有与服务器交互时,Session将自动失效;2、会话数量限制:服务器为每个用户的Session数量设置了一个限制,当用户创建的Session数量超过这个限制时,最新的会覆盖最早的等等。

2023.10.17

560

4

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

0

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

0

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

0

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

0

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

0

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Beego 官方文档首页
Beego 官方文档首页

共0课时 | 0人学习

Laravel 5.8 中文文档手册
Laravel 5.8 中文文档手册

共74课时 | 139.4万人学习