Automation

وظایف پس‌زمینه

وظایف پس‌زمینه، کارهایی را پیگیری می‌کنند که خارج از نشست اصلی مکالمه شما اجرا می‌شوند: اجراهای ACP، ایجاد زیرعامل‌ها، اجرای کارهای Cron و عملیات آغازشده از CLI.

وظایف جایگزین نشست‌ها، کارهای Cron یا Heartbeatها نمی‌شوند؛ آن‌ها دفتر ثبت فعالیت‌ها هستند که ثبت می‌کند چه کار جداشده‌ای، چه زمانی انجام شده و آیا موفق بوده است یا نه.

خلاصه

  • وظایف رکورد هستند، نه زمان‌بند؛ Cron و Heartbeat تعیین می‌کنند کار چه زمانی اجرا شود و وظایف پیگیری می‌کنند چه اتفاقی افتاده است.
  • ACP، زیرعامل‌ها، همه کارهای Cron و عملیات CLI وظیفه ایجاد می‌کنند. نوبت‌های Heartbeat چنین کاری نمی‌کنند.
  • هر وظیفه از وضعیت‌های queued → running → terminal عبور می‌کند (موفق، ناموفق، پایان‌یافته به‌دلیل مهلت، لغوشده یا ازدست‌رفته).
  • تا زمانی که زمان اجرای Cron همچنان مالک کار باشد، وظایف Cron فعال می‌مانند؛ اگر وضعیت درون‌حافظه‌ای زمان اجرا از بین رفته باشد، نگه‌داری وظایف پیش از علامت‌گذاری یک وظیفه به‌عنوان ازدست‌رفته، ابتدا تاریخچه پایدار اجرای Cron را بررسی می‌کند.
  • تکمیل به‌صورت مبتنی بر ارسال انجام می‌شود: کار جداشده پس از پایان می‌تواند مستقیماً اطلاع‌رسانی کند یا نشست درخواست‌کننده/Heartbeat را بیدار کند؛ بنابراین حلقه‌های نظرسنجی وضعیت معمولاً الگوی مناسبی نیستند.
  • اجراهای ایزوله Cron و تکمیل زیرعامل‌ها، پیش از ثبت نهایی پاک‌سازی، در حد توان زبانه‌ها/فرایندهای مرورگر پیگیری‌شده برای نشست فرزند خود را پاک‌سازی می‌کنند.
  • تا زمانی که کار زیرعامل‌های نواده همچنان در حال تخلیه است، تحویل ایزوله Cron پاسخ‌های میانی قدیمی والد را سرکوب می‌کند و اگر خروجی نهایی نواده پیش از تحویل برسد، آن را ترجیح می‌دهد.
  • اعلان‌های تکمیل مستقیماً به یک کانال تحویل داده می‌شوند یا برای Heartbeat بعدی در صف قرار می‌گیرند.
  • openclaw tasks list همه وظایف را نشان می‌دهد؛ openclaw tasks audit مشکلات را نمایان می‌کند.
  • رکوردهای پایانی به‌مدت 7 روز (رکوردهای lost به‌مدت 24 ساعت) نگه‌داری و سپس به‌طور خودکار حذف می‌شوند.

شروع سریع

فهرست و فیلتر

bash
# فهرست همه وظایف (ابتدا جدیدترین‌ها)openclaw tasks list # فیلتر بر اساس زمان اجرا یا وضعیتopenclaw tasks list --runtime acpopenclaw tasks list --status running

بررسی

bash
# نمایش جزئیات یک وظیفه مشخص (بر اساس شناسه وظیفه، شناسه اجرا یا کلید نشست)openclaw tasks show <lookup>

لغو و اطلاع‌رسانی

bash
# لغو یک وظیفه در حال اجرا (نشست فرزند را متوقف می‌کند)openclaw tasks cancel <lookup> # تغییر سیاست اطلاع‌رسانی یک وظیفهopenclaw tasks notify <lookup> state_changes

ممیزی و نگه‌داری

bash
# اجرای ممیزی سلامتopenclaw tasks audit # پیش‌نمایش یا اعمال نگه‌داریopenclaw tasks maintenanceopenclaw tasks maintenance --apply

