Claude Code không chỉ đơn thuần là những gì bạn nghĩ

@marcusyul
TIẾNG TÂY BAN NHA4 tuần trước · 18 thg 6, 2026
217K
318
53
30
366

TL;DR

Hướng dẫn này khám phá kiến trúc nội bộ của Claude Code, bao gồm các vòng lặp tác nhân, quản lý bộ nhớ, tác nhân phụ và MCP để biến quy trình phát triển của bạn thành một hệ thống tự động hóa mạnh mẽ.

Khi mới bắt đầu sử dụng Claude Code, tôi đã xem nó như một cuộc trò chuyện thông thường.

Tôi yêu cầu điều gì đó, nó sẽ phản hồi, và chỉ có vậy.

Nó hoạt động, nhưng dần dần tôi bắt đầu nhận ra rằng mình đã không khai thác hết tiềm năng của nó.

Tôi lặp đi lặp lại những câu lệnh tương tự. Tôi thực thi những lệnh quen thuộc. Tôi không thực sự rõ làm thế nào để tận dụng tối đa công cụ này.

Vì vậy, tôi đã dừng lại và tự hỏi bản thân:

Bên trong Claude Code thực sự hoạt động như thế nào?

Tôi bắt đầu đọc tài liệu, thử nghiệm và kiểm tra.

Và điều tôi khám phá ra là:

Nó không làm ra phép thuật gì cả. Nó được xây dựng từ những khối kiến thức cụ thể, mỗi khối có một vai trò rõ ràng. Và khi bạn hiểu được chúng, mọi thứ khác sẽ trở nên hợp lý.

→ Nếu bạn luôn lặp lại cùng một hướng dẫn, hãy biến nó thành một Skill.

→ Nếu nó bị mất mạch trong một tác vụ dài, hãy ủy quyền cho một SubAgent.

→ Nếu có các bước thủ công mà bạn lặp lại, hãy tự động hóa chúng bằng Hooks.

Hiểu được những kiến thức nền tảng là điều cho phép bạn biết nên dùng cái gì, khi nào và tại sao.

Hôm nay, tôi có hơn 100 Skills, các quy trình tự động hóa mà trước đây tôi mất hàng giờ, và các agent để thực hiện đánh giá mã nguồn và nghiên cứu các chủ đề mà tôi quan tâm.

Tôi viết bài này để chia sẻ tất cả những gì tôi đã học được với bạn.

Hãy bắt đầu nào.

Vòng lặp Agent: Trái tim của Claude Code

Claude Code là một agent.

Một hệ thống mà bạn giao cho nó một mục tiêu và nó sẽ làm việc cho đến khi hoàn thành mục tiêu đó.

Nó khác với một cuộc trò chuyện. Trong một cuộc trò chuyện, bạn hỏi "Làm cách nào để thêm xác thực vào ứng dụng của tôi?" và nó giải thích các bước.

Nhưng bạn phải tự vào dự án, sửa đổi mã nguồn và kiểm tra xem nó có hoạt động không.

Bạn là người làm việc.

Với Claude Code, bạn chỉ cần nói "Thêm xác thực vào ứng dụng của tôi" và nó sẽ xử lý.

Nó đọc mã nguồn, chọn thư viện, viết các thay đổi và thông báo cho bạn khi hoàn tất.

Nó có một mục tiêu: thêm xác thực.

Và nó sẽ làm việc cho đến khi đạt được mục tiêu đó.

Nhưng làm thế nào nó biết phải làm gì sau mỗi bước? Làm thế nào nó biết liệu một việc có thành công hay không? Nó cần một thứ gì đó để điều phối các quyết định đó.

Đó là vòng lặp.

marcus - inline image

Một chu kỳ tự lặp lại.

Claude Code thực hiện một hành động, quan sát kết quả, quyết định bước tiếp theo và bắt đầu lại. Nó không dừng lại cho đến khi hoàn thành mục tiêu.

Nếu điều gì đó thất bại, nó sẽ quay lại, sửa lỗi và tiếp tục.

Vòng lặp có 3 giai đoạn:

Thu thập bối cảnh → Hiểu những gì nó phải làm. Đọc file, phân tích mã nguồn, khám phá cấu trúc dự án.

Hành động → Thực hiện các thay đổi. Chỉnh sửa file, chạy lệnh, cài đặt dependencies.

