运行时依赖
无特殊依赖
安装命令
点击复制官方npx clawhub@latest install subagent-archive
镜像加速npx clawhub@latest install subagent-archive --registry https://cn.longxiaskill.com 镜像可用
技能文档
子会话安全归档技能 适用版本:OpenClaw 任意版本 适用系统:Windows PowerShell 环境 作者:丞相(ChengXiang)
功能说明 清理或归档 OpenClaw 子会话时,必须按本技能标准流程执行,确保: ✅ 内容正确保存到记忆文件 ✅ 敏感信息不泄露 ✅ 原始文件被安全物理清理 ✅ 主会话(:main)永久保留 ✅ 归档记录追加写入,不覆盖原有记录
⚠️ 核心铁律
| 铁律 | 说明 |
|---|---|
| 禁止删除主会话 | 包含 :main 的条目绝对不能删除 |
| 追加写入 | 第3步和第4步必须使用 Add-Content,禁止 write/Set-Content |
| 保留 :main sessions.json | 清理时必须保留 :main 条目 |
| 物理清理 | 必须执行 Remove-Item,仅重命名不算完成 |
- 子任务完成后清理临时会话
- 下属智能体子会话闲置需要归档
- 系统维护时清理旧会话文件
- 释放磁盘空间
完整操作流程(6步) 第1步:内容提取
# 查找需要归档的子会话(.jsonl文件)
Get-ChildItem 'C:\Users\Administrator\.openclaw\agents\<智能体>\sessions' -Filter '.jsonl'
# 读取会话前50行分析内容
Get-Content '<会话文件路径>' -Head 50
输出:记录会话ID、创建时间、主要任务内容 第2步:安全分析 确认:
- 是否包含敏感信息(密码、密钥、个人隐私等)
- 是否有重要成果需要保留
- 是否有错误教训需要记录
第3步:结构化归档(追加写入) 在当日记忆文件追加归档记录,先查重:
$memFile = 'memory/YYYY-MM-DD.md'
if (Test-Path $memFile) {
$existing = Select-String -Path $memFile -Pattern '<会话ID>' -SimpleMatch
if ($existing) { Write-Host "该会话已归档,跳过第3步" }
else {
Add-Content -Path $memFile -Value @"
✅ 安全归档记录(YYYY-MM-DD HH:MM执行)
智能体 归档文件 归档时间戳 XXX <会话ID>.jsonl YYYY-MM-DD HH:MM
### 会话内容摘要
- 用途:
- 创建时间:
- 结果:
"@
}
} else {
New-Item -Path $memFile -ItemType File
Add-Content -Path $memFile -Value @"
# YYYY-MM-DD 工作记录
✅ 安全归档记录(YYYY-MM-DD HH:MM执行)
智能体 归档文件 归档时间戳 XXX <会话ID>.jsonl YYYY-MM-DD HH:MM
### 会话内容摘要
- 用途:
- 创建时间:
- 结果:
"@
}
关键点:
✅ 使用 Add-Content 追加写入
❌ 禁止使用 write 或 Set-Content 覆盖写入 第4步:当日记录(追加写入)
Add-Content -Path $memFile -Value @"
📋 系统管理操作
子会话归档
- 时间:YYYY-MM-DD HH:MM
- 目标:<智能体> 的子会话
- 归档文件:<会话ID>.jsonl
- 操作:安全归档完成
"@
关键点:
✅ 使用 Add-Content 追加写入 第5步:物理清理
Remove-Item '<会话文件路径>'
警告:
- 重命名(如 .deleted. 后缀)不是真正清理
- 必须执行 Remove-Item 物理删除
第6步:清理 sessions.json 索引
$json = Get-Content 'C:\...\sessions.json' -Raw | ConvertFrom-Json
$subagentKeys = $json.PSObject.Properties.Name | Where-Object { $_ -notmatch ':main$' }
foreach ($key in $subagentKeys) { $json.PSObject.Properties.Remove($key) }
$json | ConvertTo-Json -Depth 10 | Set-Content 'C:\...\sessions.json' -NoNewline
验证:
openclaw sessions --agent <智能体ID>
# 应显示: Sessions listed: 1(只有主会话)
❌ 禁止行为清单
- 直接删除文件(跳过归档流程)
- 删除主会话文件或 sessions.json 中的 :main 条目
- 重命名后当作归档完成(文件仍存在)
- 物理删除后忘记清理 sessions.json 索引
- 清空 sessions.json 为 {}(会丢失主会话)
- 第3步和第4步使用覆盖写入(覆盖原有记录)
完整检查清单
- 内容提取
- 安全分析
- 结构化归档(追加写入,Add-Content)
- 当日记录(追加写入,Add-Content)
- 物理删除 .jsonl 文件
- 清理 sessions.json(只删子会话,保留 :main)
使用示例 场景:清理已完成的小说创作子会话
# 1. 查找翰林学士的子会话 Get-ChildItem 'C:\Users\Administrator\.openclaw\agents\han-lin-xue-shi\sessions' -Filter '.jsonl' # 2. 读取会话内容分析 Get-Content '...\xxx.jsonl' -Head 50 # 3. 归档记录 Add-Content -Path 'memory/2026-05-03.md' -Value @"✅ 安全归档记录(2026-05-03 15:00执行)
### 会话内容摘要
智能体 归档文件 归档时间戳 han-lin-xue-shi xxx.jsonl 2026-05-03 15:00 "@ # 4. 物理删除 Remove-Item '...\xxx.jsonl' # 5. 清理 sessions.json $json = Get-Content '...\sessions.json' -Raw | ConvertFrom-Json $subagentKeys = $json.PSObject.Properties.Name | Where-Object { $_ -notmatch ':main$' } foreach ($key in $subagentKeys) { $json.PSObject.Properties.Remove($key) } $json | ConvertTo-Json -Depth 10 | Set-Content '...\sessions.json' -NoNewline # 6. 验证 openclaw sessions --agent han-lin-xue-shi
- 用途:小说第15章创作
- 创建时间:2026-05-02 08:00
- 结果:成功完成约8000字
更新日志
| 版本 | 日期 | 更新内容 |
|---|---|---|
| 1.2.0 | 2026-05-03 | 完善元数据,补充使用示例,优化文档结构 |
| 1.1.0 | 2026-04-28 | 初始版本,6步标准流程 |