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

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.

openclaw cron

إدارة مهام Cron لجدولة Gateway.
شغّل openclaw cron --help لعرض سطح الأوامر الكامل. راجع مهام Cron للاطلاع على الدليل المفاهيمي.

الجلسات

يقبل --session القيم main أو isolated أو current أو session:<id>.
  • يربط main بجلسة الوكيل الرئيسية.
  • ينشئ isolated نصًا حواريًا جديدًا ومعرّف جلسة لكل تشغيل.
  • يربط current بالجلسة النشطة وقت الإنشاء.
  • يثبت session:<id> مفتاح جلسة مستمرًا صريحًا.
تعيد عمليات التشغيل المعزولة ضبط سياق المحادثة المحيط. تتم إعادة ضبط توجيه القناة والمجموعة، وسياسة الإرسال/الصف، والرفع، والمصدر، وربط وقت تشغيل ACP للتشغيل الجديد. يمكن نقل التفضيلات الآمنة واختيارات المستخدم الصريحة للنموذج أو تجاوزات المصادقة عبر عمليات التشغيل.

التسليم

يعرض openclaw cron list وopenclaw cron show <job-id> معاينة لمسار التسليم المحسوم. بالنسبة إلى channel: "last"، تعرض المعاينة ما إذا كان المسار قد حُسم من الجلسة الرئيسية أو الحالية، أو سيفشل بإغلاق آمن. يمكن للأهداف ذات بادئات المزوّد إزالة الالتباس عن قنوات الإعلان غير المحسومة. على سبيل المثال، يحدد to: "telegram:123" Telegram عندما يكون delivery.channel محذوفًا أو last. البادئات التي يعلن عنها Plugin المحمّل فقط هي محددات مزوّدين. إذا كان delivery.channel صريحًا، يجب أن تطابق البادئة تلك القناة؛ يتم رفض channel: "whatsapp" مع to: "telegram:123". تبقى بادئات الخدمات مثل imessage: وsms: صياغة أهداف مملوكة للقناة.
تستخدم مهام cron add المعزولة تسليم --announce افتراضيًا. استخدم --no-deliver للإبقاء على المخرجات داخلية. يبقى --deliver كاسم مستعار مهمل لـ --announce.

ملكية التسليم

تسليم دردشة Cron المعزولة مشترك بين الوكيل والمشغّل:
  • يمكن للوكيل الإرسال مباشرة باستخدام أداة message عندما يكون مسار دردشة متاحًا.
  • يقوم announce بالتسليم الاحتياطي للرد النهائي فقط عندما لا يرسل الوكيل مباشرة إلى الهدف المحسوم.
  • ينشر webhook الحمولة المكتملة إلى عنوان URL.
  • يعطل none التسليم الاحتياطي من المشغّل.
--announce هو التسليم الاحتياطي من المشغّل للرد النهائي. يعطل --no-deliver ذلك الاحتياط، لكنه لا يزيل أداة message الخاصة بالوكيل عندما يكون مسار دردشة متاحًا. تحافظ التذكيرات المنشأة من دردشة نشطة على هدف تسليم الدردشة الحية لتسليم الإعلان الاحتياطي. قد تكون مفاتيح الجلسات الداخلية بأحرف صغيرة؛ لا تستخدمها كمصدر حقيقة لمعرّفات مزوّدين حساسة لحالة الأحرف مثل معرّفات غرف Matrix.

تسليم الفشل

تُحسم إشعارات الفشل بهذا الترتيب:
  1. delivery.failureDestination في المهمة.
  2. cron.failureDestination العام.
  3. هدف الإعلان الأساسي للمهمة (عند عدم تعيين وجهة فشل صريحة).
قد تستخدم مهام الجلسة الرئيسية delivery.failureDestination فقط عندما يكون وضع التسليم الأساسي webhook. تقبله المهام المعزولة في جميع الأوضاع.
ملاحظة: تتعامل عمليات تشغيل Cron المعزولة مع إخفاقات الوكيل على مستوى التشغيل كأخطاء مهمة حتى عندما لا يتم إنتاج حمولة رد، لذلك تظل إخفاقات النموذج/المزوّد تزيد عدادات الأخطاء وتشغّل إشعارات الفشل. إذا انتهت مهلة تشغيل معزول قبل أول طلب نموذج، فسيتضمن openclaw cron show وopenclaw cron runs خطأ خاصًا بالمرحلة مثل setup timed out before runner start أو stalled before first model call (last phase: context-engine). بالنسبة إلى المزوّدين المدعومين عبر CLI، يبقى مراقب ما قبل النموذج نشطًا حتى تبدأ دورة CLI الخارجية، لذلك يتم الإبلاغ عن حالات توقف البحث عن الجلسة، والخطاف، والمصادقة، والمطالبة، وإعداد CLI كإخفاقات Cron قبل النموذج.

