# Pi Log Analyzer

> Pi Agent 日志分析工具，用于分析 .log/ 目录下的结构化 JSONL 日志。支持按时间/角色/模块/模型多维分析，识别警告模式，生成可视化报告。当用户提到"分析日志"、"查看日志"、"日志统计"、"log分析"、"最近活动"、"模型使用"、"会话分析"时使用此技能。

- Skill: `dwsy/pi-log-analyzer` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add dwsy/pi-log-analyzer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dwsy/pi-log-analyzer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: Dwsy (https://skillmd.com/u/dwsy)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/dwsy/pi-log-analyzer

---


# Pi Log Analyzer

分析 Pi Agent 的结构化日志（`.log/*.jsonl`），提供多维度统计和问题诊断。

## 日志格式

日志为 JSONL 格式，每行一个 JSON 对象：

```json
{
  "schema": "2.0.0",
  "timestamp": "2026-05-07T00:46:30.942Z",
  "level": "info|warn|error",
  "tag": "auto-extract|checkpoint|vector|...",
  "message": "日志消息",
  "context": {
    "role": "default|bw|psm|jly|zero",
    "sessionId": "uuid",
    "cwd": "/path",
    "pid": 12345
  },
  "meta": {
    "model": "provider/model-name",
    "duration_ms": 1234,
    ...
  },
  "traceId": "tr-xxx"
}
```

## 快速分析

### 基础统计

运行内置分析脚本：

```bash
python3 ~/.pi/agent/skills/pi-log-analyzer/scripts/analyze.py [目录路径] [天数]
```

参数：
- `目录路径`：日志目录，默认 `.log/`
- `天数`：分析最近 N 天，默认 3

示例：
```bash
# 分析最近 3 天
python3 ~/.pi/agent/skills/pi-log-analyzer/scripts/analyze.py

# 分析最近 7 天
python3 ~/.pi/agent/skills/pi-log-analyzer/scripts/analyze.py .log/ 7

# 分析指定目录
python3 ~/.pi/agent/skills/pi-log-analyzer/scripts/analyze.py /path/to/logs 5
```

### 输出内容

脚本生成以下分析：

1. **概览统计**：日志条数、会话数、时间跨度
2. **级别分布**：info/warn/error 数量和占比
3. **模块活跃度**：各 tag 出现频率
4. **角色活动**：各角色的日志量
5. **模型使用**：调用的模型及次数
6. **时间分布**：每小时活跃度热力图
7. **警告详情**：warn/error 的具体内容和模式

## 手动分析

如需更细致的分析，可用 Python 读取日志：

```python
import json
from collections import Counter

with open('.log/2026-05-09.jsonl') as f:
    for line in f:
        d = json.loads(line)
        # 访问字段：d['level'], d['tag'], d['meta']['model'], etc.
```

## 常见标签（tag）含义

| 标签 | 含义 |
|------|------|
| `auto-extract` | 自动记忆提取 |
| `checkpoint` | 定时保存点 |
| `daily-memory` | 每日记忆写入 |
| `vector` | 向量索引操作 |
| `pending` | 待处理项 |
| `repair` | 记忆修复 |
| `embedding` | 嵌入生成 |
| `knowledge` | 知识库操作 |

## 常见问题诊断

### auto-extract parse failed

**原因**：LLM 返回的记忆提取结果格式不符合预期

**典型模式**：
- 返回推理过程而非 JSON
- JSON 被截断
- 包含 `<think>` 标签

**建议**：
- 检查模型是否支持结构化输出
- 优先使用 DeepSeek V4 Flash（失败率最低）

### 模型调用失败

检查 `meta.model` 字段确认使用的模型，对比 `models.json` 配置。

## 使用场景

1. **日常巡检**：快速查看最近活动是否正常
2. **问题排查**：定位警告/错误的根因
3. **性能分析**：识别高负载时段和模块
4. **模型评估**：统计各模型使用量和成功率
5. **容量规划**：基于会话数和日志量预估资源

