跳转至

OpenClaw 日志位置与实用命令参考

创建日期:2026-05-07 最后更新:2026-05-07 用途:快速定位日志、脚本、查询命令,排查问题和日常运维


一、日志文件位置

1.1 核心日志 — 模型交互日志

文件 路径 说明
Session 文件 ~/.openclaw/agents/main/sessions/<session-id>.jsonl 会话完整记录(用户消息、工具调用、助手回复)
Trajectory 文件 ~/.openclaw/agents/main/sessions/<session-id>.trajectory.jsonl 模型调用详细轨迹(每次 prompt 和 response)
Checkpoint 文件 ~/.openclaw/agents/main/sessions/<session-id>.checkpoint.<hash>.jsonl 会话中间状态快照

Trajectory 文件包含的事件类型: - session.started — 会话开始(provider、modelId) - context.compiled — 编译后的上下文(system prompt、用户消息) - prompt.submitted发送给模型的完整 prompt - model.completed模型返回的完整 response(含 assistantTexts、usage) - trace.artifacts — 追踪产物 - session.ended — 会话结束

1.2 系统日志

文件 路径 说明
命令日志 ~/.openclaw/logs/commands.log 系统命令执行记录
配置审计日志 ~/.openclaw/logs/config-audit.jsonl 配置变更审计
配置健康检查 ~/.openclaw/logs/config-health.json 配置健康状态

1.3 定时任务日志

文件 路径 说明
Cron 执行日志 workspace/logs/cron-execution.log Cron 任务执行记录
Agent Cron 日志 workspace/logs/agent-cron.log 自动化任务调度日志
Heartbeat 执行日志 workspace/logs/heartbeat-execution.log Heartbeat 检查记录
飞书归档日志 workspace/logs/feishu-archive.log 飞书对话归档日志
艾宾浩斯复习日志 workspace/logs/ebbinghaus-cron.log 艾宾浩斯复习调度
艾宾浩斯复习详情 workspace/logs/ebbinghaus-review.log 复习内容详情
艾宾浩斯 Web 日志 workspace/logs/ebbinghaus-web.log Web 服务日志

1.4 Cron 运行记录

目录 路径 说明
Cron Runs ~/.openclaw/cron/runs/<run-id>.jsonl 每次 cron 执行的详细记录

1.5 浏览器日志

目录 路径 说明
浏览器数据 ~/.openclaw/browser/openclaw/user-data/Default/ Chromium 浏览器用户数据

1.6 Nginx 日志

文件 路径 说明
错误日志 /var/log/nginx/error.log Nginx 错误日志(需 root 权限)
访问日志 /var/log/nginx/access.log Nginx 访问日志(需 root 权限)

二、会话与状态文件

2.1 记忆文件

文件 路径 说明
长期记忆 workspace/MEMORY.md 长期记忆(跨会话持久化)
每日记忆 workspace/memory/YYYY-MM-DD.md 每日对话记录
Heartbeat 状态 workspace/memory/heartbeat-state.json Heartbeat 执行状态追踪

2.2 工作区文件

文件 路径 说明
灵魂文件 workspace/SOUL.md AI 人格定义
用户信息 workspace/USER.md 用户偏好信息
工具笔记 workspace/TOOLS.md 工具备忘
心跳任务 workspace/HEARTBEAT.md Heartbeat 任务清单
身份文件 workspace/IDENTITY.md AI 身份信息

三、实用脚本

3.1 自动化任务脚本

脚本 路径 说明
Agent Cron 调度 workspace/scripts/agent-cron-tasks.sh 统一调度所有定时任务
飞书归档 workspace/scripts/feishu-archive.py 飞书对话归档到知识库
获取飞书 Token workspace/scripts/get-feishu-app-token.py 获取/刷新飞书应用 Token
Cron 安装 workspace/scripts/install-cron.sh 安装 crontab 配置
自动记录 workspace/scripts/auto-record.sh 自动记录任务执行

3.2 艾宾浩斯复习脚本

脚本 路径 说明
艾宾浩斯调度 workspace/scripts/ebbinghaus-cron.sh 复习调度脚本

四、实用查询命令

4.1 查看模型交互日志

