الانتقال إلى المحتوى الرئيسي

حِزم Trajectory

يُعد التقاط Trajectory مسجل الطيران الخاص بـ OpenClaw لكل جلسة. فهو يسجل خطًا زمنيًا مهيكلًا لكل تشغيل وكيل، ثم يقوم الأمر /export-trajectory بحزم الجلسة الحالية في حزمة دعم منقحة. استخدمه عندما تحتاج إلى الإجابة عن أسئلة مثل:
  • ما هو prompt وsystem prompt والأدوات التي أُرسلت إلى النموذج؟
  • ما هي رسائل transcript واستدعاءات الأدوات التي أدت إلى هذه الإجابة؟
  • هل انتهت المهلة أو أُجهض التشغيل أو حدث له Compaction أو واجه خطأ من الموفّر؟
  • ما هو النموذج وPlugins وSkills وإعدادات بيئة التشغيل التي كانت مفعلة؟
  • ما هي بيانات الاستخدام وprompt-cache الوصفية التي أعادها الموفّر؟

البدء السريع

أرسل هذا في الجلسة النشطة:
/export-trajectory
الاسم المستعار:
/trajectory
يكتب OpenClaw الحزمة داخل مساحة العمل:
.openclaw/trajectory-exports/openclaw-trajectory-<session>-<timestamp>/
يمكنك اختيار اسم دليل إخراج نسبي:
/export-trajectory bug-1234
يتم resolve للمسار المخصص داخل .openclaw/trajectory-exports/. وتُرفض المسارات المطلقة ومسارات ~.

الوصول

يُعد تصدير Trajectory أمرًا خاصًا بالمالك. يجب أن يجتاز المرسل فحوصات تفويض الأوامر العادية وفحوصات المالك الخاصة بالقناة.

ما الذي يتم تسجيله

يكون التقاط Trajectory مفعّلًا افتراضيًا لتشغيلات وكلاء OpenClaw. تشمل أحداث بيئة التشغيل ما يلي:
  • session.started
  • trace.metadata
  • context.compiled
  • prompt.submitted
  • model.completed
  • trace.artifacts
  • session.ended
كما تتم إعادة بناء أحداث transcript من فرع الجلسة النشط:
  • رسائل المستخدم
  • رسائل المساعد
  • استدعاءات الأدوات
  • نتائج الأدوات
  • عمليات Compaction
  • تغييرات النماذج
  • التسميات وإدخالات الجلسة المخصصة
تُكتب الأحداث بصيغة JSON Lines مع علامة المخطط هذه:
{
  "traceSchema": "openclaw-trajectory",
  "schemaVersion": 1
}

ملفات الحزمة

قد تحتوي الحزمة المصدّرة على ما يلي:
الملفالمحتويات
manifest.jsonمخطط الحزمة، وملفات المصدر، وعدد الأحداث، وقائمة الملفات المُولَّدة
events.jsonlالخط الزمني المرتب لأحداث بيئة التشغيل وtranscript
session-branch.jsonفرع transcript النشط المنقح ورأس الجلسة
metadata.jsonإصدار OpenClaw، ونظام التشغيل/بيئة التشغيل، والنموذج، ولقطة التكوين، وPlugins، وSkills، وبيانات prompt الوصفية
artifacts.jsonالحالة النهائية، والأخطاء، والاستخدام، وprompt cache، وعدد عمليات Compaction، ونص المساعد، وبيانات الأدوات الوصفية
prompts.jsonprompts المرسلة وتفاصيل مختارة لبناء prompt
system-prompt.txtأحدث system prompt مُجمّع، عند التقاطه
tools.jsonتعريفات الأدوات المرسلة إلى النموذج، عند التقاطها
يسرد manifest.json الملفات الموجودة في تلك الحزمة. وتُحذف بعض الملفات عندما لا تكون الجلسة قد التقطت بيانات بيئة التشغيل المقابلة.

موقع الالتقاط

افتراضيًا، تُكتب أحداث Trajectory الخاصة ببيئة التشغيل بجانب ملف الجلسة:
<session>.trajectory.jsonl
كما يكتب OpenClaw أيضًا ملف مؤشر على أساس أفضل جهد بجانب الجلسة:
<session>.trajectory-path.json
اضبط OPENCLAW_TRAJECTORY_DIR لتخزين الملفات الجانبية الخاصة بـ Trajectory وقت التشغيل في دليل مخصص:
export OPENCLAW_TRAJECTORY_DIR=/var/lib/openclaw/trajectories
عند ضبط هذا المتغير، يكتب OpenClaw ملف JSONL واحدًا لكل معرّف جلسة في ذلك الدليل.

تعطيل الالتقاط

اضبط OPENCLAW_TRAJECTORY=0 قبل بدء OpenClaw:
export OPENCLAW_TRAJECTORY=0
يعطّل هذا التقاط Trajectory وقت التشغيل. ولا يزال بإمكان /export-trajectory تصدير فرع transcript، لكن الملفات الخاصة بوقت التشغيل فقط مثل السياق المُجمّع، وعناصر الموفّر، وبيانات prompt الوصفية قد تكون مفقودة.

الخصوصية والحدود

صُممت حِزم Trajectory لأغراض الدعم والتصحيح، لا للنشر العام. يقوم OpenClaw بتنقيح القيم الحساسة قبل كتابة ملفات التصدير:
  • بيانات الاعتماد والحقول ذات الحمولات المعروفة الشبيهة بالأسرار
  • بيانات الصور
  • مسارات الحالة المحلية
  • مسارات مساحة العمل، ويستبدلها بـ $WORKSPACE_DIR
  • مسارات الدليل الرئيسي، عند اكتشافها
كما يقيّد المصدّر حجم الإدخال:
  • ملفات sidecar وقت التشغيل: ‏50 MiB
  • ملفات الجلسة: ‏50 MiB
  • أحداث وقت التشغيل: ‏200,000
  • إجمالي الأحداث المصدّرة: ‏250,000
  • يتم اقتطاع أسطر أحداث وقت التشغيل الفردية فوق 256 KiB
راجع الحِزم قبل مشاركتها خارج فريقك. فالتنقيح قائم على أفضل جهد ولا يمكنه معرفة كل سر خاص بكل تطبيق.

استكشاف الأخطاء وإصلاحها

إذا لم يحتوي التصدير على أي أحداث وقت تشغيل:
  • تأكد من أن OpenClaw قد بدأ من دون OPENCLAW_TRAJECTORY=0
  • تحقق مما إذا كان OPENCLAW_TRAJECTORY_DIR يشير إلى دليل قابل للكتابة
  • شغّل رسالة أخرى في الجلسة، ثم صدّر مرة أخرى
  • افحص manifest.json لمعرفة runtimeEventCount
إذا رفض الأمر مسار الإخراج:
  • استخدم اسمًا نسبيًا مثل bug-1234
  • لا تمرر /tmp/... أو ~/...
  • أبقِ التصدير داخل .openclaw/trajectory-exports/
إذا فشل التصدير بسبب خطأ حجم، فهذا يعني أن الجلسة أو sidecar تجاوزا حدود الأمان الخاصة بالتصدير. ابدأ جلسة جديدة أو صدّر repro أصغر.