Automation

مهام الخلفية

تتعقب المهام الخلفية العمل الذي يعمل خارج جلسة محادثتك الرئيسية: تشغيلات ACP، وإنشاء الوكلاء الفرعيين، وتنفيذات مهام cron المعزولة، والعمليات التي يبدأها CLI.

لا تستبدل المهام الجلسات أو مهام cron أو Heartbeat - فهي سجل النشاط الذي يسجل العمل المنفصل الذي حدث، ومتى حدث، وما إذا كان قد نجح.

باختصار

  • المهام سجلات وليست مجدولات - يقرر cron وHeartbeat متى يعمل العمل، وتتتبع المهام ما حدث.
  • ينشئ ACP والوكلاء الفرعيون وكل مهام cron وعمليات CLI مهام. دورات Heartbeat لا تفعل ذلك.
  • تنتقل كل مهمة عبر queued → running → terminal (succeeded، أو failed، أو timed_out، أو cancelled، أو lost).
  • تبقى مهام Cron حية ما دام وقت تشغيل cron لا يزال يملك المهمة؛ إذا اختفت حالة وقت التشغيل الموجودة في الذاكرة، تتحقق صيانة المهام أولا من سجل تشغيلات cron الدائم قبل وسم المهمة بأنها مفقودة.
  • الاكتمال مدفوع بالدفع: يمكن للعمل المنفصل أن يخطر مباشرة أو يوقظ جلسة الطالب/Heartbeat عند انتهائه، لذلك تكون حلقات استطلاع الحالة غالبا بالشكل الخطأ.
  • تنظف تشغيلات cron المعزولة واكتمالات الوكلاء الفرعيين علامات تبويب/عمليات المتصفح المتتبعة لجلسة الابن بأفضل جهد قبل مسك دفاتر التنظيف النهائي.
  • يمنع تسليم cron المعزول ردودا وسيطة قديمة من الوالد بينما لا يزال عمل الوكيل الفرعي التابع قيد التصريف، ويفضل مخرجات التابع النهائية عندما تصل قبل التسليم.
  • تسلم إشعارات الاكتمال مباشرة إلى قناة أو توضع في قائمة انتظار Heartbeat التالية.
  • يعرض openclaw tasks list كل المهام؛ ويكشف openclaw tasks audit المشكلات.
  • تحفظ السجلات النهائية لمدة 7 أيام، ثم تشذب تلقائيا.

بدء سريع

List and filter

bash
# List all tasks (newest first)openclaw tasks list # Filter by runtime or statusopenclaw tasks list --runtime acpopenclaw tasks list --status running

Inspect

bash
# Show details for a specific task (by ID, run ID, or session key)openclaw tasks show <lookup>

Cancel and notify

bash
# Cancel a running task (kills the child session)openclaw tasks cancel <lookup> # Change notification policy for a taskopenclaw tasks notify <lookup> state_changes

Audit and maintenance

bash
# Run a health auditopenclaw tasks audit # Preview or apply maintenanceopenclaw tasks maintenanceopenclaw tasks maintenance --apply

Task flow

bash
# Inspect TaskFlow stateopenclaw tasks flow listopenclaw tasks flow show <lookup>openclaw tasks flow cancel <lookup>

ما الذي ينشئ مهمة

المصدر نوع وقت التشغيل متى ينشأ سجل المهمة سياسة الإشعار الافتراضية
تشغيلات ACP الخلفية acp إنشاء جلسة ACP ابن done_only
تنسيق الوكلاء الفرعيين subagent إنشاء وكيل فرعي عبر sessions_spawn done_only
مهام Cron (كل الأنواع) cron كل تنفيذ cron (في الجلسة الرئيسية والمعزول) silent
عمليات CLI cli أوامر openclaw agent التي تعمل عبر Gateway silent
مهام وسائط الوكيل cli تشغيلات image_generate/music_generate/video_generate المدعومة بجلسة silent
Notify defaults for cron and media

تستخدم مهام cron في الجلسة الرئيسية سياسة إشعار silent افتراضيا - فهي تنشئ سجلات للتتبع لكنها لا تنشئ إشعارات. مهام cron المعزولة تستخدم أيضا silent افتراضيا لكنها أكثر وضوحا لأنها تعمل في جلستها الخاصة.

