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

openclaw cron

إدارة مهام cron لجدولة Gateway. ذو صلة: نصيحة: شغّل openclaw cron --help للحصول على سطح الأوامر الكامل. ملاحظة: تستخدم مهام cron add المعزولة التسليم عبر --announce افتراضيًا. استخدم --no-deliver للإبقاء على المخرجات داخلية. لا يزال --deliver متاحًا كاسم مستعار متروك لـ --announce. ملاحظة: تتوقع العمليات المعزولة المملوكة لـ cron ملخصًا بنص عادي، ويتولى المشغّل مسار الإرسال النهائي. يُبقي --no-deliver التشغيل داخليًا؛ ولا يعيد التسليم إلى أداة رسائل الوكيل. ملاحظة: تُحذف المهام ذات التشغيل الواحد (--at) بعد النجاح افتراضيًا. استخدم --keep-after-run للاحتفاظ بها. ملاحظة: يدعم --session القيم main وisolated وcurrent وsession:<id>. استخدم current للربط بالجلسة النشطة وقت الإنشاء، أو session:<id> من أجل مفتاح جلسة صريح ودائم. ملاحظة: بالنسبة إلى مهام CLI ذات التشغيل الواحد، تُعامل تواريخ --at التي لا تحتوي على إزاحة زمنية على أنها UTC ما لم تمرر أيضًا --tz <iana>، والذي يفسر ذلك الوقت المحلي في المنطقة الزمنية المحددة. ملاحظة: تستخدم المهام المتكررة الآن تراجع إعادة محاولة أسيًا بعد الأخطاء المتتالية (30 ثانية ← 1 دقيقة ← 5 دقائق ← 15 دقيقة ← 60 دقيقة)، ثم تعود إلى الجدول العادي بعد التشغيل الناجح التالي. ملاحظة: يعيد openclaw cron run الآن التحكم بمجرد وضع التشغيل اليدوي في قائمة التنفيذ. تتضمن الاستجابات الناجحة { ok: true, enqueued: true, runId }؛ استخدم openclaw cron runs --id <job-id> لمتابعة النتيجة النهائية. ملاحظة: يفرض openclaw cron run <job-id> التشغيل افتراضيًا. استخدم --due للحفاظ على السلوك الأقدم “شغّل فقط إذا كان مستحقًا”. ملاحظة: تُخفي دورات cron المعزولة الردود القديمة التي تقتصر على الإقرار فقط. إذا كانت النتيجة الأولى مجرد تحديث حالة مؤقت ولم يكن أي تشغيل لوكيل فرعي تابع مسؤولًا عن الإجابة النهائية، فإن cron يعيد التوجيه مرة واحدة للحصول على النتيجة الحقيقية قبل التسليم. ملاحظة: إذا أعاد تشغيل cron معزول الرمز الصامت فقط (NO_REPLY / no_reply)، فإن cron يمنع التسليم الصادر المباشر وكذلك مسار الملخص الاحتياطي الموضوع في قائمة الانتظار، لذلك لا يتم نشر أي شيء في الدردشة. ملاحظة: يستخدم cron add|edit --model ... ذلك النموذج المسموح المحدد للمهمة. إذا لم يكن النموذج مسموحًا به، يحذر cron ويعود إلى اختيار نموذج الوكيل/الافتراضي الخاص بالمهمة بدلًا من ذلك. تظل سلاسل الرجوع الاحتياطي المكوّنة مطبقة، لكن تجاوز النموذج العادي بدون قائمة رجوع احتياطي صريحة لكل مهمة لم يعد يضيف النموذج الأساسي للوكيل كهدف إعادة محاولة إضافي مخفي. ملاحظة: تكون أسبقية نموذج cron المعزول كالتالي: تجاوز Gmail-hook أولًا، ثم --model لكل مهمة، ثم أي تجاوز نموذج مخزن لجلسة cron، ثم اختيار الوكيل/الافتراضي العادي. ملاحظة: يتبع الوضع السريع لـ cron المعزول اختيار النموذج المباشر المحلول. يُطبق تكوين النموذج params.fastMode افتراضيًا، لكن تجاوز fastMode المخزن في الجلسة يظل صاحب الأولوية على التكوين. ملاحظة: إذا ألقى تشغيل معزول الخطأ LiveSessionModelSwitchError، فإن cron يحفظ المزوّد/النموذج المحوّل إليه (وكذلك تجاوز ملف تعريف المصادقة المحوّل عند وجوده) قبل إعادة المحاولة. تظل حلقة إعادة المحاولة الخارجية محدودة بمحاولتي تبديل بعد المحاولة الأولية، ثم تتوقف بدلًا من التكرار إلى ما لا نهاية. ملاحظة: تستخدم إشعارات الفشل delivery.failureDestination أولًا، ثم cron.failureDestination العام، ثم تعود في النهاية إلى هدف الإعلان الأساسي للمهمة عندما لا يكون هناك هدف فشل صريح مكوّن. ملاحظة: يتم التحكم في الاحتفاظ/التقليم من خلال التكوين:
  • cron.sessionRetention (الافتراضي 24h) يزيل جلسات التشغيل المعزولة المكتملة.
  • cron.runLog.maxBytes + cron.runLog.keepLines يزيلان ~/.openclaw/cron/runs/<jobId>.jsonl.
