Sổ tay cho AI (AGENTS.md) · 10/2026

Đồng nghiệp mới
quên sạch mỗi sáng

Mỗi lần bắt đầu việc, AI agent gần như phải làm quen dự án từ đầu. Một cuốn sổ tay ngắn, viết đúng chỗ, giúp nó đỡ đoán mò. Viết gì, bỏ gì, giữ cho đúng ra sao?

Hai nghiên cứu, hai hướng Sáu mục đáng có Ví dụ thật từ dự án này Bản mẫu để chép
AGENTS.md: 49 dòng
dòng nào giúp ích?
Ba ý chính

Cuốn sổ tay cho AI, nói gọn

1Sổ tay giúp AI đỡ đoán. Lệnh chạy, quy ước và chỗ dễ nhầm của dự án, ghi một lần.
2Nhưng dài chưa chắc tốt. Hai nghiên cứu mới cho kết quả không cùng chiều, nên hãy ngắn và đo thử.
3Tệp này là tài liệu sống. Thêm dòng khi AI lặp lỗi, xóa dòng khi lỗi thời, và đọc kỹ tệp trong kho mã lạ.

Tóm lại: chỉ viết điều AI không tự suy ra được, ngắn và có lý do.
Lưu ý: hai nghiên cứu còn mới và đo hai việc khác nhau. Mình mới đọc phần tóm tắt, chưa đọc kỹ cả hai bài gốc.

Là gì

Một tệp chữ, nhiều tên gọi

Ý tưởng

AI agent không nhớ gì về dự án của bạn mỗi lần bắt đầu. Một tệp ghi sẵn những điều đó, giống cuốn sổ tay đưa cho đồng nghiệp mới.

AGENTS.md
CLAUDE.md
GEMINI.md

Mỗi công cụ từng đọc một tên riêng. AGENTS.md là tên chung được đề xuất khoảng tháng 5/2025.

Đừng coi mọi công cụ đều đọc tên AGENTS.md. Dùng tên mà công cụ của bạn đọc, như dự án này dùng CLAUDE.md.

Có ích thật không?

Hai nghiên cứu, hai hướng

Nghiên cứu thứ nhấtNghiên cứu thứ hai
Quy mô10 kho mã, 124 PR thậtBốn agent, hai bộ đề
Kết quả chínhThời gian chạy trung vị giảm khoảng 28,6%, token đầu ra giảm khoảng 16,6%Chi phí và số bước tăng; tệp do AI sinh hơi tiêu cực, do người viết hơi tích cực
Chính tác giả nóiBước đầu, chưa phải kết luậnChênh lệch về thành công nhỏ, không có ý nghĩa thống kê
Đọc an toàn

Ba việc nên làm sau khi đọc

1

Mỗi dòng có giá

Dòng trong tệp được đọc ở mỗi lần làm việc. Dòng thừa là chi phí thật.

2

Sinh rồi cắt tỉa

Dùng lệnh /init tạo bản đầu, rồi tự tay cắt cho gọn.

3

Đo trước và sau

Chạy cùng một việc có và không có tệp, so thời gian và số lần sửa.

Viết gì, bỏ gì

Một câu hỏi lọc từng dòng

AI có tự suy ra được điều này từ code không? Nếu có thì đừng viết. Nếu không, mà quan trọng, hãy viết.

Tự suy ra được: đừng viếtKhông suy ra được: nên viết
"Dự án dùng JavaScript"Lệnh chạy test đúng và nó chạy gì
"Viết code sạch""Chữ cho người dùng bằng tiếng Việt, tên hàm bằng tiếng Anh"
Danh sách mọi tệpQuyết định có chủ ý: dùng X, không dùng Y vì Z
Lời khuyên chung chungĐiều cấm kèm lý do
Sáu mục

Sáu mục đáng có, mỗi mục ngắn thôi

1

Lệnh

Cài, chạy, build, test, và cả lệnh chạy một test riêng.

2

Bức tranh tổng thể

Một, hai đoạn: các phần nối với nhau thế nào và vì sao.

3

Quy ước

Đặt tên, ngôn ngữ của chữ hiển thị, cách xử lý lỗi, kiểu commit.

4

Chỗ dễ nhầm

Lỗi đã từng xảy ra. Mỗi lỗi lặp lại là một dòng.

5

Điều cấm

Thư mục, lệnh, hành động không được làm nếu chưa hỏi.

6

Xong là thế nào

Có test, đã chạy kiểm tra, có ảnh chụp.

Ví dụ thật