تستخدم تشغيلات image_generate وmusic_generate وvideo_generate المدعومة بجلسة أيضا سياسة إشعار silent. لا تزال تنشئ سجلات مهام، لكن الاكتمال يعاد إلى جلسة الوكيل الأصلية كإيقاظ داخلي حتى يتمكن الوكيل من كتابة رسالة المتابعة وإرفاق الوسائط المنتهية بنفسه. يتبع الوكيل الطالب عقد الرد المرئي العادي الخاص به: رد نهائي تلقائي عند تهيئته، أو message(action="send") مع NO_REPLY عندما تتطلب الجلسة ردود أداة الرسائل. إذا لم تعد جلسة الطالب نشطة أو فشل إيقاظها النشط، وفات وكيل الاكتمال بعض الوسائط المولدة أو كلها، يرسل OpenClaw بديلا مباشرا عديم التكرار يحتوي فقط على الوسائط الناقصة إلى هدف القناة الأصلي.

Concurrent media-generation guardrail

بينما لا تزال مهمة توليد وسائط مدعومة بجلسة نشطة، تعمل أدوات الوسائط أيضا كحواجز حماية لإعادات المحاولة العرضية. تعيد استدعاءات image_generate المتكررة للموجه نفسه حالة المهمة النشطة المطابقة، بينما يمكن لموجه صورة مختلف بدء مهمته الخاصة. لا تزال استدعاءات music_generate وvideo_generate تعيد حالة المهمة النشطة لتلك الجلسة بدلا من بدء توليد ثان متزامن. استخدم action: "status" عندما تريد بحث تقدم/حالة صريحا من جهة الوكيل.

What does not create tasks
  • دورات Heartbeat - الجلسة الرئيسية؛ راجع Heartbeat
  • دورات الدردشة التفاعلية العادية
  • ردود /command المباشرة

دورة حياة المهمة

stateDiagram-v2
    [*] --> queued
    queued --> running : agent starts
    running --> succeeded : completes ok
    running --> failed : error
    running --> timed_out : timeout exceeded
    running --> cancelled : operator cancels
    queued --> lost : session gone > 5 min
    running --> lost : session gone > 5 min
الحالة معناها
queued أنشئت، وتنتظر بدء الوكيل
running دورة الوكيل تنفذ بنشاط
succeeded اكتملت بنجاح
failed اكتملت مع خطأ
timed_out تجاوزت المهلة المهيأة
cancelled أوقفها المشغل عبر openclaw tasks cancel
lost فقد وقت التشغيل حالة الدعم الموثوقة بعد فترة سماح مدتها 5 دقائق

تحدث الانتقالات تلقائيا - عندما ينتهي تشغيل الوكيل المرتبط، تحدث حالة المهمة لتطابقه.

اكتمال تشغيل الوكيل هو المرجع الموثوق لسجلات المهام النشطة. ينهي التشغيل المنفصل الناجح كـ succeeded، وتنهي أخطاء التشغيل العادية كـ failed، وتنهي نتائج المهلة أو الإجهاض كـ timed_out. إذا كان المشغل قد ألغى المهمة بالفعل، أو كان وقت التشغيل قد سجل بالفعل حالة نهائية أقوى مثل failed أو timed_out أو lost، فلا تؤدي إشارة نجاح لاحقة إلى خفض تلك الحالة النهائية.

lost واعية بوقت التشغيل:

  • مهام ACP: اختفت بيانات جلسة ACP الابنة الداعمة.
  • مهام الوكلاء الفرعيين: اختفت الجلسة الابنة الداعمة من مخزن الوكيل الهدف.
  • مهام Cron: لم يعد وقت تشغيل cron يتتبع المهمة كنشطة، ولا يظهر سجل تشغيلات cron الدائم نتيجة نهائية لذلك التشغيل. لا يتعامل تدقيق CLI غير المتصل مع حالة وقت تشغيل cron الفارغة داخل العملية الخاصة به كمرجع موثوق.
  • مهام CLI: تستخدم المهام التي لديها معرف تشغيل/معرف مصدر سياق التشغيل الحي، لذلك لا تبقي صفوف الجلسة الابنة أو جلسة الدردشة العالقة هذه المهام حية بعد اختفاء التشغيل المملوك لـ Gateway. لا تزال مهام CLI القديمة التي لا تملك هوية تشغيل تعود إلى الجلسة الابنة. كما تنتهي تشغيلات openclaw agent المدعومة بـ Gateway من نتيجة تشغيلها، لذلك لا تبقى التشغيلات المكتملة نشطة حتى يوسمها المنظف بأنها lost.