جریان وظیفه

bash
# بررسی وضعیت TaskFlowopenclaw 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
پیش‌فرض‌های اطلاع‌رسانی برای Cron و رسانه

وظایف Cron (نشست اصلی و ایزوله) از سیاست اطلاع‌رسانی silent استفاده می‌کنند؛ آن‌ها برای پیگیری رکورد ایجاد می‌کنند، اما خودشان اعلان وظیفه تولید نمی‌کنند؛ Cron مالک مسیر تحویل خود است.

اجراهای مبتنی بر نشست image_generate، music_generate و video_generate نیز از سیاست اطلاع‌رسانی silent استفاده می‌کنند. آن‌ها همچنان رکورد وظیفه ایجاد می‌کنند، اما تکمیل به‌شکل یک بیدارباش داخلی به نشست عامل اصلی بازگردانده می‌شود تا عامل بتواند پیام پیگیری را بنویسد و رسانه تکمیل‌شده را خودش پیوست کند. عامل درخواست‌کننده از قرارداد عادی پاسخ قابل‌مشاهده خود پیروی می‌کند: پاسخ نهایی خودکار در صورت پیکربندی، یا message(action="send") به‌همراه NO_REPLY هنگامی که نشست به پاسخ‌های ابزار پیام نیاز دارد. اگر نشست درخواست‌کننده دیگر فعال نباشد یا بیدارباش فعال آن ناموفق شود و عامل تکمیل بخشی یا همه رسانه‌های تولیدشده را از دست بدهد، OpenClaw یک جایگزین مستقیم و تکرارناپذیر را که فقط شامل رسانه‌های ازدست‌رفته است، به مقصد کانال اصلی ارسال می‌کند.

محافظ اجرای هم‌زمان تولید رسانه

تا زمانی که یک وظیفه تولید رسانه مبتنی بر نشست فعال است، image_generate، music_generate و video_generate از تلاش مجدد تصادفی جلوگیری می‌کنند: تکرار فراخوانی برای همان اعلان/درخواست، به‌جای آغاز یک نسخه تکراری، وضعیت وظیفه فعال منطبق را برمی‌گرداند؛ درحالی‌که یک اعلان متمایز می‌تواند وظیفه خودش را آغاز کند. هنگامی که از سمت عامل به جست‌وجوی صریح پیشرفت/وضعیت نیاز دارید، از action: "status" استفاده کنید.

چه چیزهایی وظیفه ایجاد نمی‌کنند
  • نوبت‌های Heartbeat ـ نشست اصلی؛ Heartbeat را ببینید
  • نوبت‌های گفت‌وگوی تعاملی عادی
  • پاسخ‌های مستقیم /command

چرخه عمر وظیفه

stateDiagram-v2
    [*] --> queued
    queued --> running : عامل آغاز می‌شود
    running --> succeeded : با موفقیت تکمیل می‌شود
    running --> failed : خطا
    running --> timed_out : مهلت پایان یافت
    queued --> cancelled : اپراتور لغو می‌کند
    running --> cancelled : اپراتور لغو می‌کند
    queued --> lost : وضعیت پشتیبان بیش از 5 دقیقه از بین رفته است
    running --> lost : وضعیت پشتیبان بیش از 5 دقیقه از بین رفته است
وضعیت معنی آن
queued ایجاد شده و منتظر آغاز عامل است
running نوبت عامل فعالانه در حال اجرا است
succeeded با موفقیت تکمیل شده است
failed با خطا تکمیل شده است
timed_out از مهلت پیکربندی‌شده فراتر رفته است
cancelled اپراتور آن را از طریق openclaw tasks cancel متوقف کرده یا اجرا خاتمه داده شده است
lost زمان اجرا پس از یک دوره ارفاق 5 دقیقه‌ای، وضعیت پشتیبان معتبر را از دست داده است

انتقال‌ها به‌طور خودکار انجام می‌شوند؛ رویدادهای چرخه عمر اجرای عامل (آغاز، پایان، خطا) وضعیت وظیفه را به‌روزرسانی می‌کنند و نیازی نیست آن را به‌صورت دستی مدیریت کنید.

