Lý do khiến Claude Code “bá đạo” thế—và làm sao tái hiện phép màu đó cho agent của bạn!

Người Đưa Tin12 tháng 9 • 8 min read • 

Claude Code là con bot AI coding “ngon” nhất mà tôi từng trải nghiệm – bạn sẽ thích nó ngay lần đầu, tin tôi đi. Đừng tưởng nó chỉ biết “vibe” chỉnh sửa code linh tinh, Claude Code thực sự khiến người ta vui vẻ. Nó đủ tự lập để làm mấy trò hay hay mà lại không tạo cảm giác mất quyền kiểm soát (khác gì so với mấy con agent khác như Cursor hay Github Copilot đâu). Và bí quyết: phần lớn sức mạnh nằm ở Claude 4 (interleaved thinking là chìa khóa nha), nhưng công nhận Claude Code vẫn ít “ngứa mắt” hơn mấy thằng đồng nghiệp dù chạy cùng một model!

Đọc đến đây chắc cũng tò mò: Điều gì khiến Claude Code “đỉnh” thế? Sau đây tôi sẽ “mổ xẻ” từ góc nhìn của một thằng mê vọc vạch. Log vớ vẩn, prompt dị và tool kỳ quặc – đủ cả. TL;DR thì cứ kéo xuống cuối bài nhé, ai lười thì khỏi lăn tăn!

Cái gì cũng thấy update hơn hẳn. Nói chung Claude Code (CC) “chất” bởi vì:

NÓ HOẠT ĐỘNG ĐƠN GIẢN LÀ TỐT. Đội build CC hiểu LLM dở cái gì, mạnh cái gì, bù bằng prompt lẫn tool hợp lý. Control loop thì “lười” tới mức dễ debug cực kỳ.

MinusX nhảy vào xài CC ngay khi nó mới nhú. Để “soi gương”, bên tôi build luôn logger interception mọi network request – đủ trò soi mói. Sau đây là kinh nghiệm thực chiến được rút ruột máu của tôi.

Mục tiêu của bài: “Điều gì khiến Claude Code siêu ngon, bạn muốn làm agent giống nó thì phải lưu ý gì?” Mấy cái này vào MinusX hết rồi, bạn thích thì cứ bê về!

Tool Edit xài như nghiện, sau đó tới Read với ToDoWrite...

How to build a Claude Code like agent: TL;DR

Có một chân lý –
KEEP IT SIMPLE STUPID.
LLM vốn đã dễ “tấu hài”, càng bầy thêm complexity (multi-agents, RAG, agent handoff) chỉ tổ rối não và sau cùng chính mình “ngán” debug nhất. Muốn maintain lâu dài, “dọn rác” sạch sẽ, quẳng hết scaffold vớ vẩn.

Túm váy lại, những thứ đáng học theo của Claude Code như sau:

1. Control Loop

1.1 Duy trì một main loop, tối đa một nhánh phụ, một message history là đủ “xài”.
1.2 Lúc nào cũng thủ sẵn model nhỏ backup, chỗ nào cũng dùng được (spam cho tiết kiệm).

2. Prompts

2.1 Dùng kiểu file context (claude.md) để “giao lưu” preferences với user.
2.2 Tràn ngập XML Tag, markdown, ví dụ mọi nơi – như tutorial for dummies.

3. Tools

3.1 LLM search >>> RAG search (đừng mơ RAG cứu bạn nếu “dở hơi” đâu).
3.2 Thiết kế tool: High level cho nhanh, low level cho bền (bạn tự cân đo).
3.3 Cho agent tự quẩy todo list, đỡ bị “não cá vàng”.

4. Steerability

4.1 Kiểm soát “chất” văn bản – đừng bánh bèo quá, đừng phải đạo quá.
4.2 “IMPORTANT” hay “THIS IS IMPORTANT” vẫn là “meta-hack” thần thánh.
4.3 Viết sẵn quy trình, đưa cho model “bắt chước”.

