Automation
جریان وظیفه
جریان وظیفه، لایهٔ هماهنگسازی بالای وظایف پسزمینه است. هر جریان، سابقهای پایدار از کاری چندمرحلهای با وضعیت، حالت JSON، شمارندهٔ بازبینی و سوابق وظایف پیوندخوردهٔ مختص خود است. جریانها پس از راهاندازی مجدد Gateway باقی میمانند؛ وظایف منفرد همچنان واحد کار جداشده هستند.
چه زمانی از جریان وظیفه استفاده کنیم
| سناریو | استفاده |
|---|---|
| کار پسزمینهٔ منفرد | وظیفهٔ معمولی |
| خط لولهٔ چندمرحلهای هدایتشده با کد افزونه | جریان وظیفه (مدیریتشده) |
| اجرای جداشدهٔ ACP یا زیرعامل | جریان وظیفه (آینهشده، بهطور خودکار ایجاد میشود) |
| یادآوری یکباره | کار Cron |
حالتهای همگامسازی
حالت مدیریتشده
یک جریان مدیریتشده دارای کنترلگر است: کد افزونهای که جریان را از طریق API زمان اجرای جریان وظیفهٔ افزونه، با یک هدف و شناسهٔ الزامی کنترلگر ایجاد میکند و سپس آن را بهطور صریح هدایت میکند.
- هر مرحله بهصورت یک وظیفهٔ پسزمینه که زیر جریان ایجاد شده اجرا میشود؛ کلید مالک جریان و مبدأ درخواستکننده به وظایف فرزند منتقل میشوند.
- کنترلگر جریان را میان حالتهای
running،waitingو حالتهای پایانی پیش میبرد و حالت دلخواه مرحله را در قالب JSON در سابقهٔ جریان ذخیره میکند. - هر تغییر، بازبینی مورد انتظار جریان را ارسال میکند. نوشتن با بازبینی قدیمی، بهجای بازنویسی حالت جدیدتر، بهعنوان تعارض بازبینی رد میشود.
- پس از درخواست لغو، ایجاد وظایف فرزند جدید پذیرفته نمیشود و وقتی هیچ وظیفهٔ فرزند فعالی باقی نماند، جریان با وضعیت
cancelledنهایی میشود.
مثال: جریان گزارش هفتگی که (۱) دادهها را گردآوری میکند، (۲) گزارش را تولید میکند و (۳) آن را تحویل میدهد؛ برای هر مرحله یک وظیفهٔ پسزمینه:
Flow: weekly-report Step 1: gather-data → task created → succeeded Step 2: generate-report → task created → succeeded Step 3: deliver → task created → runningحالت آینهشده
OpenClaw هنگام شروع اجرای جداشدهٔ ACP یا زیرعامل، بهطور خودکار یک جریان آینهشدهٔ تکوظیفهای ایجاد میکند (وظایف محدود به نشست با تکمیل قابل تحویل). سابقهٔ جریان، تنها وظیفهٔ پشتیبان خود ــ وضعیت، هدف و زمانبندی ــ را آینه میکند تا اجراهای جداشده بدون نیاز به کنترلگر، یک دستگیرهٔ پایدار جریان برای وضعیت و سازوکارهای تلاش مجدد داشته باشند. جریانهای آینهشده در CLI حالت همگامسازی task_mirrored را نمایش میدهند.
وضعیتهای جریان
| وضعیت | معنا |
|---|---|
queued |
ایجاد شده است، اما هنوز پیشرفت نکرده است |
running |
جریان فعالانه در حال پیشرفت است |
waiting |
جریان مدیریتشده بر اساس فرادادهٔ انتظار متوقف شده است (زمانسنج، رویداد خارجی) |
blocked |
مرحلهای بدون نتیجهٔ قابل استفاده پایان یافته است؛ blockedTaskId/خلاصه مشخص میکند کدام مرحله |
succeeded |
با موفقیت تکمیل شده است |
failed |
با خطا تکمیل شده است |
cancelled |
لغو درخواست شده و همهٔ وظایف فرزند تعیین تکلیف شدهاند |
lost |
جریان حالت پشتیبان معتبر خود را از دست داده است |
حالت پایدار و ردیابی بازبینی
سوابق جریان در پایگاهدادهٔ مشترک حالت SQLite (~/.openclaw/state/openclaw.sqlite، جدول flow_runs) در کنار سوابق وظایف نگهداری میشوند؛ بنابراین پیشرفت پس از راهاندازی مجدد Gateway باقی میماند. هر نوشتن، مقدار revision جریان را افزایش میدهد؛ نویسندگان همزمانی که بازبینی مورد انتظار قدیمی ارسال کنند با تعارض مواجه میشوند و باید دوباره داده را بخوانند. رشد WAL با نقطهٔ بازرسی خودکار SQLite و نقاط بازرسی غیرفعال دورهای محدود میشود و هنگام خاموششدن نیز نقاط بازرسی برشدهنده اجرا میشوند. فایل جانبی قدیمی flows/registry.sqlite از نصبهای پیشین توسط openclaw doctor وارد میشود.
رفتار لغو
openclaw tasks flow cancel یک قصد لغو ماندگار روی جریان تنظیم میکند، وظایف فرزند فعال آن را لغو میکند و وظایف فرزند مدیریتشدهٔ جدید را نمیپذیرد. وقتی هیچ وظیفهٔ فرزند فعالی باقی نماند، جریان با وضعیت cancelled نهایی میشود؛ بلافاصله، یا اگر تعیین تکلیف فرزندان بیشتر طول بکشد، از طریق پیمایش نگهداری. این قصد بهصورت پایدار ذخیره میشود؛ بنابراین حتی اگر Gateway پیش از خاتمهٔ همهٔ وظایف فرزند راهاندازی مجدد شود، جریان لغوشده همچنان لغوشده باقی میماند.
فرمانهای CLI
# List active and recent flowsopenclaw tasks flow list [--status <status>] [--json] # Show details for a specific flowopenclaw tasks flow show <lookup> [--json] # Cancel a running flow and its active tasksopenclaw tasks flow cancel <lookup>| فرمان | توضیح |
|---|---|
openclaw tasks flow list |
جریانهای ردیابیشده همراه با حالت همگامسازی، وضعیت، بازبینی، کنترلگر و تعداد وظایف |
openclaw tasks flow show <id> |
بررسی یک جریان بر اساس شناسهٔ جریان یا کلید مالک، شامل وظایف پیوندخورده |
openclaw tasks flow cancel <id> |
لغو یک جریان در حال اجرا و وظایف فعال آن |
جریانها همچنین در openclaw tasks audit (یافتههای مربوط به جریانهای قدیمی یا خراب) و openclaw tasks maintenance (نهاییسازی لغوهای گیرکرده و حذف جریانهای پایانی پس از ۷ روز) پوشش داده میشوند.
الگوی قابل اعتماد گردشکار زمانبندیشده
برای گردشکارهای تکرارشونده مانند گزارشهای اطلاعات بازار، زمانبندی، هماهنگسازی و بررسیهای قابلیت اطمینان را بهعنوان لایههای جداگانه در نظر بگیرید:
- برای زمانبندی از وظایف زمانبندیشده استفاده کنید.
- وقتی گردشکار باید بر زمینهٔ پیشین تکیه کند، از نشست پایدار Cron استفاده کنید.
- برای مراحل قطعی، دروازههای تأیید و توکنهای ازسرگیری از Lobster استفاده کنید.
- برای ردیابی اجرای چندمرحلهای میان وظایف فرزند، انتظارها، تلاشهای مجدد و راهاندازیهای مجدد Gateway از جریان وظیفه استفاده کنید.
نمونهٔ ساختار Cron:
openclaw cron add \ --name "Market intelligence brief" \ --cron "0 7 * * 1-5" \ --tz "America/New_York" \ --session session:market-intel \ --message "Run the market-intel Lobster workflow. Verify source freshness before summarizing." \ --announce \ --channel slack \ --to "channel:C1234567890"وقتی گردشکار تکرارشونده به تاریخچهٔ هدفمند، خلاصههای اجرای قبلی یا زمینهٔ ثابت نیاز دارد، بهجای isolated از --session session:<id> استفاده کنید. وقتی هر اجرا باید از ابتدا آغاز شود و تمام حالت مورد نیاز بهطور صریح در گردشکار تعریف شده باشد، از isolated استفاده کنید.
درون گردشکار، بررسیهای قابلیت اطمینان را پیش از مرحلهٔ خلاصهسازی LLM قرار دهید:
name: market-intel-briefsteps: - id: preflight command: market-intel check --json - id: collect command: market-intel collect --json stdin: $preflight.json - id: summarize command: market-intel summarize --json stdin: $collect.json - id: approve command: market-intel deliver --preview stdin: $summarize.json approval: required - id: deliver command: market-intel deliver --execute stdin: $summarize.json condition: $approve.approvedبررسیهای مقدماتی توصیهشده:
- در دسترس بودن مرورگر و انتخاب نمایه؛ برای مثال
openclawبرای حالت مدیریتشده یاuserهنگامی که نشست واردشدهٔ Chrome لازم است. به مرورگر مراجعه کنید. - اطلاعات احراز هویت API و سهمیهٔ هر منبع.
- دسترسپذیری شبکه برای نقاط پایانی مورد نیاز.
- فعال بودن ابزارهای لازم برای عامل، مانند
lobster،browserوllm-task. - پیکربندی مقصد خطا برای Cron تا شکستهای بررسی مقدماتی قابل مشاهده باشند. به وظایف زمانبندیشده مراجعه کنید.
فیلدهای توصیهشدهٔ منشأ داده برای هر مورد گردآوریشده:
{ "sourceUrl": "https://example.com/report", "retrievedAt": "2026-04-24T12:00:00Z", "asOf": "2026-04-24", "title": "Example report", "content": "..."}گردشکار را طوری تنظیم کنید که موارد قدیمی را پیش از خلاصهسازی رد یا علامتگذاری کند. مرحلهٔ LLM باید فقط JSON ساختیافته دریافت کند و از آن خواسته شود sourceUrl، retrievedAt و asOf را در خروجی خود حفظ کند. وقتی درون گردشکار به یک مرحلهٔ مدل با اعتبارسنجی شِما نیاز دارید، از وظیفهٔ LLM استفاده کنید.
برای گردشکارهای قابل استفادهٔ مجدد تیمی یا جامعه، CLI، فایلهای .lobster و هرگونه یادداشت راهاندازی را بهصورت یک Skill یا افزونه بستهبندی کرده و از طریق ClawHub منتشر کنید. محدودیتهای حفاظتی مختص گردشکار را در همان بسته نگه دارید، مگر اینکه API افزونه فاقد یک قابلیت عمومی مورد نیاز باشد.
ارتباط جریانها با وظایف
جریانها وظایف را هماهنگ میکنند، نه اینکه جایگزین آنها شوند. یک جریان منفرد ممکن است در طول عمر خود چندین وظیفهٔ پسزمینه را هدایت کند. برای بررسی سوابق وظایف منفرد از openclaw tasks و برای بررسی جریان هماهنگکننده از openclaw tasks flow استفاده کنید.
مرتبط
- وظایف پسزمینه ــ دفتر ثبت کارهای جداشدهای که جریانها هماهنگ میکنند
- CLI: وظایف ــ مرجع فرمان CLI برای
openclaw tasks flow - نمای کلی خودکارسازی ــ همهٔ سازوکارهای خودکارسازی در یک نگاه
- کارهای Cron ــ کارهای زمانبندیشدهای که ممکن است ورودی جریانها را فراهم کنند