会话日志:搜索与分析 AI 智能体历史 - Openclaw Skills
什么是 会话日志分析器?
session-logs 技能提供了一个强大的界面,用于搜索和分析存储在会话 JSONL 文件中的历史对话数据。它通过提供对智能体生成的每一次交流、元数据和工具使用记录的程序化访问,使用户能够弥合当前交互与过去上下文之间的鸿沟。
通过利用 jq 和 rg 等强大的 CLI 工具,Openclaw Skills 生态系统中的这一项将原始日志文件转化为可操作的情报。无论您是需要从数周前的线程中恢复特定信息,还是审计自动化的财务开销,此技能都能为专业的智能体管理提供所需的精度。
下载入口:https://github.com/openclaw/skills/tree/main/skills/guogang1024/session-logs安装与下载
1. ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install session-logs
2. 手动安装
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
<project>/skills/
优先级:工作区 > 本地 > 内置
3. 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 session-logs。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
会话日志分析器 应用场景
- 从当前内存中不存在的父对话或较旧的聊天线程中检索上下文。
- 审计每日或特定会话的 API 成本和 Token 消耗指标。
- 分析工具使用模式以优化智能体性能并识别常见的失败点。
- 使用正则表达式在数千条历史消息中搜索特定的关键词或指令。
- 为智能体性能评估生成消息频率和交互报告。
- 该技能使用智能体 ID 在 .clawdbot 存储路径内识别活动智能体的会话目录。
- 它参考 sessions.json 索引,将特定的提供者密钥(如 Discord 或 WhatsApp)映射到其相应的会话 ID。
- 系统对只增 JSONL 文件执行 jq 或 ripgrep 命令,以过滤和提取特定的数据点,如消息角色、时间戳或内容类型。
- 处理提取的数据以计算聚合指标(如总成本或消息计数),然后以结构化响应的形式呈现。
会话日志分析器 配置指南
要使用此技能,请确保您的环境中安装了 jq 和 ripgrep (rg)。这些二进制文件对于 Openclaw Skills 的日志处理能力至关重要。
# 在 macOS 上安装依赖项
brew install jq ripgrep
# 在 Ubuntu/Debian 上安装依赖项
sudo apt-get install jq ripgrep
无需进一步配置,因为该技能会自动检测位于 ~/.clawdbot/agents/<agentId>/sessions/ 的会话路径。
会话日志分析器 数据架构与分类体系
该技能与 JSONL 文件交互,其中每一行代表一个离散的事件或消息。该架构针对高速过滤进行了优化。
| 字段 | 类型 | 描述 |
|---|---|---|
type |
string | 定义记录类型:"session"(元数据)或 "message"。 |
timestamp |
string | 事件的 ISO-8601 格式时间戳。 |
message.role |
string | 识别发送者:"user"、"assistant" 或 "toolResult"。 |
message.content |
array | 包含文本块、思考块或工具调用对象。 |
message.usage.cost.total |
number | 特定响应的计算美元成本。 |
name: session-logs
description: Search and analyze your own session logs (older/parent conversations) using jq.
metadata: {"openclaw":{"emoji":"??","requires":{"bins":["jq","rg"]}}}
session-logs
Search your complete conversation history stored in session JSONL files. Use this when a user references older/parent conversations or asks what was said before.
Trigger
Use this skill when the user asks about prior chats, parent conversations, or historical context that isn’t in memory files.
Location
Session logs live at: ~/.clawdbot/agents/<agentId>/sessions/ (use the agent=<id> value from the system prompt Runtime line).
sessions.json- Index mapping session keys to session IDs<session-id>.jsonl- Full conversation transcript per session
Structure
Each .jsonl file contains messages with:
type: "session" (metadata) or "message"timestamp: ISO timestampmessage.role: "user", "assistant", or "toolResult"message.content[]: Text, thinking, or tool calls (filtertype=="text"for human-readable content)message.usage.cost.total: Cost per response
Common Queries
List all sessions by date and size
for f in ~/.clawdbot/agents/<agentId>/sessions/*.jsonl; do
date=$(head -1 "$f" | jq -r '.timestamp' | cut -dT -f1)
size=$(ls -lh "$f" | awk '{print $5}')
echo "$date $size $(basename $f)"
done | sort -r
Find sessions from a specific day
for f in ~/.clawdbot/agents/<agentId>/sessions/*.jsonl; do
head -1 "$f" | jq -r '.timestamp' | grep -q "2026-01-06" && echo "$f"
done
Extract user messages from a session
jq -r 'select(.message.role == "user") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl
Search for keyword in assistant responses
jq -r 'select(.message.role == "assistant") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl | rg -i "keyword"
Get total cost for a session
jq -s '[.[] | .message.usage.cost.total // 0] | add' <session>.jsonl
Daily cost summary
for f in ~/.clawdbot/agents/<agentId>/sessions/*.jsonl; do
date=$(head -1 "$f" | jq -r '.timestamp' | cut -dT -f1)
cost=$(jq -s '[.[] | .message.usage.cost.total // 0] | add' "$f")
echo "$date $cost"
done | awk '{a[$1]+=$2} END {for(d in a) print d, "$"a[d]}' | sort -r
Count messages and tokens in a session
jq -s '{
messages: length,
user: [.[] | select(.message.role == "user")] | length,
assistant: [.[] | select(.message.role == "assistant")] | length,
first: .[0].timestamp,
last: .[-1].timestamp
}' <session>.jsonl
Tool usage breakdown
jq -r '.message.content[]? | select(.type == "toolCall") | .name' <session>.jsonl | sort | uniq -c | sort -rn
Search across ALL sessions for a phrase
rg -l "phrase" ~/.clawdbot/agents/<agentId>/sessions/*.jsonl
Tips
- Sessions are append-only JSONL (one JSON object per line)
- Large sessions can be several MB - use
head/tailfor sampling - The
sessions.jsonindex maps chat providers (discord, whatsapp, etc.) to session IDs - Deleted sessions have
.deleted.<timestamp>suffix
Fast text-only hint (low noise)
jq -r 'select(.type=="message") | .message.content[]? | select(.type=="text") | .text' ~/.clawdbot/agents/<agentId>/sessions/<id>.jsonl | rg 'keyword'
-
08.08
店长直聘如何删除聊天记录
-
08.08
空灵诗篇领地如何加入
-
08.08
白银之城记者格林之死究竟如何
-
08.08
女神漫画免费动漫入口页面
-
08.08
会话日志:搜索与分析 AI 智能体历史 - Openclaw Skills
-
08.08
九牧之野阵营玩法详细说明九牧之野阵营选择与实战策略指南
-
- 白银之城记者格林之死究竟如何
- 08.08
-
-
-
- 《崩坏:星穹铁道》绯英星魂效果及推荐
- 08.08
-
- 魔兽世界最大基建挑战是什么
- 08.08
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