CC chọn sự đơn giản triệt để – một loop, tìm kiếm dễ hiểu, todolist rõ ràng. Đừng over-engineer, hãy để model tự bơi – đúng tinh thần “bitter lesson”.

1. Control Loop Design

1.1 Giữ nguyên một main loop

Debug ngon hơn build multi-agent bầy đàn lang-chain-graph-node lung tung.

Hệ thống CC chỉ một thread chính. Khi cần “chia đề bài”, nó tự clone làm sub-agent, nhưng sub-agent không được “đẻ con cháu” nữa. Còn lại, mọi tin nhắn/trạng thái đều flat ở history.

Task dễ thì main loop xử đẹp. Task khoai thì tạo nhánh, giải quyết xong lại nhập main. Đảm bảo chia nhỏ nhưng không “chết chìm”.

Tin tôi đi, app của bạn chẳng cần multi-agent gì cả đâu. Chém thêm abstraction chỉ khổ thân bạn lúc fix bug.

1.2 Xài Model Nhỏ cho mọi task

Trên 50% LLM call của CC là vào claude-3-5-haiku – đọc file khủng, parse web, chắt lọc history, tóm tắt chat, gán label cho mọi phím bấm! Rẻ hơn 70-80% so với “ông lớn” như Sonnet, GPT-4.1, tiếc gì mà không spam!

2. Prompts

Prompt cực kỳ dài hơi, chém gió đủ chủ đề, luôn kèm lưu ý kiểu “IMPORTANT”, “ĐỪNG DẠI MÀ LÀM VẬY”. System prompt phồng to tận ~2800 tokens, còn Tool thì tận 9400 tokens. User prompt buộc phải kèm claude.md – nơi “cúng tổ” mọi user preference cứng đầu.

2.1 Giao tiếp preferences qua claude.md

Nhiều coding agent chọn kiểu file context (agent.md/claude.md/…) để nhét preference cho LLM. Khi có/không file này, hiệu quả CC một trời một vực. Thường ép LLM skip folder, chỉ cho xài thư viện chuẩn, v.v...

MinusX cũng “copy” y chang: minusx.md – ai muốn “quẩy” context cứ thêm vào!

2.2 Spam XML Tag với Markdown

Cách cc cấu trúc prompt là phải “lầy lội” với XML, markdown khắp nơi. Một loạt tag:

<system-reminder>: Đặt cuối prompt để “nhồi sọ” model, nhắc nhẹ nhưng không động chạm user.

Ví dụ:text<system-reminder>Todo hiện rỗng, đừng nói ra kẻo user phật ý. Cần thì tự management bằng TodoWrite đi.</system-reminder>

<good-example>, <bad-example>: So sánh hấp dẫn cách làm đúng & sai.textLuôn bám thư mục chuẩn dùng absolute path, tránh chạy cd vô tội vạ. <good-example> pytest /foo/bar/tests </good-example> <bad-example> cd /foo/bar && pytest tests </bad-example>

Markdown heading chia bài rõ: Tone, Proactiveness, Code Style, Task Management, Tool Policy...

3. Tools

Đọc full tool prompt đi, còn dài hơn phim truyền hình ~9400 tokens!

3.1 LLM search >>> RAG search

Khác bọt của CC là không “đu” RAG. CC search codebase như “hacker” dùng ripgrep, jq, find… regex cực mạnh, cần thì đọc thẳng cả file, “như người chứ không như máy”.

RAG tưởng sexy mà lòi nhiều “fail mode” tiềm ẩn: similarity function? Rerank kiểu gì? Chunk to sao? Xử lý file JSON/log khủng ra sao… Dùng LLM thông minh chủ động lấy context, RL train vẫn ổn áp hơn nhiều. Đừng nối 2 hệ thông minh phức tạp – chỉ khiến mọi thứ thành “nồi lẩu thập cẩm”.

