เอเจนต์แบบพื้นหลังและแบบขนาน
เมื่อคุณเริ่มไว้ใจเอเจนต์กับงานที่กำหนดขอบเขตแล้ว ขั้นตอนถัดไปก็ชัดเจน: รันหลายตัวพร้อมกัน เครื่องมือสมัยใหม่ให้คุณเริ่มเอเจนต์แบบพื้นหลัง (background agents) — แต่ละตัวอยู่บน หรือ worktree ของตัวเอง (สำเนาการทำงานแยกต่างหากของโปรเจกต์ เพื่อให้การแก้ไขของเอเจนต์ตัวหนึ่งไม่ชนกับอีกตัว) — ทำให้งานที่กำหนดขอบเขตไว้สามสี่งานคืบหน้าไปพร้อมกันในขณะที่คุณทำอย่างอื่น
นี่คือการเร่งความเร็วที่แท้จริง แต่ใช้ได้เฉพาะกับงานที่ เป็นอิสระ จากกันเท่านั้น สิ่งที่คุณแลกมาคือการประสานงาน (coordination) เอเจนต์สองตัวที่แก้ไขไฟล์เดียวกันจะสร้าง diff ที่ขัดแย้งกัน และการรวมมันด้วยมืออาจมีต้นทุนสูงกว่าที่คุณประหยัดได้
- แบ่งตามขอบเขต ไม่ใช่ตามจำนวนบรรทัด มอบชิ้นงานให้เอเจนต์แต่ละตัวโดยไม่ทับซ้อนกับตัวอื่น — โมดูลแยก ฟีเจอร์แยก ไฟล์แยก "เอเจนต์ A ทำฟีเจอร์ส่งออกข้อมูล เอเจนต์ B เขียนเอกสาร" เป็นวิธีที่สะอาด "ทั้งสองเอเจนต์แก้ไข
app.js" คือปัญหาการรวม (merge) ที่รอเกิดขึ้น - แยกพื้นที่ทำงาน รันเอเจนต์แต่ละตัวบน branch หรือ worktree ของตัวเอง เพื่อไม่ให้เหยียบการเปลี่ยนแปลงที่ยังไม่ได้ ของกันและกัน รวมกลับทีละตัว โดยรันการตรวจสอบของคุณในแต่ละครั้งที่รวม
- รักษาจำนวนให้ซื่อสัตย์ คุณยังต้องตรวจสอบผลลัพธ์ทุกอย่าง เอเจนต์สี่ตัวที่กำลังรันคือ diff สี่ชุดที่ต้องอ่านและชุดทดสอบสี่ชุดที่ต้องเชื่อถือ เกินกว่าจำนวนหยิบมือหนึ่ง คิวการตรวจสอบ — ไม่ใช่เอเจนต์ — จะกลายเป็นคอขวดของคุณ
เอเจนต์แต่ละตัวทำงานใน worktree ที่แยกจากกันของตัวเอง เพื่อให้การแก้ไขของพวกมันไม่มีวันชนกัน คุณรวมมันกลับทีละตัว โดยรันการตรวจสอบที่แต่ละด่าน:
┌─────────────────────────────┐
│ YOU split by boundary │
└──────────────┬──────────────┘
┌────────────────┼────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ AGENT A │ │ AGENT B │ │ AGENT C │
│ worktree-a/ │ │ worktree-b/ │ │ worktree-c/ │
│ export feat │ │ docs │ │ settings page│
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ branch-a │ branch-b │ branch-c
└────────────────┼────────────────┘
▼
┌──────────────────┐
│ MERGE one-by-one │ run checks at each merge
│ → main │
└──────────────────┘
isolated copies = no collisions · review queue is the real limit
ข้อผิดพลาดคือการปฏิบัติต่อการทำงานแบบขนานเหมือนว่ามันฟรี ทั้งที่ไม่ใช่ — คุณแค่ย้ายงานจาก การเขียน ไปเป็น การตรวจสอบและรวมเข้าด้วยกัน บ่อยครั้งมันเป็นการแลกเปลี่ยนที่ดีเยี่ยม แต่เฉพาะเมื่อคุณตรวจสอบจริงๆ เท่านั้น