# Skill và agent trong Claude Code: phân biệt, ràng buộc

> Khi bắt đầu dùng Claude Code để hỗ trợ công việc kiểm thử, mình thấy rất nhiều bạn nhầm giữa hai khái niệm skill và agent. Bài này giúp bạn phân biệt skill và agent trong Claude Code, hiểu chúng phối hợp với nhau ra sao và những ràng buộc cần nhớ để không rơi vào cảnh "cấu hình xong mà chạy không như ý". 🙂

- **URL canonical**: https://www.itlearn.vn/blog/skill-va-agent-trong-claude-code
- **Published**: 2026-10-02T21:21:00+07:00
- **Modified**: 2026-10-06T21:11:59+07:00
- **Author**: Anh Tuấn
- **Category**: AI for Tester (https://www.itlearn.vn/blog/cat/ai-for-tester)
- **Reading time**: 11 phút
- **Source site**: IT LEARN — Học viện Software Testing tiếng Việt

---

 

## Skill và agent trong Claude Code là gì?

**Skill là gói hướng dẫn (quy trình, tiêu chuẩn, tài liệu và script) mà Claude nạp vào để làm một loại việc cụ thể; agent (subagent) là một "người làm việc" riêng, có ngữ cảnh, vai trò và quyền dùng công cụ độc lập.** Nói đơn giản: skill trả lời câu hỏi "làm việc này theo cách nào", còn agent trả lời "ai làm và được phép dùng gì".

Ẩn dụ dễ nhớ: skill giống **cuốn quy trình test (test procedure)** của công ty; agent giống **một tester được giao việc**, ngồi ở bàn riêng, làm xong chỉ báo cáo kết quả cuối cho trưởng nhóm.

## So sánh nhanh skill và agent

Tiêu chí

Skill

Agent (subagent)

Bản chất

Một thư mục gồm file hướng dẫn chính SKILL.md, kèm tài liệu tham chiếu và script nếu cần

Một file mô tả vai trò, phần đầu khai báo tên và quyền, phần thân là lời dặn (system prompt)

Nơi lưu

Thư mục skills trong dự án hoặc trong thư mục cá nhân của Claude

Thư mục agents trong dự án hoặc trong thư mục cá nhân của Claude

Chạy ở đâu

Ngay trong cuộc hội thoại hiện tại

Trong một ngữ cảnh riêng, tách biệt với cuộc hội thoại chính

Cách kích hoạt

Claude tự chọn dựa vào phần mô tả, hoặc bạn gọi bằng lệnh có dấu gạch chéo

Claude tự giao việc dựa vào phần mô tả, hoặc bạn gọi đích danh

Kết quả trả về

Hướng dẫn được nạp vào để Claude làm theo

Chỉ **một bản báo cáo cuối** gửi lại cho bên gọi

Kiểm soát quyền

Có thể khai báo các công cụ được dùng khi skill hoạt động

Khai báo danh sách công cụ được phép, có thể chọn model riêng

Nên dùng khi

Muốn tái sử dụng một quy trình hoặc chuẩn làm việc

Muốn tách việc dài, nhiều bước, hoặc cần giới hạn quyền

## Cấu trúc một skill chuẩn

Mỗi skill là một thư mục, trong đó bắt buộc có file hướng dẫn chính tên **SKILL.md**. Phần đầu file khai báo hai thông tin quan trọng:

- **Tên skill:** viết thường, nối bằng dấu gạch ngang, ví dụ itlearn-publish.

- **Mô tả:** nêu rõ skill làm gì và khi nào nên dùng. Đây là phần quan trọng nhất, vì Claude dựa vào mô tả để quyết định có kích hoạt skill hay không.

Phần còn lại của file là hướng dẫn chi tiết từng bước. Nếu nội dung dài, bạn tách ra các thư mục phụ: tài liệu tham chiếu, mẫu (template) và script tự động.

Skill hoạt động theo nguyên tắc **tiết lộ dần (progressive disclosure)**:

- **Luôn nạp:** chỉ tên và mô tả của skill, rất nhẹ.

- **Khi được kích hoạt:** mới nạp toàn bộ hướng dẫn trong SKILL.md.

- **Khi thật sự cần:** mới đọc tài liệu tham chiếu hoặc chạy script đi kèm.

Nhờ vậy bạn có thể cài nhiều skill mà không làm đầy ngữ cảnh. Mẹo: viết mô tả kèm những cụm từ người dùng hay nói (ví dụ "đăng bài lên blog", "tạo bản nháp") và giữ file chính gọn gàng.

## Cấu trúc một agent chuẩn

Agent cũng là một file văn bản, gồm hai phần:

- **Phần khai báo:** tên agent, mô tả (quyết định khi nào Claude giao việc cho agent), danh sách công cụ được phép dùng và model sẽ chạy. Nếu không khai báo danh sách công cụ, agent mặc định được dùng toàn bộ công cụ của bên gọi.

- **Phần lời dặn (system prompt):** mô tả vai trò, quy trình từng bước, những việc tuyệt đối không được làm và định dạng báo cáo trả về.

Ngoài ra còn một số tùy chọn nâng cao như gắn sẵn skill cho agent hay đặt chế độ xin quyền. Tên và độ sẵn có của các tùy chọn này thay đổi theo phiên bản Claude Code, bạn nên đối chiếu tài liệu chính thức trước khi dùng.

Điểm khác biệt lớn nhất: agent chạy trong **ngữ cảnh riêng**. Mọi bước tìm kiếm, đọc file, thử sai đều diễn ra bên trong agent; cuộc hội thoại chính chỉ nhận về bản báo cáo gọn gàng.

## Ràng buộc giữa skill và agent

Đây là phần dễ sai nhất. Bạn hãy nhớ các ràng buộc sau:

#

Ràng buộc

Hệ quả thực tế

1

Agent **không tự thừa hưởng skill** của cuộc hội thoại chính

Phải cấp rõ cho agent: gắn sẵn skill hoặc cho phép agent dùng công cụ gọi skill

2

Agent bị giới hạn bởi danh sách công cụ được cấp

Skill hướng dẫn ghi file hay chạy script, nhưng agent không có quyền ghi file hay chạy lệnh thì vẫn không làm được

3

Skill chỉ là **hướng dẫn**, không phải quyền

Skill không tự mở thêm quyền ngoài những gì môi trường và agent cho phép

4

Agent **không gọi được agent khác**

Muốn chạy chuỗi nhiều agent, việc điều phối phải nằm ở cuộc hội thoại chính

5

Agent chỉ trả về **một bản báo cáo cuối**

Cần quy định rõ định dạng báo cáo trong lời dặn, nếu không bên gọi sẽ thiếu thông tin

6

Agent chạy biệt lập, thường không hỏi lại người dùng

Phải dặn trước cách xử lý điểm chưa rõ, ví dụ "áp dụng giả định hợp lý rồi liệt kê trong báo cáo"

7

Một skill có thể được cấu hình để chạy trong ngữ cảnh tách riêng

Khi đó skill thực chất được thực thi bởi một agent, nên cân nhắc agent nào phù hợp

## Ví dụ thực tế: quy trình viết bài của IT LEARN

Trong dự án nội dung của IT LEARN, mình dùng cả hai với phân vai rõ ràng:

- **Skill viết bài blog:** chứa chuẩn viết bài như giọng văn, định nghĩa trong 40–60 từ đầu, cách viết FAQ, bối cảnh ví dụ.

- **Skill đăng bài:** chứa script chuyển bài viết sang HTML và đăng bản nháp lên website.

- **Agent dựng bài:** nhận một bản brief, lần lượt dùng các skill trên, rồi **dừng ở bước kiểm tra thử** chứ không đăng thật.

Vì sao tách như vậy? Agent được phép dùng skill nhưng **bị cấm đăng bài thật** ngay trong lời dặn; bước đăng do cuộc hội thoại chính thực hiện sau khi người phụ trách duyệt. Skill giữ tri thức dùng lại được, agent giữ phạm vi trách nhiệm và quyền hạn.

## Khi nào chọn skill, khi nào chọn agent?

- Cần **tái sử dụng một quy trình hoặc chuẩn** ở nhiều nơi: viết skill.

- Việc **dài, nhiều bước, sinh nhiều thông tin phụ** mà bạn chỉ cần kết quả: dùng agent.

- Cần **giới hạn quyền** (chỉ đọc, không được đăng bài): dùng agent với danh sách công cụ hẹp.

- Cần **chạy song song** nhiều việc độc lập: dùng nhiều agent cùng lúc.

- Thường thì kết hợp cả hai: **agent là người thực thi, skill là cuốn sổ tay** agent đó tra cứu.

Với tester, đây là tư duy rất quen thuộc: tách "quy trình test" (skill) khỏi "người thực hiện có phân quyền" (agent), giống như tách test case khỏi người chạy test case đó.

## Câu hỏi thường gặp

### Skill trong Claude Code là gì?

Skill là một thư mục chứa file hướng dẫn chính SKILL.md cùng tài liệu và script đi kèm, dạy Claude làm một loại việc theo đúng quy trình. Claude chỉ nạp phần mô tả ban đầu, khi cần mới đọc nội dung chi tiết, nên cài nhiều skill vẫn không tốn nhiều ngữ cảnh.

### Agent (subagent) trong Claude Code là gì?

Agent là một trợ lý chuyên trách được định nghĩa bằng một file văn bản, có lời dặn riêng, danh sách công cụ và model riêng. Agent chạy trong ngữ cảnh biệt lập và chỉ gửi lại báo cáo cuối, giúp cuộc hội thoại chính gọn gàng và dễ kiểm soát quyền hạn.

### Agent có tự dùng được skill không?

Không tự động. Agent không thừa hưởng skill của cuộc hội thoại chính, nên bạn phải cấp rõ bằng cách gắn sẵn skill hoặc cho phép agent dùng công cụ gọi skill. Nếu agent thiếu quyền cần thiết như ghi file hay chạy lệnh, skill vẫn không thực thi được đầy đủ.

### Subagent có gọi được subagent khác không?

Không. Subagent không thể tự sinh thêm subagent khác. Muốn chạy chuỗi nhiều agent, bạn để cuộc hội thoại chính đóng vai người điều phối: gọi agent thứ nhất, nhận báo cáo, rồi mới giao việc cho agent tiếp theo theo đúng thứ tự.

### Nên viết skill hay agent trước?

Hãy viết skill trước nếu bạn có một quy trình lặp lại cần chuẩn hóa. Khi thấy công việc quá dài, nhiều bước hoặc cần giới hạn quyền, hãy bọc thêm một agent sử dụng skill đó. Làm theo thứ tự này giúp tri thức được tái sử dụng thay vì nằm gọn trong một agent. Nếu bạn muốn ứng dụng AI vào công việc tester một cách bài bản, tham khảo [khóa học Software Tester](/newtester.html) của IT LEARN nhé.

