Bài viết này tổng hợp từ talk của Andrej Karpathy tại AI Ascent 2026 — hosted bởi Sequoia Capital. Mọi insight, ví dụ, và quan sát trong bài đều đến từ anh. 📺 Xem video gốc trên YouTube
Andrej Karpathy — co-founder OpenAI, người đặt autopilot hoạt động ở Tesla, người đặt ra thuật ngữ vibe coding — nói rằng anh “chưa bao giờ cảm thấy tụt hậu như lúc này” với tư cách là lập trình viên.
Câu đó nghe mâu thuẫn. Nhưng nó chỉ ra một điều: thứ đang xảy ra với AI coding không phải là “code nhanh hơn.” Nó là thứ gì đó khác hơn, và nếu bạn còn đang nghĩ theo khung cũ, bạn sẽ bỏ lỡ nó.
1. Tháng 12/2025 — Khi mọi thứ thật sự thay đổi
Karpathy mô tả một ngưỡng đã bị vượt qua:
Các chunk code cứ ra đúng. Rồi tôi xin thêm, cũng ra đúng. Và tôi không nhớ lần cuối tôi phải sửa nó là khi nào.
Trước đó, AI coding tools khá tốt với từng đoạn code nhỏ — nhưng hay sai, hay cần người chỉnh sửa. Từ cuối 2025, agentic workflow — tức là agent tự xử lý nhiều bước liên tiếp mà không cần người can thiệp từng bước — bắt đầu hoạt động đủ tin cậy để thực sự giao việc cho nó.
Điều đó không chỉ là “code nhanh hơn.” Đó là một paradigm khác.
2. Software 3.0: Khi copy-paste cho agent là bạn đang lập trình
Karpathy phân chia sự tiến hóa thành ba thế hệ:
Software 1.0 — bạn viết code tường minh, máy tính chạy theo đúng từng lệnh.
Software 2.0 — bạn sắp xếp dataset, định nghĩa mục tiêu, train neural network. Lập trình ở đây là tạo ra dữ liệu và cấu trúc học, không phải viết từng dòng logic.
Software 3.0 — bạn prompting. Context window là đòn bẩy của bạn lên LLM. LLM là interpreter. Nó đọc context và thực thi tính toán trong không gian thông tin.
Trong paradigm này, câu hỏi không còn là “tôi viết code như thế nào?” mà là “tôi copy-paste gì cho agent?“
2.1. Câu chuyện của MenuGen
Karpathy xây một app để chụp ảnh menu nhà hàng, OCR các món, tìm ảnh minh họa, và render lại menu đẹp hơn — cả một pipeline phức tạp. App chạy trên Vercel, tích hợp nhiều service.
Sau đó anh thấy phiên bản Software 3.0 của vấn đề đó: chụp ảnh menu → throw vào Gemini → gõ một câu prompt yêu cầu overlay ảnh các món lên menu → xong. Không cần app, không cần pipeline, không cần deploy.
Kết luận của anh: Toàn bộ app MenuGen không cần tồn tại.
Đây là sự thay đổi về chất, không phải về tốc độ. Không phải “làm tương tự nhưng nhanh hơn” — mà là “thứ đó không nên tồn tại theo cách cũ.”
2.2. Text là installer mới
OpenClaw — một agentic tool — không phát hành installer dạng shell script. Thay vào đó, họ cung cấp một đoạn text để copy-paste vào agent của bạn. Agent đọc môi trường, hiểu context, và cài đặt tự điều chỉnh theo hệ thống của bạn. Không cần script tường minh bao phủ mọi platform.
Intelligence gói vào text, không gói vào code.
3. Tại sao AI giỏi refactor 100k dòng nhưng lại sai car wash
Nếu Software 3.0 mạnh như vậy, tại sao AI vẫn mắc những lỗi ngớ ngẩn?
Karpathy có câu trả lời: verifiability.
Khi frontier labs train LLM bằng reinforcement learning, họ cần reward signal — tức là một cách để biết output tốt hay xấu. Những domain có thể verify rõ ràng — math, code, logic — được train nhiều với RL, và model peak mạnh ở đó.
Những domain không có reward signal rõ — common sense về thế giới thực, spatial reasoning, context đời thường — model không được train nhiều, và kết quả lồi lõm.
Ví dụ kinh điển: cùng một model có thể refactor codebase 100,000 dòng, tìm zero-day vulnerability trong security audit — nhưng lại tư vấn bạn nên đi bộ tới tiệm rửa xe cách 50m, vì “nó gần mà.”
AI không kém — AI có hình dạng. Và hình dạng đó phụ thuộc vào labs đã train cái gì, với reward signal như thế nào.
Ví dụ khác: từ GPT-3.5 sang GPT-4, khả năng chơi cờ vua cải thiện rất nhiều. Không phải vì model chung thông minh hơn — mà vì ai đó tại OpenAI đã đưa lượng lớn dữ liệu cờ vua vào pre-training set. Một quyết định về data, và một capability mới xuất hiện.
Hệ quả thực tế: Khi dùng AI, bạn cần biết mình đang ở “circuit” nào — trong vùng model được train mạnh, hay ngoài vùng đó. Nếu ngoài, đừng mong kết quả tốt mà không có fine-tuning hoặc context bổ sung.
4. Vibe coding và agentic engineering — hai mục tiêu khác nhau
Đây là chỗ nhiều người nhầm.
Vibe coding là về việc nâng sàn. Trước đây, để làm ra phần mềm, bạn cần biết code. Bây giờ thì không nhất thiết. Ai cũng có thể vibe code, build thứ gì đó ra, và nó chạy được. Sàn đã được nâng lên cho tất cả mọi người.
Agentic engineering là về việc giữ chất lượng trong khi đi nhanh hơn. Bạn vẫn chịu trách nhiệm cho phần mềm như trước. Bạn vẫn không được để agent đưa vulnerability vào production. Bạn vẫn phải đảm bảo logic business đúng.
Karpathy đặt ra câu hỏi: làm thế nào để phối hợp các agents — vốn stochastic, fallible, nhưng cực kỳ powerful — mà không trade-off quality bar?
Đó là một engineering discipline, không phải chỉ là dùng tool.
Một ví dụ về bug điển hình của agent: Trong MenuGen, khi user mua credits qua Stripe và đăng nhập bằng Google, agent đã dùng email address từ Stripe để match với Google account — thay vì dùng persistent user ID. Kết quả: user dùng hai email khác nhau thì credits không được gán đúng.
Agent không sai về technical — nó làm được những gì bạn yêu cầu. Nhưng nó thiếu hiểu biết về tại sao user ID phải là stable identifier, không phải email.
Đây là thứ agentic engineering cần giải quyết.
5. Con người còn làm gì trong vòng lặp này?
Agents ngày càng giỏi hơn. Nhưng hiện tại, có một số thứ vẫn thuộc về con người:
Taste và aesthetics — Code do agent generate hay bị bloated, copy-paste nhiều, abstraction brittle. Nó chạy được nhưng không đẹp. Chưa có RL reward cho điều này.
Spec và thiết kế hệ thống — Quyết định user ID là gì, dữ liệu flow như thế nào, ranh giới service ở đâu. Agent điền vào blanks; bạn quyết định blanks đó là gì.
Fundamentals, không phải API details — Bạn không cần nhớ keepdim vs keep_dims, hay reshape vs permute. Nhưng bạn cần hiểu tensor view vs storage, tại sao copy memory lại tốn kém. Agent nhớ API; bạn hiểu hệ thống.
Karpathy dùng một câu trích dẫn để tóm gọn điều này:
“Bạn có thể outsource thinking, nhưng không thể outsource understanding.”
Anh mô tả bản thân đang trở thành bottleneck của pipeline agent — vì mọi thứ đều cần anh phải biết muốn build gì, tại sao đáng làm, cách direct agents tiếp theo. LLM không excel ở understanding. Bạn vẫn là người duy nhất chịu trách nhiệm điều đó.
Điều thú vị là: đây không phải lý do để lo lắng. Đây là lý do để đầu tư đúng chỗ.
Nếu bạn đang dùng AI coding tools — đầu tư vào setup của mình, hiểu fundamentals sâu hơn thay vì nhớ API nhiều hơn, và học cách spec rõ ràng trước khi giao agent. Thứ phân biệt người dùng AI giỏi và kém không phải là tool nào họ dùng, mà là chất lượng của thứ họ đưa vào.