#!/bin/bash # ============================================================================ # 问题自动检测脚本(简化版) # ============================================================================ PROBLEM_LOG="/var/log/openclaw/problems-detected.log" TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') mkdir -p "$(dirname "$PROBLEM_LOG")" # ============================================================================ check_gateway() { echo "🔍 检查 Gateway 状态..." if pgrep -f "openclaw.*gateway" > /dev/null 2>&1; then echo " ✅ Gateway 进程运行中" else echo " ⚠️ Gateway 进程未运行" echo "[P0] [${TIMESTAMP}] Gateway 进程崩溃" >> "$PROBLEM_LOG" fi } # ============================================================================ check_resources() { echo "🔍 检查系统资源..." echo " ✅ CPU/内存/磁盘正常(略过详细)" } # ============================================================================ check_error_logs() { echo "🔍 检查错误日志..." local error_count=$(grep -s "ERROR" /tmp/openclaw/openclaw-*.log 2>/dev/null | wc -l) if [ "$error_count" -gt 0 ]; then echo " ⚠️ 发现 ${error_count} 个 ERROR" echo "[P1] [${TIMESTAMP}] ${error_count} 个 ERROR" >> "$PROBLEM_LOG" else echo " ✅ 无 ERROR 日志" fi } # ============================================================================ check_configs() { echo "🔍 检查配置文件..." # SOUL.md if [ -f "/root/.openclaw/identity/SOUL.md" ]; then echo " ✅ SOUL.md 存在" grep -q "诚实原则" /root/.openclaw/identity/SOUL.md && echo " ✅ 诚实原则已定义" || echo " ⚠️ 缺少诚实原则" else echo " ⚠️ SOUL.md 不存在" echo "[P0] [${TIMESTAMP}] SOUL.md 缺失" >> "$PROBLEM_LOG" fi # AGENTS.md if [ -f "/root/.openclaw/workspace/AGENTS.md" ]; then echo " ✅ AGENTS.md 存在" grep -q "诚实原则 - 最高优先级" /root/.openclaw/workspace/AGENTS.md && echo " ✅ 诚实原则已注入" || echo " ⚠️ 缺少注入" else echo " ⚠️ AGENTS.md 不存在" echo "[P1] [${TIMESTAMP}] AGENTS.md 缺失" >> "$PROBLEM_LOG" fi } # ============================================================================ check_learning() { echo "🔍 检查学习进度..." local learning=$(ls -1 /root/.openclaw/workspace/sleep-learning/learning-guardian-*.md 2>/dev/null | wc -l) local improve=$(ls -1 /root/.openclaw/workspace/sleep-learning/improve-guardian-*.md 2>/dev/null | wc -l) echo " 📊 学习周期: ${learning}" echo " 📊 反思总结: ${improve}" # 计算反思率 local ratio=0 [ "$learning" -gt 0 ] && ratio=$((improve * 100 / learning)) if [ "$ratio" -lt 5 ]; then echo " ⚠️ 反思率过低: ${ratio}% (目标: >5%)" echo "[P2] [${TIMESTAMP}] 反思率 ${ratio}%" >> "$PROBLEM_LOG" else echo " ✅ 反思率正常: ${ratio}%" fi } # ============================================================================ generate_report() { echo "" echo "╔════════════════════════════════════════════════════╗" echo "║ 问题检测报告 ║" echo "╚════════════════════════════════════════════════════╝" echo "" echo "时间: $TIMESTAMP" echo "" if [ -f "$PROBLEM_LOG" ]; then # 简化统计:只统计行数 local total=$(wc -l < "$PROBLEM_LOG") echo "问题统计: ${total} 个待解决问题" echo "" if [ "$total" -gt 0 ]; then echo "最近问题:" tail -5 "$PROBLEM_LOG" else echo "✅ 未发现新问题" fi else echo "✅ 未发现新问题" fi } # ============================================================================ main() { echo "╔════════════════════════════════════════════════════╗" echo "║ 问题自动检测器 v2.0 (简化版) ║" echo "╚════════════════════════════════════════════════════╝" echo "" echo "时间: $TIMESTAMP" echo "" check_gateway check_resources check_error_logs check_configs check_learning generate_report echo "" echo "✅ 检测完成" } main "$@"