CLAUDE.md của chính blog này

Độ dài
49 dòng

Đọc lướt được trong chưa đầy một phút.

Số mục
5

Là gì, lệnh, kiến trúc, mô hình nội dung, kỹ năng.

Dung lượng
~5 KB

Nhỏ hơn nhiều so với bốn tệp kỹ năng cộng lại.

Chi tiết để ở đâu
327 dòng

Nằm trong bốn tệp kỹ năng riêng, tệp chính chỉ trỏ tới.

+

Cách làm

Tệp chính ngắn, chi tiết tách riêng.

+

Cập nhật khi đổi

Thêm danh mục hay lệnh mới thì sửa tệp cùng lúc.

Trước và sau

Một dòng mơ hồ, một dòng cụ thể

Mơ hồ
Hãy viết code sạch và theo các thực hành tốt nhất.

AI đã cố làm vậy sẵn, nên dòng này chỉ tốn token.

Cụ thể
Chữ hiển thị nằm trong site/i18n.mjs, đủ vi, en, ja. Không gõ chữ trực tiếp trong template.

Nêu chỗ, lý do và hậu quả nếu làm sai.

Điều cấm

Cấm kèm lý do thì AI hiểu tinh thần

Không sửa tay thư mục dist/. Nó được sinh lại mỗi lần chạy npm run build và mọi thay đổi sẽ mất.

Có lý do, AI biết áp dụng tinh thần quy tắc cho các trường hợp tương tự.

Câu mệnh lệnh ngắn tốt hơn đoạn giới thiệu dài.

Giữ cho đúng

Vòng lặp nhỏ để tệp không hỏng

1AI lặp lại một lỗi lần thứ hai: thêm một dòngNêu điều cần làm và lý do, không chỉ nêu lỗi.
2Một dòng lỗi thời: xóaLệnh đã đổi, thư mục đã dời, quy tắc đã bỏ.
3Một dòng chẳng bao giờ giúp: xóaThử bỏ đi và xem AI có làm sai không.
4Duyệt thay đổi của tệp như duyệt codeNó ảnh hưởng mọi lần AI làm việc.
5Mỗi quý đọc lại từ đầuKhông lướt nhanh được nghĩa là tệp đã quá dài.
An toàn

Ba điều cần nhớ về an toàn

1

Đừng dán bí mật

Khóa, mật khẩu, địa chỉ nội bộ. Tệp nằm trong kho mã và gửi cho mô hình mỗi lần.

2

Đọc tệp ở kho mã lạ

AI sẽ làm theo nội dung tệp. Đây là suy luận từ cách tệp hoạt động, không dựa vào một vụ việc cụ thể.

3

Không phải hàng rào

Lời dặn trong văn bản không thay được quyền hạn thật. Giới hạn quyền ở nơi khác.

Bản mẫu

Bảy tiêu đề để chép về

# Dự án: <tên>
## Là gì
## Lệnh
## Bức tranh tổng thể
## Quy ước
## Chỗ dễ nhầm
## Điều cấm
## Xong là thế nào

Điền từng mục bằng câu mệnh lệnh ngắn. Mục nào chưa có gì để viết thì cứ bỏ trống.

Hãy bắt đầu nhỏ, rồi thêm khi AI lặp lỗi.

Cân bằng

Sổ tay cũng có giới hạn

Giúp được
  • Bớt đoán lệnh và quy ước
  • Chặn lỗi đã từng lặp lại
  • Cho người mới một bản tóm tắt
Chưa chắc
  • Có thể làm tăng chi phí và số bước
  • AI vẫn có thể bỏ qua một dòng
  • Tệp cũ gây hại hơn không có tệp

Vì vậy: ngắn, đúng, có đo. Đừng coi nó là phép màu.

Danh sách kiểm nhanh

Sáu câu hỏi trước khi lưu tệp

1Mỗi dòng có thật sự cần không?AI có tự suy ra được không?
2Có lệnh chạy một test không?AI hay cần chạy riêng một test.
3Điều cấm có kèm lý do không?Có lý do thì áp dụng được cho ca tương tự.
4Có bí mật nào lọt vào không?Khóa, mật khẩu, địa chỉ nội bộ.
5Đọc lướt có xong trong một phút không?Nếu không, hãy tách chi tiết ra tệp riêng.
Kết luận

Sổ tay tốt thì ngắn, đúng, và lớn lên cùng những lỗi đã gặp.

Tối nay hãy mở tệp của bạn và xóa một dòng AI vốn đã biết.