Xác minh kết quả → Kiểm tra xem những gì nó đã làm có hoạt động không. Chạy test, xem xét lỗi, sửa chữa nếu có lỗi.

Vòng lặp thích ứng với những gì bạn yêu cầu.

Một câu hỏi đơn giản có thể chỉ cần thu thập bối cảnh. Sửa một lỗi có thể trải qua cả ba giai đoạn nhiều lần.

Claude Code quyết định mỗi bước cần gì dựa trên những gì nó học được từ bước trước đó. Và bạn cũng là một phần của vòng lặp đó.

Bạn có thể can thiệp bất cứ lúc nào để điều hướng lại nó, thêm ngữ cảnh hoặc yêu cầu nó thử một cách tiếp cận khác.

Đây là trái tim của Claude Code.

Mọi thứ tiếp theo đều tồn tại để làm cho vòng lặp này mạnh mẽ hơn.

Công cụ: Cách Claude Code tương tác với thế giới

Một LLM, về mặt thiết kế, chỉ xử lý văn bản.

Nó nhận văn bản và tạo ra văn bản. Nó không có quyền truy cập vào hệ thống file của bạn, nó không thể thực thi lệnh, nó không biết những gì có trong dự án của bạn.

Nó bị cô lập.

Vậy, làm thế nào Claude Code có thể mở một file hoặc sửa đổi nó?

Nó sử dụng các công cụ.

Công cụ là các hàm mà Claude Code có thể gọi để tương tác với thế giới thực.

Hãy nghĩ về nó như các ứng dụng di động. Bản thân chiếc điện thoại không làm được gì: chính các ứng dụng mới mang lại cho nó những khả năng cụ thể: chụp ảnh, gửi tin nhắn, dẫn đường.

Công cụ cũng tương tự đối với Claude Code.

Mỗi khi sử dụng một công cụ, nó sẽ gửi một yêu cầu đến hệ thống với những gì nó cần. Hệ thống sẽ thực thi và trả về kết quả.

Claude Code sử dụng kết quả đó để quyết định bước tiếp theo.

text
1Yêu cầu của bạn
2
3Claude Code quyết định sử dụng công cụ nào
4
5┌─────────────────────────────────┐
6│ Read · Edit · Write · Bash │
7│ Grep · Glob · WebFetch · WebSearch │
8└─────────────────────────────────┘
9
10Hệ thống thực thi công cụ
11
12Kết quả trả về cho Claude Code
13
14Xong? → Chưa → dùng công cụ khác
15 Xong → phản hồi

Claude Code đi kèm với các công cụ gốc cho các thao tác phổ biến nhất:

Read / Edit / Write → Đọc, sửa đổi và tạo file. Được sử dụng nhiều nhất. Mỗi khi Claude Code "hiểu mã nguồn của bạn" hoặc "thực hiện một thay đổi", nó đang sử dụng ba công cụ này.

Bash → Toàn quyền truy cập vào terminal. Nếu bạn có thể làm điều đó từ dòng lệnh, Claude Code cũng có thể: cài đặt dependencies, chạy test, tạo commit.

Grep và Glob → Tìm kiếm trong dự án. Glob tìm file theo tên hoặc mẫu. Grep tìm kiếm nội dung cụ thể trong các file.

WebFetch và WebSearch → Truy cập Internet. Tra cứu tài liệu, đọc API, điều tra một lỗi chưa từng thấy trước đây.

Quay lại ví dụ về lỗi ở nút đăng nhập.

Khi Claude Code xử lý lỗi đó, nó sử dụng nhiều công cụ cùng lúc:

→ Nó dùng Glob để tìm file component

→ Nó dùng Read để đọc mã nguồn và hiểu chuyện gì đang xảy ra

→ Nó dùng Edit để sửa lỗi

→ Nó dùng Bash để chạy test và xác minh rằng nó đã hoạt động

Tất cả điều đó mà không cần bạn can thiệp. Đó là sự khác biệt giữa một cuộc trò chuyện và một agent.

Bối cảnh và Bộ nhớ: Những gì Claude Code ghi nhớ

Claude Code làm việc, thực thi các hành động, nhận kết quả và quyết định bước tiếp theo.

Nhưng làm thế nào nó biết được những gì nó đã làm khi tiến trình diễn ra?

Tất cả là nhờ vào bối cảnh.

