FDE PulseViệc làm FDE đang mở 441Mới trong 7 ngày 29Công ty đang tuyển 47Nhận làm từ xa 24%Lương trung vị (Mỹ) $216kTuyển nhiều nhất Databricks 125
EN

Tờ báo của nghề Forward Deployed Engineer

Công cụ

Dùng Claude Code, Codex và Cursor trong repo của khách: kiểm tra tài khoản trước, prompt sau

Ba trợ lý code đều có cơ chế khoanh vùng. Nhưng mặc định của chúng khác nhau, và những ngoại lệ dễ khiến FDE vi phạm chính sách của khách lại nằm ở phần tài liệu ít người đọc.

Kỹ sư ngồi làm việc với laptop hiển thị mã nguồn trong văn phòng
Ảnh: Christina Morillo / CC0

Tóm tắt nhanh

  • Theo mặc định, Claude Code lưu transcript dạng plaintext trên máy trong 30 ngày, kể cả khi bạn làm trên code của khách.
  • Cam kết không huấn luyện và ZDR phụ thuộc vào loại tài khoản và cách cấu hình của từng công cụ, ví dụ việc dùng API key riêng trong Cursor.
  • CLAUDE.md chỉ là lời dặn. Thứ thật sự giới hạn agent là sandbox và chế độ hỏi quyền.
Chia sẻLinkedInFacebookX
Bảng so sánh Claude Code, Codex và Cursor. Mặc định: Claude Code chỉ đọc và hỏi trước; Codex chạy sandbox, mạng tắt; Cursor bật sẵn Privacy Mode. Chỗ dễ vấp: Claude Code phải bật ZDR theo tổ chức; với Codex, mở mạng là do bạn quyết; với Cursor, dùng API key riêng thì không có ZDR (ô này được tô màu nhấn).
Mặc định của mỗi trợ lý code đều an toàn, nhưng mỗi công cụ có một ngoại lệ riêng. Ngoại lệ khó thấy nhất nằm ở Cursor: cắm API key cá nhân là mất cam kết ZDR. Nguồn: tài liệu của Anthropic, OpenAI và Cursor.

Mỗi phiên Claude Code bạn mở trên laptop đều để lại dấu vết. Tài liệu của Anthropic ghi rõ rằng transcript các phiên được lưu dạng plaintext trong ~/.claude/projects/ và được giữ 30 ngày theo mặc định. Nếu phiên đó chạy trên codebase của khách, phần lớn những gì agent đã đọc và những gì bạn đã dán vào có thể vẫn đang nằm trên ổ cứng của bạn.

Với kỹ sư làm sản phẩm nội bộ, chuyện này ít khi thành vấn đề. Với FDE thì khác. Bạn làm việc trong repo không thuộc về mình, nên mỗi lệnh agent chạy đều phải nằm trong chính sách dữ liệu của khách.

Claude Code, Codex và Cursor đều có cơ chế khoanh vùng. Nhưng mặc định của mỗi công cụ khác nhau, và các ngoại lệ quan trọng nhất lại nằm ở phần tài liệu về quyền riêng tư mà ít người đọc kỹ.

Agent làm được gì trong repo của bạn?

Anthropic mô tả Claude Code là công cụ code dạng agent. Nó đọc codebase, sửa file, chạy lệnh và kết nối với các công cụ phát triển, trên terminal, IDE, ứng dụng desktop và trình duyệt. Ở đầu mỗi phiên, nó đọc file CLAUDE.md trong repo, nên đây là chỗ hợp lý để ghi chuẩn code và các ràng buộc của khách.

Codex của OpenAI, khi chạy trên máy local, bị chính hệ điều hành nhốt trong một sandbox nên chỉ chạm được tới những gì được phép. Mặc định Codex chạy với mạng tắt. Một approval policy riêng quyết định khi nào nó phải hỏi bạn trước khi làm.

Với Cursor, phần cần đọc kỹ nhất là các cam kết về dữ liệu, và đó cũng là chỗ FDE dễ vấp nhất.

Hỏi về tài khoản trước khi viết prompt

Một lệnh sai thì còn hiện trên màn hình để bạn chặn lại. Việc code đi đâu sau khi rời máy thì khó thấy hơn nhiều, vì thế đáng hỏi rõ trước khi gõ prompt đầu tiên.

Anthropic cho biết họ không dùng code hay prompt gửi tới Claude Code để huấn luyện model nếu bạn dùng điều khoản thương mại (Team, Enterprise, API); các gói cá nhân thì khác, nên loại tài khoản là câu hỏi đầu tiên.

Ngay cả gói Enterprise cũng không tự có zero data retention (ZDR). Tài liệu của Anthropic cho biết ZDR được bật theo từng tổ chức, sau khi đội account xác nhận tổ chức đủ điều kiện.

Cursor có một bẫy tinh vi hơn. Với team, Privacy Mode được bật mặc định cho mọi thành viên, cam kết code không bị Cursor hay nhà cung cấp model dùng để huấn luyện, và admin có thể khóa nó trên toàn tổ chức để thành viên không tắt được.

