Automation and tasks

โฟลว์งาน

Task Flow คือชั้นฐานสำหรับการประสานโฟลว์ที่อยู่เหนือ งานเบื้องหลัง โดยจัดการโฟลว์หลายขั้นตอนแบบคงทนที่มีสถานะของตัวเอง การติดตามรีวิชัน และความหมายเชิงซิงก์ ขณะที่งานแต่ละงานยังคงเป็นหน่วยของงานที่แยกออกไปรันต่างหาก

ควรใช้ Task Flow เมื่อใด

ใช้ Task Flow เมื่องานครอบคลุมหลายขั้นตอนแบบลำดับต่อเนื่องหรือแบบแตกแขนง และคุณต้องการติดตามความคืบหน้าแบบคงทนข้ามการรีสตาร์ท Gateway สำหรับการทำงานเบื้องหลังครั้งเดียว task แบบธรรมดาก็เพียงพอ

สถานการณ์ ใช้
งานเบื้องหลังงานเดียว task ธรรมดา
ไปป์ไลน์หลายขั้นตอน (A แล้ว B แล้ว C) Task Flow (จัดการให้)
สังเกตงานที่ถูกสร้างจากภายนอก Task Flow (สะท้อนสถานะ)
การเตือนครั้งเดียว งาน Cron

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

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

  1. ใช้ Scheduled Tasks สำหรับการกำหนดเวลา
  2. ใช้เซสชัน cron แบบถาวรเมื่อเวิร์กโฟลว์ควรต่อยอดจากบริบทก่อนหน้า
  3. ใช้ Lobster สำหรับขั้นตอนที่กำหนดแน่นอน ประตูอนุมัติ และโทเค็นสำหรับดำเนินการต่อ
  4. ใช้ 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:<id> แทน isolated เมื่อเวิร์กโฟลว์ที่เกิดซ้ำต้องการประวัติโดยตั้งใจ สรุปการรันก่อนหน้า หรือบริบทถาวร ใช้ isolated เมื่อแต่ละการรันควรเริ่มใหม่ และสถานะที่จำเป็นทั้งหมดระบุไว้อย่างชัดเจนในเวิร์กโฟลว์

ภายในเวิร์กโฟลว์ ให้วางการตรวจสอบความเชื่อถือได้ไว้ก่อนขั้นตอนสรุปของ LLM:

name: market-intel-brief
steps:
  - 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 ที่ลงชื่อเข้าใช้อยู่ ดู Browser
  • ข้อมูลรับรอง API และโควตาของแต่ละแหล่งข้อมูล
  • การเข้าถึงเครือข่ายสำหรับ endpoint ที่จำเป็น
  • เครื่องมือที่จำเป็นเปิดใช้งานสำหรับ agent แล้ว เช่น lobster, browser และ llm-task
  • กำหนดปลายทางเมื่อเกิดความล้มเหลวสำหรับ cron แล้ว เพื่อให้เห็นความล้มเหลวก่อนเริ่มได้ ดู Scheduled Tasks

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

