ทำไมต้องเป็นสถาปัตยกรรมแบบสองสมอง?
ผู้ช่วยเขียนโค้ดส่วนใหญ่ใช้โมเดลเพียงตัวเดียวที่ต้องตัดสินใจว่าจะสร้างอะไร และ เขียนซอร์สโค้ดไปด้วยในตัว เมื่อใช้งานต่อเนื่องเป็นเวลานาน หน้าต่างบริบท (context window) ของโมเดลจะเต็มขึ้นเรื่อยๆ จนทำให้เกิด "context drift" หรือการหลุดจากบริบท ซึ่งโมเดลจะลืมการตัดสินใจก่อนหน้าและสร้างโค้ดที่ขัดแย้งกันหรือซ้ำซ้อนออกมา Cursor แก้ปัญหานี้ด้วยการแบ่งภาระทางความคิดออกเป็นส่วนๆ:
- Planner agents ทำงานบนโมเดลที่มีประสิทธิภาพสูงสุด (ในร่างต้นฉบับมีการกล่าวถึง Opus 4.8 หรือ Fable 5) โดยจะย่อยคำสั่งระดับสูงให้กลายเป็นลำดับชั้นของงาน แก้ไขความคลุมเครือ และบันทึกการตัดสินใจในการออกแบบ
- Worker agents ทำงานบนโมเดลที่เร็วกว่าและมีปริมาณการประมวลผลสูง (Composer 2.5) โดยจะรับงานที่ชัดเจนจาก Planner และสร้างชิ้นส่วนโค้ด (code snippets) ออกมา
การแยกส่วน "จะทำอะไร" (what) ออกจาก "จะทำอย่างไร" (how) ช่วยหยุดการทำงานหนักเกินไปซึ่งเป็นสาเหตุให้ระบบโมเดลเดี่ยวหยุดชะงัก โมเดลแต่ละตัวจะทำงานภายใต้ขนาดบริบทที่เหมาะสมกับบทบาทของตน ช่วยหลีกเลี่ยงปัญหาการใช้โทเคน (token) เกินงบประมาณที่บีบให้ผู้ออกแบบต้องตัดทอนคำสั่ง (prompts) ให้สั้นลง
การขยายขนาดของ swarm
ในเวอร์ชันแรกๆ swarm ของ Cursor สามารถจัดการได้ประมาณหนึ่งพัน commits ต่อชั่วโมง แต่หลังจากมีการออกแบบใหม่แบบ split-brain ระบบสามารถทำได้ถึงประมาณหนึ่งพัน commits ต่อวินาที ความเร็วระดับนี้ได้เผยให้เห็นคอขวดใหม่ นั่นคือเครื่องมือควบคุมเวอร์ชัน (version-control tools) ไม่ได้ถูกสร้างมาเพื่อรองรับการแย่งชิงทรัพยากร (contention) ในระดับนี้ เมื่อ Planner สองตัวออกคำสั่งที่ทับซ้อนกัน คลังเก็บโค้ด (repository) อาจจบลงด้วยตรรกะที่ซ้ำซ้อน ซึ่งเป็นปัญหาที่ทีมงานเรียกว่า “split-brain errors”
Cursor ควบคุมความวุ่นวายนี้ด้วยมาตรการป้องกัน 3 อย่าง:
- Shared design documents – Planner ทุกตัวจะบันทึกการตัดสินใจลงในเอกสารส่วนกลางที่เชื่อมโยงกับโค้ดที่ถูกสร้างขึ้น โดย Worker จะทำตามลิงก์เหล่านั้น เพื่อไม่ให้มีการสร้างการออกแบบแบบเดียวกันซ้ำในที่อื่น
- Multi-angle reviews – Agent สามตัวจะตรวจสอบงานในมุมที่ต่างกัน (เช่น ดูบันทึกการสนทนาทั้งหมด, ดูเฉพาะผลลัพธ์ หรือดูเฉพาะโค้ด) การตรวจสอบไขว้แบบนี้จะช่วยตรวจพบความไม่สอดคล้องที่การมองเพียงมุมเดียวอาจมองข้ามไป
- Self-maintained field guides – Agent จะเก็บ "โฟลเดอร์ความรู้" (knowledge folder) เกี่ยวกับสิ่งที่ค้นพบที่น่าประหลาดใจและข้อผิดพลาดที่ควรระวัง เมื่อ Worker ตัวใหม่เริ่มทำงาน มันจะปรึกษาโฟลเดอร์นี้เพื่อหลีกเลี่ยงการทำผิดพลาดซ้ำเดิม ซึ่งเป็นการสร้างหน่วยความจำระยะสั้นให้กับ swarm ทั้งหมด
มาตรการเหล่านี้ช่วยให้ชุดโค้ด (codebase) ยังคงมีความสอดคล้องกัน แม้จะมีการเปลี่ยนแปลงเข้ามาอย่างมหาศาลก็ตาม
ผลการทดสอบ (Benchmarks) ที่สำคัญ
Cursor ได้ทดสอบ hybrid swarm โดยการสร้างคู่มือ SQLite ใหม่ทั้งหมด ซึ่งเป็นการนำ Rust มาใช้เขียนที่มีความยาวถึง 835 หน้า งานนี้เป็นงานที่ทดสอบทั้งความถูกต้องและขนาดของโค้ด ผลลัพธ์ที่ได้นั้นชัดเจนมาก:
- Accuracy – การกำหนดค่าแบบไฮบริด (planner + Composer workers) ทำความถูกต้องได้ถึง 100% ซึ่งเอาชนะการทำงานด้วยโมเดลเดี่ยวที่ล้ำสมัยที่สุดที่อ้างถึง (GPT-5.5) ได้อย่างสม่ำเสมอ
- Code size – Hybrid swarm สร้างโค้ดส่วน engine ได้ 9,908 บรรทัด เทียบกับ 64,305 บรรทัดจาก swarm แบบเดิมที่เป็นแบบ monolithic
- Cost – การรัน GPT-5.5 เพียงตัวเดียวมีค่าใช้จ่ายประมาณ $10,565 ในขณะที่แนวทางแบบไฮบริดใช้เงินเพียง $411 สำหรับกลุ่ม Worker ทั้งหมด
ช่องว่างของราคาเกิดจาก Composer 2.5 ซึ่งในร่างต้นฉบับระบุว่าให้ประสิทธิภาพที่เทียบเท่ากับโมเดลระดับเรือธง (flagship models) ในขณะที่คิดราคาเพียงเศษเสี้ยวของราคาต่อล้านโทเคน การผลักภาระการใช้โทเคนส่วนใหญ่ไปยังโมเดลที่ราคาถูกกว่านี้ ช่วยให้ swarm รักษาค่าใช้จ่ายโดยรวมให้ต่ำลงได้โดยไม่สูญเสียคุณภาพ
บทสรุป
- การจับคู่ Planner ที่ทรงพลังเข้ากับ Executor ที่ราคาถูก ช่วยเพิ่มประสิทธิภาพทั้งในด้านความเร็ว ความกะทัดรัดของโค้ด และต้นทุน ได้มากกว่าเดิมหลายเท่าตัว (orders-of-magnitude)
- การออกแบบนี้ช่วยกำจัดปัญหา context drift โดยการมอบหมายงาน "จะทำอะไร" ให้กับโมเดลระดับแนวหน้า (frontier models) และมอบหมายงาน "จะทำอย่างไร" ให้กับโมเดลเฉพาะทาง (specialist models)
- ค่าใช้จ่ายในการดำเนินงาน (operational overhead) และความต้องการด้านโครงสร้างพื้นฐานยังคงเป็นอุปสรรคที่ใหญ่ที่สุดสำหรับการนำไปใช้งานในวงกว้าง