تکمیل اجرای عامل برای رکوردهای وظیفه فعال مرجع نهایی است. اجرای جداشده موفق با وضعیت succeeded نهایی می‌شود، خطاهای عادی اجرا با failed، پایان مهلت‌ها با timed_out و نتایج لغو/خاتمه با cancelled نهایی می‌شوند. هنگامی که یک وظیفه پایانی شود، سیگنال‌های بعدی چرخه عمر وضعیت آن را تنزل نمی‌دهند؛ وظیفه‌ای که اپراتور لغو کرده یا از قبل failed/timed_out/lost است، حتی اگر پس از آن سیگنال موفقیت برسد، در همان وضعیت باقی می‌ماند.

lost از زمان اجرا آگاه است:

  • وظایف ACP: فقط یک نوبت ACP زنده و درون‌فرایندی در Gateway ثابت می‌کند که اجرا زنده است؛ فراداده پایدار نشست به‌تنهایی کافی نیست. ممیزی آفلاین CLI محافظه‌کارانه عمل می‌کند و هرگز وظایف ACP را بازپس‌گیری نمی‌کند.
  • وظایف زیرعامل: نشست فرزند پشتیبان از مخزن عامل مقصد ناپدید شده است (یا سنگ‌قبر بازیابی پس از راه‌اندازی مجدد دارد).
  • وظایف Cron: زمان اجرای Cron دیگر کار را به‌عنوان فعال پیگیری نمی‌کند و تاریخچه پایدار اجرای Cron هیچ نتیجه پایانی برای آن اجرا نشان نمی‌دهد. ممیزی آفلاین CLI وضعیت خالی زمان اجرای Cron درون‌فرایندی خودش را مرجع معتبر در نظر نمی‌گیرد.
  • وظایف CLI: وظایفی که شناسه اجرا/شناسه منبع دارند از زمینه اجرای زنده استفاده می‌کنند؛ بنابراین پس از ناپدیدشدن اجرای تحت مالکیت Gateway، باقی‌ماندن ردیف‌های نشست فرزند یا نشست گفت‌وگو آن‌ها را زنده نگه نمی‌دارد. وظایف قدیمی CLI بدون هویت اجرا همچنان از نشست فرزند به‌عنوان جایگزین استفاده می‌کنند. اجراهای مبتنی بر Gatewayِ openclaw agent نیز از نتیجه اجرای خود نهایی می‌شوند؛ بنابراین اجراهای تکمیل‌شده تا زمانی که پاک‌ساز آن‌ها را lost علامت‌گذاری کند، فعال باقی نمی‌مانند.

تحویل و اعلان‌ها

هنگامی که یک وظیفه به وضعیت پایانی می‌رسد، OpenClaw به شما اطلاع می‌دهد. دو مسیر تحویل وجود دارد:

تحویل مستقیم ـ اگر وظیفه مقصد کانال داشته باشد (requesterOrigin)، پیام تکمیل مستقیماً به همان کانال می‌رود (Discord، Slack، Telegram و غیره). در عوض، تکمیل وظایف گروه و کانال از طریق نشست درخواست‌کننده مسیریابی می‌شود تا عامل والد بتواند پاسخ قابل‌مشاهده را بنویسد. برای تکمیل زیرعامل‌ها، OpenClaw همچنین مسیریابی وابسته رشته/موضوع را در صورت وجود حفظ می‌کند و پیش از صرف‌نظرکردن از تحویل مستقیم، می‌تواند to / حساب ازدست‌رفته را از مسیر ذخیره‌شده نشست درخواست‌کننده (lastChannel / lastTo / lastAccountId) تکمیل کند.

تحویل در صف نشست ـ اگر تحویل مستقیم ناموفق باشد یا هیچ مبدأیی تنظیم نشده باشد، به‌روزرسانی به‌عنوان یک رویداد سیستمی در نشست درخواست‌کننده در صف قرار می‌گیرد و در Heartbeat بعدی نمایش داده می‌شود.

یعنی گردش کار معمول مبتنی بر ارسال است: کار جداشده را یک‌بار آغاز کنید، سپس اجازه دهید زمان اجرا پس از تکمیل شما را بیدار کند یا اطلاع دهد. فقط هنگامی وضعیت وظیفه را نظرسنجی کنید که به اشکال‌زدایی، مداخله یا ممیزی صریح نیاز دارید.

