~/VibeHandbook
PDF ฟรี

บท 19 · 05

หลายเอเจนต์: กระจายงาน, ฝ่ายตรวจสอบปฏิปักษ์, การสังเคราะห์

มี "เอเจนต์หลายตัว" อีกแบบหนึ่งที่ทำงาน ภายใน งานเดียวกัน แทนที่จะทำงานคนละงาน แทนที่จะให้เอเจนต์ตัวเดียวทำทุกอย่าง คุณแบ่งบทบาทออกจากกัน:

  • กระจายงานเพื่อความครอบคลุม (fan-out for breadth) เอเจนต์หลายตัวจัดการปัญหาเดียวกันจากมุมที่ต่างกัน — หรือสำรวจส่วนต่างๆ ของโค้ดเบสขนาดใหญ่ — แล้วรายงานกลับ มีประโยชน์เมื่อคุณต้องการความครอบคลุม: "หาทุกที่ที่เราเรียกใช้ฟังก์ชันที่เลิกใช้แล้วนี้" ขนานได้ดี
  • ฝ่ายตรวจสอบปฏิปักษ์ (adversarial reviewer) เอเจนต์ตัวหนึ่งเขียน ส่วนอีกตัวมีหน้าที่เดียวคือ โจมตี ผลลัพธ์ของตัวแรก — หาบั๊ก กรณีขอบ ( case) ที่ตกหล่น ข้อผิดพลาดที่ไม่ได้จัดการ ฝ่ายตรวจสอบที่ได้รับคำสั่งชี้ไปที่ diff ว่า "สมมติว่าสิ่งนี้ผิด แล้วหาสาเหตุ" จะจับสิ่งที่เอเจนต์ผู้เขียนหลอกตัวเองว่าถูกต้องได้
  • การสังเคราะห์ (synthesis) รอบสุดท้ายรวบรวมสิ่งที่ค้นพบและสร้างผลลัพธ์ที่สอดคล้องกันหนึ่งเดียว — โค้ดที่ใช้งานได้พร้อมกับบันทึกสั้นๆ ว่าฝ่ายตรวจสอบพบอะไรและได้รับการแก้ไขอย่างไร
Reviewer agent brief:

You are reviewing a diff written by another agent. Assume it contains
at least one bug and find it. Specifically check:
- Does it actually satisfy the original goal, or just pass the tests?
- Edge cases: empty input, nulls, the largest realistic input.
- Anything deleted or changed that the task didn't ask for.

Report concrete problems with file and line. Do not rewrite the code —
just report. If you find nothing after a genuine look, say so plainly.

ทั้งสามบทบาทนี้สร้างเป็นสายพานการผลิต (pipeline) ที่มีด่านตรวจ (gate) อยู่ท้ายสุด: จะไม่มีอะไรไปถึง จนกว่าฝ่ายตรวจสอบปฏิปักษ์จะได้ตรวจแล้ว และการสังเคราะห์ได้แก้ไขสิ่งที่พบแล้ว

   ┌──────────────────── within ONE task ────────────────────┐
   │                                                         │
   │   ┌──────────┐                                          │
   │   │ FAN-OUT  │  several agents, different angles         │
   │   │ agents   │  ── breadth / coverage ──┐               │
   │   └──────────┘                          ▼               │
   │   ┌──────────┐                  ┌──────────────┐        │
   │   │ AUTHOR   │── writes diff ──▶│  REVIEWER     │       │
   │   │ agent    │                  │ "assume it's  │       │
   │   └──────────┘                  │  wrong, find  │       │
   │                                 │  the bug"     │       │
   │                                 └──────┬───────┘        │
   │                                        ▼                │
   │                                 ┌──────────────┐        │
   │                                 │  SYNTHESIS    │  merge │
   │                                 │  fix + note   │  finds │
   │                                 └──────┬───────┘        │
   └────────────────────────────────────────┼───────────────┘
                                             ▼
                                      ── GATE ──▶ commit ✓

ฝ่ายตรวจสอบปฏิปักษ์นี้คุ้มค่าที่จะตั้งขึ้นมา แม้ว่าคุณจะเป็นคนคนเดียวที่ไม่มีกองทัพเอเจนต์ — เพราะผู้เขียนของการเปลี่ยนแปลงนั้นเป็นคนที่แย่ที่สุดในการหาข้อบกพร่องของตัวเอง ไม่ว่าจะเป็นมนุษย์หรือ AI การตรวจสอบรอบสองด้วยคำสั่งแบบเป็นปฏิปักษ์คือประกันภัยราคาถูก

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

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