---
read_when:
    - คุณต้องการเข้าใจว่า Task Flow เกี่ยวข้องกับงานเบื้องหลังอย่างไร
    - คุณพบ Task Flow หรือ openclaw tasks flow ในบันทึกประจำรุ่นหรือเอกสาร
    - คุณต้องการตรวจสอบหรือจัดการสถานะโฟลว์ที่คงอยู่
summary: เลเยอร์การประสานงาน TaskFlow เหนืองานเบื้องหลัง
title: โฟลว์งาน
x-i18n:
    generated_at: "2026-06-27T17:08:59Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: e4f5ff3c9a68eb0408a180bc947a03b410568d7914cb1c1d7f31d6013e036096
    source_path: automation/taskflow.md
    workflow: 16
---

โฟลว์งานคือชั้นพื้นฐานสำหรับการประสานโฟลว์ที่อยู่เหนือ [งานเบื้องหลัง](/th/automation/tasks) โดยจัดการโฟลว์หลายขั้นตอนแบบคงทนที่มีสถานะของตัวเอง การติดตามรีวิชัน และความหมายเชิงซิงก์ ขณะที่งานแต่ละรายการยังคงเป็นหน่วยของงานที่แยกตัวออกไป

## เมื่อใดควรใช้โฟลว์งาน

ใช้โฟลว์งานเมื่องานมีหลายขั้นตอนแบบลำดับต่อเนื่องหรือแตกแขนง และคุณต้องการการติดตามความคืบหน้าแบบคงทนข้ามการรีสตาร์ต Gateway สำหรับการดำเนินการเบื้องหลังแบบรายการเดียว [งาน](/th/automation/tasks) ธรรมดาก็เพียงพอแล้ว

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

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

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

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

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

```yaml
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 ที่ลงชื่อเข้าใช้แล้ว ดู [เบราว์เซอร์](/th/tools/browser)
- ข้อมูลประจำตัว API และโควตาสำหรับแต่ละแหล่งข้อมูล
- ความสามารถในการเข้าถึงเครือข่ายสำหรับปลายทางที่จำเป็น
- เครื่องมือที่จำเป็นเปิดใช้งานสำหรับเอเจนต์ เช่น `lobster`, `browser` และ `llm-task`
- ปลายทางเมื่อเกิดความล้มเหลวถูกกำหนดค่าสำหรับ cron เพื่อให้มองเห็นความล้มเหลวก่อนเริ่ม ดู [งานตามกำหนดเวลา](/th/automation/cron-jobs#delivery-and-output)

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

```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](/th/tools/llm-task) เมื่อคุณต้องการขั้นตอนโมเดลที่ตรวจสอบกับสคีมาได้ภายในเวิร์กโฟลว์

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

## โหมดซิงก์

### โหมดจัดการ

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

ตัวอย่าง: โฟลว์รายงานรายสัปดาห์ที่ (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
```

### โหมดมิเรอร์

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

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

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

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

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

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

## คำสั่ง CLI

```bash
# 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>`   | ตรวจสอบโฟลว์หนึ่งรายการด้วยรหัสโฟลว์หรือคีย์ค้นหา     |
| `openclaw tasks flow cancel <id>` | ยกเลิกโฟลว์ที่กำลังรันและงานที่ทำงานอยู่ของโฟลว์นั้น    |

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

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

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

- [งานเบื้องหลัง](/th/automation/tasks) — บัญชีแยกประเภทของงานที่แยกตัวออกไปซึ่งโฟลว์ประสาน
- [CLI: งาน](/th/cli/tasks) — อ้างอิงคำสั่ง CLI สำหรับ `openclaw tasks flow`
- [ภาพรวมระบบอัตโนมัติ](/th/automation) — กลไกอัตโนมัติทั้งหมดโดยสรุป
- [งาน Cron](/th/automation/cron-jobs) — งานตามกำหนดเวลาที่อาจป้อนเข้าสู่โฟลว์