سیاست‌های اطلاع‌رسانی

میزان اطلاع‌رسانی درباره هر وظیفه را کنترل کنید:

سیاست آنچه تحویل داده می‌شود
done_only (پیش‌فرض) فقط وضعیت پایانی (موفق، ناموفق و غیره)
state_changes هر انتقال وضعیت و به‌روزرسانی پیشرفت
silent هیچ‌چیز (پیش‌فرض برای وظایف Cron، CLI و رسانه)

سیاست را هنگام اجرای یک وظیفه تغییر دهید:

bash
openclaw tasks notify <lookup> state_changes

مرجع CLI

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

ستون‌های خروجی: وظیفه، نوع، وضعیت، تحویل، اجرا، نشست فرزند، خلاصه. openclaw tasks بدون آرگومان مانند openclaw tasks list عمل می‌کند.

tasks show
bash
openclaw tasks show <lookup> [--json]

نشانه جست‌وجو یک شناسه وظیفه، شناسه اجرا یا کلید نشست را می‌پذیرد. رکورد کامل شامل زمان‌بندی، وضعیت تحویل، خطا و خلاصه پایانی را نمایش می‌دهد.

tasks cancel
bash
openclaw tasks cancel <lookup>

برای وظایف ACP و زیرعامل، این کار نشست فرزند را خاتمه می‌دهد؛ لغوهای ACP و Cron از طریق Gateway در حال اجرا هدایت می‌شوند (tasks.cancel). برای وظایف رهگیری‌شده توسط CLI، لغو در رجیستری وظایف ثبت می‌شود (هیچ هندل زمان‌اجرای فرزند جداگانه‌ای وجود ندارد). وضعیت به cancelled تغییر می‌کند و در صورت کاربرد، اعلان تحویل ارسال می‌شود.

اعلان وظایف
bash
openclaw tasks notify <lookup> <done_only|state_changes|silent>
ممیزی وظایف
bash
openclaw tasks audit [--severity <warn|error>] [--code <name>] [--limit <n>] [--json]

مشکلات عملیاتی وظایف و TaskFlowها را در یک گزارش نمایش می‌دهد. هنگام شناسایی مشکلات، یافته‌ها در openclaw status نیز ظاهر می‌شوند.

یافته‌های وظایف:

یافته شدت محرک
stale_queued هشدار بیش از 10 دقیقه در صف مانده است
stale_running خطا بیش از 30 دقیقه در حال اجرا بوده است
lost هشدار/خطا مالکیت وظیفه متکی به زمان‌اجرا ناپدید شده است؛ وظایف مفقودِ نگه‌داری‌شده تا cleanupAfter هشدار می‌دهند و سپس به خطا تبدیل می‌شوند
delivery_failed هشدار تحویل ناموفق بوده و سیاست اعلان silent نیست
missing_cleanup هشدار وظیفه پایانی بدون مهر زمانی پاک‌سازی
inconsistent_timestamps هشدار نقض خط زمانی (برای مثال، پیش از شروع پایان یافته است)

یافته‌های TaskFlow:

یافته شدت محرک
restore_failed خطا بازیابی رجیستری جریان از SQLite ناموفق بود
stale_running خطا جریان در حال اجرا بیش از 30 دقیقه پیشرفتی نداشته است
stale_waiting هشدار جریان منتظر بیش از 30 دقیقه پیشرفتی نداشته است
stale_blocked هشدار جریان مسدودشده بیش از 30 دقیقه پیشرفتی نداشته است
cancel_stuck هشدار لغو بیش از 5 دقیقه پیش درخواست شده، هیچ وظیفه فرزند فعالی وجود ندارد و جریان همچنان ناپایانی است
missing_linked_tasks هشدار/خطا جریان مدیریت‌شده قدیمی بدون وظیفه پیوندخورده یا حالت انتظار
blocked_task_missing هشدار جریان مسدودشده به شناسه وظیفه‌ای اشاره می‌کند که دیگر وجود ندارد
نگه‌داری وظایف
bash
openclaw tasks maintenance [--json]openclaw tasks maintenance --apply [--json]

