> ## Documentation Index
> Fetch the complete documentation index at: https://huongdan.luklak.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bài 2 — Claude Code là gì? Không phải chatbot

> Claude Code không phải ChatGPT có thêm tính năng. Đó là một vòng lặp agent: đọc → lên kế hoạch → dùng công cụ → kiểm chứng → lặp lại.

**Điểm cốt lõi của bài này**

<Check>
  **Claude Code không phải chatbot. Đó là một vòng lặp tác vụ (agent loop): đọc ngữ cảnh → lên kế hoạch → dùng công cụ → kiểm chứng → lặp lại. ChatGPT trả lời. Claude Code làm việc.**
</Check>

## Hiểu lầm phổ biến nhất

Phần lớn người mới tiếp xúc với Claude Code đều nghĩ: *"À, chắc là ChatGPT có thêm vài tính năng, nhét vào VS Code."*

Không phải. Hai thứ đó khác nhau về bản chất, không phải về giao diện.

* **ChatGPT** là một cửa sổ trò chuyện. Bạn hỏi, nó trả lời. Nó không với tay ra khỏi cửa sổ đó được.
* **Claude Code** là một **agent (agent)** — một thực thể biết suy luận, có **công cụ (tool)** để đọc file, chỉnh sửa, chạy lệnh, và quan trọng nhất: **biết tự kiểm chứng kết quả**.

Sự khác biệt không nằm ở model bên trong. Bạn có thể gắn cùng một LLM vào cả hai. Sự khác biệt nằm ở việc **Claude Code được trao tay các công cụ để thực sự tương tác với thế giới của bạn.**

## So sánh trực tiếp: ChatGPT và Claude Code

<Tabs>
  <Tab title="Truy cập file dự án">
    **ChatGPT:** Không. Bạn phải copy-paste nội dung file vào khung chat. File lớn thì gãy.

    **Claude Code:** Có. Claude đọc thẳng file trên máy bạn qua **công cụ Read (Read tool)**, không cần bạn copy gì cả.
  </Tab>

  <Tab title="Chạy lệnh terminal">
    **ChatGPT:** Không. Nó chỉ **gợi ý** lệnh cho bạn, rồi bạn phải tự mở terminal gõ lại.

    **Claude Code:** Có. Claude chạy thẳng lệnh qua **công cụ Bash (Bash tool)**, đọc kết quả, và phản ứng theo kết quả đó.
  </Tab>

  <Tab title="Nhớ cấu trúc dự án">
    **ChatGPT:** Không. Mỗi phiên mới, nó quên sạch. Bạn phải giải thích lại mọi thứ từ đầu.

    **Claude Code:** Có. Nó đọc file `CLAUDE.md` ở gốc dự án mỗi phiên — đó là **bộ nhớ bền vững (persistent memory)** bạn tự soạn.
  </Tab>

  <Tab title="Tự kiểm chứng">
    **ChatGPT:** Không. Nó viết xong là xong. Đúng hay sai, nó không biết.

    **Claude Code:** Có. Sau khi sửa code, Claude có thể chạy test, đọc lại file, kiểm tra xem kết quả có khớp với ý định ban đầu không.
  </Tab>

  <Tab title="Điều phối agent khác">
    **ChatGPT:** Không. Một cửa sổ, một luồng hội thoại.

    **Claude Code:** Có. Claude có thể gọi **sub-agent (sub-agent)** chạy song song, mỗi agent có cửa sổ ngữ cảnh riêng — như thuê chuyên gia làm việc cùng lúc.
  </Tab>
</Tabs>

## Vòng lặp Agent — trái tim của Claude Code

Đây là phần quan trọng nhất của bài học. Nếu bạn chỉ nhớ một sơ đồ trong cả khóa học, hãy nhớ sơ đồ này.

```mermaid theme={null}
flowchart TD
    A[Nhận prompt] --> B[Thu thập ngữ cảnh<br/>đọc file, grep, web]
    B --> C[Lên kế hoạch<br/>quyết định dùng tool nào]
    C --> D[Hành động<br/>Read/Write/Edit/Bash]
    D --> E[Kiểm chứng<br/>chạy test, đọc lại]
    E --> F{Đã xong?}
    F -->|Chưa| B
    F -->|Rồi| G[Báo cáo cho bạn]
    style A fill:#e3f2fd
    style G fill:#c8e6c9
```

Năm bước của vòng lặp:

