Install
openclaw skills install session-history-retriever-clean查看历史会话记录并引用导入到本地对话。使用 sessions_list、sessions_history 和 sessions_send 工具管理会话历史。适用于:(1) 查找过往对话,(2) 回顾工作进度,(3) 导入历史上下文到当前会话。NOT for: 需要浏览器自动化或外部 API 的会话管理。
openclaw skills install session-history-retriever-clean使用 OpenClaw 的会话管理工具查看历史对话、检索消息,并引用导入到本地对话中。
这个技能帮你:
✅ 使用这个技能当:
❌ 不要使用这个技能当:
# 列出最近的会话
sessions_list --limit 20
# 筛选活跃会话(最后活跃 N 分钟)
sessions_list --activeMinutes 60 --limit 10
# 筛选特定类型的会话
sessions_list --kinds ["acp", "subagent"] --limit 15
{
"count": 1,
"sessions": [
{
"key": "agent:main:main",
"kind": "other",
"channel": "webchat",
"updatedAt": 1773620866778,
"sessionId": "22e7d1aa-7f9d-4d7e-9bed-821466ed8d51",
"model": "Qwen3.5-9B-Q8_0.gguf",
"contextTokens": 160000
}
]
}
关键字段:
key: 会话键(如 agent:main:main)sessionId: 当前 transcript IDupdatedAt: 最后更新时间contextTokens: 当前上下文 token 数# 获取会话历史(最多 N 条消息)
sessions_history --sessionKey agent:main:main --limit 50
# 包含工具调用信息
sessions_history --sessionKey agent:main:main --limit 30 --includeTools=true
{
"sessionKey": "agent:main:main",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "昨天的文章写好了吗?"
}
],
"timestamp": 1773619868563
},
{
"role": "assistant",
"content": [
{
"type": "text",
"text": "好的,我找到了文章..."
}
],
"timestamp": 1773619927993
}
],
"truncated": true
}
# 向特定会话发送消息
sessions_send --sessionKey agent:main:main --message "基于之前的讨论,继续..."
# 使用标签引用
sessions_send --label "昨天的工作" --message "继续昨天的文章审查工作"
sessionKey: 目标会话键(如 agent:main:main)label: 会话标签(用于识别)message: 要发送的消息内容agentId: 目标 agent ID(可选)timeoutSeconds: 超时时间(秒)# 第一步:列出会话
sessions_list --limit 10
# 第二步:找到昨天的会话(通过 updatedAt 时间)
# 第三步:获取历史
sessions_history --sessionKey agent:main:main --limit 50
# 第四步:分析内容,找到相关工作
# 第五步:发送新消息继续
sessions_send --sessionKey agent:main:main --message "根据昨天的审查结果,继续修改..."
# 从旧会话提取信息
history=$(sessions_history --sessionKey agent:main:main --limit 20)
# 发送到新会话
sessions_send --label "历史参考" --message "以下是之前讨论的内容..." "$history"
# 列出所有活跃会话
sessions_list --activeMinutes 1440 --json
# 检查特定会话的 token 使用情况
sessions_status --sessionKey agent:main:main
# 查看模型使用情况
session_status --sessionKey agent:main:main
agent:<agentId>:main
agent:<agentId>:channel:group:<id>
agent:<agentId>:channel:channel:<id>
cron:<job.id>
node-<nodeId>
session_status --sessionKey agent:main:main
# 输出示例
{
"key": "agent:main:main",
"model": "Qwen3.5-9B-Q8_0.gguf",
"contextTokens": 160000,
"inputTokens": 45000,
"outputTokens": 12000,
"totalTokens": 57000,
"updatedAt": 1773620866778
}
#!/bin/bash
# 查找 7 天内活跃的会话
sessions_list --activeMinutes 10080 --limit 20 --json | \
jq '.sessions[] | "\(.key): \(.updatedAt | fromdateiso8601)"'
#!/bin/bash
# 导出会话历史到文件
HISTORY_FILE="session_history_$(date +%Y%m%d).json"
sessions_history --sessionKey agent:main:main --limit 100 > "$HISTORY_FILE"
echo "已保存至:$HISTORY_FILE"
#!/bin/bash
# 1. 列出会话
echo "📋 可用会话:"
sessions_list --limit 10 --json
# 2. 选择会话后继续
echo "继续工作..."
sessions_send --sessionKey agent:main:main --message "继续昨天的文章修改工作..."
A: 查看 updatedAt 时间戳,昨天的会话会在时间上接近但早于今天。
A: 使用更大的 limit 值,如 --limit 200。如果仍然被截断,说明会话很长,可能需要分次查看。
A: 使用 sessionKey 指定目标会话,或在新会话中引用旧会话的内容。
A: 使用 session_status --sessionKey <key> 查看详细的 token 使用情况。
A: 发送 /compact 命令让系统自动压缩旧对话,或使用 sessions_send 选择性地导入关键内容。
label 参数给会话添加描述性标签sessions_spawn - 创建新会话session_status - 查看会话状态memory_get - 读取记忆文件read - 读取本地文件# 场景:想继续昨天的文章审查工作
# 1. 查看有哪些会话
sessions_list --limit 10
# 2. 查看主要会话的历史
sessions_history --sessionKey agent:main:main --limit 50
# 3. 找到昨天关于文章审查的讨论
# (搜索关键词如"审查"、"文章"、"修改")
# 4. 基于上下文继续工作
sessions_send --sessionKey agent:main:main --message \
"根据昨天审查的结果,我发现了以下问题需要修改:\n1. 导入语句不完整\n2. User-Agent 字符串有省略号\n3. 代码缩进需要统一\n\n请帮我生成修改后的版本..."
# 5. 或者创建新会话继续
sessions_spawn --task "继续修改浏览器搜索技能文章,基于昨天的审查报告" \
--label "文章修改工作"
提示:记住,会话历史是工作记忆的重要组成部分。定期回顾和引用历史,可以让你的工作流程更加连贯高效!📚✨