از این فرمان برای پیش‌نمایش یا اعمال تطبیق، ثبت مهر پاک‌سازی و هرس‌کردن وظایف، وضعیت TaskFlow و ردیف‌های قدیمی رجیستری نشست اجرای Cron استفاده کنید.

تطبیق از زمان‌اجرا آگاه است:

  • وظایف ACP به یک نوبت زنده درون‌فرایندی در Gateway نیاز دارند؛ وظایف زیرعامل نشست فرزند پشتیبان خود را بررسی می‌کنند.
  • وظایف زیرعاملی که نشست فرزندشان سنگ‌قبر بازیابی پس از راه‌اندازی مجدد دارد، به‌جای تلقی‌شدن به‌عنوان نشست‌های پشتیبان قابل‌بازیابی، مفقود علامت‌گذاری می‌شوند.
  • وظایف Cron بررسی می‌کنند که آیا زمان‌اجرای Cron هنوز مالک کار است، سپس پیش از بازگشت به lost، وضعیت پایانی را از گزارش‌های پایدار اجرای Cron یا وضعیت کار بازیابی می‌کنند. فقط فرایند Gateway برای مجموعه درون‌حافظه‌ای کارهای فعال Cron مرجع معتبر است؛ ممیزی آفلاین CLI از تاریخچه پایدار استفاده می‌کند، اما صرفاً به‌دلیل خالی‌بودن آن مجموعه محلی، یک وظیفه Cron را مفقود علامت‌گذاری نمی‌کند.
  • وظایف CLI دارای هویت اجرا، زمینه اجرای زنده مالک را بررسی می‌کنند، نه فقط ردیف‌های نشست فرزند یا نشست گفت‌وگو را.

پاک‌سازی تکمیل نیز از زمان‌اجرا آگاه است:

  • تکمیل زیرعامل، پیش از ادامه پاک‌سازی اعلان، به‌صورت بهترین‌تلاش زبانه‌ها و فرایندهای مرورگر رهگیری‌شده برای نشست فرزند را می‌بندد.
  • تکمیل Cron ایزوله، پیش از برچیده‌شدن کامل اجرا، به‌صورت بهترین‌تلاش زبانه‌ها و فرایندهای مرورگر رهگیری‌شده برای نشست Cron را می‌بندد.
  • تحویل Cron ایزوله، در صورت نیاز منتظر پایان پیگیری زیرعامل‌های نواده می‌ماند و به‌جای اعلام متن تأیید قدیمی والد، آن را سرکوب می‌کند.
  • تحویل تکمیل زیرعامل فقط از آخرین متن قابل‌مشاهده دستیار در فرزند استفاده می‌کند. خروجی tool/toolResult به متن نتیجه فرزند ارتقا نمی‌یابد. اجراهای پایانی ناموفق، وضعیت شکست را بدون بازپخش متن پاسخ ضبط‌شده اعلام می‌کنند.
  • شکست‌های پاک‌سازی نتیجه واقعی وظیفه را پنهان نمی‌کنند.

هنگام اعمال نگه‌داری، OpenClaw همچنین ردیف‌های قدیمی رجیستری نشست cron:<jobId>:run:<runId> با عمر بیش از 7 روز را حذف می‌کند، در حالی که ردیف‌های مربوط به کارهای Cron در حال اجرا را حفظ می‌کند و ردیف‌های نشست غیرCron را دست‌نخورده باقی می‌گذارد.

فهرست | نمایش | لغو جریان وظایف
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.

رابط کاربری کنترل

رابط کاربری کنترل وب، صفحه وظایف را در نوار کناری دارد که وظایف پس‌زمینه فعال و اخیر را به‌صورت زنده نشان می‌دهد. از آن برای بررسی پیشرفت، بازکردن نشست‌های پیوندخورده، تازه‌سازی دفترکل یا لغو وظایف در صف و در حال اجرا استفاده کنید.

