---
read_when:
    - تريد مهام مجدولة وعمليات تنبيه للاستيقاظ
    - أنت تصحّح أخطاء تنفيذ Cron وسجلّاته
summary: مرجع CLI لـ `openclaw cron` (جدولة مهام الخلفية وتشغيلها)
title: Cron
x-i18n:
    generated_at: "2026-07-16T13:42:39Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: eb897fde0798563144703cd2f3a2bc6c20229aa4135af9c6db41995e66ffd2d1
    source_path: cli/cron.md
    workflow: 16
---

# `openclaw cron`

إدارة مهام Cron لبرنامج جدولة Gateway.

<Tip>
شغّل `openclaw cron --help` للاطلاع على مجموعة الأوامر الكاملة. راجع [مهام Cron](/ar/automation/cron-jobs) للاطلاع على الدليل المفاهيمي.
</Tip>

<Note>
تتطلب جميع تعديلات Cron ‏(`add`/`create`، و`update`/`edit`، و`remove`، و`run`) وجود `operator.admin`. تُنفَّذ عمليات تشغيل حمولة الأوامر مباشرةً في عملية Gateway، وليس كاستدعاء لأداة `tools.exec` من وكيل؛ وتظل `tools.exec.*` وموافقات التنفيذ تنظّمان أدوات التنفيذ المرئية للنموذج.
</Note>

## إنشاء المهام بسرعة

يمثل `openclaw cron create` اسمًا مستعارًا لـ `openclaw cron add`. بالنسبة إلى المهام الجديدة، ضع الجدول أولًا والموجّه ثانيًا:

```bash
openclaw cron create "0 7 * * *" \
  "لخّص تحديثات الليلة الماضية." \
  --name "الموجز الصباحي" \
  --agent ops
```

استخدم `--webhook <url>` عندما ينبغي للمهمة إرسال الحمولة المكتملة عبر POST بدلًا من تسليمها إلى وجهة محادثة:

```bash
openclaw cron create "0 18 * * 1-5" \
  "لخّص عمليات النشر اليوم بصيغة JSON." \
  --name "ملخص النشر" \
  --webhook "https://example.invalid/openclaw/cron"
```

استخدم `--command` للمهام الحتمية الشبيهة بمهام الصدفة التي تعمل داخل Cron في OpenClaw من دون بدء تشغيل معزول لوكيل/نموذج:

```bash
openclaw cron create "*/15 * * * *" \
  --name "فحص عمق قائمة الانتظار" \
  --command "scripts/check-queue.sh" \
  --command-cwd "/srv/app" \
  --announce \
  --channel telegram \
  --to "-1001234567890"
```

يخزّن `--command <shell>` ‏`argv: ["sh", "-lc", <shell>]`. استخدم `--command-argv '["node","scripts/report.mjs"]'` لتنفيذ argv بدقة. تلتقط مهام الأوامر stdout/stderr، وتسجّل سجل Cron المعتاد، وتوجّه المخرجات عبر أوضاع التسليم نفسها `announce` أو `webhook` أو `none` التي تستخدمها المهام المعزولة. يُحجب الأمر الذي لا يطبع سوى `NO_REPLY`.

## الجلسات

يقبل `--session` ‏`main` أو `isolated` أو `current` أو `session:<id>`.

<AccordionGroup>
  <Accordion title="مفاتيح الجلسات">
    - يرتبط `main` بالجلسة الرئيسية للوكيل.
    - ينشئ `isolated` نصًا مفرغًا ومعرّف جلسة جديدين لكل عملية تشغيل.
    - يرتبط `current` بالجلسة النشطة وقت الإنشاء.
    - يثبّت `session:<id>` مفتاح جلسة دائمًا وصريحًا.

  </Accordion>
  <Accordion title="دلالات الجلسة المعزولة">
    تعيد عمليات التشغيل المعزولة تعيين سياق المحادثة المحيط. يُعاد تعيين توجيه القناة والمجموعة، وسياسة الإرسال/الانتظار في قائمة، ورفع الصلاحيات، والمنشأ، وربط وقت تشغيل ACP لعملية التشغيل الجديدة. يمكن أن تستمر التفضيلات الآمنة وتجاوزات النموذج أو المصادقة التي اختارها المستخدم صراحةً عبر عمليات التشغيل.
  </Accordion>
</AccordionGroup>

## التسليم

يعاين `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:` جزءًا من صياغة الوجهة التي تملكها القناة.