3.2 Tool: High level vs Low level

Ai cũng băn khoăn: tool generic hay chia nhỏ tỉ mi? Câu trả lời: tuỳ, nhưng nên mix đủ loại.

CC xài Bash/Read/Write (low), Edit/Grep/Glob (medium), Task/WebFetch/diagnostics (high). Có bash rồi vẫn build Grep riêng vì dùng nhiều! High level tool càng xác định càng tốt cho model – khỏi lạc đề.

Các tool của Claude Code:

MultiEdit

Write

NotebookEdit

WebFetch

TodoWrite

WebSearch

mcp__ide__getDiagnostics

mcp__ide__executeCode

3.3 Để agent tự “thầu” todo list

Context rot: agent càng chạy lâu càng “tấu hài”. CC để model tự maintain todo list, hỗ trợ refocus, tự insert/xóa task giữa chừng. Dùng multi-agent handoff là chỉ có “dở khóc dở cười”. Để agent kiểm soát, profit tập trung cho chính nó, chán task nào tự skip, thích task nào tự đá vào.

4. Steerability

4.1 Tone & Style

Có guideline riêng kiểm soát chất – CC luôn “tasteful” vừa đủ, “hăng hái” chuẩn mực, không làm lố. Copy guideline này vào agent của bạn là chuẩn!

Ví dụ:

IMPORTANT: KHÔNG BAO GIỜ trả lời với intro/outro dư thừa (như giải thích code trừ khi user hỏi).

Không giúp thì thôi, đừng giải thích vì sao. User không thích bị giáo huấn đâu.

Chỉ dùng emoji nếu user đòi, tuyệt đối không tự phát mất điểm.

4.2 "THIS IS IMPORTANT" vẫn là thần chú

Đơn giản, “IMPORTANT”, “VERY IMPORTANT”, “DO NOT”, “NEVER”, “ALWAYS” vẫn là cách “hơi quèn” nhưng ăn chắc để nhồi model.

Ví dụ:

IMPORTANT: ĐỪNG BAO GIỜ comment lộn xộn trừ khi user order

VERY IMPORTANT: Cấm chạy find/grep, phải chơi Grep/Glob/Task

Luôn ưu tiên “ripgrep” (rg)

IMPORTANT: ĐỪNG tự chế URL nếu không chắc nó cho use-case kỹ thuật

4.3 Viết sẵn thuật toán + ví dụ cho AI học theo

Cái hệ “bảng hướng dẫn – checklist kèm ví dụ – flowchart” này rất cần, giúp model rõ ràng điểm rẽ, dễ mà theo đúng ý bạn. Đừng nhồi đống “Do/Don’t” lẫn lộn, càng dài càng mâu thuẫn.

Các section Task Management, Doing Tasks, Tool Usage Policy của CC đều detailed từng ca, heuristic đúng tình huống.

Bonus: Vì sao phải “soi” BigLab?

Prompt của BigLab “dầu sôi lửa bỏng” bao kinh nghiệm RLHF, steer LLM. Đọc để biết khi nào chơi JSON/XML, description cho tool nên nhét ở đâu, app state ở chỗ nào. Claude Code rất bướng, cứ copy “ý tứ” vào agent, xem hiệu quả liền.

Kết luận

Chốt: SIMPLIFY EVERYTHING.
Mấy framework scaffold rối rắm chỉ khiến AI “tẩu hỏa nhập ma”. Claude Code chứng minh agent vừa đơn giản vừa mạnh vãi luôn là có thật.
Team tôi học máu hết rồi, còn bạn thì sao?

Muốn “Claude-hoá” agent, ping tôi trên Twitter nhé. Còn muốn thử data agent kiểu Claude Code cho Metabase, cứ vào MinusX – không thử hơi phí!

Nguồn: https://minusx.ai/blog/decoding-claude-code/#appendix

#Tin Cùng Chuyên Mục
#Có Thể Bạn Chưa Biết