پنجره‌های گفت‌وگو همچنین یک نوار جمع‌شونده وظایف پس‌زمینه با دامنه عامل همان پنجره دارند: وظایف و زیرعامل‌های در حال اجرا همراه با کنترل توقف، یک بخش پایان‌یافته‌ها و پیوندهای مشاهده رونوشت به نشست فرزند هر وظیفه. آن را از کلید فعالیت در سربرگ پنجره (یا دکمه شناور فعالیت در گفت‌وگوی تک‌پنجره‌ای) باز کنید.

برای بررسی اعلان ورودی محدودشده و آخرین خروجی یا خلاصه خطا، یک وظیفه را در نوار انتخاب کنید. کارهای در حال اجرا از کارهای پایان‌یافته جدا می‌مانند و ردیف‌های پایان‌یافته نشان می‌دهند که وظیفه تکمیل شده یا شکست خورده است. در iOS، Chat actions → Background Tasks را باز کنید؛ در Android، منوی سرریز Chat را باز کرده و Background tasks را انتخاب کنید. هر دو نمای موبایل از گروه‌بندی یکسان Running و Finished استفاده می‌کنند و با انتخاب، جزئیات وظیفه را باز می‌کنند.

یکپارچه‌سازی وضعیت (فشار وظایف)

openclaw status یک خط خلاصه وظایف را شامل می‌شود:

Code
وظایف    2 فعال · 1 در صف · 1 در حال اجرا · 1 مشکل · ممیزی پاک · 6 رهگیری‌شده

خلاصه، کار فعال (queued + running)، شکست‌ها (failed + timed_out + lost)، یافته‌های ممیزی و کل رکوردهای رهگیری‌شده را می‌شمارد؛ بار JSON نیز شمارش‌ها را بر اساس زمان‌اجرا تفکیک می‌کند (acp، subagent، cron، cli).

هم /status و هم ابزار session_status از تصویری از وظایف استفاده می‌کنند که از پاک‌سازی آگاه است: وظایف فعال در اولویت‌اند، ردیف‌های منقضی پنهان می‌شوند و وظایف پایانی فقط برای یک بازه کوتاه اخیر (5 دقیقه) ظاهر می‌شوند؛ وقتی هیچ کار فعالی باقی نمانده باشد، تمرکز بر شکست‌هاست. این کار کارت وضعیت را بر آنچه همین حالا اهمیت دارد متمرکز نگه می‌دارد.

ذخیره‌سازی و نگه‌داری

محل نگه‌داری وظایف

رکوردهای وظایف و وضعیت تحویل در پایگاه داده مشترک وضعیت SQLite متعلق به OpenClaw پایدار می‌مانند:

Code
~/.openclaw/state/openclaw.sqlite   (جداول: task_runs, task_delivery_state, flow_runs)

برای انتقال کل ریشه وضعیت (پیش‌فرض ~/.openclaw) به مکانی دیگر، OPENCLAW_STATE_DIR را تنظیم کنید؛ مسیر پایگاه داده مشترک نیز همراه آن منتقل می‌شود.

رجیستری در نخستین استفاده در حافظه بارگذاری می‌شود و هر نوشتن را دوباره در SQLite پایدار می‌کند، بنابراین رکوردها پس از راه‌اندازی مجدد Gateway باقی می‌مانند. رشد WAL از طریق آستانه پیش‌فرض وارسی خودکار SQLite و نقاط وارسی دوره‌ای PASSIVE محدود می‌ماند؛ نقاط وارسی هنگام خاموش‌شدن و نگه‌داری صریح از TRUNCATE استفاده می‌کنند تا بسته‌شدن‌های عادی فضای WAL را بدون منتظرگذاشتن جاروبگر پس‌زمینه برای خوانندگان فعال بازیابی کنند.

ذخیره‌گاه‌های جانبی قدیمی از نصب‌های پیشین (tasks/runs.sqlite، flows/registry.sqlite) توسط openclaw doctor به پایگاه داده مشترک وارد می‌شوند.

نگه‌داری خودکار

