تجاوزات تصحيح أخطاء وقت التشغيل
يضبط/debug تجاوزات إعدادات خاصة بوقت التشغيل فقط (في الذاكرة، لا على القرص). تكون معطلة افتراضيًا؛ فعّلها باستخدام commands.debug: true.
/debug reset جميع التجاوزات ويعود إلى الإعدادات المخزنة على القرص.
إخراج تتبّع الجلسة
يعرض/trace أسطر التتبّع/تصحيح الأخطاء التي يملكها Plugin لجلسة واحدة دون تفعيل الوضع المطوّل بالكامل. استخدمه لتشخيص Plugin مثل ملخصات تصحيح أخطاء Active Memory؛ واستخدم /verbose لإخراج الحالة/الأدوات المعتاد.
تتبّع دورة حياة Plugin
اضبطOPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 للحصول على تفصيل مرحلة بمرحلة لبيانات Plugin الوصفية، والاكتشاف، والسجل، ونسخة وقت التشغيل، وتعديل الإعدادات، وأعمال التحديث. يُكتب الإخراج إلى stderr، لذلك يظل إخراج أوامر JSON قابلًا للتحليل.
node dist/entry.js ... بعد pnpm build؛ إذ يقيس pnpm openclaw ... أيضًا الحمل الإضافي لمشغّل المصدر.
تحليل بدء تشغيل CLI والأوامر
معايير أداء بدء التشغيل المضمّنة في المستودع:OPENCLAW_RUN_NODE_CPU_PROF_DIR:
.cpuprofile للأمر. استخدم هذا قبل إضافة أدوات قياس مؤقتة إلى شيفرة الأمر.
عند حدوث توقفات في بدء التشغيل تبدو ناتجة عن عمل متزامن لنظام الملفات أو محمّل الوحدات، أضف علامة تتبّع الإدخال/الإخراج المتزامن الخاصة بـ Node عبر مشغّل المصدر:
pnpm gateway:watch هذه العلامة معطلة افتراضيًا لعملية Gateway الفرعية المراقبة؛ اضبط OPENCLAW_TRACE_SYNC_IO=1 عندما تريد إخراج تتبّع الإدخال/الإخراج المتزامن في وضع المراقبة أيضًا.
وضع مراقبة Gateway
openclaw-gateway-watch-<profile> أو يعيد تشغيلها (مثل openclaw-gateway-watch-main)، مع إضافة لاحقة للمنفذ مثل openclaw-gateway-watch-dev-19001 فقط عندما يختلف OPENCLAW_GATEWAY_PORT عن المنفذ الافتراضي 18789. ويتصل بها تلقائيًا من الطرفيات التفاعلية؛ أما أصداف الأوامر غير التفاعلية وCI واستدعاءات تنفيذ الوكيل فتبقى منفصلة وتطبع تعليمات الاتصال بدلًا من ذلك:
--force الخاص بالمراقب المستمع الحالي، لكنه لا يعطّل خدمة خاضعة للإشراف. وإلا فقد تعيد خدمة launchd أو systemd أو Scheduled Task التشغيل وتحل محل Gateway المراقب.
وضع المقدمة دون tmux:
--benchmark قبل استدعاء Gateway ويكتب ملف V8 واحدًا بامتداد .cpuprofile لكل خروج لعملية Gateway فرعية ضمن .artifacts/gateway-watch-profiles/. أوقف Gateway المراقب أو أعد تشغيله لكتابة ملف التعريف الحالي، ثم افتحه باستخدام Chrome DevTools أو Speedscope:
--benchmark-dir <path>: اكتب ملفات التعريف في مكان آخر.--benchmark-no-force: تخطَّ تنظيف المنفذ الافتراضي باستخدام--forceوافشل فورًا إذا كان منفذ Gateway مستخدمًا بالفعل.
OPENCLAW_TRACE_SYNC_IO=1 مع --benchmark للحصول على كل من ملفات تعريف وحدة المعالجة المركزية وتتبّعات مكدس الإدخال/الإخراج المتزامن؛ وفي وضع قياس الأداء، تذهب كتل التتبّع هذه إلى gateway-watch-output.log ضمن دليل قياس الأداء (بعد تصفيتها من لوحة الطرفية)، بينما تظل سجلات Gateway العادية مرئية.
ينقل غلاف tmux محددات وقت التشغيل الشائعة غير السرية إلى اللوحة، بما فيها OPENCLAW_PROFILE وOPENCLAW_CONFIG_PATH وOPENCLAW_STATE_DIR وOPENCLAW_GATEWAY_PORT وOPENCLAW_SKIP_CHANNELS. ضع بيانات اعتماد المزوّد في ملف التعريف/الإعدادات المعتاد، أو استخدم وضع المقدمة الخام للأسرار المؤقتة لمرة واحدة.
إذا خرج Gateway المراقب أثناء بدء التشغيل، يشغّل المراقب openclaw doctor --fix --non-interactive مرة واحدة ويعيد تشغيل عملية Gateway الفرعية. اضبط OPENCLAW_GATEWAY_WATCH_AUTO_DOCTOR=0 لرؤية فشل بدء التشغيل الأصلي دون تمريرة الإصلاح الخاصة بالتطوير فقط.
تستخدم لوحة tmux المُدارة افتراضيًا سجلات Gateway ملوّنة؛ اضبط FORCE_COLOR=0 عند بدء pnpm gateway:watch لتعطيل إخراج ANSI.
يعيد المراقب التشغيل عند تغيير الملفات ذات الصلة بالبناء ضمن src/، وملفات مصدر الامتدادات، وبيانات package.json وopenclaw.plugin.json الوصفية للامتدادات، وtsconfig.json، وpackage.json، وtsdown.config.ts. تؤدي تغييرات البيانات الوصفية للامتدادات إلى إعادة تشغيل Gateway دون فرض إعادة بناء؛ بينما لا تزال تغييرات المصدر والإعدادات تعيد بناء dist أولًا.
أضف علامات CLI الخاصة بـ Gateway بعد gateway:watch وسيجري تمريرها في كل إعادة تشغيل. تؤدي إعادة تشغيل أمر المراقبة نفسه إلى إعادة إنشاء لوحة tmux المسماة؛ ويحافظ المراقب الخام على قفل لمراقب واحد، بحيث تُستبدل عمليات المراقبة الأصلية المكررة بدلًا من تراكمها.
ملف تعريف التطوير + Gateway التطوير (--dev)
علامتا --dev منفصلتان:
--devالعامة (ملف التعريف): تعزل الحالة ضمن~/.openclaw-devوتضبط منفذ Gateway افتراضيًا على19001(وتتحرك المنافذ المشتقة معه).gateway --dev: تطلب من Gateway إنشاء إعدادات افتراضية + مساحة عمل تلقائيًا عند فقدانهما (وتخطي التهيئة الأولية).
pnpm openclaw ....
ما يفعله هذا:
-
عزل ملف التعريف (
--devالعامة)OPENCLAW_PROFILE=devOPENCLAW_STATE_DIR=~/.openclaw-devOPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.jsonOPENCLAW_GATEWAY_PORT=19001(تتحرك منافذ المتصفح/لوحة الرسم وفقًا لذلك)
-
تهيئة التطوير الأولية (
gateway --dev)- يكتب إعدادات مصغّرة إذا كانت مفقودة (
gateway.mode=local، والربط بـ local loopback). - يضبط
agents.defaults.workspaceعلى مساحة عمل التطوير وagents.defaults.skipBootstrap=true. - ينشئ ملفات مساحة العمل الأولية إذا كانت مفقودة:
AGENTS.md، وSOUL.md، وTOOLS.md، وIDENTITY.md، وUSER.md. - الهوية الافتراضية: C3-PO (روبوت بروتوكول).
- يضبط
pnpm gateway:devأيضًاOPENCLAW_SKIP_CHANNELS=1لتخطي مزوّدي القنوات.
- يكتب إعدادات مصغّرة إذا كانت مفقودة (
--dev علامة ملف تعريف عامة وتستهلكها بعض المشغّلات. إذا احتجت إلى تحديدها صراحةً، فاستخدم صيغة متغير البيئة:--reset الإعدادات وبيانات الاعتماد والجلسات ومساحة عمل التطوير (تُنقل إلى سلة المهملات، ولا تُحذف)، ثم يعيد إنشاء إعداد التطوير الافتراضي.
تسجيل البث الخام
يمكن لـ OpenClaw تسجيل بث المساعد الخام قبل أي تصفية/تنسيق. وهذه أفضل طريقة لمعرفة ما إذا كان الاستدلال يصل على هيئة فروق نصية عادية (أو ككتل تفكير منفصلة). فعّله عبر CLI:~/.openclaw/logs/raw-stream.jsonl
ملاحظات السلامة
- قد تتضمن سجلات البث الخام المطالبات الكاملة، وإخراج الأدوات، وبيانات المستخدم.
- احتفظ بالسجلات محليًا واحذفها بعد تصحيح الأخطاء.
- إذا شاركت السجلات، فاحذف منها الأسرار ومعلومات التعريف الشخصية أولًا.
تصحيح الأخطاء في VSCode
خرائط المصدر مطلوبة لأن عملية البناء تُدخل تجزئة في أسماء الملفات المُنشأة. يستهدف ملفlaunch.json المضمّن خدمة Gateway:
- Rebuild and Debug Gateway - يحذف
/distويعيد البناء مع تفعيل تصحيح الأخطاء قبل بدء Gateway. - Debug Gateway - يصحح أخطاء بناء موجود دون المساس بـ
/dist.
الإعداد
- افتح Run and Debug (شريط النشاط، أو
Ctrl+Shift+D). - حدّد Rebuild and Debug Gateway واضغط Start Debugging.
- فعّل خرائط المصدر في طرفية:
- Linux/macOS:
export OUTPUT_SOURCE_MAPS=1 - Windows (PowerShell):
$env:OUTPUT_SOURCE_MAPS="1" - Windows (CMD):
set OUTPUT_SOURCE_MAPS=1
- Linux/macOS:
- أعد البناء:
pnpm clean:dist && pnpm build - حدّد Debug Gateway واضغط Start Debugging.
src/؛ ويربطها مصحح الأخطاء بملفات JavaScript المترجمة عبر خرائط المصدر.
ملاحظات
- يحذف Rebuild and Debug Gateway الدليل
/distويشغّل بناءpnpm buildكاملًا مع خرائط المصدر عند كل تشغيل. - يمكن بدء Debug Gateway وإيقافه دون التأثير في
/dist، لكنك تدير دورة البناء في طرفية منفصلة. - عدّل
argsفيlaunch.jsonلتصحيح أخطاء أوامر CLI الفرعية الأخرى. - لاستخدام CLI المبني لمهام أخرى (مثل
dashboard --no-openإذا أنشأت جلسة تصحيح الأخطاء رمز مصادقة جديدًا)، شغّله من طرفية أخرى:node ./openclaw.mjsأو باستخدام اسم مستعار مثلalias openclaw-build="node $(pwd)/openclaw.mjs".