الجدولة

مهام تشغيل واحدة

يجدول --at <datetime> تشغيلًا لمرة واحدة. تُعامل التواريخ والأوقات بلا إزاحة على أنها UTC ما لم تمرر أيضًا --tz <iana>، الذي يفسر وقت ساعة الحائط في المنطقة الزمنية المحددة.
تحذف مهام التشغيل الواحد بعد النجاح افتراضيًا. استخدم --keep-after-run للحفاظ عليها.

المهام المتكررة

تستخدم المهام المتكررة تراجع إعادة المحاولة الأسي بعد الأخطاء المتتالية: 30s، و1m، و5m، و15m، و60m. يعود الجدول إلى طبيعته بعد التشغيل الناجح التالي. تُتبع عمليات التشغيل المتخطاة بشكل منفصل عن أخطاء التنفيذ. لا تؤثر في تراجع إعادة المحاولة، لكن يمكن لـ openclaw cron edit <job-id> --failure-alert-include-skipped إدراج عمليات التشغيل المتخطاة المتكررة ضمن تنبيهات الفشل. بالنسبة إلى المهام المعزولة التي تستهدف مزوّد نموذج محليًا مكوّنًا، يشغل Cron فحصًا أوليًا خفيفًا للمزوّد قبل بدء دورة الوكيل. يتم فحص مزوّدي api: "ollama" من نوع Loopback، والشبكات الخاصة، و.local عند /api/tags؛ ويتم فحص مزوّدي OpenAI المتوافقين المحليين مثل vLLM وSGLang وLM Studio عند /models. إذا كانت نقطة النهاية غير قابلة للوصول، يُسجّل التشغيل بوصفه skipped وتُعاد المحاولة في جدول لاحق؛ وتُخزّن نقاط النهاية الميتة المطابقة لمدة 5 دقائق لتجنب أن تطرق مهام كثيرة الخادم المحلي نفسه. ملاحظة: تعيش تعريفات مهام Cron في jobs.json، بينما تعيش حالة وقت التشغيل المعلقة في jobs-state.json. إذا تم تحرير jobs.json خارجيًا، يعيد Gateway تحميل الجداول المتغيرة ويمسح الخانات المعلقة القديمة؛ ولا تمسح عمليات إعادة الكتابة الخاصة بالتنسيق فقط الخانة المعلقة.

عمليات التشغيل اليدوية

يعيد openclaw cron run النتيجة بمجرد وضع التشغيل اليدوي في الصف. تتضمن الاستجابات الناجحة { ok: true, enqueued: true, runId }. استخدم openclaw cron runs --id <job-id> لمتابعة النتيجة النهائية.
يفرض openclaw cron run <job-id> التشغيل افتراضيًا. استخدم --due للاحتفاظ بالسلوك الأقدم “التشغيل فقط إذا كان مستحقًا”.

النماذج

يحدد cron add|edit --model <ref> نموذجًا مسموحًا للمهمة.
إذا لم يكن النموذج مسموحًا أو تعذر حسمه، يفشل Cron التشغيل بخطأ تحقق صريح بدلًا من الرجوع إلى وكيل المهمة أو اختيار النموذج الافتراضي.
يُعد --model في Cron أساسيًا للمهمة، وليس تجاوزًا لـ /model في جلسة دردشة. هذا يعني:
  • تظل بدائل النموذج المكوّنة مطبقة عندما يفشل نموذج المهمة المحدد.
  • تستبدل fallbacks في حمولة كل مهمة قائمة البدائل المكوّنة عند وجودها.
  • تجعل قائمة بدائل فارغة لكل مهمة (fallbacks: [] في حمولة/واجهة API المهمة) تشغيل Cron صارمًا.
  • عندما تكون لدى مهمة --model لكن لا توجد قائمة بدائل مكوّنة، يمرر OpenClaw تجاوز بدائل فارغًا صريحًا حتى لا يُضاف النموذج الأساسي للوكيل كهدف إعادة محاولة مخفي.

أسبقية نموذج Cron المعزول

يحسم Cron المعزول النموذج النشط بهذا الترتيب:
  1. تجاوز خطاف Gmail.
  2. --model الخاص بالمهمة.
  3. تجاوز نموذج جلسة Cron المخزن (عندما يختار المستخدم واحدًا).
  4. اختيار نموذج الوكيل أو النموذج الافتراضي.

الوضع السريع

