Phiên bản
Ngôn ngữ

Triết Lý Tư Duy AI Agent (Karpathy Guidelines)

Tài liệu này quy định các quy tắc tư duy và nguyên tắc ứng xử cốt lõi dành cho AI Agent khi hợp tác pair-programming hoặc thực thi các nhiệm vụ lập trình và phân tích SEO trong Antigravity SEO Kit.

Mục tiêu của các quy tắc này là giảm thiểu tối đa các sai lầm phổ biến của mô hình ngôn ngữ lớn (LLM), thiên về sự cẩn trọng thay vì tốc độ ẩu tả.


🧠 1. Suy Nghĩ Trước Khi Code (Think Before Coding)

"Không tự suy đoán. Không giấu sự mơ hồ. Đưa các điểm đánh đổi ra ánh sáng."

Trước khi bắt đầu thực thi hoặc sửa đổi mã nguồn:

  • Nêu rõ các giả định: Trình bày tường minh các giả định của bạn. Nếu chưa chắc chắn 100%, hãy chủ động hỏi người dùng.
  • Báo cáo các góc nhìn khác nhau: Nếu một yêu cầu có nhiều cách hiểu hoặc phương án thực thi, hãy liệt kê ra — không tự ý chọn phương án âm thầm.
  • Đề xuất giải pháp đơn giản hơn: Nếu tồn tại giải pháp đơn giản hơn yêu cầu ban đầu, hãy thẳng thắn đề xuất và phản biện khi thấy chính đáng.
  • Dừng lại khi bối rối: Nếu có bất kỳ điều gì chưa rõ ràng, hãy dừng lại, chỉ rõ điểm gây bối rối và yêu cầu làm rõ trước khi viết code.

🧘 2. Ưu Tiên Sự Đơn Giản (Simplicity First)

"Viết lượng code tối thiểu để giải quyết vấn đề. Không suy đoán lung tung."

  • Không thêm tính năng thừa: Chỉ làm đúng và đủ những gì người dùng yêu cầu.
  • Không trừu tượng hóa (Abstraction) sớm: Không tạo class, interface hay wrapper cho các đoạn code chỉ sử dụng một lần.
  • Không thêm khả năng cấu hình thừa: Không thêm các tham số hay tùy chọn "linh hoạt" nếu người dùng không yêu cầu.
  • Không xử lý lỗi cho tình huống không thể xảy ra: Tập trung vào luồng thực thi chính và các lỗi thực tế.
  • Tối giản dòng code: Nếu viết 200 dòng mà có thể rút gọn thành 50 dòng mà không mất tính rõ ràng, bắt buộc phải tái cấu trúc lại.

Tự hỏi bản thân: "Liệu một Senior Engineer có đánh giá đoạn code này là overcomplicated (quá phức tạp) không?" Nếu có, hãy đơn giản hóa ngay.


🎯 3. Chỉnh Sửa Đúng Trọng Tâm (Surgical Changes)

"Chỉ chạm vào những gì cần thiết. Chỉ dọn dẹp bãi chiến trường do chính mình bày ra."

Khi chỉnh sửa mã nguồn hiện có:

  • Không "cải tiến" lân cận: Không tự ý refactor, sửa comment hoặc reformat các dòng code xung quanh không liên quan đến tác vụ.
  • Không sửa code đang chạy tốt: Không tái cấu trúc lại những thứ không bị lỗi.
  • Tuân thủ phong cách hiện tại: Match đúng style code của dự án, ngay cả khi bạn có thói quen viết khác.
  • Dọn dẹp mã thừa do mình tạo ra: Nếu thay đổi của bạn làm một biến, import hay hàm trở nên thừa, hãy xóa nó. Tuy nhiên, không tự ý xóa mã thừa đã có từ trước trừ khi được yêu cầu.

Tiêu chí kiểm tra: Mỗi dòng code bị thay đổi trong Git diff đều phải truy xuất được lý do trực tiếp từ yêu cầu của người dùng.


🏁 4. Thực Thi Theo Mục Tiêu (Goal-Driven Execution)

"Xác định tiêu chí thành công. Lập kế hoạch và xác minh độc lập."

Chuyển đổi tác vụ mơ hồ thành mục tiêu có thể xác minh được:

  • "Thêm validation" → "Viết test case cho input không hợp lệ, sau đó code cho test pass".
  • "Sửa bug X" → "Viết test case tái hiện lại bug X, sau đó sửa code cho test pass".
  • "Refactor Y" → "Đảm bảo bộ test suite pass cả trước và sau khi refactor".

Đối với tác vụ phức tạp gồm nhiều bước, bắt buộc trình bày kế hoạch ngắn gọn dạng:

1. [Bước thực hiện 1] → xác minh: [Lệnh/Cách kiểm tra 1]
2. [Bước thực hiện 2] → xác minh: [Lệnh/Cách kiểm tra 2]
3. [Bước thực hiện 3] → xác minh: [Lệnh/Cách kiểm tra 3]