1. **Nhận prompt**: Bạn gõ yêu cầu. Ví dụ *"sửa lỗi login trong dự án này"*. Claude chưa biết gì về dự án của bạn.
2. **Thu thập ngữ cảnh**: Claude đi tìm. Nó dùng **Glob (Glob)** để liệt kê file, **Grep (Grep)** để tìm từ khóa `login`, **Read (Read)** để đọc những file liên quan. Nó không đoán mò — nó đọc.
3. **Lên kế hoạch**: Sau khi có ngữ cảnh, Claude quyết định: file nào cần sửa, sửa dòng nào, có cần thêm test không, thứ tự ra sao.
4. **Hành động**: Claude dùng **Edit (Edit)** để sửa code, **Write (Write)** để tạo file mới, hoặc **Bash (Bash)** để chạy lệnh build/test.
5. **Kiểm chứng**: Claude chạy test, đọc lại file vừa sửa, kiểm tra output. Nếu sai — quay lại bước 2 với ngữ cảnh mới. Nếu đúng — báo cáo cho bạn.

<Info>
  **Chìa khóa nằm ở vòng lặp.** ChatGPT chạy một lượt rồi dừng. Claude Code chạy đi chạy lại cho đến khi kết quả khớp với ý định của bạn — hoặc nó tự báo *"tôi bí rồi, cần bạn giúp"*.
</Info>

Ví dụ thực tế: khi bạn yêu cầu *"sửa lỗi login"*, Claude không có sẵn thông tin nào. Nó phải **tìm file `login.tsx`**, **đọc code**, **thử một bản sửa**, **chạy test**, và **lặp lại** cho đến khi test pass. Mỗi bước là một lượt gọi công cụ. Bạn chỉ thấy kết quả cuối — nhưng bên dưới là hàng chục lượt tool call.

## Claude Code là một "harness" (harness) bao quanh model

Đây là khái niệm kỹ thuật nhưng dễ hiểu qua ẩn dụ.

<AccordionGroup>
  <Accordion title="Ẩn dụ: thiên tài cờ vua trong phòng trắng" icon="chess-knight">
    Hình dung một tài năng phi thường — ví dụ một thiên tài cờ vua — bị nhốt trong căn phòng trắng. Thông minh thì rất thông minh, nhưng không có bàn cờ, không có đối thủ, không có đồng hồ. Trí thông minh đó không biến thành kết quả.

    Bây giờ đưa anh ta ra ngoài, đặt vào giải đấu, trao cho anh bàn cờ, đồng hồ, quyển sổ ghi nước đi. **Bộ khung xung quanh** (giải đấu, bàn cờ, luật chơi) mới là thứ biến trí thông minh thành thắng lợi.

    Đó là **harness**.
  </Accordion>

  <Accordion title="Phân tách: Model vs Harness" icon="layer-group">
    * **Model (Claude)** là trí thông minh — khả năng suy luận, viết, tổng hợp.
    * **Harness (Claude Code)** là bộ khung — các công cụ, vòng lặp, quyền truy cập hệ thống, khả năng điều phối.

    Không có harness, LLM chỉ trò chuyện. Có harness, LLM làm việc. Đó là toàn bộ lý do Claude Code tồn tại.
  </Accordion>
</AccordionGroup>

<Tip>
  Cùng một model (Claude Opus 4.6) có thể chạy trong nhiều harness khác nhau: Claude Code (tập trung dev ops), Claude Desktop (tập trung hội thoại), API trực tiếp (bạn tự viết harness). Chọn đúng harness quan trọng ngang chọn đúng model.
</Tip>

## Claude Code lý luận về ý định — không đọc cấu trúc cứng

Đây là điểm đặt nền móng cho cả khóa học. Nhớ kỹ.

Claude Code **không phải một công cụ chạy theo đường dẫn cố định**. Nó không yêu cầu bạn đặt file ở đường dẫn X, đặt agent ở thư mục Y, viết skill theo cú pháp Z. Nó là một **agent suy luận về ý định (intent) của bạn**, rồi chọn công cụ phù hợp.

Hệ quả quan trọng:

* Bạn **không bị ép** theo bất kỳ cấu trúc nào.
* Bạn có thể tổ chức agent, **skill (skill)**, tài liệu theo cách hợp với bộ não của bạn.
* Claude sẽ đi theo **ý định bạn chỉ dẫn**, không phải theo quy ước thư mục.

<Warning>
  Điều này nghe đơn giản, nhưng ngược với hầu hết công cụ dev khác. Git ép bạn theo cấu trúc `.git/`. NPM ép bạn theo `node_modules/`. Claude Code không ép gì cả. Đó vừa là tự do, vừa là trách nhiệm: bạn tự thiết kế hệ thống của riêng mình.
</Warning>

Bài 5 của khóa học sẽ cho bạn xem một hệ thống thật (agent Lulu của dự án Luklak) được thiết kế hoàn toàn theo bộ não người dùng — không theo chuẩn Claude Code — và vẫn chạy tốt.