التسليم والإشعارات

عندما تصل مهمة إلى حالة نهائية، يخطرك OpenClaw. هناك مسارا تسليم:

التسليم المباشر - إذا كان للمهمة هدف قناة (requesterOrigin)، تذهب رسالة الاكتمال مباشرة إلى تلك القناة (Telegram وDiscord وSlack وما إلى ذلك). أما اكتمالات مهام المجموعات والقنوات فتوجه عبر جلسة الطالب حتى يتمكن الوكيل الوالد من كتابة الرد المرئي. بالنسبة لاكتمالات الوكلاء الفرعيين، يحافظ OpenClaw أيضا على توجيه الخيط/الموضوع المرتبط عند توفره، ويمكنه ملء to / حساب مفقود من مسار جلسة الطالب المخزن (lastChannel / lastTo / lastAccountId) قبل التخلي عن التسليم المباشر.

التسليم الموضوع في قائمة انتظار الجلسة - إذا فشل التسليم المباشر أو لم يضبط أصل، يوضع التحديث كحدث نظام في جلسة الطالب ويظهر في Heartbeat التالية.

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

سياسات الإشعار

تحكم في مقدار ما تسمعه عن كل مهمة:

السياسة ما يتم تسليمه
done_only (افتراضي) الحالة النهائية فقط (succeeded، failed، وما إلى ذلك) - هذا هو الافتراضي
state_changes كل انتقال حالة وتحديث تقدم
silent لا شيء إطلاقا

غيّر السياسة أثناء تشغيل مهمة:

bash
openclaw tasks notify <lookup> state_changes

مرجع CLI

tasks list
bash
openclaw tasks list [--runtime <acp|subagent|cron|cli>] [--status <status>] [--json]

أعمدة الإخراج: معرف المهمة، النوع، الحالة، التسليم، معرف التشغيل، الجلسة الابنة، الملخص.

tasks show
bash
openclaw tasks show <lookup>

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

tasks cancel
bash
openclaw tasks cancel <lookup>

بالنسبة لمهام ACP والوكلاء الفرعيين، يقتل هذا الجلسة الابنة. بالنسبة للمهام المتتبعة عبر CLI، يسجل الإلغاء في سجل المهام (لا يوجد مقبض وقت تشغيل ابن منفصل). تنتقل الحالة إلى cancelled ويرسل إشعار تسليم عند انطباق ذلك.

tasks notify
bash
openclaw tasks notify <lookup> <done_only|state_changes|silent>
tasks audit
bash
openclaw tasks audit [--json]

يكشف المشكلات التشغيلية. تظهر النتائج أيضا في openclaw status عند اكتشاف مشكلات.

النتيجة الخطورة المحفز
stale_queued تحذير في قائمة الانتظار لأكثر من 10 دقائق
stale_running خطأ قيد التشغيل لأكثر من 30 دقيقة
lost تحذير/خطأ اختفت ملكية المهمة المدعومة بوقت التشغيل؛ تبقى المهام المفقودة المحتفَظ بها كتحذيرات حتى cleanupAfter، ثم تصبح أخطاء
delivery_failed تحذير فشل التسليم وسياسة الإشعار ليست silent
missing_cleanup تحذير مهمة نهائية من دون طابع زمني للتنظيف
inconsistent_timestamps تحذير انتهاك في الخط الزمني (على سبيل المثال انتهت قبل أن تبدأ)
tasks maintenance
bash
openclaw tasks maintenance [--json]openclaw tasks maintenance --apply [--json]

استخدم هذا لمعاينة أو تطبيق التسوية، ووضع طوابع التنظيف، والتقليم للمهام، وحالة Task Flow، وصفوف سجل جلسات تشغيل cron القديمة.

