account_tree
Architecture
Architecture22 Feb 20266 min phút đọc

Skills vs Agents vs Commands: Khi nào dùng cái gì?

IS

ISC Team

ISC Vibe Marketplace

Claude Code có một hệ sinh thái extension phong phú: Skills, Subagents, Commands, Hooks, MCP. Nếu bạn mới tiếp cận, rất dễ bị confused về khi nào nên dùng cái nào. Bài viết này sẽ phân tích chi tiết từng loại và đưa ra framework quyết định rõ ràng.

Toàn cảnh Extension Ecosystem

5 loại extension trong Claude Code, mỗi loại phục vụ một mục đích khác nhau:

CLAUDE.md      → Context luôn có mặt (mỗi request)
    ↓
Skills         → Knowledge + workflow có thể gọi khi cần
    ↓
Subagents      → Execution context độc lập, song song
    ↓
Hooks          → Automation xác định (external scripts)
    ↓
MCP            → Kết nối service bên ngoài

1. CLAUDE.md — Context Luôn Có Mặt

File markdown đặc biệt, được load tự động ở đầu mỗi session. Claude sẽ luôn "nhớ" những gì bạn viết trong đây.

Dùng khi: Conventions dự án, rules kiến trúc, constraints bắt buộc.

Không dùng khi: Reference material dài, documentation chi tiết — vì nó tốn context tokens mỗi request.

# My Next.js 15 Project

## Architecture Rules
- App Router only, KHÔNG dùng Pages Router
- Server Components mặc định, chỉ 'use client' khi cần
- Tailwind CSS, không inline styles

## Trước khi commit
1. npm run lint
2. npm test
3. KHÔNG commit file .env

## File quan trọng
- src/lib/stripe.ts — Payment (KHÔNG sửa trực tiếp)
warning

Giữ CLAUDE.md dưới 500 dòng. Nội dung dài → tốn context → tốn tiền. Chuyển reference material sang Skills.

2. Skills — Knowledge Có Thể Gọi Khi Cần

Skills là file markdown chứa knowledge hoặc workflow. Descriptions được load lúc đầu session, nhưng full content chỉ load khi được gọi.

Dùng khi: API documentation, deployment checklist, reusable workflows, coding standards.

# /deploy — Production Deployment Workflow

Skill này xử lý deploy lên production.

## Các bước bắt buộc
1. Kiểm tra tests: npm run test
2. Build: npm run build
3. Lighthouse score > 80: npm run lighthouse
4. Hỏi xác nhận trước khi deploy lên Vercel

## Constraints
- Chỉ deploy từ branch main
- Không deploy nếu test fail

User gõ /deploy → Claude thực hiện đúng workflow đã định nghĩa.

3. Subagents — Workers Độc Lập, Song Song

Subagents là Claude Code sessions riêng biệt với context window độc lập. Chúng làm việc song song và chỉ báo cáo kết quả về cho parent session.

Dùng khi: Task tốn nhiều context, cần parallelization, muốn isolate kết quả.

Main Agent: "Review toàn bộ codebase"
              ↓
    Spawn 3 subagents song song:
    ├─ Security Agent → Scan vulnerabilities
    ├─ Performance Agent → Analyze bottlenecks
    └─ Testing Agent → Check test coverage
              ↓
    Mỗi agent làm việc độc lập
              ↓
    Báo cáo về parent
              ↓
    Parent tổng hợp kết quả

Lợi ích: Không làm đầy context của main session. Mỗi worker có thể có skills chuyên biệt.

4. Hooks — Automation Không Cần LLM

Hooks là shell commands chạy tại các lifecycle events nhất định. Khác với Skills (cần Claude reasoning), Hooks là pure automation — không có LLM tham gia.

EventKhi nàoVí dụ
PreToolUseTrước khi tool chạyBlock lệnh nguy hiểm
PostToolUseSau khi tool chạy thành côngAuto-format, auto-test
StopKhi agent hoàn thànhGửi notification
UserPromptSubmitTrước khi xử lý messageLog, filter input

Dùng khi: Automation xác định, side effects (formatting, testing, git), không cần AI reasoning.

5. MCP — Kết Nối Service Bên Ngoài

Model Context Protocol cho phép Claude kết nối trực tiếp với databases, APIs, GitHub, Slack, và hàng trăm service khác.

# Thêm GitHub MCP
claude mcp add --transport http github https://api.githubcopilot.com/mcp/

# Giờ Claude có thể:
# - Review PRs
# - Tạo issues
# - Query open PRs
# - Suggest code improvements với GitHub context

Framework Quyết Định: Dùng Cái Gì?

Bạn cần...DùngLý do
Nhắc nhở chạy tests mỗi lầnCLAUDE.mdPersistent, mọi session
Deployment checklist có thể gọiSkillOn-demand, reusable
Review code security độc lậpSubagentIsolation, không tốn context chính
Auto-format sau khi editHookDeterministic, không cần AI
Query database productionMCPReal-time external data

Setup Tối Ưu: Kết Hợp Tất Cả

Một setup trưởng thành kết hợp cả 5 loại:

CLAUDE.md (Next.js + TypeScript conventions)
    ↓
Skills (/deploy, /review, /debug, API style guide)
    ↓
Subagents (security audit, perf review — tốn context)
    ↓
Hooks (auto-format, auto-lint, git notifications)
    ↓
MCP (GitHub cho PRs, Postgres cho schema queries)
lightbulb

Bắt đầu với CLAUDE.md và 2-3 Skills cơ bản. Thêm Hooks khi bạn thấy mình làm một thao tác lặp đi lặp lại. Thêm MCP khi cần real-time data. Subagents cho tasks phức tạp.

Kết Luận

Không có "loại extension tốt nhất" — mỗi loại giải quyết một vấn đề khác nhau. Key insight là: CLAUDE.md cho context, Skills cho knowledge, Subagents cho isolation, Hooks cho automation, MCP cho integration. Hiểu rõ ranh giới này sẽ giúp bạn build một development environment thực sự powerful.