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) ส่งรายงาน โดยมีงานเบื้องหลังหนึ่งรายการต่อหนึ่งขั้นตอน:

Code
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

bash
# 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 วัน)

รูปแบบเวิร์กโฟลว์ตามกำหนดเวลาที่เชื่อถือได้

สำหรับเวิร์กโฟลว์ที่เกิดซ้ำ เช่น การสรุปข่าวกรองตลาด ให้แยกกำหนดเวลา การประสานงาน และการตรวจสอบความน่าเชื่อถือออกเป็นชั้นต่างๆ:

  1. ใช้งานตามกำหนดเวลาสำหรับการกำหนดเวลา
  2. ใช้เซสชัน Cron แบบถาวรเมื่อเวิร์กโฟลว์ควรต่อยอดจากบริบทก่อนหน้า
  3. ใช้ Lobster สำหรับขั้นตอนที่กำหนดผลลัพธ์ได้แน่นอน ด่านการอนุมัติ และโทเค็นสำหรับดำเนินการต่อ
  4. ใช้ Task Flow เพื่อติดตามการทำงานหลายขั้นตอนระหว่างงานลูก การรอ การลองใหม่ และการเริ่มทำงานใหม่ของ Gateway

ตัวอย่างโครงสร้าง Cron:

bash
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:

yaml
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 เพื่อให้มองเห็นความล้มเหลวระหว่างการตรวจสอบก่อนเริ่มทำงาน ดูงานตามกำหนดเวลา

ฟิลด์แหล่งที่มาของข้อมูลที่แนะนำสำหรับแต่ละรายการที่รวบรวม:

json
{  "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 เพื่อตรวจสอบโฟลว์ที่ทำหน้าที่ประสานงาน

เนื้อหาที่เกี่ยวข้อง

Was this useful?
On this page

On this page