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) ส่งรายงาน โดยมีงานเบื้องหลังหนึ่งรายการต่อหนึ่งขั้นตอน:
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 หรือเอเจนต์ย่อยแบบแยกออกมา (งานที่กำหนดขอบเขตตามเซสชันและมีผลลัพธ์ที่ส่งมอบได้เมื่อเสร็จสิ้น) ระเบียนโฟลว์จะสะท้อนงานเบื้องหลังเพียงรายการเดียวของโฟลว์ ทั้งสถานะ เป้าหมาย และเวลา เพื่อให้การเริ่มทำงานแบบแยกออกมามีตัวอ้างอิงโฟลว์ที่เสถียรสำหรับพื้นผิวการตรวจสอบสถานะและการลองใหม่โดยไม่ต้องมีตัวควบคุม โฟลว์แบบสะท้อนจะแสดงโหมดการซิงค์ task_mirrored ใน CLI
สถานะของโฟลว์
| สถานะ | ความหมาย |
|---|---|
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 (ดำเนินการยกเลิกที่ค้างอยู่ให้เสร็จสิ้น และลบโฟลว์ที่อยู่ในสถานะสิ้นสุดหลังผ่านไป 7 วัน)
รูปแบบเวิร์กโฟลว์ตามกำหนดเวลาที่เชื่อถือได้
สำหรับเวิร์กโฟลว์ที่เกิดซ้ำ เช่น การสรุปข่าวกรองตลาด ให้แยกกำหนดเวลา การประสานงาน และการตรวจสอบความน่าเชื่อถือออกเป็นชั้นต่างๆ:
- ใช้งานตามกำหนดเวลาสำหรับการกำหนดเวลา
- ใช้เซสชัน Cron แบบถาวรเมื่อเวิร์กโฟลว์ควรต่อยอดจากบริบทก่อนหน้า
- ใช้ Lobster สำหรับขั้นตอนที่กำหนดผลลัพธ์ได้แน่นอน ด่านการอนุมัติ และโทเค็นสำหรับดำเนินการต่อ
- ใช้ Task Flow เพื่อติดตามการทำงานหลายขั้นตอนระหว่างงานลูก การรอ การลองใหม่ และการเริ่มทำงานใหม่ของ 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"ใช้ --session session:<id> แทน isolated เมื่อเวิร์กโฟลว์ที่เกิดซ้ำต้องใช้ประวัติอย่างตั้งใจ ข้อมูลสรุปจากการทำงานครั้งก่อน หรือบริบทที่คงอยู่ ใช้ 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 และบันทึกการตั้งค่าเป็น Skills หรือ Plugin แล้วเผยแพร่ผ่าน ClawHub เก็บมาตรการป้องกันเฉพาะเวิร์กโฟลว์ไว้ในแพ็กเกจนั้น เว้นแต่ API ของ Plugin จะขาดความสามารถทั่วไปที่จำเป็น
ความสัมพันธ์ระหว่างโฟลว์กับงาน
โฟลว์ทำหน้าที่ประสานงาน ไม่ได้แทนที่งาน โฟลว์หนึ่งรายการอาจขับเคลื่อนงานเบื้องหลังหลายรายการตลอดอายุการทำงาน ใช้ openclaw tasks เพื่อตรวจสอบระเบียนงานแต่ละรายการ และใช้ openclaw tasks flow เพื่อตรวจสอบโฟลว์ที่ทำหน้าที่ประสานงาน
เนื้อหาที่เกี่ยวข้อง
- งานเบื้องหลัง - บัญชีงานแบบแยกออกมาที่โฟลว์ทำหน้าที่ประสานงาน
- CLI: งาน - เอกสารอ้างอิงคำสั่ง CLI สำหรับ
openclaw tasks flow - ภาพรวมระบบอัตโนมัติ - กลไกระบบอัตโนมัติทั้งหมดในภาพรวม
- งาน Cron - งานตามกำหนดเวลาที่อาจส่งต่อเข้าสู่โฟลว์