Claude làm ra thứ gì đó — một đoạn logic, một bản migration, một đoạn nội dung. Nó xong, báo "xong rồi", và nhìn có vẻ đúng. Bạn hỏi đúng nó: "Chắc chưa, cái này đúng không?" Nó đọc lại việc của chính mình và bảo đúng. Bạn ship. Nó vỡ đúng ở cái trường hợp nó chưa từng nghĩ tới — và đây là cái bẫy: lý do nó chưa từng nghĩ tới chính là lý do nó không bắt được khi soát. Nó đang chấm bài của mình, bằng đúng cây bút đã gây ra lỗi.
01Tác giả không thấy điểm mù của chính mình
Một agent kiểm lại output của nó mang theo y nguyên các giả định đã tạo ra output đó. Nếu lần đầu Claude đọc sai yêu cầu, thì lúc soát nó đọc sai y hệt — một cách tự tin. Một model đơn có các kiểu sai tương quan với nhau: hỏi hai lần thì sai hai lần như nhau, khoác lên cái áo "ý kiến thứ hai". "Tự kiểm lại đi" nghe như một lớp bảo vệ, nhưng một người soát chung cái đầu với người làm thì không phải ý kiến thứ hai gì cả. Đó là ý kiến thứ nhất, lặp lại to hơn.
✕ Claude tự kiểm việc của mình
✓ Codex kiểm lại
02Một agent thứ hai, với một cái đầu khác
Thêm một agent có vai không phải để làm, mà để phản biện — soát, audit, thử bẻ gãy cái Claude vừa làm. Đây là chỗ Codex kiếm được chỗ đứng: một hãng khác, huấn luyện khác, thói quen khác, điểm mù khác. Chỗ mà hai đứa cùng một hãng sẽ cùng bỏ sót một thứ, thì hai cái đầu khác hãng bỏ sót những thứ khác nhau — nên giữa hai đứa, lọt lưới ít hơn hẳn. Mấu chốt không phải Codex cụ thể; mà là cái khác. Agent thứ hai không phải đôi tay dự phòng; nó là cặp mắt mà đứa đầu về mặt bản chất không thể có.
Tạo ra sản phẩm — và mang theo các giả định đã tạo ra nó. Không giao nó tự chấm output của chính mình.
Một agent khác hãng, việc duy nhất là tìm cái sai. Nó đọc, nêu phát hiện, và không bao giờ tự gộp ý kiến của mình thành sự thật.
Lọc phát hiện — không phải cái nào cũng thật — quyết cái nào đúng, và giữ cổng: chưa qua mắt thứ hai thì chưa merge.
03Chia theo chức năng, không phải theo vùng
Đây là một kiểu cắt khác với việc chia một task lớn cho nhiều agent để cho nhanh. Kiểu kia chia theo vùng — mỗi agent một mảng việc riêng không chồng lấn, để hai đứa không bao giờ đụng cùng một chỗ. Kiểu này chia theo chức năng: Claude làm ra, Codex phán xét chính cái đó. Người soát chỉ đọc và nêu phát hiện; người làm vá và không bao giờ tự duyệt bản vá của mình. Cái luật duy nhất làm cặp đôi này chạy được: ai viết thì không được ký duyệt cái đó. Khoảnh khắc tác giả cũng là người duyệt, bạn quay lại cảnh chấm bài của chính mình — và điểm mù thắng. Mà nó đảo được sạch sẽ: hôm nào Codex là đứa viết ra thứ gì đó, thì Claude ngồi vào ghế người soát. Người soát luôn là kẻ không cầm bút.
04Khi nào cặp mắt thứ hai mới đáng
Nó không miễn phí. Một người soát tốn thêm một vòng phối hợp, và phần lớn việc dùng-rồi-bỏ không cần. Nó đáng khi tính-đúng quan trọng hơn tốc độ thuần, khi việc khó soát bằng mắt thường, và nhất là khi bạn từng bị một thứ "nhìn đúng" làm cho cháy. Cái cuối là dấu hiệu: nếu bạn cứ ship những thứ lướt qua thấy ổn rồi vẫn vỡ, thì bạn không cần một đứa làm nhanh hơn — bạn cần một người kiểm độc lập mà đứa làm không nói át được.
05Bộ prompt: cast người soát, rồi thả nó vào việc
Hai prompt gánh chuyện này. Cái đầu cast Codex làm người soát — dán ở đầu một phiên bạn giữ tách khỏi người làm:
You're the reviewer here, not the builder. You didn't write this and you won't rewrite
it. Your only job is to find what's wrong. Read it against the spec below, raise
findings as a list — each with where it is and why it's a problem — and don't fix
anything or sign anything off. When unsure, flag it rather than assume it's fine.
[paste the spec / the requirement it's meant to meet]Rồi tới chính việc — đóng khung để đi săn vấn đề, không phải săn lời khen:
Here's the change to review: [paste the diff / output].
Try to break it: which input or edge case makes it fail, what did the author assume
that isn't guaranteed, where might it quietly do the wrong thing? Be specific — and if
you genuinely can't find a problem, tell me what you checked.06Đưa vào thực tế
- Cho Codex một vai chỉ-soát và cái chuẩn để đối chiếu — spec, yêu cầu, thế nào là đúng. Người soát không có thước thì chỉ bắt bẻ vặt.
- Giữ hai đứa khác hãng. Cùng model soát cùng model thì chung đúng cái điểm mù bạn đang muốn thoát — cái khác mới là toàn bộ giá trị, không phải thương hiệu.
- Khung lệnh theo kiểu đối kháng: bảo Codex tìm cái sai hay thử bẻ gãy cái này — đừng hỏi "tốt chứ?". Cách hỏi sau đi câu lời khen; cách hỏi trước đi câu vấn đề.
- Tự lọc phát hiện. Codex phơi ra; bạn quyết cái nào thật, cái nào nhiễu — một người soát khác hãng tự tin ở những chỗ khác, không phải lúc nào cũng đúng.
- Lặp vai: Claude vá, Codex kiểm lại, và chưa qua mắt thứ hai thì chưa merge.
Một đội hai đứa chia vai bắt được cả một lớp lỗi mà một agent đơn độc mù tịt — bắt rẻ, trước khi nó tới tay ai khác. Cái giá là một chút phối hợp; cái được là bạn thôi ship những thứ tự tin mà sai. Nó quay về sợi chỉ xuyên suốt mọi thứ ở đây: một agent không thấy điểm mù của chính mình. Góc nhìn thứ hai không phải thứ Claude tự mọc ra — nó là thứ bạn thêm vào, và cách chắc nhất để thêm là một agent thứ hai không nghĩ giống đứa đầu.