# 找到最新 session
LATEST=$(ls -t ~/.openclaw/agents/main/sessions/*.trajectory.jsonl | head -1)

# 查看统计信息(各事件类型数量)
python3 -c "
import json
with open('$LATEST') as f:
    types = {}
    for line in f:
        obj = json.loads(line.strip())
        t = obj.get('type', 'unknown')
        types[t] = types.get(t, 0) + 1
    for t, c in sorted(types.items(), key=lambda x: -x[1]):
        print(f'  {t}: {c}')
"

# 查看发送给模型的 prompt(用户消息)
grep '"prompt.submitted"' "$LATEST" | python3 -c "
import sys, json
for line in sys.stdin:
    obj = json.loads(line.strip())
    data = obj.get('data', {})
    print('User prompt:', data.get('prompt', 'N/A'))
    print('---')
"

# 查看模型返回结果
grep '"model.completed"' "$LATEST" | python3 -c "
import sys, json
for line in sys.stdin:
    obj = json.loads(line.strip())
    data = obj.get('data', {})
    texts = data.get('assistantTexts', [])
    usage = data.get('usage', {})
    print(f'Usage: input={usage.get(\"input\")}, output={usage.get(\"output\")}, total={usage.get(\"total\")}')
    for i, t in enumerate(texts):
        print(f'Reply {i}: {t[:200]}...' if len(t) > 200 else f'Reply {i}: {t}')
    print('---')
"

# 查看上下文编译结果(system prompt + 消息)
grep '"context.compiled"' "$LATEST" | python3 -c "
import sys, json
for line in sys.stdin:
    obj = json.loads(line.strip())
    data = obj.get('data', {})
    for k, v in data.items():
        if isinstance(v, str) and len(v) > 300:
            print(f'{k}: {v[:300]}...[total {len(v)} chars]')
        else:
            print(f'{k}: {v}')
    print('---')
"

4.2 查看 Heartbeat 执行记录

1
2
3
4
5
6
7
8
# 查看最近的 Heartbeat 执行记录
tail -20 logs/heartbeat-execution.log

# 查看 Heartbeat 状态
cat memory/heartbeat-state.json

# 查看 Git 提交历史
git log --oneline -- logs/heartbeat-execution.log

4.3 查看 Cron 执行记录

1
2
3
4
5
6
7
8
# 查看 Cron 执行日志
tail -30 logs/cron-execution.log

# 查看 Agent Cron 日志
tail -30 logs/agent-cron.log

# 查看特定日期的 cron 执行
grep "2026-05-07" logs/agent-cron.log

4.4 查看飞书归档日志

1
2
3
4
5
6
7
8
# 查看归档日志
tail -30 logs/feishu-archive.log

# 手动测试归档
python3 scripts/feishu-archive.py

# 测试指定日期归档
python3 scripts/feishu-archive.py 2026-05-07

4.5 查看服务状态

# 检查站点 HTTP 状态
curl -s -o /dev/null -w "%{http_code}" http://localhost/deployment/
curl -s -o /dev/null -w "%{http_code}" http://localhost/game/
curl -s -o /dev/null -w "%{http_code}" http://localhost/

# 检查 Nginx 状态
systemctl status nginx

# 检查 OpenClaw Gateway
openclaw gateway status

4.6 查看 Nginx 日志(需 root)

1
2
3
4
5
6
7
8
# 查看错误日志
sudo tail -50 /var/log/nginx/error.log

# 查看访问日志
sudo tail -50 /var/log/nginx/access.log

# 测试 Nginx 配置
sudo nginx -t

4.7 查看会话列表

1
2
3
4
5
6
7
8
# 列出所有 session 文件
ls -lt ~/.openclaw/agents/main/sessions/*.jsonl | head -20

# 查看特定 session 大小
wc -l ~/.openclaw/agents/main/sessions/*.jsonl

# 查看 trajectory 文件大小
du -sh ~/.openclaw/agents/main/sessions/*.trajectory.jsonl

4.8 OpenClaw 配置管理

# 查看当前配置
openclaw config get

# 查看配置 schema
openclaw config schema lookup tools.loopDetection

# 查看 Gateway 状态
openclaw gateway status

# 重启 Gateway
openclaw gateway restart

4.9 Git 操作

# 查看 Git 状态
git status

# 查看最近提交
git log --oneline -20

# 查看特定文件的提交历史
git log --oneline -- memory/2026-05-07.md

# 提交变更
git add -A
git commit -m "docs: 更新记录 YYYY-MM-DD"
git push

五、常见问题排查

5.1 模型重复输出问题

排查步骤: 1. 查看 trajectory 文件中的 prompt.submittedmodel.completed 事件 2. 检查 assistantTexts 是否有重复内容 3. 查看 usage 中的 token 用量是否异常 4. 检查 OpenClaw 日志中的 loop detection 警告

相关配置:

1
2
3
4
tools.loopDetection.enabled: true
tools.loopDetection.warningThreshold: 3
tools.loopDetection.criticalThreshold: 5
tools.loopDetection.globalCircuitBreakerThreshold: 8

5.2 权限问题(500 错误)

排查步骤: 1. 查看 Nginx 错误日志:sudo tail -50 /var/log/nginx/error.log 2. 检查目录权限:ls -la /home/admin/.openclaw/ 3. 检查 nginx 用户权限:ps aux | grep nginx 4. 测试文件访问:sudo -u nginx cat /path/to/file

修复:

1
2
3
# 修复目录权限
sudo chmod 755 /home/admin/.openclaw
sudo chmod -R 755 /home/admin/.openclaw/workspace/*/site/

5.3 飞书 Token 过期

排查步骤: 1. 查看归档日志:tail -30 logs/feishu-archive.log 2. 检查 Token 状态:cat scripts/feishu-app-token.json

修复:

python3 scripts/get-feishu-app-token.py --force

5.4 Cron 任务未执行

排查步骤: 1. 查看 crontab:crontab -l 2. 查看执行日志:tail -30 logs/cron-execution.log 3. 检查脚本权限:ls -la scripts/*.sh 4. 手动执行测试:./scripts/agent-cron-tasks.sh


六、目录结构概览

~/.openclaw/
├── agents/main/sessions/          # 会话文件(JSONL)
│   ├── <session-id>.jsonl         # 会话完整记录
│   ├── <session-id>.trajectory.jsonl  # 模型调用轨迹 ⭐
│   └── <session-id>.checkpoint.<hash>.jsonl  # 会话快照
├── cron/runs/                     # Cron 运行记录
│   └── <run-id>.jsonl
├── logs/                          # 系统日志
│   ├── commands.log
│   ├── config-audit.jsonl
│   └── config-health.json
├── browser/openclaw/user-data/    # 浏览器数据
└── workspace/                     # 工作区
    ├── MEMORY.md                  # 长期记忆
    ├── SOUL.md                    # 人格定义
    ├── HEARTBEAT.md               # 心跳任务
    ├── memory/                    # 每日记忆
    │   ├── YYYY-MM-DD.md
    │   └── heartbeat-state.json
    ├── logs/                      # 任务日志
    │   ├── cron-execution.log
    │   ├── agent-cron.log
    │   ├── heartbeat-execution.log
    │   ├── feishu-archive.log
    │   └── ebbinghaus-*.log
    ├── scripts/                   # 脚本
    │   ├── agent-cron-tasks.sh
    │   ├── feishu-archive.py
    │   ├── get-feishu-app-token.py
    │   ├── install-cron.sh
    │   └── auto-record.sh
    └── knowledge-base/            # 知识库

七、快捷命令速查

# === 快速查看最新会话 ===
LATEST=$(ls -t ~/.openclaw/agents/main/sessions/*.trajectory.jsonl | head -1)
echo "Latest session: $LATEST ($(wc -l < $LATEST) lines)"

# === 查看今天的记忆 ===
cat memory/$(date +%Y-%m-%d).md

# === 查看今天的 Heartbeat 记录 ===
grep "$(date +%Y-%m-%d)" logs/heartbeat-execution.log

# === 查看今天的 Cron 执行 ===
grep "$(date +%Y-%m-%d)" logs/agent-cron.log

# === 检查所有站点状态 ===
for site in deployment game; do
  code=$(curl -s -o /dev/null -w "%{http_code}" http://localhost/$site/)
  echo "$site: $code"
done

# === 查看最近 10 个 session 文件 ===
ls -lt ~/.openclaw/agents/main/sessions/*.jsonl | head -10

# === 查看 trajectory 事件统计 ===
python3 -c "
import json
LATEST='$(ls -t ~/.openclaw/agents/main/sessions/*.trajectory.jsonl | head -1)'
with open(LATEST) as f:
    types = {}
    for line in f:
        obj = json.loads(line.strip())
        t = obj.get('type', 'unknown')
        types[t] = types.get(t, 0) + 1
    for t, c in sorted(types.items(), key=lambda x: -x[1]):
        print(f'  {t}: {c}')
"

本文档由 AI 助手创建,用于快速查阅日志位置和操作命令。 如有新增日志或脚本,请及时更新本文档。