关于 openclaw-log-report
openclaw-log-report 是将 OpenClaw、Claude Code 和 Hermes 会话日志转换为结构化遥测追踪并上传的技能,面向需要分析 Agent 会话运行情况的团队。它保留时间、输入输出和令牌用量,并支持按时间范围筛选、预览和持续监控。
主要功能
- 01自动识别三种 Agent 会话日志格式
- 02生成包含时间与令牌用量的追踪
- 03分类 caw 命令并检测错误
- 04按会话内容时间范围筛选上传
- 05支持预览、调试与目录监控
适用场景
- 01将 Agent 会话上传到 TelemetryAPI
- 02仅上传指定时间范围内的会话轮次
- 03上传前检查追踪结构与延迟
- 04监控会话目录并自动上传新日志
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ junlincobo/ openclaw-log-report --skill openclaw-log-report安装后在 Claude Code 中输入/openclaw-log-report确认已加载。
附带文件scripts/otel_report.py
详细介绍
Agent 会话日志报告
解析 Agent 会话日志 → 结构化遥测数据 → TelemetryAPI。
支持三个 Agent 平台(自动检测):
| 平台 | 格式 | 默认路径 |
|---|---|---|
| OpenClaw | JSONL | ~/.openclaw/agents/main/sessions/*.jsonl |
| Claude Code | JSONL | ~/.claude/projects/*/*.jsonl |
| Hermes | JSON | ~/.hermes/sessions/session_*.json |
功能
读取会话日志文件,并将其作为结构化跟踪上传:
Trace
└── session:<id> ← root span (full session)
├── turn:0 ← user message + agent response
│ ├── OpenAI-generation ← LLM call (model, tokens, latency)
│ ├── skill_install:exec ← tool call
│ ├── OpenAI-generation
│ ├── caw.onboard ← caw CLI command
│ └── OpenAI-generation
├── turn:1
│ ├── OpenAI-generation
│ ├── caw.wallet.balance
│ └── ...
└── turn:N
每个跨度都包含:
- 原始时间戳 — 延迟反映实际执行时间
- 输入/输出 — 用户消息、助手回复、工具结果
- Token 用量 — 每次生成的输入/输出 Token 数量
- caw 命令分类 — 涵盖 15 个类别的 106 条命令
- 错误检测 — 失败的命令、策略拒绝、进程轮询错误
前置条件
- 已安装并完成引导配置的 caw — 脚本从
~/.cobo-agentic-wallet/读取 API 密钥 - 后端遥测端点可用 —
POST /api/v1/telemetry/session - 会话文件 — 会话目录中的
.jsonl(OpenClaw/Claude Code)或.json(Hermes)文件
用法
上传会话
# OpenClaw / Claude Code (.jsonl)
python scripts/otel_report.py <session.jsonl>
# Hermes (.json)
python scripts/otel_report.py <session_YYYYMMDD_HHMMSS_xxxx.json>
脚本会自动从 caw 配置中检测 API URL 和密钥。可使用环境变量覆盖:
AGENT_WALLET_API_URL=https://api-core.agenticwallet.sandbox.cobo.com \
python scripts/otel_report.py session.jsonl
上传多个会话
# Multiple files
python scripts/otel_report.py a.jsonl b.jsonl c.jsonl
# Glob pattern
python scripts/otel_report.py ~/.openclaw/agents/main/sessions/*.jsonl
按时间范围上传
按会话内容时间筛选(而非文件修改时间)。会同时应用会话选择和轮次级筛选 — 仅上传时间范围内的轮次。
# Last 2 hours — only uploads turns from the last 2h
python scripts/otel_report.py --since 2h
# Last 1 day
python scripts/otel_report.py --since 1d
# Specific time range (UTC+8)
python scripts/otel_report.py --since 2026-04-05T10:00 --until 2026-04-05T18:00
# A full day
python scripts/otel_report.py --since 2026-04-05 --until 2026-04-06
# Filter a specific file — only turns in range are included
python scripts/otel_report.py --since 8h ~/Downloads/session.jsonl
# Custom sessions directory + time range
python scripts/otel_report.py --since 2h /path/to/sessions/
支持的时间格式:2h(小时前)、30m(分钟前)、1d(天前)、2026-04-05、2026-04-05T10:00
试运行(预览但不上传)
python scripts/otel_report.py --dry-run session.jsonl
显示带时间戳和延迟的跨度树结构。
转储 JSON(调试)
python scripts/otel_report.py --dump session.jsonl
打印第一个轮次的完整 JSON 负载,以供检查。
监视模式(持续运行)
python scripts/otel_report.py --watch [sessions_dir]
监视目录中的新会话文件并自动上传。
上传最新会话
python scripts/otel_report.py
不带参数时,会从默认路径(~/.openclaw/.../sessions/ 和 ~/.hermes/sessions/)上传最新的会话文件。
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
AGENT_WALLET_API_URL | https://api-core.agenticwallet.sandbox.cobo.com | 后端 API URL |
USER_ID | 根据会话消息自动检测 | 遥测数据的用户标识符 |
环境:
| 环境 | URL |
|---|---|
| Sandbox | https://api-core.agenticwallet.sandbox.cobo.com(默认) |
| Dev | https://api-core.agenticwallet.dev.cobo.com |
# Upload to dev environment
AGENT_WALLET_API_URL=https://api-core.agenticwallet.dev.cobo.com \
python scripts/otel_report.py session.jsonl
caw 命令类别
脚本将 106 条 caw CLI 子命令分类到以下类别:
| 类别 | 示例 |
|---|---|
onboarding | onboard、onboard bootstrap、onboard self-test |
transaction | tx transfer、tx call、tx sign-message、tx speedup |
query | wallet balance、tx list、tx records、address list、status |
auth | pending approve/reject、pact submit/status、policy create |
wallet | wallet use/rename/archive/claim、address create |
agent | agent status、agent api-key |
ap2 | ap2 purchase/cancel/search、ap2 shipping |
node | node start/stop/status/health |
meta | meta chains/tokens/prices、version、health、schema |
util | util abi encode/decode、util base64、fetch |
dev | faucet deposit/tokens、demo |
audit | audit logs |
monitor | track |
跟踪维度
| 维度 | 值 | 来源 |
|---|---|---|
| 跟踪名称 | script_{user}@{hostname}_{MMDDHHmm} | 用户 + 主机名 + 时间戳(UTC+8) |
| 会话 ID | 会话 UUID 或 Hermes 会话 ID | 会话文件 |
| 用户 ID | Telegram sender_id 或 "unknown" | 第一条用户消息 |
| 标签 | [skill_name, "openclaw", provider, "upload:YYYYMMDD"] | 会话元数据 + 上传日期 |
约束
- 不要修改此脚本——将其视为只读工具
- 不要修改已上传的追踪记录
- 成功后不要重试——如果上传显示
Status: OK,请勿重新运行命令 - 允许上传当前会话,但请注意,会话仍在写入——上传会捕获当时的快照
- 使用
python3,不要使用python——有些服务器上只有python3 - 会话文件为只读;切勿写入
~/.openclaw/或~/.hermes/
安全说明
安装时 npx skills 可能会显示 Socket / Snyk 安全警告;这些是脚本正常运行所需的:
| 告警 | 原因 |
|---|---|
| 网络请求 | 脚本通过 urllib.request 向 TelemetryAPI 发送 POST 请求 |
| 文件读取 | 读取 ~/.openclaw/、~/.hermes/、~/.claude/ 下的会话日志文件 |
| 凭证访问 | 从 ~/.cobo-agentic-wallet/ 读取 caw API key 用于身份验证 |
| 主机信息 | 通过 socket.gethostname() 获取机器名并写入 metadata |
脚本不包含任何恶意代码;所有网络请求仅发送至配置的 AGENT_WALLET_API_URL。
评论
支持 Markdown