<Note>
تستخدم مهام `cron add` المعزولة تسليم `--announce` افتراضيًا. استخدم `--no-deliver` لإبقاء المخرجات داخلية. يظل `--deliver` اسمًا مستعارًا مهمَلًا لـ `--announce`.
</Note>

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

يُشترك في تسليم محادثات Cron المعزولة بين الوكيل والمشغّل:

- يمكن للوكيل الإرسال مباشرةً باستخدام أداة `message` عند توفر مسار محادثة.
- يسلّم `announce` الرد النهائي كإجراء احتياطي فقط عندما لا يرسل الوكيل مباشرةً إلى الوجهة المحلولة.
- ينشر `webhook` الحمولة المكتملة إلى عنوان URL.
- يعطّل `none` التسليم الاحتياطي للمشغّل.

استخدم `cron add|create --webhook <url>` أو `cron edit <job-id> --webhook <url>` لضبط تسليم Webhook. لا تدمج `--webhook` مع علامات تسليم المحادثة مثل `--announce` أو `--no-deliver` أو `--channel` أو `--to` أو `--thread-id` أو `--account`.

يمكن لـ `cron edit <job-id>` إلغاء تعيين حقول توجيه التسليم الفردية باستخدام `--clear-channel` و`--clear-to` و`--clear-thread-id` و`--clear-account` (يُرفض كل منها عند دمجه مع علامة التعيين المطابقة له). بخلاف `--no-deliver`، الذي لا يفعل سوى تعطيل التسليم الاحتياطي للمشغّل، تزيل هذه الخيارات الحقل المخزّن كي تعود المهمة إلى حل ذلك الجزء من مسارها من القيم الافتراضية.

يمثل `--announce` التسليم الاحتياطي للمشغّل للرد النهائي. يعطّل `--no-deliver` ذلك الإجراء الاحتياطي، لكنه لا يزيل أداة `message` الخاصة بالوكيل عند توفر مسار محادثة.

تحافظ التذكيرات المنشأة من محادثة نشطة على وجهة تسليم المحادثة المباشرة لتسليم الإعلان الاحتياطي. قد تكون مفاتيح الجلسات الداخلية بأحرف صغيرة؛ فلا تستخدمها مصدرًا موثوقًا لمعرّفات الموفّرين الحساسة لحالة الأحرف، مثل معرّفات غرف Matrix.

### تسليم حالات الفشل

تُحل إشعارات الفشل بالترتيب الآتي:

1. `delivery.failureDestination` في المهمة.
2. `cron.failureDestination` العام.
3. وجهة الإعلان الأساسية للمهمة (عندما لا يُحل أي مما سبق إلى وجهة محددة).

<Note>
لا يجوز لمهام الجلسة الرئيسية استخدام `delivery.failureDestination` إلا عندما يكون وضع التسليم الأساسي هو `webhook`. تقبله المهام المعزولة في جميع الأوضاع.
</Note>

تعامل عمليات تشغيل Cron المعزولة مع حالات فشل الوكيل على مستوى التشغيل بوصفها أخطاء مهام حتى عند عدم إنتاج حمولة رد، لذلك تستمر حالات فشل النموذج/الموفّر في زيادة عدادات الأخطاء وتشغيل إشعارات الفشل.

لا تبدأ مهام أوامر Cron دورًا معزولًا للوكيل. يسجّل رمز الخروج الصفري `ok`؛ بينما يسجّل الخروج غير الصفري أو الإشارة أو انتهاء المهلة أو انتهاء مهلة عدم وجود مخرجات `error`، ويمكنه تشغيل مسار إشعارات الفشل نفسه.

إذا انتهت مهلة تشغيل معزول قبل أول طلب للنموذج، فسيتضمن `openclaw cron show` و`openclaw cron runs` خطأً خاصًا بالمرحلة مثل `setup timed out before runner start` أو رسالة توقف تذكر آخر مرحلة بدء تشغيل معروفة (مثل `context-engine`). بالنسبة إلى الموفّرين المدعومين عبر CLI، تظل آلية مراقبة ما قبل النموذج نشطة حتى يبدأ دور CLI الخارجي، ولذلك يُبلّغ عن حالات التوقف في البحث عن الجلسة والخطاف والمصادقة والموجّه وإعداد CLI بوصفها حالات فشل Cron قبل النموذج.

## الجدولة

### المهام أحادية التشغيل

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

<Note>
تُحذف المهام أحادية التشغيل بعد النجاح افتراضيًا. استخدم `--keep-after-run` للاحتفاظ بها.
</Note>

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