{
  "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 Task เมื่อคุณต้องการขั้นตอนโมเดลที่ตรวจสอบกับ schema ได้ภายในเวิร์กโฟลว์

สำหรับเวิร์กโฟลว์ของทีมหรือชุมชนที่นำกลับมาใช้ใหม่ได้ ให้แพ็กเกจ CLI, ไฟล์ .lobster และบันทึกการตั้งค่าใดๆ เป็น skill หรือ plugin แล้วเผยแพร่ผ่าน ClawHub เก็บ guardrail เฉพาะเวิร์กโฟลว์ไว้ในแพ็กเกจนั้น เว้นแต่ API ของ plugin จะขาดความสามารถทั่วไปที่จำเป็น

โหมดซิงก์

โหมดจัดการให้

Task Flow เป็นเจ้าของวงจรชีวิตตั้งแต่ต้นจนจบ โดยสร้างงานเป็นขั้นตอนของโฟลว์ ขับเคลื่อนให้เสร็จสมบูรณ์ และเลื่อนสถานะโฟลว์ไปข้างหน้าโดยอัตโนมัติ

ตัวอย่าง: โฟลว์รายงานรายสัปดาห์ที่ (1) รวบรวมข้อมูล (2) สร้างรายงาน และ (3) ส่งมอบรายงาน Task Flow จะสร้างแต่ละขั้นตอนเป็นงานเบื้องหลัง รอให้เสร็จสมบูรณ์ แล้วจึงย้ายไปขั้นตอนถัดไป

Flow: weekly-report
  Step 1: gather-data     → task created → succeeded
  Step 2: generate-report → task created → succeeded
  Step 3: deliver         → task created → running

โหมดสะท้อนสถานะ

Task Flow สังเกตงานที่สร้างจากภายนอกและซิงก์สถานะโฟลว์ให้ตรงกันโดยไม่เข้าถือสิทธิ์การสร้างงาน วิธีนี้มีประโยชน์เมื่องานมาจาก cron job, คำสั่ง CLI หรือแหล่งอื่นๆ และคุณต้องการมุมมองรวมของความคืบหน้าในฐานะโฟลว์

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

สถานะคงทนและการติดตามรีวิชัน

แต่ละโฟลว์คงสถานะของตัวเองไว้และติดตามรีวิชันเพื่อให้ความคืบหน้าอยู่รอดข้ามการรีสตาร์ท Gateway การติดตามรีวิชันช่วยให้ตรวจจับความขัดแย้งได้เมื่อหลายแหล่งพยายามเลื่อนโฟลว์เดียวกันไปข้างหน้าพร้อมกัน รีจิสทรีของโฟลว์ใช้ SQLite พร้อมการดูแล write-ahead log แบบมีขอบเขต รวมถึง checkpoint เป็นระยะและตอนปิดระบบ เพื่อให้ Gateway ที่รันเป็นเวลานานไม่เก็บ ไฟล์ sidecar registry.sqlite-wal แบบไร้ขอบเขต

พฤติกรรมการยกเลิก

openclaw tasks flow cancel ตั้งเจตนาการยกเลิกแบบติดค้างไว้บนโฟลว์ งานที่กำลังทำงานอยู่ภายในโฟลว์จะถูกยกเลิก และจะไม่เริ่มขั้นตอนใหม่ เจตนาการยกเลิกจะคงอยู่ข้ามการรีสตาร์ท ดังนั้นโฟลว์ที่ถูกยกเลิกจะยังคงถูกยกเลิก แม้ Gateway จะรีสตาร์ทก่อนที่งานย่อยทั้งหมดจะสิ้นสุด

คำสั่ง CLI

# List active and recent flows
openclaw tasks flow list

# Show details for a specific flow
openclaw tasks flow show <lookup>

# Cancel a running flow and its active tasks
openclaw tasks flow cancel <lookup>
คำสั่ง คำอธิบาย
openclaw tasks flow list แสดงโฟลว์ที่ติดตามพร้อมสถานะและโหมดซิงก์
openclaw tasks flow show <id> ตรวจสอบโฟลว์หนึ่งรายการตาม flow id หรือ lookup key
openclaw tasks flow cancel <id> ยกเลิกโฟลว์ที่กำลังรันและงานที่กำลังทำงานอยู่ของโฟลว์นั้น

โฟลว์สัมพันธ์กับงานอย่างไร

โฟลว์ประสานงาน ไม่ได้แทนที่งาน โฟลว์เดียวอาจขับเคลื่อนงานเบื้องหลังได้หลายงานตลอดอายุการทำงาน ใช้ openclaw tasks เพื่อตรวจสอบระเบียนงานแต่ละรายการ และใช้ openclaw tasks flow เพื่อตรวจสอบโฟลว์ที่ทำหน้าที่ประสานงาน

ที่เกี่ยวข้อง

  • Background Tasks — บัญชีแยกประเภทของงานที่แยกออกไปรันต่างหากซึ่งโฟลว์ประสานงาน
  • CLI: tasks — อ้างอิงคำสั่ง CLI สำหรับ openclaw tasks flow
  • Automation Overview — กลไกอัตโนมัติทั้งหมดโดยสรุป
  • Cron Jobs — งานตามกำหนดเวลาที่อาจป้อนเข้าสู่โฟลว์