
Cursor Rules vs CLAUDE.md vs AGENTS.md: Tôi Đã Chạy Một Config Qua Cả Ba (2026)
Câu hỏi cursor rules vs claude md có sẵn một cái bẫy: đây không phải hai lựa chọn để bạn chọn một. Chúng là hai file, được đọc bởi hai tool khác nhau, tình cờ làm cùng một việc. Thả một CLAUDE.md vào project Cursor thì Cursor bỏ qua. Thả một AGENTS.md vào Claude Code thì cũng chẳng có gì xảy ra. Điều đó khiến chính chúng tôi cũng bất ngờ. AGENTS.md hiện có mặt trong hơn 60.000 repo với tư cách là chuẩn mở, được quản lý bởi Agentic AI Foundation trực thuộc Linux Foundation, vậy mà Claude Code vẫn không tự đọc nó. Dưới đây là bản đồ tương thích, đã kiểm chứng trên repo của chúng tôi.
Điểm Chính Cần Nhớ
- Cursor đọc
.cursor/rules/*.mdcvàAGENTS.md, không đọcCLAUDE.md. - Claude Code chỉ đọc
CLAUDE.md, không đọcAGENTS.mdmột cách native. - Để dùng chung một file: symlink
AGENTS.mdsangCLAUDE.md, hoặc import bằng@AGENTS.md. - Chuẩn hóa trên
AGENTS.md(chuẩn mở, hơn 60k repo), sau đó thêm override riêng cho từng tool.
Nên Dùng Định Dạng Config Nào? Quyết Định Trong 30 Giây
Chọn định dạng theo cấu trúc team, không theo hype. Nếu bạn chỉ chạy một tool, dùng file native của nó. Nếu chạy hai tool trở lên, hãy dùng AGENTS.md làm nguồn sự thật duy nhất và chỉ thêm override riêng cho từng tool khi tool đó cần thứ mà các tool khác không cần. Một quy tắc duy nhất đó giải quyết phần lớn sự nhầm lẫn.
| Thiết lập của bạn | Dùng cái này | Tại sao |
|---|---|---|
| Làm một mình, chỉ dùng Cursor | .cursor/rules/*.mdc | Glob-scoped, bốn loại rule, native |
| Làm một mình, chỉ dùng Claude Code | CLAUDE.md | File duy nhất mà Claude Code nạp |
| Nhiều tool (Cursor + Claude Code + Codex) | AGENTS.md + symlink/import | Một file, mọi tool đều đọc |
| Monorepo, nhiều subproject | AGENTS.md, lồng theo từng package | File gần nhất thắng, nên thư mục con tự mô tả |
Vẫn đang phân vân nên chạy assistant nào trước khi lo về config? Bắt đầu với hướng dẫn chọn AI coding agent phù hợp, rồi quay lại đây để thiết lập file.
Trục quyết định quan trọng nhất là tính di động. File .cursor/rules rất mạnh bên trong Cursor nhưng vô dụng ở mọi nơi khác. AGENTS.md thì di chuyển được. Nên trừ khi bạn gắn chặt với một tool mãi mãi, file không phụ thuộc tool là lựa chọn an toàn hơn.
Mỗi Định Dạng Thực Chất Là Gì (Mỗi Cái 30 Giây)
Ba file này đều làm một việc: đưa cho công cụ lập trình AI các quy tắc, quy ước và lưu ý của project trước khi nó viết một dòng code. Khác biệt nằm ở ai đọc chúng và cách chúng xác định phạm vi. Đây là phiên bản ngắn gọn. Hướng dẫn chi tiết cho từng loại nằm trong bài riêng.
Cursor Rules là các file .mdc bên trong .cursor/rules/. Cursor hỗ trợ bốn loại rule (luôn bật, agent yêu cầu, glob-scoped, và @-mention thủ công), nên bạn có thể gắn rule chỉ cho các file *.tsx hoặc chỉ cho migrations. Về frontmatter, globs và token budget, hãy đọc hướng dẫn cách viết file .cursor/rules thực sự hiệu quả.
CLAUDE.md là file bộ nhớ của Claude Code. Claude đi ngược lên cây thư mục từ thư mục làm việc và ghép tất cả CLAUDE.md mà nó tìm thấy. Đây là Markdown thuần, không cần frontmatter. Về cấu trúc và các quy tắc giúp Claude không bỏ qua file, xem điều gì tạo nên một CLAUDE.md mà Claude không thể bỏ qua.
AGENTS.md là chuẩn mở. Một file Markdown thuần ở gốc repo, được đọc native bởi Cursor, Codex, Copilot, Windsurf, Zed, Aider và hàng chục tool khác. Nó được quản lý bởi Agentic AI Foundation và đã có mặt trong hơn 60.000 project.
Đây là cách nhìn lại đáng nhớ: AGENTS.md, CLAUDE.md và .cursor/rules không phải đối thủ, chúng là cùng một chỉ thị, gửi đến những người đọc khác nhau.
Cursor Rules vs CLAUDE.md vs AGENTS.md: Bảng So Sánh Tổng Thể
Cách nhanh nhất để thấy sự khác biệt là đặt cạnh nhau. Cột quyết định là tính di động: tool nào đọc file mà không cần thiết lập thêm. AGENTS.md thắng về phạm vi tiếp cận, Cursor Rules thắng về độ chính xác phạm vi, và CLAUDE.md thắng cho ai đã all-in vào Claude Code.
| Định dạng | Đường dẫn file | Tool đọc nó | Phạm vi | Mô hình ưu tiên | Tính di động |
|---|---|---|---|---|---|
| Cursor Rules | .cursor/rules/*.mdc | Chỉ Cursor | Glob-scoped, bốn loại rule | Team → Project → User, gộp lại | Thấp (chỉ Cursor) |
| CLAUDE.md | CLAUDE.md (bất kỳ thư mục nào) | Chỉ Claude Code | Duyệt thư mục, ghép nối | Cộng dồn, file gần nhất thắng | Thấp (chỉ Claude) |
| AGENTS.md | AGENTS.md (gốc + thư mục con) | Cursor, Codex, Copilot, Windsurf, Zed, Aider và hơn 20 tool | Toàn project hoặc lồng | File gần nhất trong cây thắng | Cao (chuẩn mở) |
| .cursorrules (legacy) | .cursorrules (gốc) | Cursor (không có tài liệu) | Một file gốc duy nhất | Chỉ gốc | Thấp, soft-deprecated |
| SKILL.md (đang nổi) | .claude/skills/*/SKILL.md | Claude (Skills) | Theo yêu cầu, kích hoạt theo task | Nạp khi được gọi | Riêng cho Claude, đang phát triển |
Chú ý hàng .cursorrules. File gốc duy nhất đó vẫn hoạt động trong Cursor, nhưng nó đã biến mất khỏi tài liệu, nên hãy coi nó là legacy. Project mới nên dùng .cursor/rules/*.mdc hoặc AGENTS.md thay thế.
Tool Nào Đọc File Nào? (Phá Bỏ Huyền Thoại Về AGENTS.md)
Đây là sự thật mà một nửa internet hiểu sai: Claude Code không đọc AGENTS.md một cách native, và Cursor không đọc CLAUDE.md. Cursor đọc .cursor/rules/*.mdc cộng với AGENTS.md. Claude Code đọc CLAUDE.md và không gì khác. Không có fallback tự động theo hướng nào, điều này khiến các team tưởng rằng một file chuẩn duy nhất sẽ bao quát tất cả bị vấp.
Câu hỏi này được đặt ra liên tục, nên nói thẳng: Thả AGENTS.md vào project Claude Code không tự nó làm gì cả. Claude Code đọc CLAUDE.md và chỉ CLAUDE.md. Tài liệu bộ nhớ Claude Code của Anthropic mô tả hành vi nạp file mà không nhắc đến AGENTS.md, spec AGENTS.md liệt kê Cursor và Codex trong số các trình đọc native nhưng không có Claude Code, tài liệu rules của chính Cursor xác nhận sự phân tách này, và GitHub issues của Claude Code đầy những developer gặp đúng bức tường này.

Vậy Cursor có đọc claude.md không? Không. Claude Code có đọc agents.md không? Không nếu không có trợ giúp. "Trợ giúp" đó chính là lý do bài viết này tồn tại, và nó là hai lệnh ngắn bạn sẽ thấy ngay sau đây.
Ưu Tiên & Lồng Nhau Hoạt Động Thế Nào, Đặt Cạnh Nhau
Mỗi tool giải quyết xung đột khác nhau, và hiểu sai điều này là nguyên nhân hàng đầu của sự nhầm lẫn "tại sao rule của tôi bị bỏ qua?". Cursor gộp rule theo mức ưu tiên nguồn. Claude Code ghép nối theo độ sâu thư mục. AGENTS.md chọn file gần nhất trong cây. Quản lý claude md management tốt bắt đầu từ việc biết bạn đang ở trong mô hình tư duy nào.
| Tool | Cách nạp | Bên thắng khi xung đột |
|---|---|---|
| Cursor | Gộp rule Team, Project và User | Nguồn sớm hơn (Team) thắng |
| Claude Code | Duyệt ngược từ cwd, ghép mọi CLAUDE.md | File gần/cụ thể nhất thắng; managed file nạp trước |
| AGENTS.md | Đọc AGENTS.md gần nhất trong cây thư mục | File gần thư mục làm việc nhất thắng |
Trong thiết lập của chúng tôi, kết luận thực tế rất đơn giản: đặt rule rộng ở trên cao (gốc repo) và rule cụ thể ở dưới thấp (bên trong thư mục package). Với cả Claude Code và AGENTS.md, file gần nơi bạn làm việc nhất được ưu tiên, nên packages/api/AGENTS.md sẽ ghi đè file gốc cho mọi thứ bên trong thư mục đó. Cursor là trường hợp ngoại lệ, giải quyết theo cấp nguồn thay vì theo độ sâu thư mục.
Chúng Tôi Đã Chạy Một Config Qua Cursor + Claude Code, Đây Là Những Gì Mỗi Tool Thực Sự Nạp
Chúng tôi kiểm tra trên một repo client Techsy đang chạy (backend Next.js 15) bằng Cursor 3.7 (bản build ngày 17 tháng 6, 2026) và Claude Code v2.1.x (đầu tháng 7, 2026). Một AGENTS.md, ba cách chia sẻ, cùng một prompt mở trong cả hai tool. Đây chính xác là những gì mỗi bên đã nạp vào.
Chúng tôi bắt đầu với một file tối giản:
# AGENTS.md
- Package manager: pnpm, never npm.
- Tests: Vitest. Run `pnpm test` before any commit.
- DB access goes through `lib/db.ts` only, no inline SQL.Thiết lập 1: Chỉ AGENTS.md. Cursor nhận ngay lập tức. File xuất hiện trong context và nó từ chối gợi ý npm install một cách chính xác. Claude Code không làm gì với nó. Chạy /memory trong Claude Code liệt kê zero file bộ nhớ project: không tìm thấy CLAUDE.md, và AGENTS.md thậm chí không được ghi nhận. Xác nhận: không có fallback native.
Thiết lập 2: Symlink. Chúng tôi trỏ CLAUDE.md vào cùng file đó:
ln -s AGENTS.md CLAUDE.mdGiờ /memory trong Claude Code liệt kê ./CLAUDE.md là bộ nhớ Project, và nội dung được nạp giống AGENTS.md của chúng tôi từng byte. Cursor vẫn đọc AGENTS.md trực tiếp. Một file vật lý, cả hai tool đều hài lòng. Trên Windows, việc này cần bật Admin hoặc Developer Mode, nếu không ln/mklink sẽ thất bại im lặng.
Thiết lập 3: @import. Chúng tôi xóa symlink và thay bằng một dòng duy nhất ở đầu một CLAUDE.md thật:
@AGENTS.md/memory sau đó hiển thị CLAUDE.md là file được nạp với AGENTS.md được kéo vào như một tham chiếu import bên dưới. Đây là cách mà Anthropic thực sự ghi nhận trong tài liệu, và nó không cần quyền OS đặc biệt.
Kết luận từ bài kiểm tra: symlink khiến Claude Code đọc AGENTS.md từng byte; import @AGENTS.md là phiên bản an toàn trên Windows mà Anthropic thực sự khuyến nghị. Cả hai đều cho bạn một nguồn sự thật duy nhất. Chọn symlink trên macOS/Linux để không có lớp trung gian, hoặc dòng import nếu ai đó trong team dùng Windows.
Di Chuyển Giữa Các Định Dạng: .cursorrules → .cursor/rules → AGENTS.md
Hầu hết các team đến đây với một file .cursorrules legacy và muốn thoát khỏi cái bẫy một file duy nhất. Việc di chuyển ngắn gọn theo mọi hướng, và các bước chỉ là copy-paste. Một lỗi hay gặp mà nhiều người mắc phải: file .md bên trong .cursor/rules không có frontmatter sẽ bị bỏ qua im lặng, nên nó phải là .mdc.
Để hiện đại hóa .cursorrules cũ, bạn có hai hướng sạch sẽ:
- Sang
.cursor/rules/*.mdc: tạo.cursor/rules/general.mdc, thêm frontmatter (alwaysApply: truecho rule toàn cục), và dán nội dung cũ xuống dưới. Xóa.cursorrulessau khi xác minh xong. - Sang
AGENTS.md(khuyến nghị cho team dùng nhiều tool): để chuyển cursorrules sang agents.md, copy phần thân của.cursorrulesvào mộtAGENTS.mdmới ở gốc repo. Không cần frontmatter; đây là Markdown thuần. Sau đó thêm symlink hoặc import@AGENTS.mdđể Claude Code cũng đọc được.
Nếu bạn ở lại trong Cursor và muốn tận dụng tối đa, hướng dẫn tận dụng Cursor hiệu quả hơn mỗi ngày của chúng tôi bao gồm rule scoping trong thực tế.
Đi theo hướng ngược lại (AGENTS.md → CLAUDE.md) chỉ là symlink hoặc import từ phần trước. Không có chuyển đổi mất mát vì cả ba đều là Markdown bên dưới.
SKILL.md và Copilot Instructions Nằm Ở Đâu?
Hai định dạng nữa xuất hiện trong cuộc trò chuyện này, và skills md đang là từ khóa tìm kiếm nổi bật, nên đáng để định vị nhanh. Cả hai không thay thế ba file chính; chúng nằm bên cạnh.
SKILL.md là định dạng Skills của Anthropic: các chỉ thị theo task cụ thể được đóng gói trong .claude/skills/*/SKILL.md mà Claude nạp theo yêu cầu khi một task phù hợp, thay vì luôn bật như CLAUDE.md. Hãy nghĩ nó như một playbook chuyên biệt mà Claude tìm đến, không phải file bộ nhớ toàn project. Phạm vi vẫn đang phát triển, nên đừng đầu tư quá nhiều vào lúc này. Về cách nó phù hợp với workflow thực tế, xem CLAUDE.md nằm ở đâu trong workflow Claude Code thực tế.
Copilot instructions nằm trong .github/copilot-instructions.md cho GitHub Copilot. Tin tốt: Copilot cũng đọc AGENTS.md, nên nếu bạn đã chuẩn hóa trên chuẩn mở, Copilot đã được bao quát mà không cần file riêng.
Nên Dùng Cái Nào? (Theo Cấu Trúc Team)
Ghép định dạng với cách team bạn thực sự làm việc:
- Người dùng Claude Code đơn lẻ: chỉ cần dùng
CLAUDE.md. Không có lý do thêm AGENTS.md trừ khi bạn định đưa Cursor hoặc Codex vào sau. - Người dùng Cursor đơn lẻ:
.cursor/rules/*.mdcđể có glob scoping, hoặc mộtAGENTS.mdduy nhất nếu bạn muốn tính di động từ ngày đầu. - Team dùng nhiều tool: một
AGENTS.mdlàm nguồn sự thật, symlink hoặc import vàoCLAUDE.md. Thêm một file.cursor/rulesnhỏ chỉ cho hành vi riêng của Cursor. - Monorepo:
AGENTS.mdở gốc cộng với file lồng theo từng package, để mỗi subproject tự mô tả và file gần nhất thắng.
Tại Techsy, chúng tôi chuẩn hóa config AI-coding cho các team dùng nhiều tool, thường là một AGENTS.md làm nguồn sự thật với override riêng cho từng tool khi cần. Nếu team bạn đang xoay sở ba file config bằng tay, nhận tư vấn miễn phí và chúng tôi sẽ giúp bạn sắp xếp.
Một gợi ý cuối: bài viết này so sánh các file config. Nếu bạn thực sự đang cố quyết định giữa các tool, hãy đọc so sánh chính các assistant, không phải config của chúng.
Về Tác Giả
Mert Batur Gurbuz là Đồng sáng lập của Techsy.io, nơi team xây dựng AI agent, hệ thống tự động hóa và pipeline voice/SDR cho khách hàng B2B. Anh đang học tại University of Birmingham và viết về stack công cụ LLM mà team Techsy thực sự dùng trong production.
Đồng sáng lập, Techsy.io · University of Birmingham · LinkedIn
Câu Hỏi Thường Gặp
Cursor có đọc CLAUDE.md không?
Không. Cursor đọc .cursor/rules/*.mdc và AGENTS.md một cách native, nhưng CLAUDE.md không bao giờ được nhắc đến trong tài liệu của Cursor và không được nạp. Nếu bạn dùng Cursor và muốn chia sẻ config với người dùng Claude Code, hãy đặt rule vào AGENTS.md (mà Cursor có đọc) thay vì CLAUDE.md.
Claude Code có đọc AGENTS.md không?
Không native. Claude Code chỉ đọc CLAUDE.md, không có fallback tự động sang AGENTS.md. Để nó hoạt động, hoặc symlink các file (ln -s AGENTS.md CLAUDE.md) để Claude đọc AGENTS.md từng byte, hoặc thêm @AGENTS.md ở dòng 1 của CLAUDE.md để import. Import là lựa chọn được Anthropic khuyến nghị, an toàn trên Windows.
Tôi có thể dùng một file cho cả ba tool không?
Có. Dùng AGENTS.md làm nguồn sự thật duy nhất, và Cursor cùng Codex đọc trực tiếp. Với Claude Code, thêm một cầu nối: hoặc symlink AGENTS.md sang CLAUDE.md, hoặc đặt @AGENTS.md ở đầu CLAUDE.md. Bạn duy trì một file, và mọi tool nạp cùng một bộ rule. Đó là toàn bộ công thức dùng chung một config.
.cursorrules có bị deprecated không?
Soft-deprecated. File .cursorrules duy nhất ở gốc repo vẫn hoạt động trong Cursor, nhưng nó không còn trong tài liệu chính thức, đó là tín hiệu thông thường rằng một định dạng đang trên đường ra đi. Project mới nên dùng .cursor/rules/*.mdc cho rule có phạm vi hoặc AGENTS.md cho tính di động.
Làm sao chuyển .cursorrules sang AGENTS.md?
Copy phần thân của file .cursorrules vào một AGENTS.md mới ở gốc repo. Đây là Markdown thuần, nên không cần frontmatter hay định dạng lại. Sau đó thêm symlink hoặc import @AGENTS.md để Claude Code cũng đọc được, và xóa .cursorrules cũ sau khi xác nhận Cursor đã nhận file mới.
Sự khác biệt giữa CLAUDE.md và AGENTS.md là gì?
CLAUDE.md là file bộ nhớ độc quyền của Claude Code, chỉ được đọc bởi Claude Code. AGENTS.md là chuẩn mở được đọc bởi Cursor, Codex, Copilot và hơn 20 tool khác, nhưng không được Claude Code đọc native. Cùng định dạng Markdown, cùng công việc. Khác biệt là phạm vi tiếp cận. AGENTS.md di chuyển qua các tool; CLAUDE.md ở lại bên trong Claude Code.
Team dùng nhiều AI tool nên chuẩn hóa trên định dạng nào?
AGENTS.md. Đây là chuẩn mở, được đọc native bởi hầu hết các tool và đã có mặt trong hơn 60.000 repo. Chuẩn hóa rule chia sẻ ở đó, cầu nối vào Claude Code bằng symlink hoặc import, và thêm các file nhỏ riêng cho từng tool (như .cursor/rules) chỉ khi một tool cần hành vi mà các tool khác không cần.
Ưu tiên hoạt động thế nào khi có file config lồng nhau?
Với cả Claude Code và AGENTS.md, file gần thư mục làm việc nhất thắng, nên rule trong packages/api/AGENTS.md ghi đè file gốc repo cho mọi thứ bên trong thư mục đó. Cursor thì khác: nó gộp rule Team, Project và User theo cấp nguồn thay vì độ sâu thư mục, với nguồn sớm hơn thắng khi xung đột.
SKILL.md nằm ở đâu?
SKILL.md là định dạng Skills đang nổi của Anthropic: các chỉ thị theo task cụ thể trong .claude/skills/*/SKILL.md mà Claude nạp theo yêu cầu khi task phù hợp, thay vì luôn bật như CLAUDE.md. Nó bổ sung cho CLAUDE.md chứ không thay thế. Phạm vi vẫn đang phát triển trong 2026, nên hãy coi nó như một addon chuyên biệt, không phải file thứ tư mà mọi project đều cần.