تستخدم المهام المتكررة تراجعًا أُسّيًا لإعادة المحاولة بعد الأخطاء المتتالية: 30s، و1m، و5m، و15m، و60m. يعود الجدول إلى وضعه الطبيعي بعد عملية التشغيل الناجحة التالية.

تُتتبّع عمليات التشغيل المتخطاة بصورة منفصلة عن أخطاء التنفيذ. وهي لا تؤثر في تراجع إعادة المحاولة، لكن يمكن لـ `openclaw cron edit <job-id> --failure-alert-include-skipped` تضمين إشعارات عمليات التشغيل المتخطاة المتكررة ضمن تنبيهات الفشل.

بالنسبة إلى المهام المعزولة التي تستهدف موفّر نموذج محليًا ومهيأ (عنوان URL أساسي على الاسترجاع الحلقي، أو شبكة خاصة، أو `.local`)، يجري Cron فحصًا تمهيديًا خفيفًا للموفّر قبل بدء دور الوكيل: تُفحص موفّرات `api: "ollama"` عند `/api/tags`؛ وتُفحص موفّرات OpenAI المحلية المتوافقة الأخرى (`api: "openai-completions"`، مثل vLLM وSGLang وLM Studio) عند `/models`. إذا تعذر الوصول إلى نقطة النهاية، تُسجّل عملية التشغيل بوصفها `skipped` وتُعاد محاولتها في جدول لاحق؛ وتُخزّن نتيجة إمكانية الوصول مؤقتًا لكل نقطة نهاية لمدة 5 دقائق حتى لا تُغرق مهام كثيرة تستهدف الخادم المحلي نفسه ذلك الخادم بفحوص متكررة.

توجد مهام Cron وحالة وقت التشغيل المعلّقة وسجل التشغيل في قاعدة بيانات حالة SQLite المشتركة. تُستورد ملفات `jobs.json` و`<name>-state.json` و`runs/*.jsonl` القديمة مرة واحدة، ثم يُعاد تسميتها بإضافة اللاحقة `.migrated`. بعد الاستيراد، عدّل الجداول باستخدام `openclaw cron add|edit|remove` بدلًا من تعديل ملفات JSON.

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

يفرض `openclaw cron run <job-id>` التشغيل افتراضيًا ويعود فور وضع التشغيل اليدوي في قائمة الانتظار. تتضمن الاستجابات الناجحة `{ ok: true, enqueued: true, runId }`. استخدم `runId` المُعاد لفحص النتيجة لاحقًا:

```bash
openclaw cron run <job-id>
openclaw cron runs --id <job-id> --run-id <run-id>
```

أضف `--wait` عندما ينبغي لبرنامج نصي أن ينتظر حتى يسجّل ذلك التشغيل المحدد الموضوع في قائمة الانتظار حالة نهائية:

```bash
openclaw cron run <job-id> --wait --wait-timeout 10m --poll-interval 2s
```

مع `--wait`، لا يزال CLI يستدعي `cron.run` أولًا، ثم يستطلع `cron.runs` للحصول على `runId` المُعاد. يخرج الأمر بالرمز `0` فقط عندما ينتهي التشغيل بالحالة `ok`. ويخرج برمز غير صفري عندما ينتهي التشغيل بالحالة `error` أو `skipped`، أو عندما لا تتضمن استجابة Gateway ‏`runId`، أو عند انتهاء `--wait-timeout` (الافتراضي `10m`، مع الاستطلاع كل `2s` افتراضيًا). يجب أن تكون قيمة `--poll-interval` أكبر من الصفر.

<Note>
استخدم `--due` عندما تريد تنفيذ الأمر اليدوي فقط إذا كان موعد المهمة مستحقًا حاليًا. إذا لم يضع `--due --wait` عملية تشغيل في قائمة الانتظار، يُرجع الأمر الاستجابة العادية لعدم التشغيل بدلًا من الاستطلاع.
</Note>

## النماذج