Bối cảnh là thông tin mà Claude Code có sẵn tại thời điểm đó. Mỗi khi nó thực thi một hành động, kết quả sẽ được tích lũy vào đó.

Không chỉ là câu lệnh ban đầu của bạn, mà còn là mọi thứ nó tìm thấy: các file nó đã mở, những gì nó phát hiện trong mã nguồn, các hành động nó đã thực hiện và kết quả của chúng.

Đó là lý do tại sao nó có thể xâu chuỗi các bước, tự sửa lỗi và hoàn thành nhiệm vụ một mình.

Bối cảnh đó có 2 vấn đề.

1. Dung lượng có hạn. Nếu phiên làm việc quá dài, bối cảnh sẽ đầy và Claude Code bắt đầu quên những gì đã xảy ra trước đó. Sau này bạn sẽ thấy SubAgents giải quyết vấn đề này như thế nào.

2. Nó bị xóa mỗi khi bạn mở một cuộc trò chuyện mới. Claude Code không biết bạn đang ở dự án nào, nhóm của bạn làm việc ra sao, hay những quyết định nào họ đã đưa ra. Nếu bạn không nói cho nó, nó sẽ suy luận hoặc hỏi bạn.

Bộ nhớ giải quyết vấn đề thứ hai.

Đó là một hệ thống file markdown nơi bạn lưu mọi thứ Claude Code cần biết: stack của bạn, quy ước của nhóm, cách cấu trúc các dự án.

Claude Code đọc chúng khi bắt đầu mỗi phiên và đưa thông tin đó vào bối cảnh trước khi bạn viết dòng lệnh đầu tiên.

Không có Bộ nhớ: Bạn bảo nó "thêm một endpoint để tạo người dùng" và Claude Code hỏi bạn: "Bạn dùng framework nào? Bạn đã cấu hình database chưa? Các route được cấu trúc như thế nào?"

Có Bộ nhớ: Bạn cũng yêu cầu điều tương tự và nó đã biết bạn dùng Express với Prisma, các routes nằm trong /src/routes, và lỗi được xử lý bằng một middleware tập trung. Nó bắt đầu làm việc mà không cần hỏi.

Claude Code có 2 hệ thống bộ nhớ:

→ CLAUDE.md - Các file Markdown mà bạn viết với mọi thứ Claude Code cần biết. Chúng có thể tồn tại ở nhiều cấp độ khác nhau:

→ ~/.claude/CLAUDE.md - Áp dụng cho tất cả các dự án của bạn. Sở thích cá nhân của bạn sẽ nằm ở đây: cách bạn muốn nó viết mã nguồn, các quy ước bạn luôn sử dụng. Hướng dẫn phải cụ thể: "sử dụng thụt đầu dòng 2 khoảng trắng" rõ ràng hơn là "định dạng mã nguồn cho tốt."

→ /your-project/CLAUDE.md - Dành riêng cho repository. Kiến trúc, quy ước nhóm và các lệnh quan trọng nằm ở đây. Khi bạn bắt đầu một dự án mới, hãy chạy /init và Claude Code sẽ tự động tạo nó. Giữ nó dưới 200 dòng: nếu nó phát triển quá lớn, Claude Code sẽ bắt đầu bỏ qua các hướng dẫn. Và nếu bạn commit nó vào repo, cả nhóm sẽ chia sẻ cùng một bối cảnh.

→ .claude/rules/ - Các quy tắc mô-đun tự động kích hoạt theo loại file. Hữu ích khi dự án phát triển và bạn không muốn đặt mọi thứ vào một file duy nhất.

Bộ nhớ tự động - Bộ nhớ mà Claude Code tự xây dựng. Khi bạn làm việc, nó tự động ghi chú: các mẫu nó phát hiện, các chỉnh sửa bạn thực hiện, các quyết định bạn đã cùng nhau đưa ra. Nó được lưu trong

~/.claude/projects/<project>/memory/ và được tải khi bắt đầu mỗi phiên.

marcus - inline image

Hãy thường xuyên xem lại nó: Claude Code có thể đã lưu các thói quen xấu mà bạn không nhận ra.

Mẹo: Bạn có thể xem và chỉnh sửa mọi thứ Claude Code ghi nhớ bằng cách chạy /memory.

Hooks và Skills: Nắm quyền kiểm soát

1. Hooks

Claude Code hoạt động một cách tự chủ.

