Subagents (เอเจนต์ย่อย)
คืออะไร
ลองนึกภาพผู้จัดการที่มอบหมายงานเฉพาะจุดให้ผู้ช่วยชั่วคราวคนหนึ่ง: ผู้ช่วยทำงานนั้นให้เสร็จ รายงานผลกลับมา แล้วก็จากไป Subagent ก็คือผู้ช่วยชั่วคราวแบบนั้น — เอเจนต์ AI แยกต่างหากที่เอเจนต์หลักของคุณสามารถสร้างขึ้นมาเพื่อจัดการงานเฉพาะจุดชิ้นหนึ่ง มันทำงานอยู่ใน context (พื้นที่ทำงานและความจำแยกต่างหาก) ของตัวเอง พร้อมชุดคำสั่งของตัวเอง ทำงานให้เสร็จ แล้วรายงานผลกลับมา เนื่องจาก subagent แต่ละตัวเริ่มต้นแบบใหม่ทุกครั้ง บทสนทนาหลักจึงยังคงสะอาด — รายละเอียดของงานย่อยจะไม่มาเบียดบังงานที่คุณสนใจจริง ๆ
จุดแข็ง
- ช่วยให้ context หลักไม่รก ด้วยการโยนงานย่อยที่มีรายละเอียดเยอะออกไป
- ให้คุณรันงานที่เป็นอิสระต่อกันแบบขนานได้ ซึ่งอาจเร็วขึ้นมาก
- Subagent แต่ละตัวสามารถเชี่ยวชาญเฉพาะทางได้ — ตัวรีวิว ตัวค้นหา ตัวทดสอบ — พร้อมพรอมป์ () เฉพาะทางของตัวเอง
- ความผิดพลาดถูกจำกัดขอบเขต: subagent ที่พลาดไปจะไม่ทำให้ทั้งเซสชันพังตามไปด้วย
ข้อแลกเปลี่ยน
- Subagent จะรู้แค่สิ่งที่คุณส่งให้เท่านั้น หาก context ขาดหายไปก็จะได้ผลลัพธ์ที่ไม่ตรงเป้า
- การสร้างเอเจนต์หลายตัวใช้โทเคน ( — หน่วยข้อความที่โมเดลอ่านและคิดค่าใช้จ่ายเป็นก้อน ๆ) มากขึ้น และอาจมีค่าใช้จ่ายสูง
- คุณจะได้รับกลับมาแค่สรุปเท่านั้น ดังนั้นรายละเอียดปลีกย่อยจากงานย่อยอาจสูญหายไป
- การประสานงานหลายตัวพร้อมกันก็เพิ่มความซับซ้อนของมันเอง
ใช้เมื่อไหร่
ใช้ subagent เมื่องานนั้นจบในตัวเอง (self-contained) และไม่เช่นนั้นจะทำให้เธรดหลักบวมขึ้น เช่น การค้นหาในโค้ดเบสขนาดใหญ่ การรีวิว diff หรือการรันการสืบสวนที่เป็นอิสระต่อกันหลายอย่างพร้อมกัน
เหมาะกับ vibe coding อย่างไร
Subagent คือวิธีขยายความสนใจของเอเจนต์ มอบงานที่วุ่นวายและต้องสำรวจเยอะ — "หาทุกที่ที่มีการใช้สิ่งนี้" "รีวิวหาบั๊กในโค้ดนี้" — ให้ subagent จัดการ แล้วให้เอเจนต์หลักโฟกัสอยู่กับแผนงาน ควรระบุให้ชัดเจนว่าอยากให้ subagent แต่ละตัวส่งอะไรกลับมา เพราะคุณจะได้รับแค่ข้อสรุปของมัน ไม่ใช่บทสนทนาทั้งหมด
Spawn a review subagent:
task: "Review the diff in src/auth for security issues."
return: "A short list of concrete problems, or 'no issues found'."