OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  session-logs:搜索并分析你自己的会话日志数据

session-logs:搜索并分析你自己的会话日志数据

 
  apple ·  2026-02-18 07:16:00 · 3 次点击  · 0 条评论  

名称: session-logs
描述: 使用 jq 搜索和分析您自己的会话日志(较早/父级对话)。
元数据: {"openclaw":{"emoji":"📜","requires":{"bins":["jq","rg"]}}}


session-logs

搜索存储在会话 JSONL 文件中的完整对话历史记录。当用户提及较早/父级对话或询问之前说过什么时使用此技能。

触发时机

当用户询问之前的聊天记录、父级对话或不在内存文件中的历史上下文时,使用此技能。

文件位置

会话日志位于:~/.clawdbot/agents/<agentId>/sessions/(使用系统提示 Runtime 行中的 agent=<id> 值)。

  • sessions.json - 将会话键映射到会话 ID 的索引文件
  • <session-id>.jsonl - 每个会话的完整对话记录

数据结构

每个 .jsonl 文件包含以下字段的消息:
- type"session"(元数据)或 "message"
- timestamp:ISO 时间戳
- message.role"user""assistant""toolResult"
- message.content[]:文本、思考或工具调用(筛选 type=="text" 获取人类可读内容)
- message.usage.cost.total:每次响应的成本

常用查询示例

按日期和大小列出所有会话

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

查找特定日期的会话

for f in ~/.clawdbot/agents/<agentId>/sessions/*.jsonl; do
  head -1 "$f" | jq -r '.timestamp' | grep -q "2026-01-06" && echo "$f"
done

从会话中提取用户消息

jq -r 'select(.message.role == "user") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl

在助手回复中搜索关键词

jq -r 'select(.message.role == "assistant") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl | rg -i "keyword"

获取会话总成本

jq -s '[.[] | .message.usage.cost.total // 0] | add' <session>.jsonl

每日成本汇总

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

统计会话中的消息和令牌数

jq -s '{
  messages: length,
  user: [.[] | select(.message.role == "user")] | length,
  assistant: [.[] | select(.message.role == "assistant")] | length,
  first: .[0].timestamp,
  last: .[-1].timestamp
}' <session>.jsonl

工具使用情况统计

jq -r '.message.content[]? | select(.type == "toolCall") | .name' <session>.jsonl | sort | uniq -c | sort -rn

在所有会话中搜索短语

rg -l "phrase" ~/.clawdbot/agents/<agentId>/sessions/*.jsonl

使用提示

  • 会话文件是仅追加的 JSONL 格式(每行一个 JSON 对象)
  • 大型会话可能达到几 MB - 可使用 head/tail 进行抽样查看
  • sessions.json 索引文件将聊天提供商(discord、whatsapp 等)映射到会话 ID
  • 已删除的会话带有 .deleted.<timestamp> 后缀

快速文本搜索提示(低噪音)

jq -r 'select(.type=="message") | .message.content[]? | select(.type=="text") | .text' ~/.clawdbot/agents/<agentId>/sessions/<id>.jsonl | rg 'keyword'
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor