$ cat 08-build-a-system.md บทที่ 8ประกอบ Task + Schedule + Skill + จุดหยุด
ระบบการทำงานอัตโนมัติที่มีประสิทธิภาพบน Spark ไม่ได้เกิดจากการเขียนพรอมต์ให้ยาวที่สุด แต่เกิดจากการ แบ่งหน้าที่ของแต่ละองค์ประกอบให้ชัดเจน: Task กำหนดเป้าหมายและข้อมูลเฉพาะรอบ · Schedule กำหนดจังหวะเวลาเริ่ม · Skill กำหนดขั้นตอนและวิธีทำ · Connected Apps เปิดเส้นทางเข้าถึงข้อมูลที่จำเป็น · และจุดหยุด (Stop condition) คอยควบคุมการกระทำที่มีผลกระทบจริง
หากองค์ประกอบใดแบกรับหน้าที่ปะปนกัน เราจะตรวจสอบและแก้ไขปัญหาได้ยากมาก (เช่น การเผลอเอาวันเวลาไปฝังไว้ใน Skill หรือปล่อยให้ Schedule ตัดสินใจเลือกไฟล์เอง) ในบทนี้ เราจะนำองค์ประกอบทั้ง 5 ส่วนมาประกอบเข้าด้วยกันเป็นระบบอ่านข้อมูลแบบ Read-only และใช้ work panel เป็นหลักฐานตรวจสอบว่า Schedule, Google Drive และ Skill ทำงานประสานกันอย่างถูกต้องตรงตามขอบเขตจริง
โครงสร้างการทำงานประสานกันของระบบ
แต่ละชิ้นส่วนมีหน้าที่เฉพาะเพียงอย่างเดียว · work panel ทำหน้าที่เป็นหลักฐานตรวจสอบหลังการรัน · และจุดหยุดต้องอยู่ก่อนขั้นตอนการสร้าง แก้ไข ส่ง ลบ หรือแชร์ข้อมูลเสมอ
| องค์ประกอบ | สิ่งที่ต้องรับผิดชอบ | สิ่งที่ไม่ควรใส่ลงไป |
|---|
| Task | เป้าหมาย · ข้อมูลเฉพาะรอบนี้ · ขอบเขต · จุดหยุด | ขั้นตอนวิธีทำถาวรที่ต้องคัดลอกซ้ำทุกครั้ง |
| Schedule | วัน เวลา หรือเงื่อนไข (Trigger) ในการเริ่มงาน | ตรรกะงานทั้งหมดและสิทธิ์การเข้าถึงแบบกว้างๆ |
| Skill | ลำดับขั้นตอน · รูปแบบผลลัพธ์ · วิธีรับมือข้อมูลที่ขาด · ข้อห้าม |
| วันที่รันงาน หรือชื่อไฟล์เฉพาะของรอบนั้น |
| Connected Apps | ประตูเชื่อมต่อข้อมูลและการกระทำที่ได้รับอนุญาต | การเปิดสิทธิ์เหมารวมทิ้งไว้ให้ทุก Task |
| Work panel | หลักฐานตรวจสอบว่ามีการเรียกใช้ Schedule · Files · Skill · Apps ใดบ้าง | ไม่ใช่ใบรับประกันว่าข้อมูลถูกต้อง 100% |
ระบบทดลองในบทนี้
ในตัวอย่างนี้ เราจะสั่งให้ค้นหาชื่อไฟล์สมมุติที่ตั้งใจไม่สร้างขึ้นมาใน Google Drive เพื่อให้รู้คำตอบล่วงหน้าว่าระบบต้องตอบว่า “ไม่พบ” โดยระบบจะทำงานต่อเนื่องกัน 4 ขั้นตอน:
- Schedule แบบ Once เริ่มต้นสั่งงาน Task
- Google Drive ค้นหาชื่อไฟล์ที่ระบุแบบตรงตัว
- Skill แปลงข้อความ “ไม่พบ” ให้กลายเป็นเช็กลิสต์ 1 รายการตามรูปแบบมาตรฐาน
- จุดหยุด ควบคุมห้ามสร้าง เปลี่ยนชื่อ ย้าย แชร์ ลบ ส่ง หรือแก้ไขข้อมูลใดๆ ทั้งสิ้น
ขั้นตอนสร้าง Schedule ที่ห่อหุ้มระบบไว้
- กด Activate เปิดใช้งาน Skill
turn-notes-into-safe-checklist ชั่วคราว
- เปิดหน้า Schedules แล้วคลิกปุ่ม Create manually
- ตั้งชื่อ Schedule ว่า “ตรวจไฟล์ต้นทางก่อนเริ่มงาน”
- เลือกประเภทเป็น Once และกำหนดวันเวลาในอนาคต
- วางข้อความคำสั่งพรอมต์ด้านบนลงในช่อง Instructions
- คลิกปุ่ม Create
หน้าจอจริงเต็ม viewport · ขอบเขตแบบอ่านอย่างเดียวถูกกำหนดไว้ในฟอร์มอย่างชัดเจน โดยไม่ปล่อยให้ AI คาดเดาเอาเองการเรียกใช้ Skill ผ่าน Schedule สามารถทำได้ 2 วิธี คือ พิมพ์เลือกผ่านเครื่องหมาย / ในช่อง instructions หรือเปิด Active Skill ที่มี description ตรงกับงานไว้เพื่อให้ Spark เลือกใช้อัตโนมัติ ในการทดลองนี้เราเลือกวิธีหลัง แล้วเข้าไปตรวจเช็กชื่อ Skill ใน work panel (หาก Skill มีโอกาสไปตรงกับหลายงาน แนะนำให้เลือกด้วย / จะแน่นอนที่สุด)
ตรวจสอบหลักฐาน 5 จุดใน work panel หลังกด Run now
หลังจากสร้างเสร็จ ให้คลิกที่เมนู More → Run now แล้วรอจนงานเสร็จสมบูรณ์ เมื่อเปิดดู work panel จะพบข้อมูลหลักฐานครบถ้วนในภาพเดียว:
Schedule เป็นตัวเริ่มต้น · Google Drive เป็นแหล่งข้อมูลอ่าน · Skill เป็นตัวจัดรูปแบบผลลัพธ์ · และจุดหยุดทำให้งานจบลงที่การร่างสรุป 1 บรรทัดอย่างปลอดภัยจุดตรวจสอบใน work panel (อ่านจากขวาลงมา):
- Progress: แสดงเป้าหมายงานว่าต้องขอไฟล์หรือสำเนาที่ถูกต้องก่อนเริ่มงานต่อ
- Schedules: แสดงชื่อ “ตรวจไฟล์ต้นทางก่อนเริ่มงาน” พร้อมวันเวลากำหนดรัน
- Files: ช่องว่างเปล่า ไม่มีไฟล์ใดถูกเปิดขึ้นมาแก้ไขหรือสร้างใหม่
- Skills & apps: แสดง Google Drive
- Skills & apps: แสดง Skill
turn-notes-into-safe-checklist
ผลลัพธ์ตรงกลางแสดงเช็กลิสต์ 1 รายการตรงตามรูปแบบของ Skill โดยเว้นช่อง [ข้อมูลที่ต้องเติม] ไว้สำหรับผู้รับผิดชอบและกำหนดเสร็จ และมีจุดตรวจระบุว่า “ได้รับไฟล์หรือสำเนาที่ถูกต้อง” ซึ่งช่วยให้เรารู้ทันทีว่าต้องเตรียมอะไรก่อนเริ่มงานขั้นต่อไป
สิ่งที่หลักฐานนี้พิสูจน์ได้ และสิ่งที่ยังไม่อาจการันตี
สิ่งที่หลักฐานใน work panel พิสูจน์ได้:
- การกด Run now เริ่มต้นรัน Task ที่ผูกอยู่กับ Schedule ได้จริง
- Task เรียกใช้งาน Google Drive และ Skill ที่ระบุไว้ถูกต้อง
- คำตอบที่ได้มี 1 รายการตามรูปแบบและโครงสร้างของ Skill
- หมวด Files ว่างเปล่า และไม่มีแอปอื่นนอกเหนือจากที่สั่งถูกเรียกใช้
สิ่งที่ยังไม่อาจการันตีได้:
- ไม่ได้รับรองว่าใน Drive ทั้งบัญชีจะไม่มีการเปลี่ยนแปลงจากงานอื่น
- ไม่ได้รับรองว่าผลการรันในอนาคตทุกครั้งจะได้ข้อความเหมือนเดิมเป๊ะทุกตัวอักษร
- ไม่ได้รับรองว่าไม่มีไฟล์อื่นที่ชื่อใกล้เคียงกันอยู่ใน Drive
- ไม่ได้รับรองว่าเวลาทำงานจริงของ Schedule ในอนาคตจะตรงเวลาเป๊ะระดับนาที
ดังนั้น สำหรับงานที่มีความสำคัญ เราจึงต้องตรวจสอบความถูกต้องของข้อมูลจริงในแอปปลายทางควบคู่ไปด้วยเสมอ work panel เป็นเพียงรายงานการทำงานของ Spark ไม่ใช่ระบบตรวจสอบอิสระ
ปิดการทดลองให้คงอยู่ในสภาพที่ปลอดภัย
หลังจากการทดสอบเสร็จสิ้น ให้ดำเนินการ 2 ขั้นตอนนี้ทันที:
- กด Pause ที่ Schedule: เพื่อหยุดไม่ให้คำสั่งรันซ้ำตามวันเวลาจริงในอนาคต
- กด Deactivate ที่ Skill: เพื่อไม่ให้ Spark เผลอเลือก Skill นี้ไปใช้ใน Task อื่นโดยไม่ตั้งใจ
ในการทดลองเราจะไม่กด Delete ทิ้งทันที เพราะการ Delete เป็นการลบถาวร การเลือก Pause และ Deactivate จะช่วยหยุดการทำงานของระบบไว้ โดยที่ยังคงเหลือโครงสร้างให้เรากลับมาตรวจสอบและปรับแก้ต่อได้ในภายหลัง
บันได 5 ขั้นในการประกอบระบบของคุณเอง
อย่าประกอบทุกองค์ประกอบพร้อมกันในคราวเดียว แต่ให้ค่อยๆ ต่อยอดทีละขั้น:
ขั้นที่ 1 · ทดสอบ Task ด้วยข้อมูลสมมุติ
ส่งงานด้วยข้อความตัวอย่างเพื่อปรับจูนคำสั่งให้ได้ผลลัพธ์และรูปแบบที่ถูกต้องก่อน โดยยังไม่เชื่อมต่อแอปและไม่สร้างไฟล์
ขั้นที่ 2 · เพิ่ม Connected Apps แบบอ่านอย่างเดียว
ระบุชื่อแอปและแหล่งข้อมูลให้เฉพาะเจาะจง แล้วตรวจดูใน work panel ว่าไม่มีแอปอื่นหลุดเข้ามาเกินขอบเขต
ขั้นที่ 3 · ย้ายขั้นตอนวิธีทำไปเก็บเป็น Skill
บันทึกกระบวนการทำงานไว้ใน Skill แล้วทดสอบเรียกใช้ผ่าน / เพื่อเทียบดูความถูกต้องของรูปแบบ จำนวนรายการ และจุดตรวจ
ขั้นที่ 4 · ห่อหุ้มด้วย Schedule แบบ Once
ตั้งเวลาทำงานไว้ในอนาคต แล้วใช้ปุ่ม Run now ทดสอบดูผลลัพธ์ทันที โดยยังไม่เริ่มด้วยรอบรายวันหรือระบบ monitor
ขั้นที่ 5 · เปิดใช้งานตามรอบเวลาจริงหลังตรวจทาน
เมื่อมั่นใจในความถูกต้องของระบบและรู้จุดตรวจเช็กชัดเจนแล้ว จึงค่อยเปลี่ยน Schedule เป็นรอบรายวัน รายสัปดาห์ หรือตั้งเป็น monitor
แนวทางการแก้ไขเมื่อระบบทำงานผิดพลาด
| อาการที่พบ | จุดที่ต้องเข้าไปแก้ไข | เหตุผล |
|---|
| ผลลัพธ์ออกมาไม่ตรงรูปแบบเดิม | Skill | ขั้นตอนหรือแม่แบบ (Template) ใน Skill ยังไม่รัดกุมพอ |
| งานเริ่มผิดเวลา ถี่เกินไป หรือไม่รัน | Schedule | เงื่อนไขการเริ่ม (Trigger) หรือการตั้งเวลาไม่ถูกต้อง |
| มีการแอบอ่านไฟล์หรือเปิดแอปเกินสั่ง | Task + Connected Apps | ขอบเขตในช่อง “ของที่ให้ใช้” กว้างเกินไป |
| ข้อมูลไม่ครบแล้ว AI มโนแต่งขึ้นมาเอง | Skill + Task | ต้องเพิ่มกติกาเรื่อง placeholder ([...]) และคำสั่งห้ามเดา |
| AI กำลังจะส่ง ลบ ซื้อ แชร์ หรือแก้ข้อมูลจริง | จุดหยุด (Stop condition) | ต้องวางเงื่อนไขให้หยุดรอการยืนยันจากคนก่อนเสมอ |
| work panel ไม่แสดงชื่อ Skill ที่ต้องการ | Name · Description หรือสั่งผ่าน / | Spark ไม่เลือก Skill หรือเลือกผิดตัว |
อย่าแก้ไขทุกชิ้นส่วนพร้อมกันในคราวเดียว หากปัญหาอยู่ที่รูปแบบผลงาน ให้เข้าไปแก้ที่ตัว Skill แล้วทดสอบกับ Task เดิม หากปัญหาอยู่ที่เวลา ให้แก้เฉพาะ Schedule วิธีนี้จะช่วยให้เราค้นพบสาเหตุที่แท้จริงได้เร็วที่สุด
จุดที่ต้องตรวจก่อนปล่อยต่อ
- Task ระบุเป้าหมาย ข้อมูลเฉพาะรอบนี้ และจุดหยุดความปลอดภัยครบถ้วน
- Skill บันทึกเฉพาะขั้นตอนวิธีทำที่ใช้ซ้ำได้ ไม่ใส่ชื่อไฟล์หรือวันเวลาเฉพาะรอบ
- Schedule เลือกจังหวะเวลาเริ่มที่ตรงกับธรรมชาติของงาน
- Connected Apps เปิดสิทธิ์เฉพาะแอปที่งานรอบนั้นจำเป็นต้องใช้
- ในรอบทดสอบ Run now ตรวจสอบแล้วว่า Schedule · Skill · Apps แสดงผลตรงตามที่ตั้งใจ
- หมวด Files ไม่มีไฟล์อื่นที่ไม่ได้ขอถูกเปิดหรือสร้างขึ้นมา
- ผลลัพธ์ถูกต้องทั้งจำนวน รูปแบบ placeholder และความถูกต้องของข้อเท็จจริง
- หลังทดสอบ ให้กด Pause Schedule และ Deactivate Skill หากยังไม่พร้อมใช้งานต่อเนื่อง
- ก่อนกด Resume กลับมาใช้งาน ให้ทดสอบด้วย Run now ใหม่อีกครั้งเสมอ
ลองเลย
นำ Task ชั้นที่ 1 ที่ผ่านการทดสอบแล้วจากบทก่อนหน้า มาผูกเข้ากับ Skill ที่บันทึกไว้ จากนั้นห่อหุ้มด้วย Schedule แบบ Once แล้วกด Run now เพื่อตรวจดูความถูกต้องของ Schedule · Files · Skills & apps ใน work panel ให้ครบถ้วน (ยังคงห้ามเปิดสิทธิ์เขียนข้อมูลในรอบเดียวกัน) เมื่อทดสอบเสร็จแล้ว ให้กด Pause Schedule และ Deactivate Skill เก็บไว้
จากบทนี้เป็นต้นไป เราจะไม่เรียนรู้เครื่องมือแบบแยกชิ้นเดี่ยวๆ อีกแล้ว แต่จะนำโครงสร้างระบบที่สมบูรณ์นี้ไปประยุกต์ใช้กับโจทย์งานจริงในชีวิตประจำวัน โดยเริ่มต้นจากงานที่มีความเสี่ยงต่ำที่สุดก่อน นั่นคือ: การค้นคว้าหาข้อมูลเชิงลึกจากเว็บสาธารณะ พร้อมแนบแหล่งอ้างอิงที่ตรวจสอบย้อนกลับได้
อัปเดตล่าสุด: 21 ส.ค. 2569
ความคิดเห็น
ยังไม่มีความคิดเห็น
เป็นคนแรกได้เลย