Claude Code từ zero đến thành thạo · Phần 21 — Cấu hình: settings, model, effort, fast mode, output style
Bốn tầng settings và thứ tự ưu tiên, các khoá đáng biết, chọn model và effort level, extended thinking, context 1M và ngưỡng auto-compact, fast mode, cùng output style — thứ đổi hẳn vai và giọng của Claude.
Hai mươi phần trước đã nhắc tới settings ở rất nhiều chỗ. Bài này gom chúng lại thành một chỗ tra cứu: file settings nằm đâu, ai thắng ai, khoá nào đáng biết, rồi tới chọn model và effort, fast mode, và output style.
Bốn tầng settings
| Phạm vi | Vị trí | Ảnh hưởng ai | Chia sẻ |
|---|---|---|---|
| Managed | managed-settings.json ở cấp hệ thống (server/plist/registry) | Mọi thành viên tổ chức hoặc mọi user trên máy | Có, do IT triển khai |
| User | ~/.claude/settings.json | Bạn, ở mọi project | Không |
| Project | .claude/settings.json | Mọi collaborator của repo | Có, trong git |
| Local | .claude/settings.local.json | Bạn, chỉ trong repo này | Không, bị gitignore |
Trên Windows, ~/.claude giải về %USERPROFILE%\.claude.
Thứ tự ưu tiên
Khi cùng một setting xuất hiện ở nhiều tầng, Claude Code áp theo thứ tự:
- Managed — cao nhất, không ghi đè được
- Tham số dòng lệnh — override tạm cho phiên
- Local — thắng project và user
- Project — thắng user
- User — thấp nhất
Ngoại lệ quan trọng: permission rule GỘP giữa các tầng thay vì ghi đè — và như phần 7 đã nói, một deny rule ở bất kỳ tầng nào cũng chặn được một allow rule ở tầng khác.
Chạy /status để xem file settings nào đã nạp. Hoặc /config key=value để đổi một tuỳ chọn mà không mở giao diện.
Khi nào thay đổi có hiệu lực
Phần lớn settings tự nạp lại khi file đổi, gồm permissions, hooks, env, và các credential helper.
Nhưng ba thứ chỉ đọc một lần lúc khởi động, nên cần khởi động lại: model (dùng /model để đổi giữa phiên), outputStyle (có hiệu lực sau /clear), và fastMode.
Các khoá đáng biết
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"model": "opus",
"permissions": {
"allow": ["Bash(npm run lint)", "Bash(npm run test *)"],
"deny": ["Bash(curl *)", "Read(./.env)", "Read(./secrets/**)"]
},
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1"
},
"autoCompactEnabled": true,
"autoMemoryEnabled": true
}
| Khoá | Tác dụng |
|---|---|
model | Model mặc định. Đọc lúc bắt đầu phiên; dùng /model để đổi giữa phiên |
permissions | Allow/ask/deny rule cho tool và tài nguyên (phần 7) |
env | Biến môi trường cho Claude Code |
hooks | Lệnh chạy theo sự kiện (phần 13) |
alwaysThinkingEnabled | Bật extended thinking mặc định |
autoCompactEnabled | Tự compact khi đầy context. Mặc định true |
autoCompactWindow | Ngưỡng context window, 100k–1M token |
autoMemoryEnabled / autoMemoryDirectory | Bật auto memory / đổi chỗ lưu (phần 4) |
availableModels | Giới hạn model nào user chọn được |
cleanupPeriodDays | Số ngày trước khi xoá file phiên cũ. Mặc định 30, tối thiểu 1 |
defaultShell | Shell mặc định cho lệnh ! — "bash" hoặc "powershell" |
statusLine | Định dạng status line tuỳ biến |
outputStyle | Output style |
attribution | Text ghi công trong commit/PR |
companyAnnouncements | Thông báo hiện lúc khởi động |
autoUpdatesChannel | Kênh phát hành — "latest" hoặc "stable" |
disableBundledSkills | Tắt bundled skill (trừ /doctor) |
skillOverrides | Ghi đè mức hiển thị của skill (phần 12) |
claudeMdExcludes | Loại CLAUDE.md theo path/glob (phần 4, 20) |
worktree | baseRef, sparsePaths, symlinkDirectories, bgIsolation (phần 17, 20) |
crossSessionInbound / isolatePeerMachines | Kiểm soát nhắn tin giữa các phiên (phần 17) |
disableWorkflows / workflowSizeGuideline | Tắt / chặn quy mô dynamic workflow (phần 18) |
disableAllHooks | Tắt mọi hook (phần 13) |
Nhóm dành cho quản trị viên, chỉ có tác dụng ở managed settings: allowManagedPermissionRulesOnly, allowManagedHooksOnly, allowedMcpServers / deniedMcpServers / allowManagedMcpServersOnly, blockedMarketplaces, strictKnownMarketplaces, allowedHttpHookUrls, disableCommandPluginSources, claudeMd, forceLoginMethod.
Chọn model
Cấu hình model theo thứ tự ưu tiên:
- Trong phiên —
/model <alias|name>để đổi ngay, hoặc/modelkhông tham số để mở picker - Lúc khởi động —
claude --model <alias|name> - Biến môi trường —
ANTHROPIC_MODEL=<alias|name> - Settings — trường
modeltrong file settings
Trong picker: Enter đổi model và lưu làm mặc định; s chỉ đổi cho phiên hiện tại. Gõ /model <name> trực tiếp hành xử như Enter.
Flag
--modelvà biếnANTHROPIC_MODELchỉ áp cho phiên bạn khởi động với chúng. Muốn chạy model khác nhau ở nhiều terminal cùng lúc thì khởi động mỗi cái với flag riêng thay vì đổi bằng/model.
Và một hành vi hữu ích: phiên resume giữ nguyên model nó đang dùng lúc transcript được lưu, bất kể setting model hiện tại — điều này ngăn lựa chọn /model của một phiên khác làm đổi model khi resume.
Alias
| Alias | Hành vi |
|---|---|
default | Xoá mọi override và về model được khuyến nghị cho loại tài khoản của bạn. Không phải một alias model |
best | Fable 5 ở nơi tổ chức bạn có quyền, ngược lại là Opus mới nhất |
fable | Claude Fable 5, cho task khó và chạy lâu nhất |
sonnet | Sonnet mới nhất, cho việc coding hằng ngày |
opus | Opus mới nhất, cho suy luận phức tạp |
haiku | Haiku, nhanh và tiết kiệm cho việc đơn giản |
sonnet[1m] / opus[1m] | Cùng model với context window 1 triệu token |
opusplan | Chế độ đặc biệt: dùng opus trong plan mode, rồi chuyển sang sonnet khi thực thi |
Nhắc lại từ phần 3:
opusplannghĩa là mỗi lần vào/ra plan mode là một lần đổi model, và đổi model huỷ toàn bộ prompt cache.
Effort level
Effort level điều khiển adaptive reasoning — để model tự quyết có nên nghĩ và nghĩ bao nhiêu ở mỗi bước, dựa trên độ phức tạp của task.
| Model | Các mức |
|---|---|
| Fable 5 | low, medium, high, xhigh, max |
| Opus 5, Sonnet 5, Opus 4.8, Opus 4.7 | low, medium, high, xhigh, max |
| Opus 4.6, Sonnet 4.6 | low, medium, high, max |
Mặc định là high trên mọi model hỗ trợ effort, trừ Opus 4.7 mặc định xhigh. Đặt một mức model đang chạy không hỗ trợ thì Claude Code lùi về mức cao nhất được hỗ trợ ở dưới hoặc bằng mức bạn đặt — ví dụ xhigh chạy như high trên Opus 4.6.
| Mức | Dùng khi |
|---|---|
low | Dành cho task ngắn, phạm vi hẹp, nhạy về độ trễ và không nhạy về trí tuệ |
medium | Giảm token cho việc nhạy về chi phí, chấp nhận đổi một phần trí tuệ |
high | Cân bằng token và trí tuệ. Mặc định |
xhigh / max | Suy luận sâu nhất. max chỉ áp cho phiên hiện tại trừ khi đặt qua CLAUDE_CODE_EFFORT_LEVEL |
low, medium, high, xhigh tồn tại qua các phiên khi bạn đặt chúng trong một phiên tương tác.
ultracode không phải một mức effort của model — nó là một setting của Claude Code: gửi xhigh cho model và thêm việc bắt Claude điều phối dynamic workflow cho các task đáng kể (phần 18). Nó chỉ áp cho phiên hiện tại, và biến CLAUDE_CODE_EFFORT_LEVEL cùng setting effortLevel không nhận giá trị này.
Extended thinking
Extended thinking là phần suy luận Claude phát ra trước khi trả lời. Trên model hỗ trợ adaptive reasoning, effort level là điều khiển chính; các thiết lập dưới đây chỉ bật/tắt và điều khiển cách hiển thị.
| Điều khiển | Cách đặt |
|---|---|
| Bật/tắt cho phiên hiện tại | Option+T (macOS) hoặc Alt+T (Windows/Linux) |
| Đặt mặc định toàn cục | /config, toggle thinking mode → lưu thành alwaysThinkingEnabled |
| Tắt bất kể effort | MAX_THINKING_TOKENS=0 |
Thinking không tắt được trên Fable 5 — cả ba cách trên đều không có tác dụng ở đó.
Claude Code gập output thinking mặc định; bấm Ctrl+O để bật verbose mode và xem phần suy luận dưới dạng chữ xám in nghiêng. Phiên tương tác trên Anthropic API nhận redacted thinking block mặc định — đặt showThinkingSummaries: true nếu bạn muốn có bản tóm tắt đầy đủ khi mở ra.
Bạn bị tính phí cho mọi thinking token được sinh ra, kể cả khi nó bị gập hay bị redact.
Muốn suy luận sâu hơn cho một lần duy nhất thì chèn ultrathink vào bất kỳ đâu trong prompt hoặc trong nội dung skill (phần 12).
Context 1 triệu token
Fable 5, Sonnet 5, Opus 4.6 trở lên, và Sonnet 4.6 hỗ trợ context window 1 triệu token. Trên Anthropic API, Fable 5, Sonnet 5 và Opus 4.7 trở lên luôn chạy với cửa sổ 1M.
| Gói | Opus với 1M | Sonnet 4.6 với 1M |
|---|---|---|
| Max, Team, Enterprise | Bao gồm trong subscription | Cần usage credit |
| Pro | Cần usage credit | Cần usage credit |
| API và pay-as-you-go | Toàn quyền | Toàn quyền |
Cửa sổ 1M dùng giá model tiêu chuẩn, không có phụ phí cho token vượt 200K.
Tắt bằng CLAUDE_CODE_DISABLE_1M_CONTEXT=1 — Claude Code gỡ các biến thể 1M khỏi picker, và với model có cửa sổ 1M gốc như Sonnet 5 thì coi model đó như có cửa sổ 200K.
Ngưỡng auto-compact
Auto-compact window là mức context window được phép đầy tới đâu trước khi Claude Code compact hội thoại. Ba chỗ đặt được, theo thứ tự ưu tiên tăng dần:
/autocompact 500k— lưu vào user settings thànhautoCompactWindowvà áp cho phiên hiện tại./autocompact autođể về cửa sổ được tinh chỉnh cho model của bạn.--autocompactlúc khởi động — override setting đã lưu cho lần launch đó, và không bị tầng settings ưu tiên cao hơn chặn như/autocompactbị.CLAUDE_CODE_AUTO_COMPACT_WINDOW— thắng cả lệnh, cả flag, cả setting.
Lệnh và flag nhận cỡ từ 100K tới 1M token, dưới dạng số thuần (200000), có hậu tố (500k, 1M), hoặc một số trần từ 100 tới 1000 nghĩa là nghìn (200 là 200.000). Biến môi trường chỉ nhận số thuần. Claude Code chặn trên ở context window của model.
Không đặt gì thì Claude Code compact khi hội thoại đạt giới hạn context của model, trừ vài trường hợp: phiên cloud compact khi gần tới giới hạn; Sonnet 4.6 và Opus 4.6 không có extended context compact ở mốc 200K; Sonnet 5 compact ở khoảng 967K mặc định; và phiên trên một model ID Claude Code không nhận diện được compact ở cửa sổ nó giả định cho ID đó.
Trường hợp cuối đáng nhớ nếu bạn dùng LLM gateway: dùng
CLAUDE_CODE_MAX_CONTEXT_TOKENSđể khai cửa sổ Claude Code nên giả định.
Fast mode
Fast mode là một cấu hình tốc độ cao cho Claude Opus, làm model nhanh tới 2,5 lần với chi phí mỗi token cao hơn.
Fast mode không phải một model khác. Nó dùng Claude Opus với một cấu hình API khác, ưu tiên tốc độ hơn hiệu quả chi phí. Bạn nhận đúng chất lượng và năng lực đó, chỉ phản hồi nhanh hơn. Hỗ trợ trên Opus 5 và Opus 4.8; không có trên Sonnet, Haiku hay model khác.
Bật bằng /fast, hoặc "fastMode": true trong user settings. Khi bật: nếu bạn đang ở model khác thì Claude Code tự chuyển sang Opus; hiện thông báo Fast mode ON; và một icon ↯ nhỏ xuất hiện cạnh prompt.
Đánh đổi chi phí — phần quan trọng nhất
| Model | Input (MTok) | Output (MTok) |
|---|---|---|
| Opus 5 | 10 USD | 50 USD |
| Opus 4.8 | 10 USD | 50 USD |
Giá fast mode phẳng trên toàn bộ cửa sổ 1M token.
Lần đầu bạn bật fast mode trong một hội thoại, bạn trả giá input token fast mode chưa cache cho TOÀN BỘ ngữ cảnh hội thoại. Càng vào sâu trong hội thoại thì việc này càng đắt — nên bật fast mode ngay từ đầu thì rẻ hơn.
Chi phí đó chỉ phát sinh một lần cho mỗi hội thoại, nên tắt rồi bật lại sau đó không lặp lại nó (xem phần 3).
Dùng fast mode cho việc tương tác mà độ trễ quan trọng hơn chi phí: lặp nhanh trên thay đổi code, debug trực tiếp, việc gấp deadline. Dùng standard mode cho task tự chủ chạy dài, xử lý hàng loạt, CI/CD, và workload nhạy chi phí.
| Thiết lập | Tác dụng |
|---|---|
| Fast mode | Cùng chất lượng model, độ trễ thấp hơn, chi phí cao hơn |
| Effort level thấp hơn | Ít thời gian nghĩ hơn, phản hồi nhanh hơn, chất lượng có thể thấp hơn ở task phức tạp |
Kết hợp được cả hai để đạt tốc độ tối đa trên các task đơn giản.
Điều kiện và giới hạn
Fast mode cần Anthropic API hoặc subscription — không có trên Bedrock, Google Cloud’s Agent Platform, Microsoft Foundry, hay Claude Platform on AWS. Trên gói subscription, usage credit phải được bật, và fast mode rút trực tiếp từ usage credit kể cả khi bạn còn usage trong gói. Với Team và Enterprise, fast mode tắt mặc định và một Owner phải bật nó.
Khi đụng rate limit của fast mode: nó tự lùi về tốc độ tiêu chuẩn, icon ↯ chuyển xám để báo cooldown, bạn làm việc tiếp ở tốc độ và giá tiêu chuẩn, và fast mode tự bật lại khi cooldown hết.
Nếu hết usage credit giữa phiên, Claude Code thử lại từng request bị từ chối ở tốc độ tiêu chuẩn — bạn vẫn làm việc được và không có cooldown.
Muốn mỗi phiên bắt đầu với fast mode tắt và buộc opt-in tường minh:
{
"fastModePerSessionOptIn": true
}
Hữu ích để kiểm soát chi phí trong tổ chức nơi user chạy nhiều phiên song song.
Output style
Output style đổi CÁCH Claude phản hồi, không đổi thứ Claude BIẾT. Nó sửa system prompt để đặt vai, giọng, và định dạng output.
Dùng nó khi bạn cứ phải prompt lại cùng một giọng hoặc định dạng ở mọi lượt, hoặc khi bạn muốn Claude làm một việc không phải software engineering.
Với chỉ dẫn về project, convention hay codebase thì dùng CLAUDE.md (phần 4), không dùng output style.
Bốn style dựng sẵn
- Default — system prompt sẵn có, thiết kế để làm task software engineering hiệu quả
- Proactive — Claude thực thi ngay, đưa ra giả định hợp lý thay vì dừng lại hỏi các quyết định thường lệ, và ưu tiên hành động hơn lập plan. Đây là hướng dẫn tự chủ mạnh hơn mức auto mode áp, và nó hoạt động mà không đổi permission mode của bạn — nên permission mode vẫn quyết định thứ gì chạy mà không cần hỏi
- Explanatory — chèn các mục “Insights” mang tính giáo dục giữa lúc làm việc, giúp bạn hiểu các lựa chọn cài đặt và pattern của codebase
- Learning — chế độ học qua làm: Claude chia sẻ “Insights” và còn nhờ bạn tự viết những mảnh code nhỏ có tính chiến lược, chèn marker
TODO(human)vào code cho bạn hiện thực
Đổi style
Chạy /config rồi chọn Output style. Claude Code lưu lựa chọn vào .claude/settings.local.json. Hoặc sửa trực tiếp:
{
"outputStyle": "Explanatory"
}
Output style là phần của system prompt, mà Claude Code đọc một lần lúc bắt đầu phiên. Thay đổi chỉ có hiệu lực sau
/clearhoặc ở phiên mới.Lệnh riêng
/output-styleđã bị gỡ ở v2.1.91 — dùng/confighoặc sửa setting.
Tự viết output style
Một file Markdown, ba cấp lưu được: ~/.claude/output-styles (user), .claude/output-styles (project), và trong thư mục managed settings. Tên file trở thành tên style trừ khi bạn đặt name trong frontmatter.
---
name: Diagrams first
description: Lead every explanation with a diagram
keep-coding-instructions: true
---
When explaining code, architecture, or data flow, start with a Mermaid diagram showing the structure, then explain in prose.
## Diagram conventions
Use `flowchart TD` for control flow and `sequenceDiagram` for request paths. Keep diagrams under 15 nodes.
| Frontmatter | Mục đích | Mặc định |
|---|---|---|
name | Tên style, nếu không lấy tên file | Lấy từ tên file |
description | Mô tả, hiện trong picker /config | Không |
keep-coding-instructions | Giữ chỉ dẫn software engineering dựng sẵn của Claude Code | false |
force-for-plugin | Chỉ cho output style của plugin: tự áp style này khi plugin được bật, ghi đè setting outputStyle của user | false |
Trường
keep-coding-instructionslà quyết định quan trọng nhất khi tự viết style. Đặttruekhi bạn đổi cách Claude giao tiếp nhưng vẫn muốn nó code như cũ. Bỏ trống khi Claude sẽ không làm software engineering gì cả — ví dụ một trợ lý viết lách hay một nhà phân tích dữ liệu.
Cách nó hoạt động
Claude Code thêm chỉ dẫn của output style vào cuối system prompt, và mọi output style đều kích hoạt các lời nhắc để Claude tuân theo chúng suốt hội thoại.
Output style chỉ áp cho hội thoại chính. Một subagent chạy system prompt riêng của nó nên style không đổi cách subagent phản hồi. Fork là ngoại lệ, vì nó kế thừa trọn system prompt của cha (phần 16).
So với bốn cơ chế gần giống
| Cơ chế | Cách hoạt động | Dùng khi |
|---|---|---|
| Output style | Sửa system prompt | Bạn muốn một vai, giọng, hoặc định dạng phản hồi mặc định khác ở mọi lượt |
CLAUDE.md | Thêm một tin nhắn user sau system prompt | Claude nên luôn biết convention và ngữ cảnh codebase của bạn |
--append-system-prompt | Nối vào system prompt mà không gỡ gì | Bạn muốn một bổ sung một lần cho một lời gọi duy nhất |
| Subagent | Chạy với system prompt, model và tool riêng | Bạn muốn một trợ lý có phạm vi tách biệt cho một task tập trung |
| Skill | Nạp chỉ dẫn theo task khi được gọi hoặc khi liên quan | Bạn có một workflow tái dùng |
Nguồn
- Claude Code settings
- Model configuration
- Speed up responses with fast mode
- Output styles
- Environment variables
Docs gốc cập nhật thường xuyên; khi có mâu thuẫn, tin bản tiếng Anh.