134 lines
4.8 KiB
Bash
Executable File
134 lines
4.8 KiB
Bash
Executable File
#!/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 "$@"
|