Khám phá Claude Code: Những tính năng ẩn trong mã nguồn mà tài liệu chưa đề cập
Bằng cách phân tích trực tiếp mã nguồn của Claude Code, chúng tôi đã phát hiện hàng loạt tính năng chưa được tài liệu hóa như hệ thống phân quyền 'YOLO', khả năng ghi nhớ liên tục của tác nhân và các vòng lặp tự cải thiện. Bài viết này sẽ hướng dẫn bạn cách cấu hình và tận dụng tối đa những công cụ mạnh mẽ này để nâng cao hiệu quả lập trình.

Claude Code – Everything You Can Configure That the Docs Don't Tell You
Hệ thống phân quyền tự động (auto-mode) của Claude Code thực tế được gọi nội bộ là “YOLO Classifier”. Đúng vậy, đây là tên biến thực tế trong tệp yoloClassifier.ts. Bạn thậm chí có thể cấu hình nó bằng những câu mô tả tiếng Anh đơn giản về môi trường của mình, ví dụ như “đây là máy chủ staging, các thao tác hủy dữ liệu là chấp nhận được”, để bộ phân tích quyết định xem hành động nào là an toàn để tự động phê duyệt. Điều này hoàn toàn không xuất hiện trong bất kỳ tài liệu chính thức nào.
Đây chỉ là một trong hàng chục khả năng chưa được ghi nhận nằm sâu trong mã nguồn của Claude Code – gói npm công khai đang nằm ngay trong thư mục node_modules của bạn. Trong khi tài liệu chính thức đã bao quát khá tốt những kiến thức cơ bản, thì mã nguồn mới thực sự là nơi tiết lộ các trường dữ liệu, định dạng phản hồi và cài đặt có thể mở rộng đáng kể những gì bạn có thể xây dựng. Mọi thứ dưới đây đều hoạt động ngay bây giờ và mọi ví dụ đều sẵn sàng để bạn sao chép vào dự án của mình.
Claude Code Interface
Hooks có thể “trả lời” lại và cách sử dụng chúng
Đây là khoảng trống lớn nhất trong tài liệu hiện tại. Tài liệu chỉ cho bạn biết rằng hooks nhận dữ liệu JSON qua stdin và mã thoát (exit code) 2 sẽ chặn một thao tác. Nhưng họ không nói rằng hooks có thể trả về JSON qua stdout với các trường cụ thể cho từng sự kiện để sửa đổi hành vi của Claude Code theo thời gian thực.
Các hook PreToolUse có thể trả về:
updatedInput: Ghi lại đầu vào của công cụ trước khi nó thực thi. Bạn có thể sửa đổi lệnh ngay khi nó đang chạy.permissionDecision: Buộc “cho phép” hoặc “từ chối” mà không cần hỏi người dùng.permissionDecisionReason: Giải thích quyết định (hiển thị trong giao diện).additionalContext: Chèn văn bản vào ngữ cảnh cuộc trò chuyện.
Ví dụ, dưới đây là một hook PreToolUse tự động thêm --dry-run vào bất kỳ lệnh git push nào trước khi Claude thực thi nó.
Trong tệp settings.json:
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "~/.claude/hooks/dry-run-pushes.sh"
}]
}]
}
}
Và script tại ~/.claude/hooks/dry-run-pushes.sh:
#!/bin/bash
INPUT=$(jq -r '.tool_input.command')
if [[ "$INPUT" == git\ push* ]]; then
jq -n --arg cmd "$INPUT --dry-run" '{"updatedInput": {"command": $cmd}}'
else
jq -n '{}'
fi
Các trường ẩn trong Skills (Kỹ năng)
Tài liệu đề cập đến các trường như name, description, allowed-tools. Tuy nhiên, trình phân tích frontmatter thực tế trong mã nguồn chấp nhận thêm 6 trường nữa.
- model: Cho phép bạn ghi đè mô hình chạy kỹ năng. Sử dụng
haikucho các tác vụ rẻ và nhanh,opuscho phân tích phức tạp. - effort: Kiểm soát mức độ suy nghĩ của mô hình:
low,medium,high, hoặcmax. - hooks: Định nghĩa các hook chỉ hoạt động khi kỹ năng đó được kích hoạt.
Ví dụ về một kỹ năng sử dụng mô hình Haiku để kiểm tra nhanh:
---
name: quick-lint
description: Kiểm tra lint nhanh sử dụng mô hình rẻ nhất
model: haiku
effort: low
allowed-tools: Bash, Read
argument-hint: "[file]"
---
Chạy linter dự án trên: $ARGUMENTS
Tùy chỉnh Agents (Tác nhân) với bộ nhớ liên tục
Các tác nhân tùy chỉnh trong thư mục .claude/agents/ hỗ trợ các trường frontmatter mà tài liệu không đề cập đến.
- color: Thiết lập màu UI (red, orange, green, blue...) để phân biệt tác nhân.
- memory: Đây là trường quan trọng nhất. Nó cung cấp cho tác nhân bộ nhớ liên tục qua các lần gọi:
user: Toàn cục, lưu giữ qua tất cả dự án.project: Lưu giữ theo từng dự án.local: Riêng tư theo dự án (bị git bỏ qua).
Điều này có nghĩa là bạn có thể xây dựng một tác nhân có khả năng học hỏi. Một người đánh giá bảo mật theo dõi các phát hiện trong quá khứ, hoặc một người đánh giá mã nhớ các mẫu của bạn qua các phiên làm việc.
Ví dụ một tác nhân hướng dẫn codebase với bộ nhớ:
---
name: codebase-guide
description: Trả lời câu hỏi về codebase, học hỏi thêm mỗi phiên
tools: [Read, Grep, Glob, Bash]
color: green
memory: project
---
Bạn là hướng dẫn viên codebase với bộ nhớ liên tục. Kiểm tra bộ nhớ của bạn trước khi khám phá mã.
Cấu hình Auto-mode bằng ngôn ngữ tự nhiên
Trường autoMode trong settings.json cấu hình những gì Anthropic gọi nội bộ là “YOLO Classifier”. Điều này kiểm soát những gì được tự động phê duyệt trong chế độ tự động.
{
"autoMode": {
"allow": [
"Bash(npm test)",
"Bash(git status)",
"Read",
"Grep"
],
"soft_deny": [
"Bash(git push *)",
"Bash(rm *)",
"Write(.env*)"
],
"environment": [
"NODE_ENV=development",
"Đây là máy dev cục bộ không có quyền truy cập database sản phẩm",
"Tất cả container Docker sử dụng mạng cô lập"
]
}
}
Mảng environment đặc biệt ở chỗ nó không phải là mẫu (pattern), mà là các chuỗi ngữ cảnh tiếng Anh thuần túy mà bộ phân tích đọc để hiểu thiết lập của bạn. Bạn có thể viết “Dự án này sử dụng Docker, mọi lệnh chạy trong container” và bộ phân tích sẽ tính toán điều đó vào các quyết định an toàn của mình.
Vòng lặp học tập tự cải thiện
Hai trường trong settings.json kích hoạt hệ thống tự cải thiện của Claude Code:
{
"autoMemoryEnabled": true,
"autoDreamEnabled": true
}
- autoMemoryEnabled: Khiến Claude Code tự động trích xuất các ký ức bền vững từ các phiên của bạn. Sau mỗi cuộc trò chuyện, một tác nhân nền sẽ kéo ra những điều đáng nhớ, sở thích của bạn, mẫu codebase, và ghi chúng vào bộ nhớ.
- autoDreamEnabled: Kích hoạt quá trình hợp nhất “dream” (giấc mơ) trong nền. Mỗi 24 giờ, nếu có 5 phiên trở lên được tích lũy, một tác nhân nền sẽ xem xét lại các bản ghi phiên và hợp nhất ký ức.
Tạo thành một vòng lặp học tập kép: các phiên tạo ra ký ức, các giấc mơ hợp nhất ký ức, và các ký ức đã hợp nhất sẽ thông báo cho các phiên trong tương lai.
Kết luận
Những tính năng chưa được tài liệu hóa này cho thấy khoảng cách giữa những gì Claude Code là ngày hôm nay và những gì Anthropic đang xây dựng nó trở thành. Hệ thống hooks với các trường phản hồi cụ thể theo sự kiện là một lớp trung gian có thể lập trình cho việc sử dụng công cụ AI, linh hoạt hơn nhiều so với hầu hết các đường ống CI/CD. Bộ nhớ tác nhân liên tục tạo ra các chuyên gia AI tích lũy chuyên môn thực sự qua các phiên.
Đây không phải là các cài đặt ẩn hay trứng phục sinh. Chúng là giàn giáo cho các môi trường phát triển AI tự chủ, liên tục và có khả năng học hỏi, và chúng đã hoạt động hoàn chỉnh trong gói npm trên máy của bạn.