Nó thực thi các hành động, đưa ra quyết định và tiến về phía trước.

Nhưng sự tự chủ đó có một mặt ít được nhắc đến: Claude Code làm những gì nó cho là đúng ở mỗi bước.

Nếu có gì đó sai, hoặc nó làm điều bạn không muốn, thì mọi chuyện đã rồi.

Làm thế nào để kiểm soát nó? Với hooks.

Một hook là một lệnh tự động chạy tại các điểm cụ thể trong chu kỳ. Trước khi Claude Code sử dụng một công cụ, sau khi nó sử dụng xong, khi phiên kết thúc.

Bạn định nghĩa điều gì xảy ra tại mỗi thời điểm.

Điều quan trọng là hooks có tính xác định.

Chúng không phụ thuộc vào việc Claude Code "nhớ" phải làm gì. Chúng luôn được thực thi, không có ngoại lệ.

Bốn hooks chính là:

PreToolUse - Chạy trước khi Claude Code sử dụng một công cụ. Đây là hook duy nhất có thể chặn một hành động. Ví dụ: Chặn bất kỳ lệnh nào cố gắng sửa đổi các file .env.

PostToolUse - Chạy sau khi Claude Code sử dụng một công cụ. Ví dụ: Tự động chạy Prettier mỗi khi Claude Code chỉnh sửa một file.

Notification - Chạy khi Claude Code cần sự chú ý của bạn. Ví dụ: Nhận thông báo trên Mac khi Claude Code hoàn thành một tác vụ dài.

Stop - Chạy khi Claude Code kết thúc phản hồi. Ví dụ: Tự động push lên staging khi agent hoàn thành.

Chúng được cấu hình trong .claude/settings.json:

text
1{
2 "hooks": {
3 "PostToolUse": [
4 {
5 "matcher": "Edit|Write",
6 "hooks": [
7 {
8 "type": "command",
9 "command": "npx prettier --write $file_path"
10 }
11 ]
12 }
13 ]
14 }
15}

Hook này tự động chạy Prettier mỗi khi Claude Code chỉnh sửa hoặc tạo một file.

Mà không cần bạn yêu cầu. Không cần Claude Code phải nhớ làm việc đó.

Không có Hook: Claude Code chỉnh sửa một file, mã nguồn vẫn chưa được định dạng, và bạn nhận ra điều đó trong lần commit tiếp theo.

Có Hook: Claude Code chỉnh sửa một file, PostToolUse tự động kích hoạt, Prettier định dạng file, và mã nguồn luôn sạch sẽ.

Hooks cho phép bạn thêm hành vi đảm bảo vào chu kỳ của agent. Không phải là gợi ý, không phải là hướng dẫn mà model có thể bỏ qua. Đó là các quy tắc luôn được thực thi.

2. Skills

Có một vấn đề khác: tính nhất quán.

Bạn yêu cầu nó thực hiện cùng một tác vụ hai lần và nhận được kết quả khác nhau. Mỗi lần bạn mở một cuộc trò chuyện mới, Claude Code bắt đầu mà không biết lần trước bạn đã làm nó như thế nào.

Làm thế nào để giải quyết? Với Skills.

Một Skill là một file markdown nơi bạn giải thích quy trình chính xác cho một tác vụ với Claude Code: cần xem xét gì, theo thứ tự nào, dùng định dạng nào, bỏ qua gì.

Mỗi khi tác vụ đó xuất hiện, Claude Code sẽ làm theo những hướng dẫn đó.

Không có Skill: Bạn yêu cầu nó ghi tài liệu cho một API và nó tạo ra thứ gì đó, nhưng mỗi lần một định dạng khác nhau. Có lần kèm ví dụ, có lần không.

Có Skill: Bạn yêu cầu nó ghi tài liệu cho một API và nó tuân theo quy trình chính xác bạn đã định nghĩa. Luôn với cùng các bước, cùng định dạng, cùng tiêu chí. Mỗi lần đều giống nhau.

Để tạo một Skill, bạn định nghĩa một thư mục với cấu trúc sau:

text
1my-skill/
2├── SKILL.md # Hướng dẫn chính (bắt buộc)
3├── template.md # Mẫu mà Claude sẽ điền vào
4├── examples/
5│ └── sample.md # Ví dụ về đầu ra mong đợi
6└── scripts/
7 └── validate.sh # Script mà Claude có thể thực thi