التسوية مدركة لوقت التشغيل:

  • تتحقق مهام ACP/الوكيل الفرعي من جلسة الطفل الداعمة لها.
  • يتم وسم مهام الوكيل الفرعي التي تملك جلسة طفل لها علامة حذف لاسترداد إعادة التشغيل بأنها مفقودة بدلًا من التعامل معها كجلسات داعمة قابلة للاسترداد.
  • تتحقق مهام Cron مما إذا كان وقت تشغيل cron لا يزال يملك المهمة، ثم تستعيد الحالة النهائية من سجلات تشغيل cron/حالة المهمة المستمرة قبل الرجوع إلى lost. تكون عملية Gateway وحدها مرجعية لمجموعة مهام cron النشطة داخل الذاكرة؛ يستخدم تدقيق CLI دون اتصال التاريخ الدائم لكنه لا يسم مهمة cron بأنها مفقودة فقط لأن تلك المجموعة المحلية فارغة.
  • تتحقق مهام CLI ذات هوية التشغيل من سياق التشغيل الحي المالك، وليس فقط من صفوف جلسة الطفل أو جلسة الدردشة.

التنظيف بعد الإكمال مدرك أيضًا لوقت التشغيل:

  • يحاول إكمال الوكيل الفرعي، بأفضل جهد، إغلاق ألسنة/عمليات المتصفح المتتبعة لجلسة الطفل قبل متابعة تنظيف الإعلان.
  • يحاول إكمال cron المعزول، بأفضل جهد، إغلاق ألسنة/عمليات المتصفح المتتبعة لجلسة cron قبل تفكيك التشغيل بالكامل.
  • ينتظر تسليم cron المعزول متابعة الوكلاء الفرعيين المتحدرين عند الحاجة، ويكبت نص إقرار الأصل القديم بدلًا من إعلانه.
  • يستخدم تسليم إكمال الوكيل الفرعي أحدث نص مساعد مرئي للطفل فقط. لا تتم ترقية مخرجات الأداة/toolResult إلى نص نتيجة الطفل. تعلن التشغيلات النهائية الفاشلة حالة الفشل من دون إعادة عرض نص الرد الملتقط.
  • لا تحجب إخفاقات التنظيف نتيجة المهمة الحقيقية.

عند تطبيق الصيانة، يزيل OpenClaw أيضًا صفوف سجل الجلسات القديمة cron:<jobId>:run:<uuid> التي يزيد عمرها على 7 أيام، مع الحفاظ على صفوف مهام cron قيد التشغيل حاليًا وترك صفوف الجلسات غير الخاصة بـ cron دون تغيير.

tasks flow list | show | cancel
bash
openclaw tasks flow list [--status <status>] [--json]openclaw tasks flow show <lookup> [--json]openclaw tasks flow cancel <lookup>

استخدم هذه عندما يكون Task Flow المنسق هو ما تهتم به بدلًا من سجل مهمة خلفية فردية واحد.

لوحة مهام الدردشة (/tasks)

استخدم /tasks في أي جلسة دردشة لرؤية المهام الخلفية المرتبطة بتلك الجلسة. تعرض اللوحة المهام النشطة والمكتملة حديثًا مع وقت التشغيل، والحالة، والتوقيت، وتفاصيل التقدم أو الخطأ.

عندما لا تحتوي الجلسة الحالية على مهام مرتبطة مرئية، يرجع /tasks إلى أعداد المهام المحلية للوكيل حتى تحصل على نظرة عامة من دون تسريب تفاصيل جلسات أخرى.

لسجل المشغل الكامل، استخدم CLI: openclaw tasks list.

تكامل الحالة (ضغط المهام)

يتضمن openclaw status ملخصًا سريعًا للمهام:

Code
Tasks: 3 queued · 2 running · 1 issues

يعرض الملخص:

  • active - عدد queued + running
  • failures - عدد failed + timed_out + lost
  • byRuntime - تفصيل حسب acp، وsubagent، وcron، وcli

يستخدم كل من /status وأداة session_status لقطة مهام مدركة للتنظيف: تُفضَّل المهام النشطة، وتُخفى الصفوف المكتملة القديمة، ولا تظهر الإخفاقات الحديثة إلا عندما لا يبقى عمل نشط. هذا يبقي بطاقة الحالة مركزة على ما يهم الآن.

