docs: clarify session log agent id

This commit is contained in:
Peter Steinberger
2026-01-19 05:27:45 +00:00
parent 50c5231486
commit dbcec3ffaf
2 changed files with 23 additions and 30 deletions

View File

@@ -1,16 +1,20 @@
---
name: session-logs
description: Search and analyze your own conversation history from session log files using jq.
metadata: {"clawdbot":{"emoji":"📜","requires":{"bins":["jq"]}}}
description: Search and analyze your own session logs (older/parent conversations) using jq.
metadata: {"clawdbot":{"emoji":"📜","requires":{"bins":["jq","rg"]}}}
---
# session-logs
Search your complete conversation history stored in session JSONL files. Use this when you need to recall something not in your memory files.
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 isnt in memory files.
## Location
Session logs live at: `~/.clawdbot/agents/main/sessions/`
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
@@ -21,14 +25,14 @@ 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
- `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
```bash
for f in ~/.clawdbot/agents/main/sessions/*.jsonl; do
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)"
@@ -37,19 +41,19 @@ done | sort -r
### Find sessions from a specific day
```bash
for f in ~/.clawdbot/agents/main/sessions/*.jsonl; do
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
```bash
jq -r 'select(.message.role == "user") | .message.content[0].text' <session>.jsonl
jq -r 'select(.message.role == "user") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl
```
### Search for keyword in assistant responses
```bash
jq -r 'select(.message.role == "assistant") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl | grep -i "keyword"
jq -r 'select(.message.role == "assistant") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl | rg -i "keyword"
```
### Get total cost for a session
@@ -59,7 +63,7 @@ jq -s '[.[] | .message.usage.cost.total // 0] | add' <session>.jsonl
### Daily cost summary
```bash
for f in ~/.clawdbot/agents/main/sessions/*.jsonl; do
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"
@@ -84,7 +88,7 @@ jq -r '.message.content[]? | select(.type == "toolCall") | .name' <session>.json
### Search across ALL sessions for a phrase
```bash
grep -l "phrase" ~/.clawdbot/agents/main/sessions/*.jsonl
rg -l "phrase" ~/.clawdbot/agents/<agentId>/sessions/*.jsonl
```
## Tips
@@ -93,3 +97,9 @@ grep -l "phrase" ~/.clawdbot/agents/main/sessions/*.jsonl
- 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)
```bash
jq -r 'select(.type=="message") | .message.content[]? | select(.type=="text") | .text' ~/.clawdbot/agents/<agentId>/sessions/<id>.jsonl | rg 'keyword'
```