openclaw-log-report について
openclaw-log-reportは、OpenClaw、Claude Code、Hermesのセッションログを構造化テレメトリートレースに変換してアップロードするスキルです。Agentセッションの分析向けに、時刻、入出力、トークン使用量を保持し、期間指定やプレビュー、ディレクトリ監視にも対応します。
主な機能
- 013種類のAgentセッションログ形式を自動判定
- 02時刻とトークン使用量を含むトレース作成
- 03cawコマンドの分類とエラー検出
- 04セッション内容の期間によるアップロード絞り込み
- 05プレビュー、調査、セッションディレクトリ監視
活用シーン
- 01Agentセッションを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
詳細
エージェントセッションログレポート
エージェントのセッションログを解析 → 構造化テレメトリに変換 → TelemetryAPI に送信します。
3 つのエージェントプラットフォームに対応しています(自動検出):
| プラットフォーム | 形式 | デフォルトパス |
|---|---|---|
| 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
各スパンには以下が含まれます:
- 元のタイムスタンプ — 実際の実行時間を反映したレイテンシ
- 入力/出力 — ユーザーメッセージ、アシスタントの応答、ツールの結果
- トークン使用量 — 生成ごとの入力/出力トークン数
- 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(2 時間前)、30m(30 分前)、1d(1 日前)、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 コマンドのカテゴリ
スクリプトは、caw CLI の 106 個のサブコマンドを以下のカテゴリに分類します:
| カテゴリ | 例 |
|---|---|
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と表示されたら、コマンドを再実行しないでください - 現在のセッションをアップロードすることは可能ですが、セッションへの書き込みがまだ続いている点に注意してください — アップロードではその時点のスナップショットが取得されます
pythonではなくpython3を使用してください — サーバーによっては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 にのみ送信されます。