File duy nhất bắt buộc là SKILL.md. Phần còn lại là tùy chọn và bạn thêm vào tùy theo nhu cầu của tác vụ.

SKILL.md có 2 phần:

Frontmatter - Một khối YAML với tên và mô tả. Tên là lệnh để gọi nó thủ công. Mô tả là thứ Claude Code đọc để quyết định khi nào tự động kích hoạt nó.

Phần thân - Các hướng dẫn ở định dạng markdown. Quy trình làm việc, tiêu chí, định dạng đầu ra.

text
1---
2name: api-docs
3description: Documents API endpoints. Use it when the user
4 asks to document an API or mentions "swagger" or "endpoints"
5---
6
7## Quy trình
81. Xác định tất cả các endpoint
92. Với mỗi endpoint: method, path, parameters, expected response
103. Bao gồm một ví dụ về request và response
114. Kết thúc với một bảng tóm tắt

Sau khi được tạo, bạn có thể gọi nó theo hai cách.

Bằng cách viết /api-docs trực tiếp trong cuộc trò chuyện, hoặc đơn giản là yêu cầu Claude Code bằng ngôn ngữ tự nhiên.

Nếu mô tả khớp với những gì bạn đang yêu cầu, nó sẽ tự động kích hoạt.

Bạn có thể tạo chúng cho bất kỳ tác vụ nào bạn lặp lại với một quy trình rõ ràng: tài liệu API, changelog, biên bản cuộc họp, di chuyển mã nguồn.

SubAgents: Ủy quyền khi vấn đề trở nên lớn

Chúng ta đã thấy bối cảnh có dung lượng hạn chế.

Phiên làm việc càng dài, nó càng đầy lên. Và khi nó đầy, Claude Code bắt đầu mất thông tin về những gì đã xảy ra trước đó.

Hãy tưởng tượng bạn yêu cầu nó xem xét toàn bộ dự án của bạn để tìm các vấn đề bảo mật. Nó đọc hàng chục file, phân tích mã nguồn, tạo một báo cáo chi tiết.

Tất cả điều đó nhanh chóng lấp đầy bối cảnh.

Và trong khi nó làm điều đó, cuộc trò chuyện chính của bạn bị chặn.

Làm thế nào để giải quyết? Với SubAgents.

Một SubAgent là một phiên bản Claude Code riêng biệt chạy với bối cảnh của chính nó.

Agent chính ủy quyền một tác vụ cho nó, SubAgent thực thi độc lập, và khi hoàn thành, nó gửi một bản tóm tắt kết quả.

Bối cảnh của agent chính không bị lấp đầy bởi toàn bộ quá trình, chỉ có kết luận.

text
1Main Agent
2
3"review the project for security issues"
4
5┌─────────────────────────────┐
6│ SubAgent: security-reviewer │
7│ │
8│ Reads project files │
9│ Analyzes code │
10│ Detects vulnerabilities │
11│ Generates report │
12└─────────────────────────────┘
13
14Returns summary to main agent
15
16Main agent continues with the loop

Và không chỉ có vậy.

Các SubAgent có thể chạy song song.

Thay vì phân tích ba phần của mã nguồn một cách tuần tự, Claude Code có thể ủy quyền cả ba cùng một lúc.

Những gì từng mất vài phút có thể chỉ mất vài giây.

text
1Main Agent
2
3Divides work into independent tasks
4
5┌──────────────┐ ┌──────────────┐ ┌──────────────┐
6│ SubAgent 1 │ │ SubAgent 2 │ │ SubAgent 3 │
7│ │ │ │ │ │
8│ Reviews auth │ │ Reviews DB │ │ Reviews ext │
9│ │ │ │ │ APIs │
10└──────────────┘ └──────────────┘ └──────────────┘
11 ↓ ↓ ↓
12 Main agent receives the three summaries
13
14 Continues with the loop

Claude Code có 3 SubAgent gốc mà nó tự động sử dụng:

Explore - Một agent nhanh, chỉ đọc, chuyên tìm kiếm và phân tích dự án. Kết quả vẫn nằm trong bối cảnh của SubAgent, không phải của bạn.

Plan - Kích hoạt ở chế độ lập kế hoạch. Trước khi trình bày một kế hoạch cho bạn, Claude Code ủy quyền việc khảo sát dự án cho agent này.