يتبع الوضع السريع في Cron المعزول اختيار النموذج الحي المحسوم. ينطبق إعداد النموذج params.fastMode افتراضيًا، لكن تجاوز fastMode المخزن للجلسة يظل متغلبًا على الإعداد.

إعادة محاولات تبديل النموذج الحي

إذا طرح تشغيل معزول LiveSessionModelSwitchError، يحفظ Cron المزوّد والنموذج المحوّلين (وتجاوز ملف المصادقة المحوّل عند وجوده) للتشغيل النشط قبل إعادة المحاولة. حلقة إعادة المحاولة الخارجية محدودة بإعادة محاولتين للتبديل بعد المحاولة الأولية، ثم تُجهض بدلًا من الدوران إلى الأبد.

مخرجات التشغيل والرفض

كبت الإقرار القديم

تكبت دورات Cron المعزولة الردود القديمة التي تقتصر على الإقرار. إذا كانت النتيجة الأولى مجرد تحديث حالة مؤقت ولم تكن أي عملية تشغيل وكيل فرعي تابع مسؤولة عن الإجابة النهائية، يعيد Cron المطالبة مرة واحدة للحصول على النتيجة الحقيقية قبل التسليم.

كبت الرمز الصامت

إذا أعاد تشغيل Cron معزول الرمز الصامت فقط (NO_REPLY أو no_reply)، يكبت Cron كلًا من التسليم الصادر المباشر ومسار الملخص المصطف الاحتياطي، لذلك لا يُنشر أي شيء مرة أخرى إلى الدردشة.

الرفض المنظم

تفضّل عمليات تشغيل Cron المعزولة بيانات تعريف رفض التنفيذ المنظمة من التشغيل المضمن، ثم ترجع إلى علامات الرفض المعروفة في المخرجات النهائية، مثل SYSTEM_RUN_DENIED وINVALID_REQUEST وعبارات رفض ربط الموافقة. يعرض cron list وسجل التشغيل سبب الرفض بدلًا من الإبلاغ عن أمر محظور بوصفه ok.

الاحتفاظ

يتم التحكم في الاحتفاظ والتقليم في الإعدادات:
  • يقوم 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
فعّل سياق تمهيد خفيفًا لمهمة معزولة:
openclaw cron edit <job-id> --light-context
أعلن إلى قناة محددة:
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
أعلن إلى موضوع منتدى Telegram:
openclaw cron edit <job-id> --announce --channel telegram --to "-1001234567890" --thread-id 42
أنشئ مهمة معزولة بسياق تمهيد خفيف:
openclaw cron add \
  --name "Lightweight morning brief" \
  --cron "0 7 * * *" \
  --session isolated \
  --message "Summarize overnight updates." \
  --light-context \
  --no-deliver
ينطبق --light-context على مهام دورات الوكيل المعزولة فقط. بالنسبة إلى عمليات تشغيل Cron، يبقي الوضع الخفيف سياق التمهيد فارغًا بدلًا من حقن مجموعة تمهيد مساحة العمل الكاملة.

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

التشغيل اليدوي والفحص:
openclaw cron list
openclaw cron list --agent ops
openclaw cron get <job-id>
openclaw cron show <job-id>
openclaw cron run <job-id>
openclaw cron run <job-id> --due
openclaw cron runs --id <job-id> --limit 50
يعرض openclaw cron list جميع المهام المطابقة افتراضيًا. مرر --agent <id> لعرض المهام التي يطابق معرّف وكيلها الفعلي المطبّع فقط؛ تُحتسب المهام التي لا تحتوي على معرّف وكيل مخزن كأنها تخص الوكيل الافتراضي المكوّن. يعيد openclaw cron get <job-id> JSON المهمة المخزنة مباشرة. استخدم cron show <job-id> عندما تريد العرض المقروء للبشر مع معاينة مسار التسليم. يتضمن cron list --json وcron show <job-id> --json حقل status ذا مستوى أعلى في كل مهمة، محسوبًا من enabled وstate.runningAtMs وstate.lastRunStatus. القيم: disabled أو running أو ok أو error أو skipped أو idle. يعكس هذا عمود الحالة المقروء للبشر حتى تتمكن الأدوات الخارجية من قراءة حالة المهمة من دون إعادة اشتقاقها. تتضمن إدخالات cron runs تشخيصات التسليم مع هدف Cron المقصود، والهدف المحسوم، وإرسالات أداة الرسائل، واستخدام الاحتياط، وحالة التسليم. إعادة استهداف الوكيل والجلسة:
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 add عندما يُحذف --agent في مهام دورات الوكيل ويرجع إلى الوكيل الافتراضي (main). مرر --agent <id> وقت الإنشاء لتثبيت وكيل محدد. تعديلات التسليم:
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

ذو صلة