Cách Claude Code hoạt động
Trang Tổng quan đã giới thiệu khái niệm “agentic”. Trang này đi sâu hơn vào cơ chế thực sự đứng sau: vòng lặp agentic, các nhóm tool có sẵn, và những gì Claude Code có quyền truy cập trong một phiên làm việc.
Vòng lặp agentic
Phần tiêu đề “Vòng lặp agentic”Khi bạn giao một việc, Claude đi qua ba giai đoạn: thu thập ngữ cảnh, hành động, và kiểm chứng kết quả. Ba giai đoạn này đan xen vào nhau — Claude dùng tool xuyên suốt, dù là tìm file để hiểu code, sửa file để thay đổi, hay chạy test để kiểm tra lại việc mình vừa làm.
Vòng lặp này thích ứng theo từng loại yêu cầu. Một câu hỏi về codebase có thể chỉ cần giai đoạn thu thập ngữ cảnh. Một lần sửa bug sẽ lặp qua cả ba giai đoạn nhiều lần. Một lần refactor lớn có thể cần kiểm chứng rất kỹ. Claude tự quyết định mỗi bước cần gì dựa trên những gì học được từ bước trước, nối hàng chục hành động lại với nhau và tự điều chỉnh dọc đường.
Bạn cũng là một phần của vòng lặp này — có thể ngắt lời Claude bất cứ lúc nào để đổi hướng, bổ sung ngữ cảnh, hoặc yêu cầu thử cách khác. Claude làm việc độc lập nhưng vẫn luôn sẵn sàng phản hồi lại bạn.
Hai thành phần vận hành vòng lặp này: model biết suy luận, và tool biết hành động. Claude Code đóng vai trò “bộ khung agentic” (agentic harness) bao quanh model Claude — cung cấp tool, quản lý ngữ cảnh, và môi trường thực thi biến một mô hình ngôn ngữ thành một agent lập trình có năng lực thực sự.
Model
Phần tiêu đề “Model”Claude Code dùng model Claude để đọc hiểu code và suy luận về tác vụ. Với việc phức tạp, model chia nhỏ thành từng bước, thực hiện, rồi điều chỉnh dựa trên kết quả học được. Có nhiều model để lựa chọn với các đánh đổi khác nhau — Sonnet xử lý tốt phần lớn việc lập trình, Opus mạnh hơn về suy luận cho quyết định kiến trúc phức tạp. Chuyển đổi bằng /model trong phiên, hoặc chỉ định ngay từ đầu bằng claude --model <tên-model>.
Tool là thứ khiến Claude Code trở thành “agentic”. Không có tool, Claude chỉ có thể trả lời bằng chữ. Có tool, Claude có thể hành động: đọc code, sửa file, chạy lệnh, tìm kiếm trên web, tương tác với dịch vụ bên ngoài. Mỗi lần dùng tool trả về thông tin mới, nuôi lại vòng lặp để quyết định bước tiếp theo.
Các tool có sẵn (built-in) thuộc năm nhóm chính:
| Nhóm | Claude có thể làm gì |
|---|---|
| Thao tác file | Đọc file, sửa code, tạo file mới, đổi tên/sắp xếp lại |
| Tìm kiếm | Tìm file theo mẫu, tìm nội dung bằng regex, khám phá codebase |
| Thực thi | Chạy lệnh shell, khởi động server, chạy test, dùng git |
| Web | Tìm kiếm trên web, lấy tài liệu, tra cứu thông báo lỗi |
| Code intelligence | Xem lỗi kiểu dữ liệu sau khi sửa, nhảy đến định nghĩa, tìm nơi sử dụng (cần cài thêm plugin ngôn ngữ) |
Ngoài ra Claude còn có tool để giao việc cho subagent, hỏi lại bạn, và vài tác vụ điều phối khác.
Claude tự chọn dùng tool nào dựa trên yêu cầu của bạn và những gì học được dọc đường. Khi bạn nói “sửa các test đang fail”, Claude có thể:
- Chạy bộ test để xem cái nào fail
- Đọc log lỗi
- Tìm file mã nguồn liên quan
- Đọc các file đó để hiểu code
- Sửa file để khắc phục vấn đề
- Chạy lại test để xác nhận
Mỗi lần dùng tool cho Claude thông tin mới để quyết định bước kế tiếp — đó chính là vòng lặp agentic đang vận hành.
Mở rộng khả năng nền tảng: các tool có sẵn là nền móng. Bạn có thể mở rộng thêm kiến thức bằng skill, kết nối dịch vụ ngoài bằng MCP, tự động hoá quy trình bằng hooks, và giao việc cho subagent. Xem So sánh các cách mở rộng để biết khi nào nên dùng cái nào.
Claude Code có quyền truy cập gì
Phần tiêu đề “Claude Code có quyền truy cập gì”Khi bạn chạy claude trong một thư mục, Claude Code có quyền truy cập:
- Dự án của bạn — file trong thư mục và thư mục con, cộng thêm nơi khác nếu bạn cho phép (
--add-dir). - Terminal của bạn — bất kỳ lệnh nào bạn có thể chạy: build tool, git, package manager, tiện ích hệ thống, script riêng.
- Trạng thái git — nhánh hiện tại, thay đổi chưa commit, lịch sử commit gần đây.
CLAUDE.md— chỉ dẫn và ngữ cảnh riêng của dự án bạn viết tay.- Auto memory — điều Claude tự học được khi làm việc.
- Các phần mở rộng bạn cấu hình — MCP server, skill, subagent.
Vì Claude nhìn thấy toàn bộ dự án, nó có thể làm việc xuyên suốt dự án đó. Khi bạn yêu cầu “sửa lỗi ở module authentication”, Claude tìm các file liên quan, đọc nhiều file để hiểu ngữ cảnh, sửa đồng bộ trên các file đó, chạy test để xác nhận, và commit nếu bạn yêu cầu. Đây là điểm khác biệt so với các trợ lý code chỉ nhìn thấy file đang mở.
Mỗi phiên là độc lập
Phần tiêu đề “Mỗi phiên là độc lập”Claude Code lưu hội thoại của bạn cục bộ trên máy khi làm việc (xem Thư mục .claude). Nhờ đó bạn có thể tua lại (rewind), tiếp tục (resume), hoặc rẽ nhánh (fork) một phiên cũ. Trước khi sửa code, Claude cũng chụp lại (snapshot) các file bị ảnh hưởng để bạn có thể hoàn tác nếu cần.
Nhưng mỗi phiên mới lại bắt đầu với một cửa sổ ngữ cảnh trống — không mang theo lịch sử hội thoại từ phiên trước. Điều xuyên suốt được giữa các phiên chỉ có auto memory và CLAUDE.md do bạn viết.
An toàn: checkpoint và quyền hạn
Phần tiêu đề “An toàn: checkpoint và quyền hạn”Claude Code có hai cơ chế an toàn:
- Checkpoint — mọi lần sửa file đều có thể hoàn tác. Trước khi sửa, Claude chụp lại nội dung hiện tại; nếu có gì sai, nhấn
Eschai lần để tua lại trạng thái trước đó, hoặc nhờ Claude hoàn tác. Checkpoint tách biệt với git và vẫn còn khi bạn resume lại phiên — nhưng chỉ áp dụng cho thay đổi file, không áp dụng cho hành động ảnh hưởng hệ thống bên ngoài (database, API, deploy…), đó là lý do Claude luôn hỏi trước khi chạy các lệnh có tác động ra ngoài. - Chế độ quyền hạn — kiểm soát Claude được phép làm gì mà không cần hỏi. Nhấn
Shift+Tabđể chuyển chế độ giữa phiên.
Làm việc hiệu quả với Claude Code
Phần tiêu đề “Làm việc hiệu quả với Claude Code”- Cứ hỏi Claude Code cách dùng nó — “làm sao để thiết lập hooks?” hay “CLAUDE.md nên viết thế nào?” đều được trả lời trực tiếp.
/initgiúp khởi tạoCLAUDE.md;/doctorchẩn đoán và tự sửa lỗi cấu hình. - Đây là một cuộc hội thoại, không phải một câu thần chú — không cần viết prompt hoàn hảo ngay từ đầu. Bắt đầu với điều bạn muốn, rồi tinh chỉnh dần qua các lượt trao đổi.
- Ngắt lời và điều chỉnh bất cứ lúc nào — nhấn
Escđể dừng Claude ngay lập tức; hoặc gõ điều chỉnh và nhấnEnterđể gửi mà không cần dừng hành động đang chạy, Claude sẽ đọc ngay khi xong bước hiện tại. - Càng cụ thể ngay từ đầu, càng ít phải sửa lại — nêu rõ file liên quan, ràng buộc cần giữ, pattern ví dụ.
- Cho Claude thứ để tự kiểm chứng — kèm test case, dán ảnh chụp UI mong muốn, định nghĩa rõ output cần có — Claude làm việc tốt hơn khi có thể tự kiểm tra lại kết quả của mình.
- Khám phá trước khi triển khai — với vấn đề phức tạp, tách nghiên cứu ra khỏi việc code bằng plan mode (
Shift+Tabhai lần): để Claude đọc hiểu codebase và đề xuất kế hoạch trước, bạn duyệt và tinh chỉnh kế hoạch qua hội thoại, rồi mới để Claude triển khai. - Giao việc, đừng ra lệnh chi tiết từng bước — hãy nghĩ như đang giao việc cho một đồng nghiệp giỏi: cho đủ ngữ cảnh và định hướng, rồi tin tưởng Claude tự tìm ra chi tiết cần làm.
Bước tiếp theo
Phần tiêu đề “Bước tiếp theo”- So sánh các cách mở rộng — khi nào dùng CLAUDE.md, skill, hook, MCP hay subagent
- Cửa sổ ngữ cảnh — mô phỏng tương tác về những gì nạp vào ngữ cảnh
- Quy trình thường gặp — các pattern thực hành theo từng bước