您的位置:首页 > 手游攻略 > 会话日志:搜索与分析 AI 智能体历史 - Openclaw Skills

会话日志:搜索与分析 AI 智能体历史 - Openclaw Skills

作者:互联网  时间: 2026-08-08 16:00:01  

什么是 会话日志分析器?

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 消耗指标。
  • 分析工具使用模式以优化智能体性能并识别常见的失败点。
  • 使用正则表达式在数千条历史消息中搜索特定的关键词或指令。
  • 为智能体性能评估生成消息频率和交互报告。
会话日志分析器 工作原理
  1. 该技能使用智能体 ID 在 .clawdbot 存储路径内识别活动智能体的会话目录。
  2. 它参考 sessions.json 索引,将特定的提供者密钥(如 Discord 或 WhatsApp)映射到其相应的会话 ID。
  3. 系统对只增 JSONL 文件执行 jq 或 ripgrep 命令,以过滤和提取特定的数据点,如消息角色、时间戳或内容类型。
  4. 处理提取的数据以计算聚合指标(如总成本或消息计数),然后以结构化响应的形式呈现。

会话日志分析器 配置指南

要使用此技能,请确保您的环境中安装了 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 timestamp
  • message.role: "user", "assistant", or "toolResult"
  • message.content[]: Text, thinking, or tool calls (filter type=="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/tail for sampling
  • The sessions.json index 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'

最新游戏

更多

Copyright©2010-2019. All rights reserved | 波波三国游戏官网|[email protected]

备案编号:湘ICP备2022015115号-4