Automation
جریان کار
Task Flow لایه هماهنگسازی بالای وظایف پسزمینه است. یک جریان، سابقهای پایدار از کاری چندمرحلهای با وضعیت، حالت JSON، شمارنده بازبینی و سوابق وظایف پیوندخورده مختص خود است. جریانها پس از راهاندازی مجدد Gateway باقی میمانند؛ وظایف منفرد همچنان واحد کار جداشده هستند.
چه زمانی از Task Flow استفاده شود
| سناریو | استفاده |
|---|---|
| کار پسزمینه منفرد | وظیفه ساده |
| پایپلاین چندمرحلهای هدایتشده با کد Plugin | Task Flow (مدیریتشده) |
| اجرای جداشده ACP یا زیرعامل | Task Flow (همگامسازیشده، ایجاد خودکار) |
| یادآوری یکباره | کار Cron |
حالتهای همگامسازی
حالت مدیریتشده
یک جریان مدیریتشده دارای کنترلکننده است: کد Plugin که جریان را از طریق API زمان اجرای Task Flow در Plugin با یک هدف و شناسه کنترلکننده الزامی ایجاد میکند و سپس آن را بهصراحت هدایت میکند.
- هر مرحله بهصورت یک وظیفه پسزمینه ایجادشده زیر جریان اجرا میشود؛ کلید مالک و مبدأ درخواستکننده جریان به وظایف فرزند منتقل میشوند.
- کنترلکننده جریان را میان
running،waitingو وضعیتهای پایانی پیش میبرد و حالت دلخواه مرحله را بهصورت JSON در سابقه جریان ذخیره میکند. - هر تغییر، بازبینی مورد انتظار جریان را ارسال میکند. نوشتن با بازبینی قدیمی بهجای بازنویسی حالت جدیدتر، بهعنوان تعارض بازبینی رد میشود.
- پس از درخواست لغو، وظایف فرزند جدید پذیرفته نمیشوند و وقتی هیچ وظیفه فرزندی فعال نماند، جریان با وضعیت
cancelledنهایی میشود.
مثال: جریان گزارش هفتگی که (1) دادهها را گردآوری میکند، (2) گزارش را تولید میکند و (3) آن را تحویل میدهد؛ برای هر مرحله یک وظیفه پسزمینه:
جریان: weekly-report مرحله 1: gather-data → وظیفه ایجاد شد → موفق مرحله 2: generate-report → وظیفه ایجاد شد → موفق مرحله 3: deliver → وظیفه ایجاد شد → در حال اجراحالت همگامسازیشده
OpenClaw هنگام آغاز اجرای جداشده ACP یا زیرعامل، بهطور خودکار یک جریان همگامسازیشده تکوظیفهای ایجاد میکند (وظایف محدود به نشست با تکمیل قابلتحویل). سابقه جریان، تنها وظیفه زیربنایی خود ــ وضعیت، هدف و زمانبندی ــ را بازتاب میدهد تا اجراهای جداشده بدون نیاز به کنترلکننده، شناسه پایدار جریان برای سطوح وضعیت و تلاش مجدد داشته باشند. جریانهای همگامسازیشده در CLI حالت همگامسازی task_mirrored را نمایش میدهند.
وضعیتهای جریان
| وضعیت | معنا |
|---|---|
queued |
ایجاد شده و هنوز پیشرفتی نداشته است |
running |
جریان فعالانه در حال پیشرفت است |
waiting |
جریان مدیریتشده روی فراداده انتظار (زمانسنج، رویداد خارجی) متوقف است |
blocked |
یک مرحله بدون نتیجه قابلاستفاده پایان یافته است؛ blockedTaskId/خلاصه مشخص میکند کدام مرحله |
succeeded |
با موفقیت تکمیل شده است |
failed |
با خطا تکمیل شده است |
cancelled |
لغو درخواست شده و همه وظایف فرزند تعیینتکلیف شدهاند |
lost |
جریان حالت زیربنایی معتبر خود را از دست داده است |
حالت پایدار و پیگیری بازبینی
سوابق جریان در پایگاه داده حالت SQLite مشترک (جدول flow_runs در ~/.openclaw/state/openclaw.sqlite) در کنار سوابق وظایف نگهداری میشوند، بنابراین پیشرفت پس از راهاندازی مجدد Gateway باقی میماند. هر نوشتن، مقدار revision جریان را افزایش میدهد؛ نویسندگان همزمانی که بازبینی مورد انتظار قدیمی ارسال کنند، با تعارض مواجه میشوند و باید دوباره آن را بخوانند. رشد WAL با نقطهبازرسی خودکار SQLite بهعلاوه نقطهبازرسیهای غیرفعال دورهای محدود میشود و هنگام خاموششدن، نقطهبازرسیهای برشی انجام میشوند. فایل جانبی قدیمی flows/registry.sqlite از نصبهای پیشین توسط openclaw doctor وارد میشود.
رفتار لغو
openclaw tasks flow cancel قصد لغو ماندگاری را روی جریان تنظیم میکند، وظایف فرزند فعال آن را لغو میکند و وظایف فرزند مدیریتشده جدید را نمیپذیرد. وقتی هیچ وظیفه فرزندی فعال نماند، جریان با وضعیت cancelled نهایی میشود ــ بلافاصله، یا اگر تعیینتکلیف فرزندان بیشتر طول بکشد از طریق پویش نگهداری. این قصد ذخیره میشود، بنابراین جریان لغوشده حتی اگر Gateway پیش از پایان همه وظایف فرزند راهاندازی مجدد شود، لغوشده باقی میماند.
فرمانهای CLI
# فهرست جریانهای فعال و اخیرopenclaw tasks flow list [--status <status>] [--json] # نمایش جزئیات یک جریان مشخصopenclaw tasks flow show <lookup> [--json] # لغو یک جریان در حال اجرا و وظایف فعال آنopenclaw tasks flow cancel <lookup>| فرمان | توضیحات |
|---|---|
openclaw tasks flow list |
جریانهای پیگیریشده همراه با حالت همگامسازی، وضعیت، بازبینی، کنترلکننده و تعداد وظایف |
openclaw tasks flow show <id> |
بررسی یک جریان با شناسه جریان یا کلید مالک، شامل وظایف پیوندخورده |
openclaw tasks flow cancel <id> |
لغو یک جریان در حال اجرا و وظایف فعال آن |
جریانها همچنین تحت پوشش openclaw tasks audit (یافتههای جریان قدیمی یا خراب) و openclaw tasks maintenance (نهاییسازی لغوهای گیرکرده، پاکسازی جریانهای پایانی پس از 7 روز) قرار میگیرند.
الگوی گردشکار زمانبندیشده قابلاعتماد
برای گردشکارهای تکرارشونده مانند گزارشهای اطلاعات بازار، زمانبندی، هماهنگسازی و بررسیهای قابلیت اطمینان را بهعنوان لایههای جداگانه در نظر بگیرید:
- برای زمانبندی از وظایف زمانبندیشده استفاده کنید.
- وقتی گردشکار باید بر زمینه قبلی بنا شود، از نشست پایدار Cron استفاده کنید.
- برای مراحل قطعی، دروازههای تأیید و توکنهای ازسرگیری از Lobster استفاده کنید.
- برای پیگیری اجرای چندمرحلهای در میان وظایف فرزند، انتظارها، تلاشهای مجدد و راهاندازیهای مجدد Gateway از Task Flow استفاده کنید.
نمونه ساختار Cron:
openclaw cron add \ --name "گزارش اطلاعات بازار" \ --cron "0 7 * * 1-5" \ --tz "America/New_York" \ --session session:market-intel \ --message "گردشکار اطلاعات بازار Lobster را اجرا کنید. پیش از خلاصهسازی، تازگی منابع را بررسی کنید." \ --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": "گزارش نمونه", "content": "..."}گردشکار باید موارد قدیمی را پیش از خلاصهسازی رد یا علامتگذاری کند. مرحله LLM باید فقط JSON ساختاریافته دریافت کند و از آن خواسته شود sourceUrl، retrievedAt و asOf را در خروجی خود حفظ کند. وقتی درون گردشکار به مرحله مدل با اعتبارسنجی طرحواره نیاز دارید، از وظیفه LLM استفاده کنید.
برای گردشکارهای قابلاستفاده مجدد تیمی یا اجتماعی، CLI، فایلهای .lobster و هرگونه یادداشت راهاندازی را بهصورت یک مهارت یا Plugin بستهبندی و از طریق ClawHub منتشر کنید. محدودیتهای حفاظتی مختص گردشکار را در همان بسته نگه دارید، مگر آنکه API افزونه فاقد قابلیت عمومی مورد نیاز باشد.
ارتباط جریانها با وظایف
جریانها وظایف را هماهنگ میکنند، نه اینکه جایگزین آنها شوند. یک جریان ممکن است در طول عمر خود چندین وظیفه پسزمینه را هدایت کند. برای بررسی سوابق هر وظیفه از openclaw tasks و برای بررسی جریان هماهنگکننده از openclaw tasks flow استفاده کنید.
مرتبط
- وظایف پسزمینه ــ دفتر کارهای جداشدهای که جریانها هماهنگ میکنند
- CLI: وظایف ــ مرجع فرمان CLI برای
openclaw tasks flow - نمای کلی خودکارسازی ــ همه سازوکارهای خودکارسازی در یک نگاه
- کارهای Cron ــ کارهای زمانبندیشدهای که ممکن است وارد جریانها شوند