General-purpose - Dành cho các tác vụ phức tạp yêu cầu cả khám phá và sửa đổi.

Bạn cũng có thể tự tạo SubAgent của riêng mình.

SubAgent được định nghĩa trong các file markdown với YAML frontmatter và lưu trong .claude/agents/.

text
1---
2name: security-reviewer
3description: Reviews code for security vulnerabilities.
4 Use it when the user asks for a security review.
5tools: Read, Grep, Glob
6---
7
8You are a security expert. Analyze the code for:
9- SQL Injections
10- Sensitive data exposure
11- Authentication vulnerabilities
12
13Finish with a summary of findings ordered by severity.

Lưu ý rằng trong frontmatter, chúng ta đã giới hạn các công cụ ở Read, Grep và Glob.

Agent này có thể phân tích nhưng không bao giờ được sửa đổi bất cứ thứ gì.

Khi bạn cần kiểm soát chặt chẽ những gì mỗi agent có thể làm, việc giới hạn công cụ đó là chìa khóa.

Sau khi được tạo, Claude Code tự động phát hiện nó qua mô tả và gọi nó khi tác vụ phù hợp. Hoặc bạn có thể gọi nó một cách tường minh: "dùng agent security-reviewer để xem xét PR này."

Khi nào nên dùng SubAgent và khi nào không?

Nó có ý nghĩa khi tác vụ dài và sẽ tạo ra nhiều đầu ra, khi bạn có thể chia công việc thành các phần độc lập chạy song song, hoặc khi bạn cần một agent chuyên biệt với các công cụ hạn chế.

Nó không đáng giá cho các tác vụ ngắn không làm đầy bối cảnh. Việc điều phối các SubAgent thêm độ phức tạp mà không cần thiết nếu agent chính có thể giải quyết tác vụ trong hai phút.

MCP: Kết nối Agent với thế giới bên ngoài

Các công cụ cho phép Claude Code hành động trên máy của bạn.

Nhưng có một giới hạn: mọi thứ xảy ra, đều xảy ra ở trong đó.

Nó không thể mở một PR trên GitHub, truy vấn một database sản xuất, hoặc tạo một ticket trong Jira. Để làm điều đó, trước đây bạn phải rời khỏi agent và tự làm bằng tay.

Làm thế nào để giải quyết? Với MCP.

MCP (Model Context Protocol) là một giao thức mở định nghĩa cách Claude Code kết nối với các dịch vụ bên ngoài.

Nó hoạt động với kiến trúc client-server: Claude Code là client, và mỗi dịch vụ bên ngoài có máy chủ MCP riêng để hiển thị những gì nó có thể làm.

Khi bạn kết nối một máy chủ MCP, Claude Code nhận được danh sách các công cụ có sẵn kèm tên và mô tả.

Từ đó, nó sử dụng chúng giống hệt như các công cụ gốc. Sự khác biệt duy nhất là hành động diễn ra trên dịch vụ bên ngoài, không phải trên máy của bạn.

text
1Claude Code
2
3Decides to use a tool from the GitHub MCP server
4
5┌─────────────────────────────┐
6│ GitHub MCP Server │
7│ │
8│ Opens the PR │
9│ Assigns reviewers │
10│ Returns confirmation │
11└─────────────────────────────┘
12
13Claude Code receives the result and continues

Không có MCP: Bạn bảo nó "tôi đã hoàn thành các thay đổi, mở PR" và Claude Code không thể. Bạn phải tự vào GitHub, điền vào biểu mẫu, phân công người đánh giá và tự merge.

Có MCP: Bạn cũng yêu cầu điều tương tự và Claude Code mở PR, viết mô tả, phân công người đánh giá và thông báo cho bạn khi sẵn sàng. Tất cả mà không cần bạn rời khỏi agent.

Một số máy chủ MCP bạn có thể kết nối ngay hôm nay:

GitHub - PR, đánh giá, issues

Postgres / Supabase - Truy vấn và sửa đổi database

Slack - Tin nhắn và kênh

Jira - Tickets và dự án

Các công cụ gốc dành cho môi trường cục bộ của bạn. MCP dành cho thế giới bên ngoài.

Tất cả kết hợp với nhau như thế nào

Claude Code là một agent: một hệ thống nhận một mục tiêu và hoạt động trong một vòng lặp tự chủ cho đến khi hoàn thành nó.