التخزين والصيانة

أين توجد المهام

تستمر سجلات المهام في SQLite عند:

Code
$OPENCLAW_STATE_DIR/tasks/runs.sqlite

يتم تحميل السجل في الذاكرة عند بدء Gateway وتتم مزامنة الكتابات إلى SQLite لضمان المتانة عبر عمليات إعادة التشغيل. يبقي Gateway سجل الكتابة المسبقة في SQLite محدودًا باستخدام عتبة نقطة التحقق التلقائية الافتراضية في SQLite بالإضافة إلى نقاط تحقق دورية PASSIVE. لا تزال نقاط تحقق الإيقاف والصيانة الصريحة تستخدم TRUNCATE حتى تتمكن عمليات الإغلاق العادية من استعادة مساحة WAL من دون جعل الكناس الخلفي ينتظر القراء النشطين.

الصيانة التلقائية

يعمل كناس كل 60 ثانية ويتعامل مع أربعة أشياء:

  • Reconciliation

    يتحقق مما إذا كانت المهام النشطة لا تزال تملك دعمًا مرجعيًا من وقت التشغيل. تستخدم مهام ACP/الوكيل الفرعي حالة جلسة الطفل، وتستخدم مهام cron ملكية المهمة النشطة، وتستخدم مهام CLI ذات هوية التشغيل سياق التشغيل المالك. إذا اختفت تلك الحالة الداعمة لأكثر من 5 دقائق، تُوسم المهمة بأنها lost.

  • ACP session repair

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

  • Cleanup stamping

    يضع طابعًا زمنيًا cleanupAfter على المهام النهائية (endedAt + 7 أيام). أثناء الاحتفاظ، لا تزال المهام المفقودة تظهر في التدقيق كتحذيرات؛ وبعد انتهاء cleanupAfter أو عند غياب بيانات التنظيف الوصفية، تصبح أخطاء.

  • Pruning

    يحذف السجلات التي تجاوزت تاريخ cleanupAfter الخاص بها.

  • كيف ترتبط المهام بالأنظمة الأخرى

    Tasks and Task Flow

    Task Flow هي طبقة تنسيق التدفقات فوق المهام الخلفية. قد ينسق تدفق واحد عدة مهام طوال عمره باستخدام أوضاع مزامنة مُدارة أو معكوسة. استخدم openclaw tasks لفحص سجلات المهام الفردية وopenclaw tasks flow لفحص التدفق المنسق.

    راجع Task Flow للتفاصيل.

    Tasks and cron

    توجد تعريفات مهام Cron، وحالة التنفيذ في وقت التشغيل، وسجل التشغيل في قاعدة بيانات حالة SQLite المشتركة في OpenClaw. ينشئ كل تنفيذ cron سجل مهمة، سواء كان في الجلسة الرئيسية أو معزولًا. تستخدم مهام cron في الجلسة الرئيسية سياسة إشعار silent افتراضيًا حتى تتتبع من دون توليد إشعارات.

    راجع Cron Jobs.

    Tasks and heartbeat

    تشغيلات Heartbeat هي دورات جلسة رئيسية، ولا تنشئ سجلات مهام. عندما تكتمل مهمة، يمكنها تشغيل إيقاظ Heartbeat حتى ترى النتيجة سريعًا.

    راجع Heartbeat.

    Tasks and sessions

    قد تشير المهمة إلى childSessionKey (حيث يعمل العمل) وrequesterSessionKey (من بدأه). يحدد agentId الوكيل الذي ينفذ العمل، بينما تحفظ حقول الطالب والمالك سياق الإطلاق والتحكم. الجلسات هي سياق المحادثة؛ أما المهام فهي تتبع النشاط فوق ذلك.

    Tasks and agent runs

    يربط runId الخاص بالمهمة بتشغيل الوكيل الذي ينفذ العمل. تقوم أحداث دورة حياة الوكيل (البدء، الانتهاء، الخطأ) بتحديث حالة المهمة تلقائيًا، ولا تحتاج إلى إدارة دورة الحياة يدويًا.

    ذات صلة

    Was this useful?
    On this page

    On this page