🧹 自动管理 OpenClaw 会话,定期清理不活跃的会话,保持系统整洁!
# 本地安装
cd ~/.openclaw/workspace/skills
git clone <session-manager-repo> session-manager
cd ~/.openclaw/workspace/skills/session-manager
./install.sh
# 1. 创建会话清理脚本
openclaw session init
# 2. 配置定时清理任务(每天凌晨 2 点)
openclaw cron add --name "会话清理" \
--schedule "0 2 * * *" \
--message "清理不活跃的 OpenClaw 会话"
反向代理功能需要 Nginx:
# 方式 1:自动安装(推荐)
# setup-proxy.sh 会自动检测并安装 Nginx
./scripts/setup-proxy.sh teacher 8081
# 方式 2:手动预安装
sudo apt update && sudo apt install -y nginx
nginx -v # 验证安装
其他功能无需额外依赖:
本 Skill 使用以下环境变量(可选):
# 会话目录(默认:~/.openclaw/agents/main/sessions)
export OPENCLAW_SESSIONS_DIR="~/.openclaw/agents/main/sessions"
# 配置目录(默认:~/.openclaw/session-manager)
export SESSION_MANAGER_CONFIG="~/.openclaw/session-manager"
⚠️ 安全提醒:
config.json 提交到版本控制# ❌ 错误:不要在命令行明文传递 Token
./scripts/setup-proxy.sh teacher 8081 OPENCLAW_PORT YOUR_TOKEN_HERE
# ✅ 正确:使用环境变量
export OPENCLAW_WEBCHAT_TOKEN="your-secure-token"
./scripts/setup-proxy.sh teacher 8081
| 参数 | 默认值 | 说明 |
|---|---|---|
| ------ | -------- | ------ |
--max-age | 7 | 保留最近 N 天的会话 |
--min-sessions | 5 | 最少保留 N 个会话 |
--whitelist | main,heartbeat | 白名单会话(永不删除) |
# 每天凌晨 2 点清理
0 2 * * *
# 每周日凌晨 3 点清理
0 3 * * 0
# 每 6 小时清理(测试用)
0 */6 * * *
session-manager/
├── SKILL.md # 此文件
├── README.md # 快速入门
├── LICENSE # MIT 许可证
├── _meta.json # ClawHub 元数据
├── install.sh # 安装脚本
├── templates/
│ └── config.example.json # 配置模板
└── scripts/
├── cleanup-sessions.sh # 会话清理脚本
├── list-sessions.sh # 会话列表
├── monitor-sessions.sh # 会话监控
├── setup-proxy.sh # 反向代理配置(新增)
└── create-users.sh # 批量创建用户(新增)
# 用法
./scripts/setup-proxy.sh <用户名> <端口>
# 示例
./scripts/setup-proxy.sh teacher 8081
./scripts/setup-proxy.sh usera 8082
# 1. 创建用户列表
cat > users.txt << EOF
teacher
usera
userb
EOF
# 2. 批量创建
./scripts/create-users.sh users.txt 8081
http://服务器 IP:8081/ # teacher 专属
http://服务器 IP:8082/ # usera 专属
http://服务器 IP:8083/ # userb 专属
# 查看已配置用户
ls /etc/nginx/sites-available/openclaw-*
# 删除用户
sudo rm /etc/nginx/sites-enabled/openclaw-username
sudo systemctl reload nginx
# 查看访问日志
sudo tail -f /var/log/nginx/openclaw-teacher-access.log
├── list-sessions.sh # 会话列表脚本
└── monitor-sessions.sh # 会话监控脚本
---
## 🔧 使用示例
### 初始化配置
./scripts/init-config.sh
生成:
{
"maxAgeDays": 7,
"minSessions": 5,
"whitelist": ["main", "heartbeat"],
"logFile": "~/.openclaw/session-cleanup.log"
}
### 手动触发清理
./scripts/cleanup-sessions.sh --max-age 14 --min-sessions 3
### 查看会话状态
./scripts/list-sessions.sh
输出:
📋 会话列表 (共 8 个):
...
### 监控清理历史
./scripts/monitor-sessions.sh
---
## 🧩 与其他 Skills 配合
| Skill | 配合方式 |
|-------|----------|
| `memory-manager` | 共享清理策略,避免冲突 |
| `edge-tts` | 清理 TTS 缓存文件 |
---
## 📊 清理策略建议
### 个人使用
- `maxAgeDays`: 14 (保留 2 周)
- `minSessions`: 10 (最少保留 10 个)
### 团队使用
- `maxAgeDays`: 7 (保留 1 周)
- `minSessions`: 20 (最少保留 20 个)
### 服务器环境
- `maxAgeDays`: 3 (保留 3 天)
- `minSessions`: 50 (最少保留 50 个)
---
## ⚠️ 注意事项
1. **安全第一** - 白名单中的会话永不删除
2. **备份建议** - 清理前建议备份重要会话
3. **磁盘空间** - 每个会话约占用 1-5MB
4. **权限设置** - 确保脚本有读写权限
---
## 🔍 故障排查
### 会话未清理
openclaw cron list
./scripts/cleanup-sessions.sh --dry-run
cat ~/.openclaw/session-cleanup.log
### 权限错误
chmod +x scripts/*.sh
chmod 600 config.json
### 配置无效
cat ~/.openclaw/session-manager/config.json
---
## 📚 相关资源
- [OpenClaw Cron 文档](https://docs.openclaw.ai/cron)
- [OpenClaw Sessions 文档](https://docs.openclaw.ai/sessions)
- [会话管理最佳实践](https://docs.openclaw.ai/best-practices/sessions)
---
## 📝 更新日志
- **2026-04-08** - 初始版本
- 会话清理功能
- 定时任务配置
- 监控工具
---
## 📄 许可证
MIT License - 详见 [LICENSE](LICENSE) 文件
__
共 2 个版本