## Một prompt thực tế từ dự án này

Để cho cụ thể, đây là một prompt thực sự được dùng trong dự án `mintlify-tailieuvn`:

```
Translate en/02-platform/platform-overview/universal-object/universal-object-overview.mdx
into Vietnamese, save to vi/02-platform/.../doi-tuong-pho-quat-la-gi.mdx,
match the tone of existing VI files.
```

Chuyện gì xảy ra khi bạn gõ prompt này?

1. Claude **đọc file EN gốc** (Read).
2. Claude **liệt kê các file VI đã tồn tại** (Glob) và **đọc vài file mẫu** (Read) để nắm giọng điệu.
3. Claude **dịch** trong đầu (không phải tool call — đây là công việc của model).
4. Claude **ghi file VI mới** tại đường dẫn bạn chỉ định (Write).
5. Claude **đọc lại file vừa ghi** (Read) để kiểm tra syntax MDX không vỡ.
6. Claude **báo cáo** với bạn: đã xong, số dòng, vài điểm cần chú ý.

Một prompt, sáu lượt tool call. ChatGPT không làm được điều này vì nó không có quyền ghi file vào máy bạn.

## Tự kiểm tra

<AccordionGroup>
  <Accordion title="Câu 1: Claude Code có thể đọc file trong dự án của tôi không?" icon="circle-question">
    **Có.** Đây là khác biệt lớn nhất so với ChatGPT. Claude Code đọc thẳng file trên máy bạn qua công cụ Read. Bạn không cần copy-paste nội dung vào khung chat. File 10.000 dòng Claude đọc được như file 10 dòng — miễn là nó vừa với cửa sổ ngữ cảnh.
  </Accordion>

  <Accordion title="Câu 2: Nếu tôi yêu cầu Claude Code “sửa lỗi”, nó làm gì đầu tiên?" icon="circle-question">
    **Thu thập ngữ cảnh.** Claude không nhảy vào sửa ngay. Nó dùng Glob để tìm file, Grep để tìm từ khóa, Read để đọc code. Chỉ khi đã có đủ ngữ cảnh, nó mới lên kế hoạch và hành động. Đây là điểm khác biệt cốt lõi giữa một agent và một chatbot: agent đi tìm trước khi nói.
  </Accordion>

  <Accordion title="Câu 3: Claude Code có bắt buộc tôi tổ chức project theo cấu trúc nào không?" icon="circle-question">
    **Không.** Claude Code đọc ý định của bạn, không đọc quy ước thư mục. Bạn có thể đặt agent, skill, tài liệu ở bất cứ đâu hợp với bộ não bạn, miễn là bạn chỉ rõ trong prompt hoặc `CLAUDE.md`. Đây là tự do lớn — và cũng là lý do khóa học này dành thời gian để bạn tự thiết kế hệ thống phù hợp.
  </Accordion>
</AccordionGroup>

## Bài tập

<Steps>
  <Step title="Mở VS Code với một dự án bất kỳ">
    Có thể là thư mục `mintlify-tailieuvn` bạn đã clone, hoặc bất kỳ thư mục nào có vài file. Không cần code bên trong — thư mục tài liệu cũng được.
  </Step>

  <Step title="Mở panel Claude Code">
    Nhấn `Ctrl+Shift+P` (hoặc `Cmd+Shift+P` trên Mac) → gõ "Claude Code" → chọn lệnh mở panel.
  </Step>

  <Step title="Thử prompt thu thập ngữ cảnh">
    Gõ: *"Liệt kê các thư mục trong dự án này"*

    Quan sát: Claude dùng công cụ nào? (Thường là Bash với `ls`, hoặc Glob).
  </Step>

  <Step title="Quan sát tool call đầu tiên">
    Chú ý ô hiển thị tool call. Đó là lúc Claude "ra khỏi cửa sổ chat" để với tay vào máy bạn. ChatGPT không bao giờ có bước này.
  </Step>

  <Step title="Thử prompt đọc file">
    Gõ tiếp: *"Đọc file README và tóm tắt bằng 3 gạch đầu dòng"*

    Quan sát: Claude dùng Read để lấy nội dung, rồi model tóm tắt. Hai bước khác nhau — một là tool call, một là suy luận model.
  </Step>

  <Step title="Rút ra bài học của chính bạn">
    Viết xuống một câu: *"Khác biệt cốt lõi giữa ChatGPT và Claude Code là ..."*
  </Step>
</Steps>

## Tiếp theo?

* [Bài 3 — Công cụ & Vòng lặp thực thi](/06-academy/claude-code/cong-cu-va-vong-lap)
* [Quay lại Bài 1 — Nguyên lý LLM](/06-academy/claude-code/nguyen-ly-llm)
