หลังจากแยก role แล้ว ปัญหาต่อมาคือเรื่องการส่งงานต่อ ไม่ใช่เรื่องให้แต่ละตัวตอบคำถามได้
คำว่า “ทำแล้ว” ในแชทมันยังไม่พอสำหรับงานจริง โดยเฉพาะงานที่ต้องมีไฟล์ มี status มี link และมีคนรับต่อ
ตรงนี้แหละที่ผมเริ่มรู้ว่า ถ้าจะให้ AI ทำงานเป็นทีมจริงๆ มันต้องมีอะไรสักอย่างคั่นระหว่าง “คำที่มันตอบ” กับ “state ในระบบ” ไม่งั้นสุดท้ายผมก็ต้องไล่เช็คเองทุกจุดอยู่ดี
handoff ของผมคือใบส่งงาน ไม่ใช่แค่ข้อความในแชท
ผมเคยคิดว่าให้ agent ส่งข้อความบอกกันก็น่าจะพอ เช่น UX/UI ทำ preview เสร็จแล้วก็ ping Dev ต่อ หรือ Dev ทำเสร็จแล้วก็ ping DevOps ต่อ
แต่พอทำจริง มันคุมยากมาก เพราะข้อความในแชทมันไหลไปเรื่อย บางที context หาย บางทีบอกว่าส่งแล้วแต่ไม่มีอะไรให้ script ไปจับต่อ บางที Linear ยังไม่ขยับ แต่ agent ในแชทพูดเหมือนเรียบร้อยแล้ว
ผมเลยเปลี่ยนวิธีคิดใหม่ ให้ handoff เป็นไฟล์จริงแทน คล้ายๆ ใบส่งงานของแต่ละทีม ในนั้นต้องมี issue อะไร status จะไปไหน ใครเป็นคนขอ ใครเป็น agent ถัดไป แล้วทำอะไรไว้บ้าง
LINEAR_STATUS: In Review
PROJECT_ID: SEK-123
REQUESTED_BY: blueflower
ASSIGNEE_AGENT: devops
## สิ่งที่ทำ
- ทำ preview แล้ว
- แนบ staging link
- ขอให้ DevOps deploy ต่อ
พอเป็นไฟล์จริง มันเริ่มตรวจได้แล้วว่า “ส่งงานแล้ว” แปลว่าต้องมีไฟล์ handoff อยู่จริง ไม่ใช่แค่พิมพ์บอกในแชท
script คือคนถือ clipboard ให้ AI
ผมไม่ได้อยากให้ AI ทุกตัวมีสิทธิ์ทำทุกอย่างเองหมด เพราะมันเสี่ยงและ debug ยาก เลยให้ script เข้ามาทำงานที่ควร deterministic แทน
อย่าง relay script หน้าที่มันไม่ได้ฉลาดอะไรเลย แต่นั่นแหละคือข้อดี มันอ่านไฟล์ handoff เช็ค field ที่จำเป็น ส่งข้อความเข้า Discord update Linear แล้วค่อยย้ายไฟล์ไป processed
ผมมองแบบนี้ AI เหมาะกับงานที่ต้องคิด ต้องอ่าน ต้องเขียน ต้องช่วยตัดสินใจ ส่วน script เหมาะกับงานที่ต้องเช็คซ้ำได้ เช่น format ต้องครบ status ต้อง sync file ต้องถูกย้าย log ต้องมี
ผมเลยเริ่มไม่เชื่อคำว่าเสร็จ ถ้าไม่มีอะไรให้ดูต่อ
หลังๆ ผมเริ่มไม่อยากเชื่อคำว่า “เรียบร้อยแล้ว” อย่างเดียว ผมอยากเห็นว่าอะไรในระบบเปลี่ยนไปจริง
ถ้าบอกว่าส่ง handoff แล้ว ก็ต้องมีไฟล์ ถ้าบอกว่า relay แล้ว ก็ต้องเห็นใน Discord หรือ Linear ขยับ ถ้าบอกว่า deploy แล้ว ก็ต้องมี staging link ให้เปิด ถ้าบอกว่าแก้ code แล้ว ก็ต้องมี commit / MR / diff ให้ดู
พอเราบังคับให้ทุกอย่างทิ้งร่องรอยไว้ AI จะมั่วได้น้อยลงเยอะ ไม่ใช่ว่ามันจะไม่พลาดเลยนะ แต่มันพลาดแล้วเราจับได้เร็วขึ้น
AI เพียวๆ ยังไม่พอ เพราะมันตอบเนียนเกินไป
อันนี้ไม่ได้ด่า AI นะ ผมว่าเป็นธรรมชาติของมันเลย มันถูกออกแบบมาให้ตอบเราให้ได้มากที่สุด บางทีมันเลยตอบเหมือนงานไปต่อแล้ว ทั้งที่ state จริงๆ ในระบบยังไม่เปลี่ยน
ถ้าเราใช้ AI คนเดียวในแชทเล็กๆ อาจจะไม่เป็นไร แต่พอเป็น workflow ที่มีหลาย agent หลาย tool หลาย status มันต้องมี source of truth ที่อยู่นอกหัว AI
ผมเลยพยายามแยกหน้าที่ให้ชัด AI คิดและเขียน ส่วน script ตรวจและขยับ state อะไรที่เสี่ยงก็ให้คน approve อีกที แบบนี้มันอาจจะช้ากว่าปล่อย auto หมด แต่ผมว่ามันคุมได้กว่าเยอะ
ตอนนี้ผมเลยไม่มอง AI team เป็นแค่แชทแล้ว
ถ้ามอง AI เป็นแค่แชท เราจะสนใจแค่ว่ามันตอบดีไหม แต่พอเริ่มมองเป็นทีมทำงาน คำถามมันเปลี่ยนเลยว่าใครรับต่อ state อยู่ที่ไหน แล้วเราจะรู้ได้ไงว่ามันทำจริง
ตอนนี้ของ SekApp ยังปรับไปเรื่อยๆ อยู่ หลายจุดยังไม่เนียน แต่ผมเริ่มชอบแนวนี้มากกว่าให้ AI วิ่งเองล้วนๆ เพราะอย่างน้อยมันมีไฟล์ มี log มี status ให้ตาม ไม่ใช่ต้องเชื่อจากคำตอบในแชทอย่างเดียว
บทต่อไปผมน่าจะเล่าต่อให้ tech กว่านี้ ว่างานหนึ่งชิ้นมันวิ่งผ่าน `.md`, skill, thread, subagent, handoff และ script อะไรบ้าง เพราะพอ workflow เริ่มยาว ความจำของ AI อย่างเดียวเอาไม่อยู่จริงๆ