Viết code chậm hơn, chất lượng cao hơn với đa mô hình AI
Kỹ thuật dùng nhiều LLM khác kiến trúc để review code và debug — giảm false positive gần về 0, bắt lỗi mà một model đơn lẻ không thể thấy. Phân tích từ bài viết đang hot trên Hacker News (188+ points).
Bài viết “Using AI to write better code more slowly” của Nolan Lawson đang đứng #1 Hacker News sáng nay với 188 points và 73 bình luận. Ý tưởng cốt lõi rất đơn giản nhưng ít người làm: dùng AI không phải để code nhanh hơn, mà để code tốt hơn — bằng cách chậm lại.
Vấn đề: “Slop cannon” đang thắng thế
Vibe coding đang có một danh tiếng xấu xứng đáng. Developer dùng Claude/Cursor/Codex bắn ra hàng trăm dòng code, mở PR khổng lồ, merge không review. Kết quả: codebase thành bãi rác, bug ẩn nấp khắp nơi, không ai thực sự hiểu code mình vừa merge.
Đây không phải lỗi của LLM — đây là lỗi của cách dùng.
Insight: Đa mô hình = giảm hallucination
Cả Nolan Lawson và Barrett Sonntag (tác giả bài “Models Have Blind Spots”) cùng phát hiện một nguyên lý giống nhau:
Khi bạn ném cùng một vấn đề cho nhiều model có kiến trúc khác nhau, lỗi sai (hallucination) của model này gần như chắc chắn bị model kia bắt được.
Lý do: các model khác nhau được train trên dataset khác nhau, có reinforcement pipeline khác nhau → phân phối lỗi không tương quan (uncorrelated error distributions). Một cái miss, cái kia bắt.
Ngược lại, chạy 3 instance của cùng một model (ví dụ 3 lần Claude) — bạn chỉ nhận được 3 bản sao của cùng một điểm mù.
Cách làm: pipeline 3 bước
Bước 1: Thu thập manh mối trước khi prompt
Đừng mở chat window ngay. Bạn cần baseline cụ thể:
- Lỗi reproducible? Tần suất? Dấu hiệu observable?
- Console output, stack trace, screenshot
- Code snippet liên quan (đừng dump cả codebase)
Barrett Sonntag ví dụ: bug chart bị vỡ mỗi 30 giây, NaN xuất hiện ngắt quãng trong pipeline dữ liệu, SVG path render sai tọa độ. Ba manh mối cụ thể → model có đủ neo để suy luận, không phải đoán mò.
Bước 2: Sinh giả thuyết song song
Feed cùng một bộ manh mối cho 2-3 model khác kiến trúc. Nolan dùng: Claude sub-agent + Codex + Cursor Bugbot. Barrett dùng: Claude + Codex, sau đó thêm Gemini + ChatGPT làm critic.
✅ Nếu các model đồng ý ngay → bug đơn giản, fix được luôn.
✅ Nếu các model bất đồng về root cause hoặc cách fix → đây là tín hiệu quý giá. Sự bất đồng vẽ ra bản đồ của vấn đề.
Ví dụ của Barrett: Claude và Codex cùng xác định NaN là lỗi gốc, nhưng một bên muốn sanitize data đầu vào, bên kia muốn hardening ở layer render. Hai hướng tiếp cận khác hẳn nhau.
Bước 3: Cross-pollinate — bắt model review lẫn nhau
Đây là bước quan trọng nhất và cũng tốn công nhất. Bạn đóng vai trò “middleware”:
- Lấy phân tích của Model A → đưa cho Model B review: “Tìm lỗ hổng logic, risk bị bỏ sót”
- Lấy phân tích của Model B → đưa cho Model A review tương tự
- Merge findings → đưa cho Model C audit lần cuối
Kết quả của Barrett: Gemini phát hiện một merged plan có bug tinh vi — “renderer-only hardening” sẽ âm thầm biến giá trị zero thật thành data gap. Chart trông đúng nhưng dữ liệu sai. Một mình model viết plan đó không bao giờ tự phát hiện ra.
Kết quả thực tế
Nolan báo cáo: dùng pipeline này, false positive gần như bằng 0. Mỗi PR tìm ra hàng tá bug, từ critical (security, correctness) đến medium/low (perf, misleading comments). Anh không thấy velocity tăng — thậm chí còn chậm đi vì phải sửa cả bug có sẵn từ trước — nhưng chất lượng codebase cải thiện rõ rệt.
Áp dụng cho team Việt Nam
Nếu team bạn đang dùng Cursor/Copilot/Claude:
- ✅ Đừng merge PR AI-generated mà không review
- ✅ Setup skill review: “Claude + Codex + Cursor Bugbot cùng review PR này”
- ✅ Với bug khó: chạy ít nhất 2 model khác nhau, cross-pollinate kết quả
- ✅ Dành token để model viết docs + Mermaid chart cho logic phức tạp
Chi phí token cho pipeline này không nhỏ. Nhưng so với chi phí của bug production — rẻ hơn nhiều.
Bottom line
AI coding tool không phải “súng bắn slop”. Chúng là kính hiển vi cho codebase của bạn — nếu bạn biết cách dùng. Chậm lại, dùng nhiều model, bắt chúng review lẫn nhau. Code ít dòng hơn nhưng mỗi dòng đều đã được “thử lửa” bởi 2-3 bộ não silicon khác nhau.
Nguồn: Nolan Lawson - Using AI to write better code more slowly, Barrett Sonntag - Models Have Blind Spots, Hacker News discussion.