التصحيح 🐞
أدوات وتقنيات لتصحيح مشاكل OpenClaw.
🔍 أدوات التصحيح الأساسية
openclaw logs— عرض سجلات Gatewayopenclaw status— التحقق من حالة النظامopenclaw health— فحص صحة الخدمةopenclaw doctor— تشخيص تلقائي
مستويات السجل
تكوين مستوى السجل
# في .env
LOG_LEVEL=debug # debug, info, warn, error
# أو عبر CLI
openclaw gateway --log-level debug
# أو في openclaw.json
{
"logging": {
"level": "debug"
}
}debug: سجلات مفصلة جداً، للتطوير فقط
info: معلومات عامة، افتراضي
warn: تحذيرات فقط
error: أخطاء فقط
عرض السجلات
سجلات Gateway
# عرض آخر 50 سطراً
openclaw logs --tail 50
# متابعة السجلات المباشرة
openclaw logs --follow
# تصفية حسب المستوى
openclaw logs --level error
# تصفية حسب الوحدة
openclaw logs --module gateway
openclaw logs --module whatsappسجلات القنوات
# سجلات قناة معينة
openclaw channels logs whatsapp
openclaw channels logs telegram
# مع متابعة مباشرة
openclaw channels logs whatsapp --followملفات السجل
تُحفظ السجلات في:
- macOS/Linux:
/tmp/openclaw/gateway.log - Windows:
%TEMP%\openclaw\gateway.log
# عرض ملف السجل مباشرة
tail -f /tmp/openclaw/gateway.log
# البحث في السجلات
grep "ERROR" /tmp/openclaw/gateway.log
# عرض آخر 100 سطر
tail -n 100 /tmp/openclaw/gateway.logوضع التطوير
تشغيل Gateway في وضع التطوير
# من المستودع
cd openclaw
pnpm install
pnpm gateway:watch # إعادة التحميل التلقائي
# مع تصحيح إضافي
DEBUG=* pnpm gateway:watch
# أو استخدم Node inspector
node --inspect openclaw.mjs gatewayاستخدام Node Debugger
# بدء مع debugger
node --inspect-brk openclaw.mjs gateway
# ثم افتح في Chrome:
# chrome://inspect💡 نصيحة: VS Code Debugging
أضف إلى .vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug Gateway",
"program": "${workspaceFolder}/openclaw.mjs",
"args": ["gateway", "--verbose"],
"console": "integratedTerminal"
}
]
}تشخيص المشاكل
Gateway لا يبدأ
# تحقق من المنافذ
lsof -i :18789 # macOS/Linux
netstat -ano | findstr :18789 # Windows
# تحقق من الصلاحيات
ls -la ~/.openclaw/
# تحقق من التكوين
openclaw doctor
# تحقق من إصدار Node
node --version # يجب أن يكون >= 22القناة لا تتصل
# تحقق من حالة القناة
openclaw channels status
# تحقق من السجلات
openclaw channels logs whatsapp
# اختبر الاتصال
openclaw channels test whatsapp
# أعد تسجيل الدخول
openclaw channels logout whatsapp
openclaw channels login whatsappAgent لا يستجيب
# تحقق من مفاتيح API
openclaw models scan
# تحقق من الجلسات
openclaw sessions list
# اختبر Agent مباشرة
openclaw agent "مرحباً"
# تحقق من السياق
ls -la ~/.openclaw/workspace/مراقبة الأداء
استخدام الذاكرة
# عرض استخدام الذاكرة
node --expose-gc openclaw.mjs gateway
# في كود Node.js
console.log(process.memoryUsage());
# مراقبة بـ htop/top
htopاستخدام CPU
# Profile CPU
node --prof openclaw.mjs gateway
# اترك يعمل ثم Ctrl+C
node --prof-process isolate-*.log > processed.txt
# باستخدام clinic.js
npm install -g clinic
clinic doctor -- node openclaw.mjs gatewayتتبع الأخطاء
تفعيل Stack Traces مفصلة
# في .env
NODE_OPTIONS="--trace-warnings --trace-deprecation"
# عرض async stack traces
NODE_OPTIONS="--async-stack-traces"التقاط الأخطاء غير المُعالجة
# في الكود
process.on('unhandledRejection', (reason, promise) => {
console.error('Unhandled Rejection:', reason);
});
process.on('uncaughtException', (error) => {
console.error('Uncaught Exception:', error);
process.exit(1);
});أدوات التصحيح المتقدمة
Network Debugging
# تتبع HTTP requests
DEBUG=axios openclaw gateway
# استخدم mitmproxy لتحليل traffic
mitmproxy --port 8080
# ثم قم بتكوين HTTP_PROXY=http://localhost:8080Database Debugging
# عرض بيانات الجلسة
cat ~/.openclaw/agents/main/sessions/*/session.json | jq .
# تحليل حجم الجلسات
du -sh ~/.openclaw/agents/main/sessions/*⚠️ أمان التصحيح
- لا تقم بتسجيل الأسرار في production
- استخدم
LOG_LEVEL=errorفي production - قم بإزالة breakpoints قبل النشر
- أوقف تشغيل DEBUG flags في production
قائمة التحقق من التصحيح
- ✓ تحقق من
openclaw health - ✓ راجع
openclaw logs - ✓ قم بتشغيل
openclaw doctor - ✓ تحقق من المتغيرات البيئية
- ✓ تحقق من التكوين في
openclaw.json - ✓ تحقق من إصدار Node.js
- ✓ اختبر الاتصال بـ API
- ✓ راجع ملفات السجل
- ✓ ابحث في Issues الموجودة
- ✓ قم بإنشاء تقرير خطأ مفصل