~/VibeHandbook
PDF ฟรี

บท 19 · 04

เอเจนต์แบบพื้นหลังและแบบขนาน

เมื่อคุณเริ่มไว้ใจเอเจนต์กับงานที่กำหนดขอบเขตแล้ว ขั้นตอนถัดไปก็ชัดเจน: รันหลายตัวพร้อมกัน เครื่องมือสมัยใหม่ให้คุณเริ่มเอเจนต์แบบพื้นหลัง (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

ข้อผิดพลาดคือการปฏิบัติต่อการทำงานแบบขนานเหมือนว่ามันฟรี ทั้งที่ไม่ใช่ — คุณแค่ย้ายงานจาก การเขียน ไปเป็น การตรวจสอบและรวมเข้าด้วยกัน บ่อยครั้งมันเป็นการแลกเปลี่ยนที่ดีเยี่ยม แต่เฉพาะเมื่อคุณตรวจสอบจริงๆ เท่านั้น

อยากได้แบบออฟไลน์?

ดาวน์โหลดหนังสือทั้งเล่มเป็น PDF หรือ EPUB — ฟรี