Multi-Agent (Đa Agent): Phân Tán, Đối Kháng, Tổng Hợp
Có một kiểu "nhiều " thứ hai chạy bên trong một tác vụ duy nhất thay vì trên các tác vụ tách biệt. Thay vì một agent làm mọi thứ, bạn chia thành các vai trò:
- Phân tán để bao phủ rộng (fan-out for breadth). Nhiều agent giải quyết cùng một vấn đề từ những góc độ khác nhau — hoặc khám phá các phần khác nhau của một codebase lớn — rồi báo cáo lại. Hữu ích khi bạn muốn độ bao phủ: "tìm mọi nơi chúng ta gọi hàm đã lỗi thời này" song song hóa tốt.
- Một agent phản biện (adversarial reviewer). Một agent viết; agent thứ hai chỉ có một nhiệm vụ là tấn công kết quả của agent thứ nhất — tìm lỗi, trường hợp biên bị bỏ sót, lỗi chưa được xử lý. Một agent phản biện được chỉ vào một diff với chỉ dẫn "giả định điều này sai và tìm ra vì sao" sẽ bắt được những thứ mà agent tác giả đã tự thuyết phục bản thân là ổn.
- Tổng hợp (synthesis). Một lượt cuối cùng thu thập các phát hiện và tạo ra một kết quả nhất quán duy nhất — code hoạt động cộng với một ghi chú ngắn về những gì người phản biện đã gắn cờ và cách nó được giải quyết.
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.
Ba vai trò này tạo thành một đường ống (pipeline) với một cổng chặn ở cuối: không có gì đến được cho tới khi agent phản biện đã hoàn thành lượt kiểm tra của nó và bước tổng hợp đã giải quyết những gì nó tìm thấy.
┌──────────────────── 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 ✓
Agent phản biện đáng để thiết lập ngay cả khi bạn chỉ là một người không có cả một đội quân agent — bởi vì người tạo ra một thay đổi là người tệ nhất để tìm ra lỗi của chính nó, dù là con người hay AI. Một lượt kiểm tra thứ hai với một (câu lệnh chỉ dẫn) mang tính đối kháng là một khoản bảo hiểm rẻ.