یک جاروبگر هر 60 ثانیه اجرا می‌شود (نخستین گذر حدود 5 ثانیه پس از شروع Gateway) و چهار مورد را مدیریت می‌کند:

  • تطبیق

    بررسی می‌کند که آیا وظایف فعال هنوز پشتیبانی معتبر زمان‌اجرا دارند یا نه. وظایف ACP به یک نوبت زنده درون‌فرایندی نیاز دارند، وظایف زیرعامل از وضعیت نشست فرزند استفاده می‌کنند، وظایف Cron از مالکیت کار فعال به‌همراه تاریخچه پایدار اجرا استفاده می‌کنند و وظایف CLI دارای هویت اجرا از زمینه اجرای مالک استفاده می‌کنند. اگر وضعیت پشتیبان بیش از 5 دقیقه (برای وظایف بومی زیرعامل بدون فرزند، 30 دقیقه) از بین رفته باشد، وظیفه lost علامت‌گذاری می‌شود.

  • ترمیم نشست ACP

    نشست‌های یک‌باره ACP متعلق به والد را که پایانی یا بی‌سرپرست هستند می‌بندد، و نشست‌های پایدار ACP قدیمیِ پایانی یا بی‌سرپرست را فقط زمانی می‌بندد که هیچ پیوند گفت‌وگوی فعالی باقی نمانده باشد.

  • ثبت مهر پاک‌سازی

    یک مهر زمانی cleanupAfter را روی وظایف پایانی تنظیم می‌کند (زمان پایان + بازه نگه‌داری). در طول نگه‌داری، وظایف مفقود همچنان در ممیزی به‌عنوان هشدار ظاهر می‌شوند؛ پس از انقضای cleanupAfter یا هنگامی که فراداده پاک‌سازی وجود ندارد، به خطا تبدیل می‌شوند.

  • هرس‌کردن

    رکوردهای پس از تاریخ cleanupAfter خود را حذف می‌کند.

  • ارتباط وظایف با سامانه‌های دیگر

    وظایف و Task Flow

    Task Flow لایه هماهنگ‌سازی جریان در بالای وظایف پس‌زمینه است. یک جریان منفرد ممکن است در طول عمر خود با استفاده از حالت‌های همگام‌سازی مدیریت‌شده یا آینه‌ای، چندین وظیفه را هماهنگ کند. برای بررسی رکوردهای منفرد وظیفه از openclaw tasks و برای بررسی جریان هماهنگ‌کننده از openclaw tasks flow استفاده کنید.

    وظایف و Cron

    تعریف‌های کار Cron، وضعیت اجرای زمان‌اجرا و تاریخچه اجرا در پایگاه داده مشترک وضعیت SQLite متعلق به OpenClaw قرار دارند. هر اجرای Cron، چه نشست اصلی و چه ایزوله، یک رکورد وظیفه با سیاست اعلان silent ایجاد می‌کند؛ بنابراین اجراهای Cron بدون ایجاد اعلان وظیفه مستقل رهگیری می‌شوند.

    کارهای Cron را ببینید.

    وظایف و Heartbeat

    اجراهای Heartbeat نوبت‌های نشست اصلی هستند و رکورد وظیفه ایجاد نمی‌کنند. هنگامی که یک وظیفه تکمیل می‌شود، می‌تواند بیدارباش Heartbeat را فعال کند تا نتیجه را سریع ببینید.

    Heartbeat را ببینید.

    وظایف و نشست‌ها

    یک وظیفه ممکن است به یک childSessionKey (محل اجرای کار) و یک requesterSessionKey (فردی که آن را آغاز کرده است) ارجاع دهد. agentId آن، عامل اجراکنندهٔ کار را مشخص می‌کند، درحالی‌که فیلدهای درخواست‌کننده و مالک، زمینهٔ راه‌اندازی و کنترل را حفظ می‌کنند. نشست‌ها زمینهٔ مکالمه هستند؛ وظایف، لایه‌ای برای پیگیری فعالیت بر روی آن هستند.

    وظایف و اجراهای عامل

    runId یک وظیفه به اجرای عاملی که کار را انجام می‌دهد پیوند دارد. رویدادهای چرخهٔ عمر عامل (شروع، پایان، خطا) به‌طور خودکار وضعیت وظیفه را به‌روزرسانی می‌کنند؛ نیازی نیست چرخهٔ عمر را به‌صورت دستی مدیریت کنید.

    مرتبط

    Was this useful?
    On this page

    On this page