Claude Code - Nền tảng Agentic Coding từ Anthropic: Kiến trúc, Sub-Agents và Hệ sinh thái
Posted on: 4/14/2026 7:31:13 AM
Table of contents
- 1. Claude Code là gì và tại sao nó khác biệt?
- 2. Kiến trúc Agentic Loop
- 3. Sub-Agents — Hệ thống Đa tác nhân
- 4. Hooks System — Tự động hóa Workflow
- 5. Memory System — Bộ nhớ Bền vững
- 6. Tích hợp MCP — Kết nối Vạn năng
- 7. Skills và Scheduled Tasks
- 8. Workflow Thực chiến
- 9. So sánh với các AI Coding Tools khác
- 10. Hành trình phát triển của Claude Code
- 11. Kết luận
Trong bối cảnh AI đang thay đổi mạnh mẽ cách chúng ta phát triển phần mềm, Claude Code nổi lên như một công cụ coding agent hàng đầu từ Anthropic. Khác với các code completion tool truyền thống chỉ gợi ý từng dòng code, Claude Code là một agentic system hoàn chỉnh — có khả năng đọc hiểu toàn bộ codebase, lập kế hoạch hành động, thực thi lệnh, và tự điều chỉnh chiến lược khi gặp lỗi. Bài viết này sẽ đi sâu vào kiến trúc, hệ sinh thái tính năng, và cách áp dụng Claude Code hiệu quả trong dự án thực tế.
1. Claude Code là gì và tại sao nó khác biệt?
Claude Code là một agentic coding tool của Anthropic, hoạt động trực tiếp trong terminal, IDE (VS Code, JetBrains), desktop app, và cả trình duyệt web. Điểm khác biệt cốt lõi so với các AI coding assistant khác nằm ở kiến trúc agentic loop — thay vì chỉ trả lời câu hỏi hoặc gợi ý code, Claude Code chủ động thực hiện chuỗi hành động phức tạp để hoàn thành nhiệm vụ.
Agentic Coding là gì?
Agentic coding là mô hình mà AI agent chủ động: (1) phân tích yêu cầu → (2) khám phá codebase → (3) lập kế hoạch hành động → (4) thực thi bằng tools → (5) đánh giá kết quả → (6) điều chỉnh và lặp lại. Developer đóng vai trò kiến trúc sư — đặt mục tiêu và kiểm soát kết quả thay vì viết từng dòng code.
Tại Anthropic, phần lớn code hiện tại được viết bởi Claude Code, với kỹ sư tập trung vào vai trò kiến trúc, tư duy sản phẩm, và điều phối nhiều agent song song. Đây không chỉ là xu hướng — đó là thực tế sản xuất đã được chứng minh ở quy mô enterprise.
2. Kiến trúc Agentic Loop
Trái tim của Claude Code là vòng lặp agentic (agentic loop). Khi nhận một yêu cầu từ developer, Claude Code không đơn giản trả lời — nó bước vào một chu trình lặp đi lặp lại cho đến khi hoàn thành nhiệm vụ hoặc cần sự can thiệp của con người.
graph TD
A["Developer Input"] --> B["Phân tích yêu cầu"]
B --> C["Lập kế hoạch hành động"]
C --> D["Chọn và gọi Tool"]
D --> E["Thực thi Tool"]
E --> F["Đánh giá kết quả"]
F -->|"Thành công"| G["Trả kết quả cho Developer"]
F -->|"Cần điều chỉnh"| C
F -->|"Cần thông tin thêm"| D
style A fill:#e94560,stroke:#fff,color:#fff
style B fill:#0f3460,stroke:#fff,color:#fff
style C fill:#0f3460,stroke:#fff,color:#fff
style D fill:#4CAF50,stroke:#fff,color:#fff
style E fill:#4CAF50,stroke:#fff,color:#fff
style F fill:#ff9800,stroke:#fff,color:#fff
style G fill:#e94560,stroke:#fff,color:#fff
Hình 1: Vòng lặp Agentic Loop của Claude Code
2.1. Tool Use — Bộ công cụ thực thi
Claude Code được trang bị hơn 50 built-in tools, mỗi tool được thiết kế để thực hiện một loại thao tác cụ thể trong quy trình phát triển:
| Tool | Chức năng | Ví dụ |
|---|---|---|
| Read | Đọc file từ hệ thống | Đọc source code, config, PDF, ảnh |
| Edit | Chỉnh sửa file chính xác | Thay đổi một đoạn code cụ thể |
| Write | Tạo file mới | Tạo component, test file |
| Bash | Thực thi shell command | Chạy test, build, git operations |
| Glob | Tìm kiếm file theo pattern | **/*.tsx, src/**/*.test.js |
| Grep | Tìm kiếm nội dung trong file | Tìm function definition, import |
| Agent | Khởi tạo sub-agent | Delegate task phức tạp |
| TodoWrite | Quản lý task list | Theo dõi tiến độ công việc |
Nguyên tắc Tool Selection
Claude Code luôn ưu tiên dedicated tools thay vì Bash command. Ví dụ: dùng Read thay vì cat, dùng Grep thay vì grep, dùng Edit thay vì sed. Điều này giúp developer dễ review hành động của agent và giảm thiểu rủi ro bảo mật.
2.2. Permission Model — Kiểm soát quyền hạn
Một trong những thiết kế quan trọng nhất của Claude Code là hệ thống phân quyền. Mỗi tool call đều phải được kiểm tra quyền trước khi thực thi:
- Auto-allowed tools: Read, Glob, Grep — các thao tác chỉ đọc, an toàn
- User-approved tools: Edit, Write, Bash — cần xác nhận trước khi thực thi lần đầu
- Restricted actions: Các thao tác nguy hiểm như
git push --force,rm -rfluôn yêu cầu xác nhận rõ ràng
Developer có thể cấu hình permission mode phù hợp với workflow: từ chế độ thận trọng (hỏi mọi thao tác ghi) đến chế độ tự chủ cao (chỉ hỏi khi thực sự nguy hiểm).
3. Sub-Agents — Hệ thống Đa tác nhân
Đây là tính năng mạnh mẽ nhất và khác biệt nhất của Claude Code. Khi gặp một task phức tạp, Claude Code có thể spawn sub-agents — mỗi sub-agent là một phiên làm việc độc lập với context riêng, tools riêng, và nhiệm vụ cụ thể.
graph LR
A["Parent Agent
Context: 1M tokens"] -->|"Delegate"| B["Sub-Agent: Explore
Tìm kiếm codebase"]
A -->|"Delegate"| C["Sub-Agent: Plan
Thiết kế kiến trúc"]
A -->|"Delegate"| D["Sub-Agent: Test
Chạy test suite"]
B -->|"Kết quả"| A
C -->|"Kết quả"| A
D -->|"Kết quả"| A
style A fill:#e94560,stroke:#fff,color:#fff
style B fill:#4CAF50,stroke:#fff,color:#fff
style C fill:#0f3460,stroke:#fff,color:#fff
style D fill:#ff9800,stroke:#fff,color:#fff
Hình 2: Kiến trúc Sub-Agents — song song hóa công việc
3.1. Tại sao cần Sub-Agents?
Vấn đề cốt lõi mà sub-agents giải quyết là context pollution (ô nhiễm ngữ cảnh). Khi agent đọc hàng chục file, chạy nhiều lệnh, kết quả của tất cả các bước đó chất đống trong context window, làm giảm chất lượng reasoning. Sub-agents giải quyết điều này bằng cách:
- Cô lập context: Mỗi sub-agent có 200K token context riêng, chỉ trả về kết quả cuối cùng cho parent
- Song song hóa: Nhiều sub-agents có thể chạy đồng thời, tăng tốc đáng kể
- Chuyên biệt hóa: Mỗi agent type có bộ tools và khả năng riêng — Explore agent tối ưu cho tìm kiếm, Plan agent cho thiết kế kiến trúc
3.2. Các loại Sub-Agent built-in
| Agent Type | Mục đích | Tools đặc biệt |
|---|---|---|
| general-purpose | Nghiên cứu, tìm kiếm code, thực thi task phức tạp | Tất cả tools |
| Explore | Khám phá codebase nhanh — tìm file, keyword, cấu trúc | Read-only tools (không Edit/Write) |
| Plan | Thiết kế kiến trúc, lập kế hoạch implementation | Read-only tools (không Edit/Write) |
3.3. Custom Sub-Agents
Ngoài các agent built-in, developer có thể tạo custom sub-agents bằng cách viết file Markdown với frontmatter cấu hình:
---
description: Agent chuyên chạy test và phân tích kết quả
tools:
- Bash
- Read
- Grep
model: sonnet
maxTurns: 15
memory: project
---
Bạn là test runner agent. Khi nhận một task:
1. Tìm tất cả test files liên quan
2. Chạy test suite
3. Phân tích failures và đề xuất fix
4. Cập nhật agent memory với patterns phát hiện được
Custom agents hỗ trợ nhiều tùy chỉnh: model (chọn Opus, Sonnet, hoặc Haiku), tools / disallowedTools, permissionMode, mcpServers, hooks, maxTurns, memory scope, và isolation (worktree).
Agent Memory — Bộ nhớ riêng cho mỗi agent
Mỗi sub-agent có thể được cấu hình memory scope riêng: User scope (~/.claude/agent-memory/), Project scope (.claude/agent-memory/), hoặc Local scope (.claude/agent-memory-local/). Agent sẽ tự động ghi nhớ các pattern, đường dẫn quan trọng, và quyết định kiến trúc qua các phiên làm việc.
4. Hooks System — Tự động hóa Workflow
Hooks là cơ chế cho phép developer can thiệp vào lifecycle của Claude Code bằng shell commands tùy chỉnh. Hooks được cấu hình trong settings.json và chạy tự động khi các sự kiện cụ thể xảy ra.
sequenceDiagram
participant D as Developer
participant CC as Claude Code
participant H as Hook Script
participant T as Tool
D->>CC: Yêu cầu sửa code
CC->>CC: Chọn tool Edit
CC->>H: PreToolUse Hook
H-->>CC: allow / block / modify
CC->>T: Thực thi Edit tool
T-->>CC: Kết quả
CC->>H: PostToolUse Hook
H-->>CC: Feedback
CC->>D: Kết quả cuối cùng
Hình 3: Luồng hoạt động của Hooks System
4.1. Các loại Hook Events
| Hook Event | Thời điểm kích hoạt | Use case |
|---|---|---|
| PreToolUse | Trước khi tool được thực thi | Validate, chặn lệnh nguy hiểm, enforce coding standards |
| PostToolUse | Sau khi tool thực thi xong | Auto-format code, chạy lint, log actions |
| Notification | Khi có thông báo quan trọng | Gửi alert qua Slack/email |
| Stop | Khi agent kết thúc phiên | Cleanup, tổng kết |
| SubagentStop | Khi sub-agent hoàn thành | Aggregate kết quả, trigger pipeline |
4.2. Ví dụ thực tế: Auto-lint sau mỗi lần Edit
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit",
"command": "npx eslint --fix \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
}
],
"PreToolUse": [
{
"matcher": "Bash",
"command": "echo '$CLAUDE_TOOL_INPUT' | python3 check_dangerous_cmd.py"
}
]
}
}Lưu ý bảo mật với Hooks
Hook scripts chạy với quyền hạn đầy đủ của user, không bị . Cần cẩn thận khi viết hook để tránh: (1) command injection qua biến môi trường, (2) hook vô hạn loop, (3) block agent vì hook exit code khác 0. Luôn test hook cẩn thận trước khi deploy.
5. Memory System — Bộ nhớ Bền vững
Claude Code sở hữu một hệ thống memory dựa trên file, cho phép agent ghi nhớ thông tin quan trọng qua các phiên làm việc. Đây là yếu tố then chốt giúp Claude Code trở nên ngày càng hiểu bạn hơn theo thời gian.
5.1. Các cấp độ Memory
graph TD
A["Memory System"] --> B["CLAUDE.md Files"]
A --> C["Auto Memory"]
A --> D["Agent Memory"]
B --> B1["Project-level
.claude/CLAUDE.md"]
B --> B2["User-level
~/.claude/CLAUDE.md"]
C --> C1["User memories
Vai trò, sở thích"]
C --> C2["Feedback memories
Cách làm việc"]
C --> C3["Project memories
Bối cảnh dự án"]
C --> C4["Reference memories
Liên kết ngoài"]
D --> D1["User scope"]
D --> D2["Project scope"]
D --> D3["Local scope"]
style A fill:#e94560,stroke:#fff,color:#fff
style B fill:#0f3460,stroke:#fff,color:#fff
style C fill:#4CAF50,stroke:#fff,color:#fff
style D fill:#ff9800,stroke:#fff,color:#fff
Hình 4: Kiến trúc Memory System đa tầng
- CLAUDE.md: File cấu hình tĩnh, chứa quy tắc dự án, coding conventions, hướng dẫn cho agent. Được đọc tự động ở đầu mỗi phiên
- Auto Memory: Hệ thống ghi nhớ tự động — Claude Code chủ động lưu thông tin về user, feedback, ngữ cảnh dự án vào các file memory riêng biệt
- Agent Memory: Memory dành cho sub-agents, giúp mỗi agent tích lũy kiến thức chuyên biệt qua thời gian
5.2. CLAUDE.md — Bản thiết kế cho Agent
File CLAUDE.md ở gốc dự án là cách hiệu quả nhất để "lập trình" hành vi của Claude Code:
# CLAUDE.md
## Coding Standards
- Sử dụng TypeScript strict mode
- Tất cả functions phải có JSDoc
- Component names: PascalCase
- Utility functions: camelCase
## Architecture
- Frontend: Next.js 14+ App Router
- State: Zustand
- API: tRPC
- DB: PostgreSQL + Prisma
## Testing
- Unit test: Vitest
- E2E: Playwright
- Coverage tối thiểu: 80%
## Git Workflow
- Branch naming: feat/, fix/, chore/
- Commit message: Conventional Commits
- Luôn rebase trước khi merge
Best Practice: Giữ CLAUDE.md ngắn gọn
CLAUDE.md được đọc vào đầu mỗi phiên và tiêu tốn context window. Chỉ đưa vào những quy tắc không thể suy luận từ code. Đừng mô tả kiến trúc mà code đã thể hiện rõ — hãy tập trung vào các quyết định thiết kế không hiển nhiên và quy ước đặc biệt của team.
6. Tích hợp MCP — Kết nối Vạn năng
Claude Code tích hợp sâu với Model Context Protocol (MCP) — giao thức chuẩn hóa kết nối giữa AI agent và các dịch vụ bên ngoài (xem thêm bài viết MCP - Giao thức Kết nối Vạn năng). Thông qua MCP, Claude Code có thể:
- Truy vấn database trực tiếp (PostgreSQL, MySQL, ClickHouse)
- Tương tác Figma — đọc design, tạo component, code từ thiết kế
- Quản lý email/calendar — Gmail, Google Calendar
- Điều khiển browser — tự động test UI, scraping, form filling
- Kết nối với bất kỳ API nào thông qua custom MCP servers
6.1. Cấu hình MCP Server
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres",
"postgresql://user:pass@localhost:5432/mydb"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "ghp_xxx" }
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/data"]
}
}
}Với MCP, Claude Code không còn bị giới hạn trong terminal — nó trở thành một hub điều phối kết nối mọi công cụ trong hệ sinh thái phát triển phần mềm.
7. Skills và Scheduled Tasks
7.1. Skills — Mở rộng khả năng
Skills là các module mở rộng, cho phép Claude Code học thêm khả năng mới mà không cần cập nhật core. Mỗi skill là một file Markdown chứa prompt chuyên biệt, được kích hoạt qua slash commands:
/commit— tạo commit message chuẩn từ diff/review-pr— review pull request chi tiết/pdf— đọc, tạo, merge file PDF/xlsx— làm việc với spreadsheet- Custom skills do team tự xây dựng
7.2. Scheduled Tasks — Agent tự vận hành
Tính năng Scheduled Tasks cho phép Claude Code chạy các tác vụ tự động theo lịch trình, biến agent thành một worker luôn hoạt động:
{
"taskId": "daily-code-review",
"cronExpression": "0 9 * * 1-5",
"prompt": "Review tất cả PR mới từ hôm qua. Kiểm tra coding standards, security issues, và performance. Tạo báo cáo tổng hợp.",
"description": "Daily automated code review"
}Ứng dụng thực tế của Scheduled Tasks
Một số use case phổ biến: (1) Auto-review PR mỗi sáng, (2) Viết blog post tự động theo chủ đề định sẵn, (3) Monitor dependency vulnerabilities hàng tuần, (4) Tạo báo cáo tiến độ dự án cuối ngày, (5) Sync và cập nhật documentation khi code thay đổi.
8. Workflow Thực chiến
8.1. Quy trình phát triển tính năng mới
Dưới đây là workflow điển hình khi sử dụng Claude Code để implement một tính năng mới trong dự án thực tế:
graph LR
A["Mô tả
feature"] --> B["EnterPlanMode
Lập kế hoạch"]
B --> C["User review
& approve plan"]
C --> D["Implement
theo plan"]
D --> E["Sub-Agent
chạy tests"]
E -->|"Pass"| F["Tạo PR
với /commit"]
E -->|"Fail"| G["Fix & retry"]
G --> E
style A fill:#e94560,stroke:#fff,color:#fff
style B fill:#0f3460,stroke:#fff,color:#fff
style C fill:#ff9800,stroke:#fff,color:#fff
style D fill:#4CAF50,stroke:#fff,color:#fff
style E fill:#0f3460,stroke:#fff,color:#fff
style F fill:#4CAF50,stroke:#fff,color:#fff
style G fill:#ff9800,stroke:#fff,color:#fff
Hình 5: Workflow phát triển tính năng với Claude Code
8.2. Các pattern hiệu quả
- Plan trước, code sau: Luôn bắt đầu bằng Plan mode cho task phức tạp. Để Claude Code khám phá codebase và đề xuất approach trước khi viết code
- Delegate bằng Sub-Agents: Khi cần tìm kiếm sâu trong codebase hoặc chạy nhiều task song song, spawn sub-agents thay vì để parent agent làm tất cả
- CLAUDE.md là source of truth: Đầu tư thời gian viết CLAUDE.md tốt sẽ giúp mọi phiên làm việc hiệu quả hơn
- Sử dụng Hooks cho automation: Auto-lint, auto-format, auto-test sau mỗi thay đổi
- Worktree cho isolation: Sử dụng worktree khi cần thử nghiệm mà không ảnh hưởng code đang làm
8.3. Anti-patterns cần tránh
Những sai lầm phổ biến
(1) Đưa quá nhiều context vào một phiên — hãy chia nhỏ task và delegate. (2) Không review code trước khi commit — agent có thể mắc lỗi subtle. (3) Over-engineering CLAUDE.md — chỉ đưa vào những gì thực sự cần. (4) Bỏ qua permission model — đừng chạy ở chế độ auto-approve mọi thứ trong production codebase. (5) Không sử dụng plan mode cho task lớn — dẫn đến implement sai hướng.
9. So sánh với các AI Coding Tools khác
| Tiêu chí | Claude Code | GitHub Copilot | Cursor |
|---|---|---|---|
| Kiến trúc | Agentic loop đầy đủ | Code completion + Chat | Agentic (IDE-based) |
| Context Window | 1M tokens | ~128K tokens | ~200K tokens |
| Sub-Agents | Có, custom được | Không | Hạn chế |
| Hooks System | Có, linh hoạt | Không | Không |
| MCP Integration | Native, đầy đủ | Hỗ trợ cơ bản | Hỗ trợ cơ bản |
| Memory | Đa tầng, persistent | Instruction files | Rules, .cursorrules |
| Terminal Access | Native (terminal-first) | Trong IDE | Trong IDE |
| Scheduled Tasks | Có | Không | Không |
| Platform | Terminal, IDE, Web, Desktop | IDE (VS Code, JetBrains) | IDE riêng (fork VS Code) |
Mỗi tool có thế mạnh riêng. GitHub Copilot vượt trội ở code completion tức thì trong IDE. Cursor mạnh ở trải nghiệm IDE tích hợp. Claude Code nổi bật ở khả năng agentic toàn diện — phù hợp nhất cho các task phức tạp, đa bước, cần tự chủ cao.
10. Hành trình phát triển của Claude Code
11. Kết luận
Claude Code không chỉ là một AI coding assistant — đó là một agentic coding platform hoàn chỉnh. Với kiến trúc agentic loop, hệ thống sub-agents mạnh mẽ, hooks tùy biến, memory bền vững, và tích hợp MCP sâu rộng, Claude Code đại diện cho thế hệ tiếp theo của công cụ phát triển phần mềm.
Điều quan trọng nhất không phải là công nghệ — mà là sự thay đổi vai trò của developer. Từ người viết code, chúng ta đang trở thành người kiến trúc, điều phối, và ra quyết định. Claude Code là đòn bẩy giúp thực hiện chuyển đổi này một cách tự nhiên và hiệu quả.
Bắt đầu với Claude Code
Cài đặt: npm install -g @anthropic-ai/claude-code. Khởi chạy: claude trong terminal. Tạo CLAUDE.md ở gốc dự án. Bắt đầu với những task nhỏ, quen dần với agentic workflow, rồi mở rộng dần. Tham khảo tài liệu chính thức tại code.claude.com/docs.
A2A Protocol - Giao thức Agent-to-Agent cho Hệ thống Multi-Agent AI
Vector Database - Trái tim của hệ thống AI hiện đại
Disclaimer: The opinions expressed in this blog are solely my own and do not reflect the views or opinions of my employer or any affiliated organizations. The content provided is for informational and educational purposes only and should not be taken as professional advice. While I strive to provide accurate and up-to-date information, I make no warranties or guarantees about the completeness, reliability, or accuracy of the content. Readers are encouraged to verify the information and seek independent advice as needed. I disclaim any liability for decisions or actions taken based on the content of this blog.