Nhưng ZDR không áp dụng khi bạn dùng API key của riêng mình. Thử hình dung bạn đang ở site khách, hết quota và cắm tạm API key cá nhân vào Cursor cho kịp demo. Màn hình trông y như cũ, nhưng cam kết ZDR không còn áp dụng nữa, nên những thay đổi kiểu này cần được hỏi trước chứ đừng làm rồi mới báo.

Claude Code Codex Cursor
Mặc định khi chạy Chế độ Manual: chỉ đọc, hỏi trước khi sửa file hay chạy lệnh Sandbox của hệ điều hành, mạng tắt Privacy Mode bật sẵn cho team
Cơ chế khoanh vùng Bash trong sandbox, cô lập filesystem và mạng Approval policy quyết định khi nào phải hỏi Admin khóa Privacy Mode toàn tổ chức
Chỗ dễ vấp ZDR phải bật theo tổ chức; transcript plaintext 30 ngày Mở mạng hay nới quyền là quyết định của bạn ZDR không áp dụng với API key riêng

Một phiên làm việc mẫu

Giả sử khách nhờ bạn sửa một test đang fail trong service thanh toán. Trước khi gõ prompt đầu tiên, hãy tạo một CLAUDE.md ngắn ở gốc repo:

# Ràng buộc của khách
- Không đọc thư mục secrets/ và các file .env
- Không gọi dịch vụ mạng bên ngoài
- Chỉ chạy test bằng: make test-payments
- Không commit; chỉ đề xuất diff để kỹ sư của khách review

Sau đó mở phiên ở chế độ Manual. Claude Code bắt đầu với quyền chỉ đọc, nên việc đầu tiên nên là bảo nó đọc code và giải thích vì sao test fail.

Khi nó đề xuất sửa file hay chạy make test-payments, bạn đọc từng lệnh rồi mới duyệt. Nếu lời nhắc hỏi quyền xuất hiện quá nhiều, hãy chuyển sang bash trong sandbox, nơi filesystem và mạng đã bị cô lập, thay vì duyệt cho qua hết.

Cần nhớ rằng CLAUDE.md chỉ là thứ agent đọc ở đầu phiên. Đó là lời dặn, không phải hàng rào. Dòng “không gọi mạng bên ngoài” chỉ thật sự được bảo đảm khi sandbox chặn mạng.

Nếu làm cùng việc đó bằng Codex

Với Codex, hàng rào mạng đã có sẵn vì mạng tắt theo mặc định. Thử hình dung test thanh toán cần tải một dependency chưa có trong máy: lệnh sẽ không chạy được, và agent sẽ dừng lại hoặc hỏi bạn tùy theo approval policy.

Đó là lúc dễ phạm lỗi nhất, vì bấm cho mở mạng chỉ mất một giây. Hãy dừng lại và hỏi kỹ sư của khách xem service này có được phép gọi ra ngoài không, gọi tới đâu. Chỉ khi họ đồng ý mới nới quyền, và ghi quyết định đó vào ghi chú bàn giao.

Công cụ không gánh trách nhiệm thay bạn

Tài liệu bảo mật của Anthropic nói thẳng: bạn chịu trách nhiệm xem xét code và lệnh được đề xuất trước khi duyệt. Ở site khách, câu đó có hệ quả thực tế. Một lệnh xóa thư mục do agent đề xuất nhưng bạn bấm duyệt thì vẫn là lệnh của bạn.

Giới hạn thứ hai nằm trên chính laptop. Transcript plaintext 30 ngày nghĩa là khi dự án kết thúc, bàn giao vẫn chưa xong nếu bạn chưa dọn những thư mục đó theo đúng yêu cầu của khách. Hãy đưa bước này vào checklist offboarding của mỗi engagement.

Nên học gì trước và ghi gì vào CV

Đừng bắt đầu bằng mẹo viết prompt. Hãy học ba thứ theo thứ tự: chế độ quyền và sandbox của công cụ bạn dùng, ý nghĩa của “điều khoản thương mại” và ZDR, rồi cách viết file ràng buộc cho repo. Thứ đầu tiên cần thành phản xạ, vì đó là phần công cụ thật sự cưỡng chế.

Khi đọc mô tả công việc, hãy xem vai trò có đòi hỏi làm việc trực tiếp trong hạ tầng hay codebase của khách không; nếu có, đây là kỹ năng đáng nêu khi phỏng vấn. Trên CV, một dòng như “thiết lập quy trình dùng agent code trong sandbox, mạng tắt, trên codebase của khách hàng tài chính” cho nhà tuyển dụng thấy nhiều hơn “thành thạo Claude Code”.

Nhiều khả năng khách sẽ không hỏi bạn đã dùng công cụ nào. Nhưng nếu khách hỏi transcript của dự án đang nằm ở đâu, bạn nên có sẵn câu trả lời.

Bài này có hữu ích không?

Dùng cùng trợ lý AIHỏi Claude ↗Hỏi ChatGPT ↗
5 nguồn
Đọc tiếp trên lộ trình · Chặng 2: Kỹ thuật rộngMetabase: dashboard tự phục vụ trên database của khách, dựng xong trong một buổi chiềuCài Metabase chỉ mất vài phút. Phần khó là ba quyết định sau đó: tài khoản database, quyền theo nhóm và cách embed. Làm sai một trong ba, demo đẹp buổi chiều sẽ thành sự cố vào tuần sau.