Automation and tasks
โฟลว์งาน
Task Flow คือชั้นฐานสำหรับการประสานโฟลว์ที่อยู่เหนือ งานเบื้องหลัง โดยจัดการโฟลว์หลายขั้นตอนแบบคงทนที่มีสถานะของตัวเอง การติดตามรีวิชัน และความหมายเชิงซิงก์ ขณะที่งานแต่ละงานยังคงเป็นหน่วยของงานที่แยกออกไปรันต่างหาก
ควรใช้ Task Flow เมื่อใด
ใช้ Task Flow เมื่องานครอบคลุมหลายขั้นตอนแบบลำดับต่อเนื่องหรือแบบแตกแขนง และคุณต้องการติดตามความคืบหน้าแบบคงทนข้ามการรีสตาร์ท Gateway สำหรับการทำงานเบื้องหลังครั้งเดียว task แบบธรรมดาก็เพียงพอ
| สถานการณ์ | ใช้ |
|---|---|
| งานเบื้องหลังงานเดียว | task ธรรมดา |
| ไปป์ไลน์หลายขั้นตอน (A แล้ว B แล้ว C) | Task Flow (จัดการให้) |
| สังเกตงานที่ถูกสร้างจากภายนอก | Task Flow (สะท้อนสถานะ) |
| การเตือนครั้งเดียว | งาน Cron |
รูปแบบเวิร์กโฟลว์ตามกำหนดเวลาที่เชื่อถือได้
สำหรับเวิร์กโฟลว์ที่เกิดซ้ำ เช่น รายงานสรุปข่าวกรองตลาด ให้ถือว่ากำหนดเวลา การประสานงาน และการตรวจสอบความเชื่อถือได้เป็นคนละชั้นกัน:
- ใช้ Scheduled Tasks สำหรับการกำหนดเวลา
- ใช้เซสชัน 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:<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 — งานตามกำหนดเวลาที่อาจป้อนเข้าสู่โฟลว์