مساعدات لتصحيح أخطاء خرج البث، خصوصًا عندما يمزج مزوّد الاستدلال داخل النص العادي.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
تجاوزات تصحيح أخطاء وقت التشغيل
استخدم/debug في الدردشة لضبط تجاوزات إعدادات وقت التشغيل فقط (في الذاكرة، وليس على القرص).
يكون /debug معطّلًا افتراضيًا؛ فعّله باستخدام commands.debug: true.
هذا مفيد عندما تحتاج إلى تبديل إعدادات غير شائعة دون تعديل openclaw.json.
أمثلة:
/debug reset كل التجاوزات ويعود إلى الإعدادات الموجودة على القرص.
خرج تتبّع الجلسة
استخدم/trace عندما تريد رؤية أسطر التتبّع/تصحيح الأخطاء المملوكة من Plugin في جلسة واحدة
دون تشغيل وضع الإسهاب الكامل.
أمثلة:
/trace لتشخيصات Plugin مثل ملخصات تصحيح أخطاء Active Memory.
واصل استخدام /verbose لخرج الحالة/الأدوات التفصيلي العادي، وواصل استخدام
/debug لتجاوزات إعدادات وقت التشغيل فقط.
تتبّع دورة حياة Plugin
استخدمOPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 عندما تبدو أوامر دورة حياة Plugin بطيئة
وتحتاج إلى تفصيل مراحل مدمج لبيانات Plugin الوصفية، والاكتشاف، والسجل،
ومرآة وقت التشغيل، وتعديل الإعدادات، وأعمال التحديث. التتبّع اختياري ويكتب
إلى stderr، لذلك يبقى خرج أوامر JSON قابلًا للتحليل.
مثال:
node dist/entry.js ... بعد pnpm build؛ كما أن pnpm openclaw ...
يقيس أيضًا كلفة مشغّل المصدر.
بدء CLI وتحليل أداء الأوامر
استخدم معيار قياس بدء التشغيل المضمّن عندما يبدو أمر ما بطيئًا:OPENCLAW_RUN_NODE_CPU_PROF_DIR:
.cpuprofile للأمر.
استخدم هذا قبل إضافة أدوات قياس مؤقتة إلى كود الأوامر.
لحالات توقف بدء التشغيل التي تبدو مثل عمل متزامن على نظام الملفات أو محمّل الوحدات،
أضف علم تتبّع I/O المتزامن في Node عبر مشغّل المصدر:
pnpm gateway:watch هذا العلم معطّلًا افتراضيًا لعملية Gateway الفرعية المراقبة.
اضبط OPENCLAW_TRACE_SYNC_IO=1 عندما تريد صراحةً خرج تتبّع I/O المتزامن في Node
ضمن وضع المراقبة.
وضع مراقبة Gateway
للتكرار السريع، شغّل Gateway تحت مراقب الملفات:openclaw-gateway-watch-main أو يعيد تشغيلها (أو متغيرًا خاصًا بالملف/المنفذ مثل
openclaw-gateway-watch-dev-19001) ويلتحق تلقائيًا من الطرفيات التفاعلية.
تبقى الأصداف غير التفاعلية، وCI، واستدعاءات تنفيذ الوكيل منفصلة وتطبع
تعليمات الالتحاق بدلًا من ذلك. التحق يدويًا عند الحاجة:
--benchmark قبل استدعاء Gateway ويكتب
ملف V8 .cpuprofile واحدًا لكل خروج لعملية Gateway فرعية تحت
.artifacts/gateway-watch-profiles/. أوقف Gateway المراقبة أو أعد تشغيلها
لتفريغ الملف الحالي، ثم افتحه باستخدام Chrome DevTools أو Speedscope:
--benchmark-dir <path> عندما تريد الملفات في مكان آخر.
استخدم --benchmark-no-force عندما تريد من العملية الفرعية المقاسة تخطي
تنظيف المنفذ الافتراضي --force والفشل بسرعة إذا كان منفذ Gateway مستخدمًا بالفعل.
يكتم وضع القياس افتراضيًا رسائل تتبّع I/O المتزامن المزعجة. اضبط
OPENCLAW_TRACE_SYNC_IO=1 مع --benchmark عندما تريد صراحةً كلًا من ملفات
أداء CPU وتتبع مكدس I/O المتزامن في Node. في وضع القياس، تُكتب كتل التتبّع هذه
إلى 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 دون فرض إعادة بناء tsdown؛ أما تغييرات المصدر والإعدادات فما زالت
تعيد بناء dist أولًا.
أضف أي أعلام CLI خاصة بـ Gateway بعد gateway:watch وسيتم تمريرها عند
كل إعادة تشغيل. إعادة تشغيل أمر المراقبة نفسه تعيد توليد جزء tmux المسمّى، وما زال
المراقب الخام يحتفظ بقفل المراقب الواحد بحيث تُستبدل عمليات المراقبة الأصلية المكررة
بدلًا من تراكمها.
ملف التطوير + Gateway التطوير (--dev)
استخدم ملف التطوير لعزل الحالة وتشغيل إعداد آمن قابل للتخلص منه لأغراض
تصحيح الأخطاء. توجد علامتا --dev اثنتان:
--devالعامة (الملف): تعزل الحالة تحت~/.openclaw-devوتضبط منفذ Gateway افتراضيًا إلى19001(وتتحرك المنافذ المشتقة معه).gateway --dev: تخبر Gateway بإنشاء إعداد افتراضي + مساحة عمل تلقائيًا عند غيابهما (وتخطي BOOTSTRAP.md).
pnpm openclaw ....
ما يفعله هذا:
-
عزل الملف (
--devالعامة)OPENCLAW_PROFILE=devOPENCLAW_STATE_DIR=~/.openclaw-devOPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.jsonOPENCLAW_GATEWAY_PORT=19001(يتغير المتصفح/اللوحة وفقًا لذلك)
-
تمهيد التطوير (
gateway --dev)- يكتب إعدادًا أدنى إذا كان مفقودًا (
gateway.mode=local، ربط loopback). - يضبط
agent.workspaceإلى مساحة عمل التطوير. - يضبط
agent.skipBootstrap=true(لا يوجد BOOTSTRAP.md). - يزرع ملفات مساحة العمل إذا كانت مفقودة:
AGENTS.md،SOUL.md،TOOLS.md،IDENTITY.md،USER.md،HEARTBEAT.md. - الهوية الافتراضية: C3-PO (روبوت بروتوكول).
- يتخطى مزوّدي القنوات في وضع التطوير (
OPENCLAW_SKIP_CHANNELS=1).
- يكتب إعدادًا أدنى إذا كان مفقودًا (
--dev هو علم ملف عام وتلتهمه بعض المشغّلات. إذا احتجت إلى كتابته صراحةً، فاستخدم صيغة متغير البيئة:--reset الإعدادات، والاعتمادات، والجلسات، ومساحة عمل التطوير (باستخدام
trash، وليس rm)، ثم يعيد إنشاء إعداد التطوير الافتراضي.
تسجيل البث الخام (OpenClaw)
يمكن لـ OpenClaw تسجيل بث المساعد الخام قبل أي ترشيح/تنسيق. هذه أفضل طريقة لمعرفة ما إذا كان الاستدلال يصل كتغييرات نصية عادية (أو ككتل تفكير منفصلة). فعّله عبر CLI:~/.openclaw/logs/raw-stream.jsonl
تسجيل الأجزاء الخام (pi-mono)
لالتقاط أجزاء OpenAI-compat الخام قبل تحليلها إلى كتل، يوفر pi-mono مسجّلًا منفصلًا:~/.pi-mono/logs/raw-openai-completions.jsonl
ملاحظة: لا يصدر هذا إلا من العمليات التي تستخدم مزوّد pi-mono
openai-completions.
ملاحظات السلامة
- يمكن أن تتضمن سجلات البث الخام المطالبات الكاملة، وخرج الأدوات، وبيانات المستخدم.
- أبقِ السجلات محلية واحذفها بعد تصحيح الأخطاء.
- إذا شاركت السجلات، فاحذف الأسرار ومعلومات التعريف الشخصية أولًا.
تصحيح الأخطاء في VSCode
خرائط المصدر مطلوبة لتمكين تصحيح الأخطاء في بيئات IDE المبنية على VSCode لأن كثيرًا من الملفات المولّدة ينتهي بها الأمر بأسماء مجزأة كجزء من عملية البناء. تستهدف إعداداتlaunch.json المضمّنة خدمة Gateway، لكن يمكن تكييفها بسرعة لأغراض أخرى:
- إعادة بناء Gateway وتصحيحها - يصحح خدمة Gateway بعد إنشاء بناء جديد
- تصحيح Gateway - يصحح خدمة Gateway من بناء موجود مسبقًا
الإعداد
إعداد إعادة بناء Gateway وتصحيحها الافتراضي مكتمل، وسيحذف مجلد/dist تلقائيًا ويعيد بناء المشروع مع تفعيل تصحيح الأخطاء:
- افتح لوحة التشغيل وتصحيح الأخطاء من شريط النشاط أو اضغط
Ctrl+Shift+D - في IDE، تأكد من تحديد إعادة بناء Gateway وتصحيحها في قائمة الإعدادات المنسدلة ثم اضغط زر بدء تصحيح الأخطاء
- افتح طرفية وفعّل خرائط المصدر:
- 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 - في IDE، حدد خيار تصحيح Gateway من قائمة إعدادات التشغيل وتصحيح الأخطاء المنسدلة ثم اضغط زر بدء تصحيح الأخطاء
src/) وسيقوم المصحح بربط نقاط التوقف بشكل صحيح مع JavaScript المجمّع عبر خرائط المصدر. ستتمكن من فحص المتغيرات، والتنقل خطوة بخطوة عبر الكود، وفحص مكدسات الاستدعاء كما هو متوقع.
ملاحظات
- عند استخدام خيار “إعادة بناء Gateway وتصحيحها” - في كل مرة يُشغَّل فيها المصحح سيحذف مجلد
/distبالكامل ويشغّلpnpm buildكاملًا مع تفعيل خرائط المصدر قبل بدء Gateway - عند استخدام خيار “تصحيح Gateway” - يمكن بدء جلسات التصحيح وإيقافها في أي وقت دون التأثير على مجلد
/dist، لكن يجب استخدام عملية طرفية منفصلة لكل من تفعيل التصحيح وإدارة دورة البناء - عدّل إعدادات
launch.jsonلـargsلتصحيح أقسام أخرى من المشروع - إذا احتجت إلى استخدام OpenClaw CLI المبني لمهام أخرى (أي
dashboard --no-openإذا أنشأت جلسة التصحيح رمز مصادقة جديدًا)، فيمكنك تنفيذه في طرفية أخرى كـnode ./openclaw.mjsأو إنشاء اسم مستعار للصدفة مثلalias openclaw-build="node $(pwd)/openclaw.mjs"