แบ่งงานให้ AI หลายตัวทำพร้อมกันโดยไม่ชนกันเอง

สรุปสั้น ๆ
Claude Code Subagents คือการแบ่ง Agent หลักออกเป็น Agent ย่อยหลายตัวที่แต่ละตัวรับผิดชอบงานหรือขอบเขตเฉพาะของตัวเอง ทำงานคู่ขนานกันได้โดยไม่ปนกัน เหมาะกับงานหลายขั้นตอนที่แยกจากกันได้ชัดเจน เช่นแก้บั๊กหลายจุดที่ไม่เกี่ยวข้องกัน หรือวิจัยข้อมูลจากหลายแหล่งพร้อมกันก่อนสรุปรวม
ลองนึกภาพงานที่ต้องแก้บั๊กสามจุดในโมดูลที่ไม่เกี่ยวข้องกันเลย เช่นจุดหนึ่งอยู่ที่ระบบล็อกอิน อีกจุดอยู่ที่หน้ารายงาน และอีกจุดอยู่ที่ระบบแจ้งเตือน ถ้าให้ Claude Code ทำทีละจุดในบทสนทนาเดียวกัน ต้องรอให้จุดแรกเสร็จก่อนถึงจะเริ่มจุดที่สอง ทั้งที่ความจริงแล้วสามจุดนี้ไม่ได้ต้องพึ่งกันเลย
ปัญหานี้ยิ่งชัดเจนขึ้นเมื่องานมีขนาดใหญ่ เช่นต้องรีวิวโค้ดหลายไฟล์พร้อมกัน หรือต้องค้นหาสาเหตุของปัญหาจากหลายมุมพร้อมกัน การทำทีละอย่างในบทสนทนาเดียวไม่ได้ใช้ศักยภาพของ Agent ให้เต็มที่ ทั้งที่งานเหล่านี้แยกทำคู่ขนานกันได้โดยไม่กระทบกัน
Subagents คือกลไกที่ตอบโจทย์นี้โดยตรง มันคือการแตก Agent หลักออกเป็น Agent ย่อยที่แต่ละตัวรับผิดชอบขอบเขตงานของตัวเอง ทำงานพร้อมกันได้จริง แล้วนำผลลัพธ์กลับมารวมกันในตอนท้าย บทความนี้จะอธิบายว่า Subagents ทำงานยังไง เหมาะกับงานแบบไหน และมีข้อควรระวังอะไรก่อนเริ่มใช้จริง
ปัญหาของการทำงานทีละขั้นตอนในบทสนทนาเดียว
เมื่อใช้ Claude Code แบบบทสนทนาเดียวต่อเนื่อง Agent จะทำงานเรียงตามลำดับคำสั่งที่ได้รับ ถ้างานมีหลายส่วนที่ไม่เกี่ยวข้องกัน การทำแบบเรียงลำดับนี้กลายเป็นคอขวด เพราะต้องรอส่วนแรกเสร็จสมบูรณ์ก่อนถึงจะเริ่มส่วนถัดไป ทั้งที่จริง ๆ แล้วสามารถทำพร้อมกันได้
อีกปัญหาที่พบบ่อยคือบริบทของบทสนทนาเดียวยาวขึ้นเรื่อย ๆ เมื่อทำงานหลายเรื่องต่อกัน ทำให้ Agent ต้องแบกรับข้อมูลจากงานก่อนหน้าที่อาจไม่เกี่ยวข้องกับงานปัจจุบันเลย ซึ่งเพิ่มโอกาสที่ผลลัพธ์จะสับสนหรือดึงบริบทผิดจุดมาใช้
Subagents คืออะไร ทำงานคู่ขนานกันได้จริงยังไง
Subagent คือ Agent ย่อยที่ถูกมอบหมายให้รับผิดชอบงานหรือขอบเขตเฉพาะของตัวเอง แยกออกจากบริบทของ Agent หลักและ Subagent ตัวอื่น แต่ละตัวมีพื้นที่ทำงานของตัวเองที่ไม่ปนกับตัวอื่น ทำให้สามารถรันพร้อมกันได้จริงโดยไม่ต้องรอให้ตัวหนึ่งเสร็จก่อนอีกตัวจะเริ่ม
เมื่อ Subagent แต่ละตัวทำงานเสร็จ ผลลัพธ์จะถูกส่งกลับมารวมที่ Agent หลัก ซึ่งทำหน้าที่เหมือนหัวหน้าทีมที่รวบรวมงานจากลูกทีมแต่ละคนมาสรุปเป็นภาพรวมเดียวกัน แทนที่คนใช้งานจะต้องคอยสลับไปมาเองระหว่างงานหลายส่วนพร้อมกัน
งานแบบไหนเหมาะกับ Subagents และแบบไหนไม่คุ้ม
ไม่ใช่ทุกงานที่ควรแบ่งเป็น Subagents เพราะการแบ่งงานมีต้นทุนในการประสานผลลัพธ์กลับมารวมกัน ตารางนี้ช่วยตัดสินใจว่างานแบบไหนควรแบ่งและแบบไหนควรทำในบทสนทนาเดียว:
| ลักษณะงาน | เหมาะกับ Subagents ไหม | เหตุผล |
|---|---|---|
| แก้บั๊กหลายจุดในโมดูลที่ไม่เกี่ยวข้องกัน | เหมาะ | แต่ละจุดทำงานอิสระ ไม่ต้องรอกัน |
| ฟีเจอร์เดียวที่ต้องแก้ไฟล์ต่อเนื่องกันเป็นลำดับ | ไม่เหมาะ | แต่ละขั้นตอนพึ่งผลลัพธ์ของขั้นก่อนหน้า |
| รีวิวโค้ดหลายไฟล์พร้อมกันก่อนสรุปภาพรวม | เหมาะ | แต่ละไฟล์ตรวจแยกกันได้ แล้วค่อยรวมสรุป |
| ดีบั๊กปัญหาเดียวที่ไม่รู้สาเหตุ ต้องไล่ทีละจุด | ไม่เหมาะ | ต้องอาศัยผลจากขั้นก่อนมาตัดสินใจขั้นต่อไป |
เริ่มแบ่งงานให้ Subagents ทำยังไงให้ไม่ชนกัน
การแบ่งงานที่ดีเริ่มจากการกำหนดขอบเขตของแต่ละ Subagent ให้ชัดเจนตั้งแต่ต้น เพื่อไม่ให้งานซ้อนทับกันจนเกิดความสับสนตอนรวมผล ขั้นตอนที่แนะนำมีดังนี้:
- แยกงานใหญ่ออกเป็นส่วนย่อยที่ไม่พึ่งพากันโดยตรง เช่นแยกตามไฟล์ โมดูล หรือหัวข้อที่ต้องตรวจสอบ
- กำหนดขอบเขตให้แต่ละ Subagent ชัดเจนว่ารับผิดชอบส่วนไหน ป้องกันไม่ให้สองตัวแก้ไฟล์เดียวกันพร้อมกันจนขัดแย้งกันเอง
- มอบหมายงานให้แต่ละ Subagent เริ่มทำพร้อมกัน โดยไม่ต้องรอให้ตัวหนึ่งเสร็จก่อน
- รอผลลัพธ์จากทุกตัวกลับมาที่ Agent หลัก ก่อนจะสรุปภาพรวมหรือแก้ไขจุดที่ยังขัดแย้งกันอยู่
- ตรวจสอบผลรวมสุดท้ายด้วยตัวเองก่อนยืนยัน โดยเฉพาะจุดที่งานของ Subagent หลายตัวมาบรรจบกัน
ความเสี่ยงเรื่องงานชนกันเมื่อ Subagent หลายตัวแก้ไฟล์ที่เกี่ยวข้องกัน
แม้ Subagents จะแยกขอบเขตกันได้ดีในทางทฤษฎี แต่ในทางปฏิบัติบางครั้งงานที่ดูเหมือนแยกจากกันกลับมีจุดที่เกี่ยวข้องกันโดยไม่รู้ตัว เช่น Subagent สองตัวต่างแก้ไฟล์คนละไฟล์ แต่ทั้งคู่เรียกใช้ฟังก์ชันร่วมกันจากไฟล์กลาง ถ้าตัวหนึ่งเปลี่ยน signature ของฟังก์ชันนั้น อีกตัวอาจไม่รู้และทำให้เกิดความขัดแย้งตอนรวมผล
วิธีลดความเสี่ยงนี้คือตรวจสอบก่อนแบ่งงานว่าส่วนที่จะมอบหมายให้ Subagent แต่ละตัวมีจุดเชื่อมกันหรือไม่ ถ้ามีจุดเชื่อมสำคัญ ควรให้ Agent หลักจัดการส่วนนั้นเองแทนที่จะแบ่งให้ Subagent ย่อยทำ หรือกำหนดให้ Subagent ที่แก้ไฟล์กลางทำก่อน แล้วค่อยให้ตัวอื่นเริ่มทำงานต่อ
ตัวอย่างสมมติ ทีมใช้ Subagents รีวิวโค้ดก่อน Merge ใหญ่
สมมติทีมพัฒนากำลังเตรียม Merge ฟีเจอร์ใหญ่ที่แก้ไฟล์กว่ายี่สิบไฟล์เข้าด้วยกัน ถ้าให้ Agent ตัวเดียวไล่อ่านทีละไฟล์เพื่อรีวิวก่อน Merge จะใช้เวลานานมาก เพราะต้องอ่านทีละไฟล์ตามลำดับ
เมื่อแบ่งงานให้ Subagent หลายตัวรับผิดชอบกลุ่มไฟล์คนละกลุ่มพร้อมกัน เช่นตัวหนึ่งดูฝั่ง Backend อีกตัวดูฝั่ง Frontend และอีกตัวดูไฟล์ test ทั้งหมด แต่ละตัวรายงานปัญหาที่พบในขอบเขตของตัวเองกลับมา แล้ว Agent หลักรวบรวมเป็นสรุปเดียวให้ทีมอ่านต่อ ทำให้กระบวนการรีวิวเบื้องต้นเร็วขึ้นกว่าการไล่อ่านทีละไฟล์มาก
ตัวอย่างนี้เป็นกรณีสมมติเพื่อให้เห็นภาพการใช้งาน ไม่ใช่ตัวเลขจากผลวัดอย่างเป็นทางการ แต่สะท้อนรูปแบบที่งานซึ่งแยกขอบเขตได้ชัดเจนมักได้ประโยชน์จากการทำงานคู่ขนานมากกว่าการทำทีละอย่างต่อเนื่อง
ใช้ Subagents ร่วมกับ Skills และ MCP ได้ยังไง
Subagents ทำงานได้ดีขึ้นอีกเมื่อใช้ร่วมกับ Skills เพราะแต่ละ Subagent ที่รับผิดชอบงานคนละส่วนสามารถทำตามมาตรฐานทีมเดียวกันได้ โดยไม่ต้องอธิบายกฎซ้ำให้แต่ละตัวฟังเอง ทำให้ผลลัพธ์จากทุก Subagent สอดคล้องกันแม้จะทำงานแยกส่วนกัน
ในกรณีที่งานต้องเชื่อมกับระบบภายนอกผ่าน MCP เช่น Subagent ตัวหนึ่งต้อง Query ฐานข้อมูล อีกตัวต้องเช็คสถานะจากระบบ Ticket ควรตรวจสอบให้แน่ใจว่าสิทธิ์การเข้าถึงที่ตั้งไว้ครอบคลุมงานของทุก Subagent และไม่มีตัวไหนพยายามเขียนข้อมูลทับกันโดยไม่ได้ตั้งใจ
ข้อผิดพลาดที่พบบ่อยตอนเริ่มใช้ Subagents
ความผิดพลาดที่พบบ่อยที่สุดคือแบ่งงานที่จริง ๆ แล้วพึ่งพากันอยู่ ให้ Subagent ทำคู่ขนาน ทำให้ผลลัพธ์ขัดแย้งกันตอนรวม หรือต้องเสียเวลาแก้ปัญหาการประสานงานมากกว่าเวลาที่ประหยัดได้จากการทำคู่ขนาน
- แบ่งงานที่มีความสัมพันธ์กันสูงออกเป็น Subagents โดยไม่ตรวจสอบจุดเชื่อมก่อน ทำให้เกิดความขัดแย้งตอนรวมผล
- มอบหมายงานกว้างเกินไปให้ Subagent ตัวเดียว จนมันต้องตัดสินใจหลายเรื่องพร้อมกันโดยไม่มีขอบเขตชัด
- ไม่ตรวจสอบผลรวมสุดท้ายจากทุก Subagent ก่อนยืนยัน ปล่อยให้ความขัดแย้งเล็ก ๆ หลุดเข้าไปในโค้ดจริง
- ใช้ Subagents กับงานเล็กที่ทำในบทสนทนาเดียวเสร็จเร็วอยู่แล้ว ทำให้เสียเวลากับการประสานงานโดยไม่จำเป็น
ต้นทุนที่ต้องแลกเมื่อเลือกใช้ Subagents
การรัน Subagent หลายตัวพร้อมกันย่อมใช้ทรัพยากรมากกว่าการรัน Agent ตัวเดียวทำทีละอย่าง เพราะแต่ละตัวต้องอ่านและประมวลผลบริบทของตัวเองแยกกัน ทีมที่กำลังพิจารณาใช้ควรชั่งน้ำหนักระหว่างเวลาที่ประหยัดได้กับต้นทุนที่เพิ่มขึ้นจากการรันหลายตัวพร้อมกัน ไม่ใช่ใช้ Subagents กับทุกงานโดยไม่คิดถึงความคุ้มค่า
งานที่คุ้มค่าที่สุดสำหรับ Subagents มักเป็นงานที่ใช้เวลานานถ้าทำทีละอย่าง แต่แยกขอบเขตได้ชัดเจนจนทำคู่ขนานได้จริง เช่นการรีวิวโค้ดจำนวนมากก่อน Merge ใหญ่ ส่วนงานเล็กที่ทำเสร็จเร็วอยู่แล้วในบทสนทนาเดียว มักไม่คุ้มกับต้นทุนที่เพิ่มขึ้นจากการแบ่งงาน
ตรวจสอบผลลัพธ์ที่รวมมาจากหลาย Subagent ก่อนใช้จริง
แม้ Agent หลักจะรวบรวมผลลัพธ์จาก Subagent แต่ละตัวมาสรุปให้แล้ว ก็ยังควรมีคนตรวจสอบผลรวมสุดท้ายอีกครั้งก่อนนำไปใช้จริง โดยเฉพาะจุดที่งานของ Subagent หลายตัวมาบรรจบกัน เพราะการสรุปรวมของ Agent หลักอาจมองข้ามรายละเอียดบางจุดที่สำคัญต่อบริบทเฉพาะของโปรเจกต์
วิธีที่ช่วยได้คือให้ Agent หลักระบุชัดเจนว่าผลลัพธ์แต่ละส่วนมาจาก Subagent ตัวไหน แทนที่จะสรุปรวมจนแยกไม่ออกว่าใครพบปัญหาอะไร เพราะเมื่อเกิดข้อผิดพลาดขึ้นภายหลัง การรู้ที่มาของแต่ละส่วนจะช่วยให้ตามหาสาเหตุและแก้ไขได้เร็วกว่ามาก
สรุป
Subagents เหมาะกับงานที่แบ่งขอบเขตได้ชัดเจนและไม่พึ่งพากันโดยตรง ไม่ใช่คำตอบสำหรับทุกสถานการณ์ งานที่ต้องอาศัยผลลัพธ์ต่อเนื่องกันเป็นลำดับยังเหมาะกับการทำในบทสนทนาเดียวมากกว่าการแบ่งให้ทำคู่ขนาน
ก่อนเริ่มใช้ ควรสำรวจงานที่ทำอยู่ว่ามีส่วนไหนแยกขอบเขตได้ชัดจริง แล้วเริ่มทดลองแบ่งงานเล็ก ๆ ก่อน เพื่อดูว่าทีมประสานผลลัพธ์กลับมารวมกันได้ราบรื่นแค่ไหน ก่อนขยับไปใช้กับงานที่ซับซ้อนขึ้น
- Subagents แบ่ง Agent หลักออกเป็น Agent ย่อยที่ทำงานคู่ขนานกันได้จริงโดยไม่ต้องรอกัน
- เหมาะกับงานที่แยกขอบเขตชัดเจน เช่นแก้บั๊กหลายจุดหรือรีวิวโค้ดหลายไฟล์พร้อมกัน
- ความเสี่ยงหลักคือจุดเชื่อมที่มองไม่เห็นระหว่างงานที่ดูเหมือนแยกจากกัน ต้องตรวจสอบก่อนแบ่งงาน
- ใช้ร่วมกับ Skills และ MCP ได้ แต่ต้องตรวจสอบขอบเขตสิทธิ์ให้ครอบคลุมงานของทุก Subagent
คำถามที่พบบ่อย
Subagents ต่างจากการเปิดหลายบทสนทนาแยกกันเองยังไง
การเปิดหลายบทสนทนาแยกกันเองต้องให้คนคอยสลับไปมาและรวมผลด้วยตัวเอง ส่วน Subagents ทำงานภายใต้ Agent หลักตัวเดียวที่จัดการมอบหมายงานและรวบรวมผลลัพธ์ให้อัตโนมัติ ลดภาระที่คนต้องทำเอง
ใช้ Subagents กี่ตัวถึงจะเหมาะสม
ไม่มีตัวเลขตายตัว ขึ้นกับจำนวนงานย่อยที่แยกขอบเขตได้ชัดเจนจริง ๆ การเพิ่ม Subagent มากเกินความจำเป็นอาจเพิ่มความซับซ้อนในการประสานผลลัพธ์มากกว่าประโยชน์ที่ได้
ถ้า Subagent สองตัวแก้ไฟล์เดียวกันโดยไม่ตั้งใจจะเกิดอะไรขึ้น
อาจเกิดความขัดแย้งที่ต้องแก้ตอนรวมผล ซึ่งเป็นเหตุผลที่ควรกำหนดขอบเขตให้ชัดเจนตั้งแต่ต้นว่าแต่ละตัวรับผิดชอบไฟล์หรือส่วนไหน ไม่ให้ทับซ้อนกันโดยไม่จำเป็น
Subagents เหมาะกับทีมขนาดเล็กด้วยไหม หรือเหมาะแค่โปรเจกต์ใหญ่
เหมาะกับงานที่มีลักษณะแบ่งขอบเขตได้ชัดเจน ไม่ได้ขึ้นกับขนาดทีมโดยตรง ทีมเล็กที่มีงานหลายจุดไม่เกี่ยวข้องกันก็ได้ประโยชน์จากการทำคู่ขนานเช่นเดียวกับทีมใหญ่
ต้องเขียน Skill แยกให้ Subagent แต่ละตัวไหม
ไม่จำเป็นต้องแยกเสมอไป ถ้า Subagent ทุกตัวทำงานในโปรเจกต์เดียวกันและใช้มาตรฐานเดียวกัน สามารถใช้ Skill ชุดเดียวร่วมกันได้ ยกเว้นกรณีที่แต่ละตัวทำงานคนละลักษณะจนต้องการมาตรฐานต่างกันจริง ๆ
ควรใช้ Subagents กับงานดีบั๊กที่ยังไม่รู้สาเหตุไหม
ส่วนใหญ่ไม่เหมาะ เพราะงานดีบั๊กที่ยังไม่รู้สาเหตุมักต้องไล่ทีละจุดตามผลลัพธ์ที่ได้ก่อนหน้า การแบ่งให้ทำคู่ขนานโดยไม่รู้ทิศทางอาจทำให้เสียเวลามากกว่าทำทีละขั้นตอนในบทสนทนาเดียว
อ่านต่อแบบเจาะลึก
วัด Conversion LINE ทุกแบรนด์ รวมศูนย์ที่เดียว
องค์กรที่มีหลายแบรนด์ หลายสาขา หลาย LINE OA — linli รวม Tracking และส่ง Conversion กลับทุกแพลตฟอร์ม พร้อม Custom Limit เริ่มฟรี 14 วัน
ติดต่อทีม Salesบทความที่เกี่ยวข้อง

ทำไมทีมที่ใช้ Claude Code ถึงเลือกมันแทน Gemini CLI ในงานแก้บั๊กใหญ่

เลือกใช้ Windsurf หรือ Cursor ขึ้นอยู่กับวิธีทำงานของทีม ไม่ใช่ฟีเจอร์ที่เยอะกว่า