ملاحظة ترقية: إذا كانت لديك مهام cron أقدم من تنسيق التسليم/التخزين الحالي، فشغّل openclaw doctor --fix. يقوم Doctor الآن بتطبيع حقول cron القديمة (jobId وschedule.cron، وحقول التسليم ذات المستوى الأعلى بما في ذلك threadId القديم، وأسماء التسليم المستعارة provider في الحمولة) ويهجّر مهام الرجوع الاحتياطي البسيطة لـ webhook ذات notify: true إلى تسليم webhook صريح عندما يكون cron.webhook مكوّنًا.

تعديلات شائعة

حدّث إعدادات التسليم بدون تغيير الرسالة:
openclaw cron edit <job-id> --announce --channel telegram --to "123456789"
تعطيل التسليم لمهمة معزولة:
openclaw cron edit <job-id> --no-deliver
تمكين سياق bootstrap خفيف لمهمة معزولة:
openclaw cron edit <job-id> --light-context
الإعلان إلى قناة محددة:
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
إنشاء مهمة معزولة بسياق bootstrap خفيف:
openclaw cron add \
  --name "Lightweight morning brief" \
  --cron "0 7 * * *" \
  --session isolated \
  --message "Summarize overnight updates." \
  --light-context \
  --no-deliver
ينطبق --light-context على مهام دورة الوكيل المعزولة فقط. بالنسبة إلى تشغيلات cron، يُبقي الوضع الخفيف سياق bootstrap فارغًا بدلًا من إدخال مجموعة bootstrap الكاملة لمساحة العمل. ملاحظة حول ملكية التسليم:
  • توجّه مهام cron المعزولة المملوكة لـ cron دائمًا التسليم النهائي المرئي للمستخدم من خلال مشغّل cron (announce أو webhook أو none الداخلي فقط).
  • إذا ذكرت المهمة مراسلة مستلم خارجي، فيجب على الوكيل وصف الوجهة المقصودة في نتيجته بدلًا من محاولة إرسالها مباشرة.

أوامر إدارية شائعة

تشغيل يدوي:
openclaw cron run <job-id>
openclaw cron run <job-id> --due
openclaw cron runs --id <job-id> --limit 50
إعادة توجيه الوكيل/الجلسة:
openclaw cron edit <job-id> --agent ops
openclaw cron edit <job-id> --clear-agent
openclaw cron edit <job-id> --session current
openclaw cron edit <job-id> --session "session:daily-brief"
تعديلات التسليم:
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
openclaw cron edit <job-id> --best-effort-deliver
openclaw cron edit <job-id> --no-best-effort-deliver
openclaw cron edit <job-id> --no-deliver
ملاحظة حول تسليم الإخفاق:
  • delivery.failureDestination مدعوم للمهام المعزولة.
  • لا يمكن لمهام الجلسة الرئيسية استخدام delivery.failureDestination إلا عندما يكون وضع التسليم الأساسي هو webhook.
  • إذا لم تعيّن أي وجهة فشل وكانت المهمة تعلن بالفعل إلى قناة، فإن إشعارات الفشل تعيد استخدام هدف الإعلان نفسه.