يحدد `cron add|edit --model <ref>` نموذجًا مسموحًا به للمهمة. يضبط `cron add|edit --fallbacks <list>` النماذج الاحتياطية لكل مهمة، مثل `--fallbacks openrouter/gpt-4.1-mini,openai/gpt-5`؛ مرّر `--fallbacks ""` لتشغيل صارم بلا نماذج احتياطية. يزيل `cron edit <job-id> --clear-fallbacks` تجاوز النماذج الاحتياطية الخاص بالمهمة. يزيل `cron edit <job-id> --clear-model` تجاوز النموذج الخاص بالمهمة لكي تتبع المهمة أسبقية اختيار نموذج Cron العادية (تجاوز جلسة Cron المخزّن إن وُجد، وإلا نموذج الوكيل/النموذج الافتراضي)؛ ولا يمكن دمجه مع `--model`. يضبط `cron add|edit --thinking <level>` تجاوز التفكير الخاص بالمهمة؛ ويزيله `cron edit <job-id> --clear-thinking` لكي تتبع المهمة أسبقية التفكير العادية في Cron، ولا يمكن دمجه مع `--thinking`.

<Warning>
إذا لم يكن النموذج مسموحًا به أو تعذر حله، يُفشل Cron عملية التشغيل بخطأ تحقق صريح بدلًا من الرجوع إلى اختيار وكيل المهمة أو النموذج الافتراضي.
</Warning>

يمثل `--model` في Cron **النموذج الأساسي للمهمة**، وليس تجاوز `/model` لجلسة محادثة. وهذا يعني:

- تظل النماذج الاحتياطية المهيأة سارية عند فشل نموذج المهمة المحدد.
- يستبدل `fallbacks` في حمولة كل مهمة قائمة النماذج الاحتياطية المهيأة عند وجوده.
- تجعل قائمة النماذج الاحتياطية الفارغة لكل مهمة (`--fallbacks ""` أو `fallbacks: []` في حمولة المهمة/API) تشغيل Cron صارمًا.
- عندما تحتوي المهمة على `--model` ولا تكون أي قائمة نماذج احتياطية مهيأة، يمرّر OpenClaw تجاوزًا فارغًا وصريحًا للنماذج الاحتياطية حتى لا يُلحق النموذج الأساسي للوكيل سرًا بوصفه وجهة لإعادة المحاولة.
- تجتاز فحوص ما قبل التشغيل للموفّر المحلي النماذج الاحتياطية المهيأة قبل وسم تشغيل Cron بأنه `skipped`.

يُبلغ `openclaw doctor` عن المهام التي سبق ضبط `payload.model` فيها، بما يشمل أعداد نطاقات أسماء الموفّرين وحالات عدم التطابق مع `agents.defaults.model`. استخدم هذا الفحص عندما يبدو سلوك المصادقة أو الموفّر أو الفوترة مختلفًا بين المحادثة المباشرة والمهام المجدولة.

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

يحل Cron المعزول النموذج النشط بالترتيب الآتي:

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

### الوضع السريع

يتبع الوضع السريع لـ Cron المعزول اختيار النموذج المباشر الذي تم حله. ينطبق إعداد النموذج `params.fastMode` افتراضيًا، لكن تجاوز الجلسة المخزّن `fastMode` يظل ذا أولوية على الإعداد. عندما يكون الوضع الذي تم حله هو `auto`، يستخدم حد الإيقاف قيمة `params.fastAutoOnSeconds` الخاصة بالنموذج المحدد، مع اعتماد 60 ثانية افتراضيًا.

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

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

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

### منع إشعارات الإقرار القديمة

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

### منع الرمز الصامت

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

### حالات الرفض المنظمة

تستخدم تشغيلات Cron المعزولة بيانات تعريف رفض التنفيذ المنظمة من التشغيل المضمّن (أخطاء أداة التنفيذ الجسيمة ذات الرمز `SYSTEM_RUN_DENIED` أو `INVALID_REQUEST`) بوصفها إشارة الرفض المعتمدة. كما تراعي أغلفة مضيف Node ذات الرمز `UNAVAILABLE` حول خطأ منظم متداخل يحمل أحد هذين الرمزين.

لا يصنّف Cron نص المخرجات النهائية أو عبارات الرفض التي تبدو مرتبطة بالموافقة بوصفها حالات رفض ما لم يوفر التشغيل المضمّن أيضًا بيانات تعريف رفض منظمة، ولذلك لا يُعامل نص المساعد العادي بوصفه أمرًا محظورًا.

يعرض `cron list` وسجل التشغيل سبب الرفض بدلًا من الإبلاغ عن الأمر المحظور بوصفه `ok`.

## الاحتفاظ

سلوك الاحتفاظ:

- `cron.sessionRetention` (القيمة الافتراضية `24h`، أو `false` للتعطيل) يحذف جلسات التشغيل المعزولة المكتملة.
- يحتفظ سجل التشغيل بأحدث 2000 صف نهائي لكل مهمة Cron. تحتفظ الصفوف المفقودة بنافذة التنظيف القياسية للمهام المفقودة ومدتها 24 ساعة.