Mọi thành phần bạn thấy trong bài viết này đều tồn tại để làm cho vòng lặp đó mạnh mẽ hơn. Nhưng cách tốt nhất để hiểu nó là thấy chúng tương tác với nhau.

Trường hợp 1: Xem xét và merge một PR

Bạn yêu cầu Claude Code: "Xem xét PR #42 và nếu mọi thứ ổn, hãy merge nó."

→ Nó sử dụng GitHub MCP để đọc các file đã sửa đổi và hiểu các thay đổi

→ Nó ủy quyền phân tích bảo mật cho một SubAgent chuyên biệt, để không làm đầy bối cảnh chính

→ Một Hook chạy các bài kiểm tra cục bộ và xác minh rằng mọi thứ đều pass

→ Nếu các bài kiểm tra pass, nó sử dụng GitHub MCP để thực hiện merge mà bạn không cần chạm vào giao diện

Bạn đã viết một dòng. Claude Code đã điều phối bốn hệ thống.

Trường hợp 2: Viết tài liệu cho một API và thông báo cho nhóm

Bạn yêu cầu Claude Code: "Viết tài liệu cho các endpoint mới và báo cho nhóm biết."

→ Nó kích hoạt một Skill viết tài liệu xác định định dạng chính xác: bao gồm những gì, cấu trúc ra sao, thêm ví dụ nào

→ Nó sử dụng các Công cụ để đọc mã nguồn và trích xuất các endpoint

→ Một Hook định dạng đầu ra trước khi lưu

→ Nó sử dụng Slack MCP để gửi bản tóm tắt đến kênh của nhóm

Mỗi lần bạn làm điều này, kết quả sẽ giống nhau. Không có sự khác biệt, không cần bạn phải giải thích bất cứ điều gì.

Mọi thứ đều xoay quanh vòng lặp.

Bộ nhớ để bắt đầu mỗi phiên với đầy đủ thông tin. Công cụ để hành động. Hook để kiểm soát. Skill để chuẩn hóa. SubAgent để mở rộng quy mô. MCP để kết nối với thế giới bên ngoài.

Khi bạn hiểu điều đó, bạn hiểu Claude Code.

Và không chỉ Claude Code: Cursor, Copilot, và bất kỳ agent nào bạn sử dụng từ bây giờ đều vận hành trên cùng những nền tảng đó.

Tên gọi thay đổi, giao diện thay đổi, nhưng vòng lặp là giống nhau.

AI đang tiến bộ nhanh chóng.

Mỗi tuần lại có điều gì đó mới. Nhưng những nền tảng cốt lõi không thay đổi thường xuyên như vậy. Nắm rõ chúng là điều sẽ giúp bạn thích nghi nhanh hơn và khai thác được nhiều hơn từ những gì sắp tới.

Đừng chỉ sử dụng Claude Code để đưa ra câu lệnh. Hãy chú ý đến những gì xảy ra bên dưới. Đó là nơi có những cơ hội.

Một số điểm khởi đầu để bắt đầu ngay hôm nay:

→ Xem lại Bộ nhớ Tự động và cải thiện những gì Claude Code đã lưu

→ Tạo một file CLAUDE.md cho dự án của bạn nếu bạn chưa có

→ Kết nối GitHub MCP

→ Xây dựng một SubAgent cho các tác vụ làm đầy bối cảnh

→ Cấu hình một Hook chạy test sau mỗi lần thay đổi

Đó là tất cả, hẹn gặp lại bạn vào ngày mai.

Marcus

Lưu một chạm

Đọc sâu bài viết viral bằng AI trong YouMind

Lưu nguồn, đặt câu hỏi tập trung, tóm tắt lập luận và biến một bài viết viral thành các ghi chú có thể tái sử dụng trong một không gian làm việc AI duy nhất.

Khám phá YouMind
Dành cho nhà sáng tạo

Biến Markdown của bạn thành bài viết 𝕏 gọn gàng

Khi bạn đăng bài viết dài của riêng mình, việc định dạng hình ảnh, bảng và khối mã cho 𝕏 rất mệt mỏi. YouMind biến cả bản nháp Markdown thành một bài viết 𝕏 gọn gàng, sẵn sàng để đăng.

Thử Markdown sang 𝕏

Thêm pattern để giải mã

Bài viết viral gần đây

Khám phá thêm bài viết viral