# Agentic AI: cắm MCP đọc ghi tệp cho model chạy trên máy

[Thanh Trần](https://homus.dev/speakers/thanh-tran) · [Thanh Trần - 5 Phút AI](https://homus.dev/orgs/thanh-tran-5-phut-ai)

> Chatbot khác agent ở đâu, cắm MCP đọc ghi tệp vào LM Studio, viết câu lệnh bốn phần để tóm tắt 6 tệp trong một phút, rồi kiểm và giữ an toàn.

Topics: Agents, Workflow, Security

Canonical: https://homus.dev/talks/agentic-ai-la-gi-khi-ai-tu-lam-viec-tren-may-cua-ban-khoa-hoc-local-ai-asus-tuf-gaming-a14-5

## 1. Một câu lệnh, sáu tệp tóm tắt tự mọc ra

Video có sự đồng hành của ASUS.

Thanh Trần mở tập bằng chính thư mục tài liệu của mình: 6 tệp ghi chép của 2 môn học, viết rải rác suốt cả học kỳ. Bình thường, nếu muốn tóm tắt lại để ôn thi, anh sẽ phải mở từng tệp ra, đọc, gõ bản tóm tắt, đặt tên rồi lưu, và làm như vậy 6 lần. Còn hôm nay anh chỉ gõ đúng một câu, rồi bỏ tay ra khỏi bàn phím và ngồi nhìn. Máy tự đọc, tự viết, tự đặt tên. Sáu tệp tóm tắt mọc ra ngay cạnh sáu tệp gốc, và anh không cần chạm vào chuột thêm một lần nào nữa.

![Thư mục Windows có sáu tệp ghi chép dạng Markdown](https://homus.dev/photos/by4J_XyQ9_Q-0003.jpg)

Thư mục tài liệu dùng trong cả tập: sáu tệp Markdown nhỏ (2 đến 3 KB), gồm hai tệp ghi chép buổi 1 (rủi ro và bất định) và buổi 2, một tệp các khái niệm bảo hiểm hay nhầm, hai tệp sinh học (tế bào, tỷ lệ diện tích và thể tích) và một tệp tên chung chung là "tai-lieu-moi-1".

Toàn bộ khoá học này chạy trên chiếc ASUS TUF Gaming A14 với chip AMD Ryzen AI Max+ 392 bên trong. Mọi thứ người xem thấy trong video đều chạy trên chính cái máy đó, và không có gì được gửi lên mạng cả. Đây là tập 5 của khoá, tập mà AI thôi nói chuyện và bắt đầu đi làm việc cho bạn.

## 2. Mùa thi: cái tốn thời gian nhất là việc dọn

Anh nói thẳng: vào mùa thi, cái tốn thời gian nhất không phải là việc học, mà là việc dọn. Ai cũng có một thư mục kiểu như thế này: ghi chép buổi 1, buổi 2; một tệp gom mấy khái niệm hay nhầm; vài tệp của môn khác. Có tệp tên rõ ràng, có tệp tên là "tài liệu mới 1", và cứ phải mở ra mới biết bên trong có gì. Giờ bạn cần một bản tóm tắt cho từng tệp để ôn.

Anh làm thật trên một tệp cho người xem thấy, bấm giờ luôn: mở tệp, đọc hết, rút ra mấy ý chính, gõ lại cho gọn, đặt tên tệp mới rồi lưu. Một tệp đã mất chừng đó thời gian, mà thư mục này có 6 tệp, cứ nhân lên là ra. Trên màn hình ghi "6 tệp ≈ 30 phút, mà đó là nửa tiếng ngồi nghiêm túc". Anh nói rõ để khỏi ai thắc mắc: anh chỉ bấm giờ cho một tệp rồi nhân lên cho 6, chứ không ngồi quay đủ 6 lần cho dài video.

Và đây mới là chỗ cần chú ý: 6 tệp trong ví dụ còn rất ít. Anh nghĩ cuối kỳ thư mục của các bạn không chỉ 6 tệp đâu, mà phải 20, 30 tệp, nằm lẫn lộn với ảnh chụp bảng, với đề cương tải trên nhóm lớp. Những việc này làm tay thì chắc mất vài buổi tối, trong khi thường chúng ta cũng chỉ dành ra vài buổi để ôn.

Nghe thì có vẻ đây là việc của AI, và thực ra cũng đúng. Nhưng anh bảo hãy nghĩ lại 4 tập vừa rồi chúng ta đã làm thế nào: mở LM Studio, bấm dấu cộng rồi đi tìm tệp, đính kèm, gõ câu hỏi. AI trả lời rất hay. Rồi bạn bôi đen, chép, mở một tệp mới, dán vào, đặt tên, lưu. Đếm lại cả chuỗi đó thì AI làm đúng một bước, đó là bước nghĩ. Mười bước còn lại nằm ở tay bạn.

Cách làm ở 4 tập trước: AI chỉ lo phần nghĩ, mọi thao tác mở, chép, dán, lưu vẫn là của người dùng.

Còn vướng thêm một chỗ nữa. Ở tập 4 anh đã chỉ bảng đính kèm trong LM Studio: nó ghi rõ mỗi lần gửi tối đa 5 tệp, mà thư mục này có 6. Nghĩa là chưa cần một thư mục to, chỉ 6 tệp thôi bạn đã phải chia thành 2 lượt. Cho nên vấn đề không nằm ở chỗ AI dốt, nó không hề dốt. Vấn đề là nó không có tay: nó không tự mở được thư mục của bạn, cũng không tự lưu được tệp ra máy. Tập này sẽ lắp tay cho nó.

## 3. Tập này làm được gì, và cỗ máy chạy cả khoá

Hết tập này, người xem sẽ làm được 3 việc:

- **Phân biệt chatbot và agent.** Nghe hai chữ đó thì to, nhưng chúng khác nhau đúng một điểm, và anh chỉ ngay ở phần sau.

- **Tự gắn tay chân cho AI trên máy của mình:** gắn bằng cách nào, gắn ở đâu trong phần mềm, và quan trọng nhất là cấp quyền đúng một thư mục chứ không phải cấp cả ổ đĩa.

- **Giao một việc thật và tự kiểm được kết quả.** Phần kiểm quan trọng ngang với phần giao việc, anh sẽ nói kỹ sau.

Công cụ vẫn là LM Studio của các tập trước, vẫn con model của tập 3 và tập 4 (trên màn hình là `qwen3.6-35b-a3b`). Không phải cài thêm phần mềm nào mới.

Trước khi vào việc, anh nhắc lại cỗ máy đang chạy tất cả những thứ này, vì tập này gánh nặng hơn hẳn 4 tập trước: ASUS TUF Gaming A14, chip AMD Ryzen AI Max+ 392 với 12 nhân (24 luồng), GPU Radeon 8060S tích hợp trong chip, cụm NPU lên tới 50 TOPS, và bộ nhớ hợp nhất, tức là RAM với VRAM dùng chung một hồ chứa, thứ mà tập 2 đã mổ xẻ từng bước.

Vì sao phải nhắc lại? Vì agent không hỏi một câu rồi thôi. Nó hỏi model, model trả lời và gọi công cụ, lấy kết quả về rồi lại hỏi model tiếp: 1 vòng, 2 vòng, 5 vòng, suốt cả chuỗi. Trong lúc đó model 22 GB phải nằm nguyên trong bộ nhớ; nạp ra nạp vào giữa chừng là hỏng luôn.

Chưa hết. Mỗi lần gọi công cụ xong, kết quả lại được nhồi ngược vào cuộc trò chuyện: danh sách thư mục, nội dung 6 tệp, báo cáo từng lượt. Cuộc trò chuyện phình ra rất nhanh, và anh sẽ cho xem con số thật ở cuối bài. Model nằm im trong bộ nhớ, hội thoại phình ra, hai thứ đó diễn ra cùng lúc. Đó là lý do dung lượng bộ nhớ mới là thứ quyết định, chứ không phải tốc độ thô.

## 4. Chatbot nói, agent làm

Vậy chatbot và agent khác nhau ở đâu? Anh lấy một ví dụ đời thường. Bạn nhờ thằng bạn cùng phòng chỉ đường ra bưu điện. Nó chỉ rất nhiệt tình: rẽ trái, rẽ phải, đi bao xa. Đó chính là chatbot: nó biết, nó nói cho bạn nghe, còn đi thì bạn vẫn phải tự đi.

Còn bây giờ bạn nhờ nó cầm cái phong bì ra bưu điện gửi hộ. Nó cầm, nó đi, nó gửi, rồi về báo lại với bạn là đã gửi xong. Đó chính là agent: nó không chỉ nói cho bạn nghe nữa, mà nó làm. Bốn tập vừa rồi người xem đã dùng thứ thứ nhất; tập này anh chỉ cách dùng thứ thứ hai.

![Bảng so sánh chatbot và agent bên cạnh Thanh Trần ngồi trước laptop](https://homus.dev/photos/by4J_XyQ9_Q-0443.jpg)

Bảng "Chatbot nói, agent làm": ví dụ đời thường là nhờ chỉ đường so với nhờ cầm phong bì đi gửi; chatbot nói cho bạn nghe, agent tự đi làm rồi báo lại; với chatbot bạn tự đi, với agent nó đi; bốn tập trước dùng cột trái, tập này dùng cột phải.

## 5. Agent cần đúng ba thứ: công cụ, quyền, nút cho phép

Muốn nhờ được thằng bạn cầm phong bì đi gửi, bạn phải đưa cho nó 3 thứ. Anh dặn nghe kỹ 3 thứ này, vì nó là khung xương của cả tập, và của mọi thứ bạn sẽ nghe, sẽ gặp sau này khi người ta nói về agent.

**Thứ nhất là công cụ.** Nó phải có cái tay để cầm phong bì. Với AI, tay chân là mấy việc kiểu mở thư mục ra xem có tệp gì, đọc nội dung một tệp, ghi một tệp mới. Anh nhấn mạnh chỗ này vì nó hay bị hiểu nhầm: tự thân con model không làm được mấy việc đó đâu. Không phải vì nó yếu. Con model, kể cả con to nhất thế giới, chỉ biết đúng một việc: sinh ra chữ tiếp theo. Nó không có tay, không có mắt, không đụng được vào ổ cứng. Cho nên khi nghe ai nói AI làm được việc này việc kia, thì luôn có một phần mềm khác đứng bên cạnh, nhận chữ mà model sinh ra rồi đi làm hộ. Model nói "tao muốn đọc tệp này", phần mềm kia đi đọc thật, rồi đưa nội dung ngược lại cho model. Phần mềm đứng ở giữa đó chính là tay chân.

**Thứ hai là quyền.** Bạn đưa cho nó cái phong bì, chứ không đưa cho nó chìa khoá nhà. Với AI, đây là chỗ bạn phải nói rõ nó được đụng vào thư mục nào. Ban đầu thì đúng một thư mục, không phải cả ổ đĩa. Và đây không phải lời nói suông: lát nữa anh sẽ cố tình bảo nó đụng vào một chỗ khác để người xem thấy nó bị chặn thế nào.

**Thứ ba**, thứ mà người ta hay quên mất khi kể về agent, **là nút cho phép.** Trước mỗi việc nó định làm, máy dừng lại hỏi bạn một câu. Bạn đọc, bạn đồng ý thì nó mới làm; quyền quyết định vẫn nằm ở phía bạn.

Khung xương của cả tập: công cụ, quyền và nút cho phép.

Công cụ, quyền và nút cho phép: thiếu một trong 3 thứ đó thì không phải là agent, chỉ là một con chatbot nói hay. Tin vui là cả 3 thứ đều có sẵn trong LM Studio mà người xem đã cài rồi.

## 6. MCP: một quy ước chung về cách cắm

Bộ tay chân vừa nói muốn lắp vào thì phải có ổ cắm, và ổ cắm đó tên là MCP. Thực ra rất đơn giản: MCP là một quy ước chung về cách cắm. Giống như cổng USB: nhà sản xuất chuột không cần biết bạn dùng laptop hãng nào, cứ làm đúng chuẩn USB là cắm vào máy nào cũng chạy. MCP đúng như vậy, nhưng dành cho AI: ai đó viết ra một bộ tay chân theo chuẩn này thì bất kỳ phần mềm AI nào hiểu chuẩn đó đều dùng được.

![Slide MCP là gì: một quy ước chung về cách cắm](https://homus.dev/photos/by4J_XyQ9_Q-0643.jpg)

Slide "MCP là gì": giống cổng USB, cứ làm đúng chuẩn là cắm vào máy nào cũng chạy; MCP đúng như vậy nhưng dành cho AI, và phần mềm AI nào hiểu chuẩn đều dùng được bộ tay chân viết theo chuẩn này.

Người ta gọi mỗi bộ tay chân như vậy là một MCP server. Chữ "server" nghe hơi sợ, nhưng đừng tưởng tượng ra một máy chủ nào cả: nó chỉ là một phần mềm nhỏ chạy ngay trên máy bạn, nằm im chờ việc. Có rất nhiều bộ, mỗi bộ một việc: bộ cho AI đọc và ghi tệp, bộ cho AI tra cứu trên web, bộ nối vào phần mềm quản lý công việc, vào cơ sở dữ liệu, vào đủ thứ. Và vì đây là chuẩn mở, ai cũng viết được, nên số lượng những bộ như vậy đang tăng lên rất nhanh. Đó vừa là tin mừng, vừa là chỗ phải cẩn thận, và chính LM Studio sẽ cảnh báo người xem ở phần sau.

Ở tập này anh chỉ cắm đúng một bộ: bộ đọc và ghi tệp, vì 3 lý do. Nó dễ hình dung nhất. Nó là bộ chính thức của chuẩn MCP, chứ không phải đồ trôi nổi. Và nó giải quyết đúng việc anh than thở ở đầu video.

Có một chỗ anh phải nói thật. Bộ tay chân đó là một phần mềm nhỏ, lần đầu bật lên thì máy phải tải nó về; trên máy anh đo được 11 giây. Nghĩa là riêng lần đầu tiên ấy bạn cần có mạng. Nhưng chỉ lần đầu thôi: tải xong là nó nằm trong máy, giống như cài xong một phần mềm, từ đó trở đi rút mạng ra nó vẫn chạy. Còn phần AI, phần suy nghĩ và viết chữ, từ đầu đến cuối vẫn chạy trên máy bạn, không đi đâu cả. Anh nói kỹ chỗ này vì khoá học đã hứa là chạy trên máy; tuy nhiên vẫn có những chỗ cần tải về một số công cụ như thế này.

## 7. Bắt tay cắm: các bước đầu trong LM Studio

Giờ làm thật. Anh đi chậm ở phần này, vì đây là chỗ người ta hay bỏ cuộc nhất.

**Bước 1:** mở LM Studio, vào cửa sổ chat như bình thường, nhìn xuống ô nhập tin nhắn. Bên phải, cạnh nút gửi, có một biểu tượng hình cái búa. Bấm vào đó, một bảng tên là **Integrations** hiện ra. Trong này đang có sẵn 2 mục của phần mềm: một mục tên `rag-v1`, chính là thứ lo việc đọc tài liệu đính kèm mà tập 4 đã dùng cả tập; mục còn lại là `js-code-sandbox`, tập này không đụng tới.

**Bước 2:** ở góc trên bên phải bảng đó có dấu cộng. Bấm vào, nó hiện ra chữ MCP, bên dưới là `Edit mcp.json`. Bấm tiếp, và ngay lúc đó phần mềm bật ra một bảng cảnh báo.

![Hộp cảnh báo của LM Studio về MCP khi mở tệp mcp.json](https://homus.dev/photos/by4J_XyQ9_Q-0903.jpg)

Bảng cảnh báo hiện ra khi mở `mcp.json`: "Be mindful: MCPs are useful, but they can be dangerous", kèm dòng "MCP servers can run arbitrary code on your computer", "You should never add MCP servers from an untrusted source" và "Only use MCP servers from developers you trust". Phía sau là tệp cấu hình còn trống, chỉ có khung `"mcpServers": {}`.

Anh muốn người xem dừng lại đọc chứ đừng bấm cho xong. Nó ghi: MCP rất hữu ích nhưng có thể nguy hiểm; một MCP server có thể chạy mã bất kỳ trên máy của bạn; đừng bao giờ thêm MCP server từ nguồn không đáng tin; chỉ dùng MCP server của những người làm phần mềm mà bạn tin. Đây là chính phần mềm nói ra, không phải anh doạ. Và nó nói rất đúng, vì bạn sắp cho một phần mềm lạ quyền đọc ghi tệp trên máy tính của mình. Còn bộ anh dùng hôm nay là bộ chính thức của chuẩn MCP, không phải đồ trôi nổi. Đọc xong thì bấm **Got It**.

**Bước 3:** một tệp cấu hình mở ra. Ban đầu nó rỗng, chỉ có mỗi khung `mcpServers` với hai dấu ngoặc nhọn.

## 8. Tệp cấu hình bốn dòng, cái bẫy, và 14 công cụ

Anh gõ vào tệp đúng một đoạn, để nguyên văn trên hình cho người xem chép theo. Chỉ có 4 dòng:

- Dòng đầu là cái tên bạn tự đặt cho bộ tay chân này. Anh đặt là `tep-hoc-tap`.

- Dòng `command` ghi là `npx`.

- Dòng `args` gồm 3 thứ, trong đó thứ quan trọng nhất nằm ở cuối: đường dẫn tới thư mục bạn cho phép. Của anh là thư mục `C:\hoc-tap`.

Chỗ duy nhất người xem phải sửa là đường dẫn cuối cùng đó, và nhớ giữ nguyên kiểu 2 dấu gạch chéo ngược, đừng bớt đi cái nào. Anh bảo nhìn kỹ dòng đó thêm lần nữa: bạn đang viết ra câu "mày chỉ được đụng vào đúng chỗ này". Không dòng nào khác trong tệp cấu hình quan trọng bằng dòng đó.

Để tham khảo, README của bộ filesystem chính thức trong repo MCP servers đưa mẫu cấu hình sau (đường dẫn trong mẫu là đường dẫn ví dụ của tài liệu, không phải của Thanh; bản của anh có tên `tep-hoc-tap` và một đường dẫn duy nhất là thư mục học tập):

```
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop",
"/path/to/other/allowed/dir"
]
}
}
}
```

**Bước 4:** bấm Ctrl+S để lưu. Nhìn xuống chân cửa sổ có ghi sẵn một câu: "Saving this file will reload your MCP servers", nghĩa là lưu xong nó sẽ tự khởi động bộ tay chân kia.

Anh nói luôn một cái bẫy ở đây để người xem khỏi mất một buổi tối như anh: đừng sửa tệp cấu hình này bằng phần mềm khác ở bên ngoài. Anh đã thử, và LM Studio không nạp; tệ hơn nữa là nó không báo lỗi gì cả, giao diện vẫn trơ ra như không có chuyện gì. Cứ sửa ngay trong app như hướng dẫn rồi Ctrl+S thì chắc chắn hơn.

**Bước 5:** quay lại bảng Integrations. Bây giờ có thêm một dòng mới tên `mcp/tep-hoc-tap`, và công tắc bên phải của nó đang tắt. Đây là chỗ nhiều người tưởng mình làm sai rồi bỏ cuộc, nhưng không phải: thêm vào là một chuyện, bật lên là chuyện khác. Bật cho nó xanh lên. Bật xong nhìn xuống ô nhập tin nhắn: vừa mọc thêm một huy hiệu nhỏ ghi `tep-hoc-tap`, nằm cạnh mấy huy hiệu quen thuộc. Đó là dấu hiệu cho bạn biết cuộc trò chuyện này đã có tay chân.

![Bảng Integrations trong LM Studio với dòng mcp/tep-hoc-tap đã bật](https://homus.dev/photos/by4J_XyQ9_Q-1103.jpg)

Bảng Integrations sau khi lưu: dưới `js-code-sandbox` và `rag-v1` có thêm `mcp/tep-hoc-tap` với công tắc vừa bật; ô nhập tin nhắn hiện huy hiệu `tep-hoc-tap` cạnh Think và Vision.

Bộ tay chân đó mang vào 14 công cụ. Anh đọc vài cái cho dễ hình dung: đọc một tệp, đọc nhiều tệp một lúc, ghi một tệp, sửa một tệp, tạo thư mục, liệt kê thư mục, tìm tệp theo tên, đổi tên và di chuyển tệp. Có một cái rất hay tên là `list_allowed_directories`, dịch ra là "liệt kê những thư mục tao được phép đụng vào". Cái này lát nữa sẽ dùng tới.

![Slide liệt kê 14 công cụ của secure-filesystem-server 0.2.0](https://homus.dev/photos/by4J_XyQ9_Q-1123.jpg)

Bộ này tự giới thiệu là `secure-filesystem-server 0.2.0`. Slide chia 14 công cụ thành bốn nhóm: đọc (`read_file`, `read_text_file`, `read_media_file`, `read_multiple_files`), ghi (`write_file`, `edit_file`, `create_directory`), xem (`list_directory`, `list_directory_with_sizes`, `directory_tree`) và khác (`move_file`, `search_files`, `get_file_info`, `list_allowed_directories`). Dòng chú thích nhỏ ghi rằng LM Studio 0.4.18 không hiện danh sách này.

## 9. Việc nhỏ đầu tiên và hộp xin phép ba nút

Trước khi giao việc lớn, anh làm một việc bé tí để người xem quen nhịp. Anh gõ yêu cầu đọc tệp ghi chép buổi 1 trong thư mục đó, rồi ghi ra một tệp mới tên tóm tắt ghi chép buổi 1, nội dung là 5 gạch đầu dòng. Câu trên màn hình:

```
Đọc giúp tôi tệp ghi-chep-buoi-1-rui-ro-va-bat-dinh.md trong thư mục C:\hoc-tap, rồi ghi ra một tệp mới tên tom-tat-ghi-chep-buoi-1.md trong cùng thư mục, nội dung là 5 gạch đầu dòng bằng tiếng Việt.
```

Gửi đi, và nhìn những gì hiện ra. Đầu tiên nó nghĩ: trên hình ghi rõ nó đã nghĩ mấy giây, vì con model này là con biết nghĩ trước khi trả lời, đúng như tập 3 đã kể. Rồi tới dòng quan trọng nhất của cả tập: "Model wants to call" kèm tên một công cụ, dịch ra là model muốn gọi công cụ này. Bên cạnh có cái nhãn ghi rõ công cụ đó đến từ đâu, và ở đây là từ chính bộ `tep-hoc-tap` vừa cắm.

Bên dưới có 3 nút: **Proceed** là cho phép, **Deny** là từ chối, và **Deny with Reason** là từ chối kèm giải thích cho nó biết vì sao. Đây chính là nút cho phép đã nói ở phần trước: nó không phải lý thuyết, nó là một nút thật hiện ra trước mỗi lượt, và nếu bạn không bấm thì không có gì xảy ra hết.

Anh thử bấm Deny trước cho người xem thấy. Từ chối là nó dừng luôn, không làm gì hết và quay ra nói lại với mình. Nghĩa là cái nút này dùng được thật chứ không phải để trang trí. Còn nút thứ 3, Deny with Reason, hay ở chỗ bạn từ chối kèm một câu giải thích, kiểu "đừng đụng vào tệp đó, làm tệp kia đi". Nó sẽ đọc câu đó và đổi hướng, bạn không cần nói lại từ đầu.

Rồi anh bảo nó làm lại (trên màn hình, tin tiếp theo của anh là "Rồi, lần này cho phép nhé. Làm lại giúp tôi việc vừa rồi.") và lần này bấm Proceed. Nó chạy công cụ, lấy kết quả về, nghĩ tiếp, rồi xin gọi công cụ tiếp theo. Lại hiện hộp này, lại bấm.

![Cuộc trò chuyện trong LM Studio với các lượt gọi list_allowed_directories, read_text_file và write_file](https://homus.dev/photos/by4J_XyQ9_Q-1303.jpg)

Việc nhỏ đầu tiên đang chạy: model nghĩ 6,59 giây, gọi `list_allowed_directories`, nghĩ một chút, gọi `read_text_file`, nghĩ 5,69 giây rồi chuẩn bị gọi `write_file` ("Model is thinking about calling write_file... The model is generating a tool request..."). Mỗi dòng có nhãn `mcp/tep-hoc-tap` ở bên phải.

Ở lượt ghi tệp, để ý là nó còn cho bạn xem trước. Trên hình hiện dòng chữ model đang chuẩn bị gọi công cụ ghi tệp, rồi bên dưới chạy dần ra nội dung sắp ghi. Bạn đọc được nội dung đó trước khi nó chạm vào ổ cứng. Theo anh, cái này quan trọng hơn bạn tưởng: bạn không phải tin nó mù quáng, nó định ghi gì thì nó bày ra ngay trước mặt bạn.

## 10. Vòng lặp bốn nhịp: đó là toàn bộ agent

Để ý cái nhịp này: nghĩ, xin phép, làm, lấy kết quả, rồi nghĩ tiếp. Nó cứ lặp lại như thế cho tới khi xong việc. Đó là toàn bộ cái gọi là agent. Thật đấy, anh nói, nó chỉ có thế. Người ta nói về agent nghe phức tạp tới đâu, bóc ra cũng chỉ là vòng lặp 4 nhịp này. Chỉ khác ở chỗ nó được cắm bao nhiêu bộ tay chân, và người ta cho nó lặp bao nhiêu vòng.

Nghĩ, xin phép, làm, lấy kết quả rồi nghĩ tiếp: theo Thanh, mọi agent bóc ra đều là vòng lặp này; chỉ khác số bộ tay chân được cắm và số vòng được phép lặp.

Xong việc nhỏ, anh mở thư mục ra: có một tệp mới tên đúng như đã dặn. Mở ra đọc thì thấy 5 gạch đầu dòng, tiếng Việt, đúng nội dung tệp gốc. Đến đây người xem đã có agent rồi; việc còn lại chỉ là giao việc lớn hơn.

## 11. Một câu lệnh tốt có bốn phần

Giờ tới việc thật: cả thư mục. Anh mở một cuộc trò chuyện mới cho sạch, rồi gõ vào đúng một câu lệnh, để nguyên văn trên hình cho người xem chép được:

```
Trong thư mục C:\hoc-tap có mấy tệp ghi chép. Hãy liệt kê các tệp, đọc từng tệp, và với mỗi tệp hãy ghi ra một tệp mới tên là tom-tat- trong cùng thư mục đó, nội dung là 5 gạch đầu dòng tóm tắt tệp gốc bằng tiếng Việt. Làm hết tất cả các tệp, xong thì báo cáo lại đã tạo những tệp nào.
```

Câu lệnh này gồm 4 phần, và anh tách ra vì đây mới là kỹ năng chính của tập, chứ không phải mấy thao tác bấm nút:

- **Làm ở đâu:** ghi rõ tên thư mục.

- **Làm những bước gì, kể theo đúng thứ tự:** liệt kê trước, đọc sau, ghi sau cùng. Bạn kể thứ tự ra thì nó sẽ đi theo đúng thứ tự đó.

- **Kết quả ra hình dạng nào:** tên tệp đặt theo mẫu nào, lưu vào đâu, nội dung mấy ý, tiếng gì. Bỏ qua phần này thì nó sẽ tự bịa ra một kiểu, và 10 tệp sẽ ra 10 kiểu khác nhau.

- **Xong thì báo lại đã làm những gì.** Nghe thì thừa nhưng không hề thừa: có câu này thì cuối chuỗi bạn có một danh sách để đối chiếu, khỏi phải ngồi đếm lại.

So với một câu lệnh dở thì thấy ngay sự khác biệt. Kiểu "Tóm tắt giúp tôi mấy tệp trong thư mục này": thiếu thư mục nào, thiếu ghi ra đâu, thiếu dài bao nhiêu. Nó sẽ tóm tắt rồi in ra màn hình, và bạn lại ngồi chép tay như cũ. Bạn càng mô tả rõ 4 phần đó thì nó càng ít phải đoán mò.

![Câu lệnh bốn phần đã gửi và hộp xin phép cho lượt list_directory](https://homus.dev/photos/by4J_XyQ9_Q-1523.jpg)

Câu lệnh bốn phần đã gửi. Model nghĩ 3,98 giây rồi xin gọi `list_directory` với đối số `"path": "C:\\hoc-tap"` (có nút Edit để sửa đối số). Bên dưới là ba nút Proceed (Ctrl+Enter), Deny (Ctrl+Esc), Deny with Reason, cùng hai ô tích "Always allow list_directory from mcp/tep-hoc-tap" và "Always allow any tool from mcp/tep-hoc-tap".

## 12. Chạy thật cả thư mục: 9 lượt trong khoảng một phút

Gửi đi, và lần này anh để nó chạy. Nó nghĩ 3 giây rồi gọi công cụ hỏi xem mình được cấp thư mục nào. Cẩn thận chưa: nó tự đi kiểm tra ranh giới trước khi làm. Rồi nó liệt kê thư mục, 6 tệp hiện ra đủ tên.

Tiếp theo nó gọi một công cụ tên `read_multiple_files`, đọc cả 6 tệp trong đúng một lượt. Cái này anh không dặn, nó tự chọn cách gọn hơn. Và đây là chỗ máy im lâu nhất: nó nghĩ tới 26 giây, lúc nó đang đọc 6 tệp và sắp xếp lại trong đầu.

Rồi nó viết tệp 1, tệp 2, tệp 3. Nhìn bên phải mỗi dòng đều có nhãn `tep-hoc-tap`, nghĩa là mỗi lần ghi tệp nó đều đi qua đúng bộ tay chân bạn đã cắm, không có đường nào khác. Đủ 6 tệp, nó viết một bản báo cáo liệt kê đủ 6 tệp đã tạo, kèm thêm một dòng mô tả. Tổng cộng mất khoảng 1 phút, 9 lượt gọi công cụ.

Chuỗi chạy thật trên cả thư mục, theo thứ tự Thanh kể: 1 + 1 + 1 + 6 = 9 lượt gọi công cụ, rồi một bản báo cáo.

## 13. Kiểm: mở tệp gốc ra đối chiếu

Giờ tới phần anh muốn người xem nhớ nhất của cả tập: kiểm. Anh mở bản tóm tắt của bài tỷ lệ diện tích và thể tích, rồi mở tệp gốc bên cạnh để đối chiếu. Công thức 6 chia cạnh: đúng. Ví dụ cạnh 4 ra 1,5: đúng. Cạnh 2 ra 3: đúng. Cả ý vì sao tế bào phải phân chia cũng đúng.

![Tệp tóm tắt Tỷ lệ diện tích - thể tích trong sinh học với năm gạch đầu dòng](https://homus.dev/photos/by4J_XyQ9_Q-1603.jpg)

Bản tóm tắt agent viết ra, mở cạnh tệp gốc ở tab bên trái. Năm ý: tế bào trao đổi chất qua màng nhưng tỷ lệ diện tích trên thể tích giảm khi tế bào lớn lên; khối lập phương cạnh 4 có tỷ lệ 1,5, thấp hơn khối cạnh 2 (tỷ lệ 3); thể tích tăng nhanh hơn diện tích; tế bào phân chia thay vì lớn mãi để giữ tỷ lệ ổn định; nhiều tế bào có hình dẹt hoặc nếp gấp để tăng diện tích bề mặt.

Nhưng anh đã chạy việc này nhiều lần, và phải nói thật một chuyện. Có một lần chạy khác, cũng câu lệnh y hệt, bản tóm tắt của tệp bảo hiểm ra 4 gạch đầu dòng chứ không phải 5 như đã dặn. Và nó bỏ mất đúng ví dụ về bạn Chi phải tự trả 28 triệu, ví dụ mà tập 4 đã dùng cả tập để nói về nó. Cùng một câu lệnh, 2 lần chạy, 2 chất lượng khác nhau.

Cho nên thói quen anh dặn ở tập 4 giờ vẫn y nguyên: mở tệp gốc ra để đối chiếu. Nó có thể làm nhanh cho bạn 9 phần, nhưng phần kiểm vẫn phải là của bạn.

## 14. Số đo thật của cả tập

Rồi tới số đo trên chính chiếc máy này. Anh đã chạy 3 lần và đưa cả 3 kết quả lên: lần 1 mất 65 giây, lần 2 62 giây, lần 3 69 giây. Cả 3 lần đều ra đủ 6 tệp, cả 3 lần đều dùng đúng 9 lượt gọi công cụ, và không lượt nào hỏng. Nghĩa là chuỗi này ổn định, không phải ăn may.

![Bảng số đo ba lần chạy: 65, 62 và 69 giây, mỗi lần 9 lượt gọi công cụ](https://homus.dev/photos/by4J_XyQ9_Q-1703.jpg)

Bảng "Cùng một câu lệnh, cùng sáu tệp": 65, 62 và 69 giây, lần nào cũng đủ 6 tệp, 9 lượt gọi công cụ, 0 lượt hỏng. Chú thích dưới bảng: đo trên ASUS TUF Gaming A14, AMD Ryzen AI Max+ 392, Dedicated Graphics Memory 16 GB mặc định nhà máy, LM Studio 0.4.18, model Qwen3.6 35B A3B, context 32.768, thư mục 6 tệp ghi chép, 3 lần chạy ngày 18/09/2026.

Nhưng anh cũng nói để người xem đỡ đánh giá nó cao quá: việc này ngắn và rõ ràng nên nó mới ổn định như vậy. Việc càng dài, càng nhiều nhánh thì càng dễ bị làm sai. Đừng nghe ví dụ một phút này rồi đi giao cho nó cả một cái luận văn.

Tiếp theo là mấy con số anh thấy đáng nhắc nhất. Trong khoảng một phút đó, máy làm việc thật khoảng 84 giây (con số trên màn hình cũng là "khoảng 84 giây"), chia cho 5 lượt hỏi model. Lượt lâu nhất là lượt nó vừa đọc xong 6 tệp: nghĩ liền 26 giây trước khi viết chữ đầu tiên. Anh nhắc lại chỗ này vì lúc quay anh cũng hơi thắc mắc: máy nằm im, không thấy nhúc nhích gì cả, nhưng thực ra nó đang nghĩ. Máy nằm im không có nghĩa là treo. Tập 3 đã chỉ cái nhãn trên tên model: con này là con biết nghĩ.

Tốc độ sinh chữ suốt cả chuỗi giữ khoảng 60 chữ mỗi giây, từ lượt đầu tới lượt cuối gần như không đổi, tức là máy không đuối dần khi hội thoại dài ra. Bộ nhớ dùng cao nhất là 30,2 GB trên tổng số 64 GB; con model chiếm 22 GB trong số đó và nằm im suốt cả chuỗi, không nạp ra nạp vào lần nào.

Và đây là con số của cả tập. Ở lượt hỏi model đầu tiên, cuộc trò chuyện nặng khoảng 2.100 token. Tới lượt cuối cùng, nó thành khoảng 9.100 token, to lên hơn 4 lần, chỉ với 6 tệp ghi chép ngắn.

![Slide hội thoại phình hơn bốn lần: 2.114 token lên 9.107 token](https://homus.dev/photos/by4J_XyQ9_Q-1823.jpg)

"Con số của cả tập": lượt hỏi model đầu tiên 2.114 token, lượt cuối 9.107 token, chỉ với 6 tệp ghi chép ngắn; lý do là mỗi lần gọi công cụ xong, kết quả lại nhồi ngược vào hội thoại.

Vì sao? Vì mỗi lần gọi công cụ, kết quả lại được nhồi ngược vào cuộc hội thoại: danh sách thư mục, nội dung 6 tệp, báo cáo từng lượt ghi. Càng làm nhiều bước thì hội thoại càng nặng. Anh nhắc lại ô context length ở tập 4: đây chính là chỗ nó quay lại. Agent ăn context, và ăn rất khoẻ. Thư mục cứ to hơn, việc cứ dài hơn là bạn sẽ đụng trần ngay. Đó cũng là lý do anh nói ở đầu bài: cái máy này thắng ở chỗ nó có chỗ chứa, chứ không phải ở tốc độ thô. Với agent, chỗ chứa mới là thứ quyết định bạn làm được việc to cỡ nào.

## 15. Bốn thói quen để không tự bắn vào chân

Phần này chỉ 2 phút, nhưng anh khuyên nghe hết, vì nó giữ cho bạn không mất dữ liệu. Nhớ 3 thứ ở phần trước: công cụ, quyền và nút cho phép. Cả 3 đều có chỗ để siết lại.

**Thói quen thứ nhất: cấp đúng một thư mục.** Dòng đường dẫn trong tệp cấu hình không phải là thủ tục, và anh thử luôn cho người xem thấy. Anh bảo nó đọc một tệp nằm trong Documents, ngoài thư mục đã cấp. Nó trả về nguyên văn là từ chối truy cập, đường dẫn nằm ngoài các thư mục được phép, rồi ghi rõ đường dẫn nào và nó không nằm trong thư mục nào. Anh bảo nó ghi một tệp ra Desktop, nó cũng từ chối như vậy. Anh bảo nó liệt kê cả ổ C, nó cũng từ chối. Bức tường đó là thật.

![Model xin gọi read_text_file cho một tệp trong thư mục Documents, ngoài thư mục được cấp](https://homus.dev/photos/by4J_XyQ9_Q-1903.jpg)

Thử bức tường: yêu cầu đọc một tệp tên `tai-lieu-rieng.txt` trong thư mục Documents. Model vẫn xin gọi `read_text_file` với đường dẫn đó; theo Thanh, khi chạy thì công cụ trả về lời từ chối vì đường dẫn nằm ngoài các thư mục được phép.

Nhưng bức tường chỉ cao đúng bằng dòng bạn gõ trong cấu hình. Nếu bạn gõ cả ổ C vào đó thì bức tường biến mất. Cho nên khi mới học, hãy tạo hẳn một thư mục riêng để tập, chứ đừng trỏ thẳng nó vào cả ổ.

**Thói quen thứ hai: đọc hộp xin phép trước khi bấm**, nhất là những lượt có chữ `write`, tức là ghi, và chữ `move`, tức là di chuyển. Mấy lượt đọc thì hiền, còn mấy lượt ghi mới là thứ làm thay đổi máy của bạn.

**Thói quen thứ ba**, chỗ anh suýt mắc phải. Trong hộp xin phép, bên dưới 3 nút có 2 ô tích: một ô là luôn cho phép đúng công cụ này, một ô là luôn cho phép mọi công cụ từ bộ này. Đọc qua thì tiện: tích một cái là khỏi phải bấm nữa. Nhưng anh đã tích thử và đi xem nó ghi gì. Nó ghi thẳng một dòng luật vào phần cài đặt của phần mềm, và luật đó là luật toàn cục: không phải cho cuộc trò chuyện này, mà cho mọi cuộc trò chuyện sau này, cho tới khi bạn vào tận trong cài đặt để xoá nó đi. Nghĩa là nếu tháng sau bạn mở một cuộc trò chuyện mới, quên béng chuyện hôm nay, thì nó vẫn im lặng làm mà không hỏi bạn câu nào. Anh khuyên mới học thì đừng tích; chịu khó bấm thêm mấy lần, khi nào quen tay quen việc, biết chắc mình cấp cái gì cho ai rồi thì hãy tích.

**Thói quen thứ tư**, ngắn thôi: trước khi cho agent ghi đè lên tài liệu thật, hãy chép ra một bản sao. Mỗi lần chỉ một Ctrl+C, Ctrl+V thôi.

Câu chốt của phần này anh nhờ người xem nhớ: agent làm nhanh, cho nên nó làm sai cũng nhanh, và làm sai hàng loạt. Người ngồi trước máy vẫn là bạn.

## 16. Tài liệu có đi đâu không?

Còn một câu chắc chắn người xem đang muốn hỏi: nãy giờ nó đọc hết tài liệu của mình, vậy tài liệu có đi đâu không? Câu trả lời là không. Anh tắt wifi rồi giao lại một việc nhỏ: đọc một tệp, ghi lại một bản tóm tắt. Nó vẫn chạy, tệp mới vẫn ra. Bởi vì bộ tay chân đã tải về từ trước, còn model đã nằm sẵn trong máy từ tập 1, nên lúc này máy không cần mạng để làm gì cả.

Và để ý một chuyện: bộ tay chân này đọc ghi tệp ngay trên ổ cứng của bạn, không gửi đi đâu để nhờ xử lý hộ. Model cũng nằm trên máy. Cả hai đầu đều ở trong nhà mình, nên ở giữa không có đường nào dẫn ra ngoài.

"Cả hai đầu đều ở trong nhà": model và bộ đọc ghi tệp cùng nằm trên ổ cứng, nên tài liệu không rời khỏi thư mục.

Với tài liệu học, chuyện này bình thường không quan trọng lắm. Nhưng thử nghĩ tới lúc thư mục đó chứa giấy tờ cá nhân, bài làm chưa nộp, những thứ bạn không muốn ai đọc: lúc đó chuyện nằm im trên máy mới là chuyện có giá trị. Ghi chép của bạn, bài tập của bạn, tài liệu của bạn nằm trong thư mục đó, và ở lại đó.

## 17. Bốn lỗi hay gặp

Như thường lệ, anh liệt kê mấy lỗi gặp thật khi quay tập này.

**Lỗi thứ nhất, và là lỗi anh mất nhiều thời gian nhất:** sửa tệp cấu hình bằng một công cụ bên ngoài LM Studio. Cú pháp đúng, dấu phẩy đủ, mở ra nhìn thì không sai gì cả. Vậy mà đưa vào thì không có gì xảy ra: bảng Integrations vẫn trống trơn, và quan trọng là không có lỗi nào hiện trên giao diện. Mãi sau anh mới đi tìm nhật ký (log) của phần mềm, và trong đó ghi rõ tệp này không phải JSON hợp lệ. Lý do là công cụ bên ngoài của anh đã lén thêm một ký tự vô hình vào đầu tệp, nhìn bằng mắt thường thì không phát hiện được. Bài học: sửa tệp cấu hình bằng đúng trình soạn bên trong LM Studio rồi Ctrl+S, đừng sửa từ bên ngoài. Và nếu thấy thêm vào mà không có gì xảy ra, thì thường là do tệp cấu hình sai.

**Lỗi thứ hai:** thêm xong rồi, thấy tên nó trong danh sách rồi, mà hỏi thì model vẫn bảo chưa có công cụ nào. Nguyên nhân là công tắc chưa bật; nó luôn mặc định tắt. Cách kiểm nhanh nhất không cần nhìn bảng nào cả: cứ nhìn ô nhập tin nhắn. Có huy hiệu tên bộ tay chân của bạn là nó đã bật, còn không thì chưa.

**Lỗi thứ ba:** làm việc ở một thư mục mà cấu hình lại cấp quyền cho thư mục khác. Khi đó nó sẽ trả về câu từ chối truy cập như anh vừa cho xem ở phần trước. Nghe thì bực, nhưng thực ra là tin tốt: nó chứng minh bức tường vẫn đúng. Muốn biết mình đang cấp thư mục nào cho nó thì cứ hỏi thẳng, kiểu "Liệt kê giúp tôi các thư mục bạn được phép truy cập", nó sẽ trả lời thật ngay.

**Lỗi thứ tư:** chạy một chuỗi trong một cuộc trò chuyện đã dài sẵn thì dễ đứt giữa chừng, vì hội thoại đã phình ra như anh chỉ ở phần bảng số. Mỗi việc nên mở một cuộc trò chuyện mới, vừa nhanh hơn vừa đỡ lẫn.

Có một chỗ trước đó anh tưởng là lỗi, nhưng thử thì không phải; anh vẫn nói để người xem đỡ mất công: gõ đường dẫn bằng dấu gạch chéo xuôi hay ngược thì phần mềm đều tự hiểu, không cần lo chỗ đó.

## 18. Tóm lại, bài tập về nhà và tập 6

Anh tóm tắt lại tập. Agent không có phép màu, nó có đúng 3 thứ. Công cụ là bộ tay chân bạn cắm vào qua ổ cắm tên MCP. Quyền là đúng một dòng đường dẫn bạn gõ trong cấu hình. Nút cho phép chính là cái hộp hiện lên trước mỗi lượt. Người xem đã tự cắm được bộ đọc ghi tệp, đã giao một việc thật và xem nó chạy tròn trịa 9 lượt trong khoảng một phút, và đã biết mở tệp gốc ra đối chiếu, vì nó nhanh nhưng không phải lúc nào cũng đủ.

Bài tập hôm nay mất khoảng 20 phút, gồm 4 bước:

- Tạo một thư mục mới, đặt tên gì cũng được, rồi chép vào đó vài tệp ghi chép của môn bạn đang học. Nhớ sao chép sang, đừng trỏ thẳng vào thư mục gốc.

- Sửa đường dẫn trong cấu hình sang thư mục mới đó, lưu bằng Ctrl+S, bật công tắc, kiểm bằng cách nhìn huy hiệu ở ô nhập tin nhắn.

- Gõ câu lệnh có đủ 4 phần: làm ở đâu, làm những bước gì, kết quả ra định dạng nào, xong thì báo lại. Rồi bấm cho phép từng lượt; đừng tích ô cho phép luôn.

- Bước này mới là bước cần làm thật: mở 2 bản tóm tắt bất kỳ ra, đặt cạnh tệp gốc, dò xem nó có bỏ sót ý nào không. Chỉ cần tìm được một chỗ sót là bạn đã học xong tập này.

Ở tập 5 này người xem mới giao cho nó một việc. Tập 6, tập cuối của khoá, anh sẽ ráp tất cả những gì đã học thành một trợ lý học tập hoàn chỉnh: thả tài liệu vào là nó tóm tắt, nó ra đề cương, nó tự sinh bộ câu hỏi ôn thi, tự lưu thành những tệp ngăn nắp, và chạy trọn trên máy. Anh nhắc ai thấy tập này hữu ích thì follow kênh để không lỡ tập cuối, rồi hẹn gặp lại ở tập sau.

## Nguồn và liên kết

- Tên gốc: Agentic AI là gì? Khi AI tự làm việc trên máy của bạn | Khóa học Local AI ASUS TUF Gaming A14 #5
- Sự kiện: [YouTube](https://homus.dev/events/youtube)
- Video gốc: [https://www.youtube.com/watch?v=by4J_XyQ9_Q](https://www.youtube.com/watch?v=by4J_XyQ9_Q)

- Kênh YouTube Thanh Trần - 5 Phút AI (Thanh Trần): [youtube.com/channel/UCTumIe5W_2OoKUEDAq3xsKQ](https://www.youtube.com/channel/UCTumIe5W_2OoKUEDAq3xsKQ)

- Model Context Protocol, trang giới thiệu chính thức: [modelcontextprotocol.io/docs/getting-started/intro](https://modelcontextprotocol.io/docs/getting-started/intro)

- Bộ filesystem MCP server chính thức (14 công cụ đọc, ghi, liệt kê tệp; mẫu cấu hình với `npx`): [github.com/modelcontextprotocol/servers/tree/main/src/filesystem](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem)

- LM Studio, hướng dẫn dùng MCP và tệp `mcp.json`: [lmstudio.ai/docs/app/mcp](https://lmstudio.ai/docs/app/mcp)

Nguồn: https://homus.dev/talks/agentic-ai-la-gi-khi-ai-tu-lam-viec-tren-may-cua-ban-khoa-hoc-local-ai-asus-tuf-gaming-a14-5 · cập nhật 2026-10-18