## ترحيل المهام القديمة

<Note>
إذا كانت لديك مهام Cron من فترة سابقة لتنسيق التسليم والتخزين الحالي، فنفّذ `openclaw doctor --fix`. يوحّد Doctor حقول Cron القديمة (`jobId`، و`schedule.cron`، وحقول التسليم في المستوى الأعلى بما فيها `threadId` القديم، والأسماء البديلة للتسليم في الحمولة `provider`) ويرحّل مهام الرجوع الاحتياطي لـ Webhook ذات `notify: true` من `cron.webhook` إلى تسليم Webhook صريح. تحتفظ المهام التي تعلن بالفعل في محادثة بذلك التسليم، وتحصل على وجهة Webhook للإكمال. عندما لا يكون `cron.webhook` معينًا، تُزال علامة المستوى الأعلى غير الفعالة `notify` من المهام التي ليس لها هدف ترحيل (ويُحتفظ بالتسليم الحالي دون تغيير)، ولذلك لا يستمر `doctor --fix` في إعادة التحذير بشأنها.
</Note>

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

حدّث إعدادات التسليم دون تغيير الرسالة:

```bash
openclaw cron edit <job-id> --announce --channel telegram --to "123456789"
```

عطّل التسليم لمهمة معزولة:

```bash
openclaw cron edit <job-id> --no-deliver
```

فعّل سياق تمهيد خفيف لمهمة معزولة:

```bash
openclaw cron edit <job-id> --light-context
```

أعلن في قناة محددة:

```bash
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
```

أعلن في موضوع منتدى Telegram:

```bash
openclaw cron edit <job-id> --announce --channel telegram --to "-1001234567890" --thread-id 42
```

أنشئ مهمة معزولة بسياق تمهيد خفيف:

```bash
openclaw cron create "0 7 * * *" \
  "لخّص تحديثات فترة الليل." \
  --name "موجز صباحي خفيف" \
  --session isolated \
  --light-context \
  --no-deliver
```

ينطبق `--light-context` على مهام دورات الوكيل المعزولة فقط. في تشغيلات Cron، يُبقي الوضع الخفيف سياق التمهيد فارغًا بدلًا من إدخال مجموعة تمهيد مساحة العمل الكاملة.

أنشئ مهمة أمر تتضمن argv وcwd وenv وstdin وحدود المخرجات بصورة دقيقة:

```bash
openclaw cron create "*/30 * * * *" \
  --name "تصدير الموضع" \
  --command-argv '["node","scripts/export-position.mjs"]' \
  --command-cwd "/srv/app" \
  --command-env "NODE_ENV=production" \
  --command-input '{"mode":"summary"}' \
  --timeout-seconds 120 \
  --no-output-timeout-seconds 30 \
  --output-max-bytes 65536 \
  --webhook "https://example.invalid/openclaw/cron"
```

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

التشغيل والفحص اليدويان:

```bash
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 run <job-id> --wait --wait-timeout 10m
openclaw cron run <job-id> --wait --wait-timeout 10m --poll-interval 2s
openclaw cron runs --id <job-id> --limit 50
openclaw cron runs --id <job-id> --run-id <run-id>
```

يعرض `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`. تظل حالة JSON معيارية ودون زخرفة كي تتمكن الأدوات الخارجية من قراءة حالة المهمة دون إعادة اشتقاقها؛ وقد يزيّن المخرج القابل للقراءة حالات `error` المتكررة بعدد حالات الفشل.

تتضمن إدخالات `cron runs` تشخيصات التسليم، بما فيها هدف Cron المقصود والهدف الذي تم حله وعمليات الإرسال عبر أداة الرسائل واستخدام الرجوع الاحتياطي وحالة التسليم.

إعادة استهداف الوكيل والجلسة:

```bash
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>` عند الإنشاء لتثبيت وكيل محدد.

تعديلات التسليم:

```bash
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
openclaw cron edit <job-id> --webhook "https://example.invalid/openclaw/cron"
openclaw cron edit <job-id> --best-effort-deliver
openclaw cron edit <job-id> --no-best-effort-deliver
openclaw cron edit <job-id> --no-deliver
```

## ذو صلة

- [مرجع CLI](/ar/cli)
- [المهام المجدولة](/ar/automation/cron-jobs)
