Output styles trong Claude Code: đổi cách Claude trả lời cho cả phiên
Tóm tắt
Output style đặt vai trò, giọng và định dạng trả lời cho cả phiên Claude Code. Concise cho tốc độ, Explanatory/Learning để học; style tự viết nhớ đặt keep-coding-instructions: true nếu vẫn muốn Claude code như cũ.
Bạn thấy Claude Code trả lời quá dài, mỗi lần phải dặn "ngắn thôi"? Hay bạn muốn dùng nó để học codebase mới, cần nó giải thích vì sao viết code như vậy? Thay vì lặp lại yêu cầu ở mỗi prompt, output style đặt vai trò, giọng điệu và định dạng trả lời cho cả phiên làm việc. Claude Code có sẵn 4 style ngoài Default, và bạn có thể tự viết style riêng, kể cả biến Claude thành trợ lý viết lách hay phân tích dữ liệu.
4 style có sẵn
| Style | Thay đổi gì | Dùng khi |
|---|---|---|
| Proactive | Bắt tay làm ngay, tự giả định hợp lý cho quyết định thường ngày thay vì hỏi | Bạn muốn Claude chạy liên tục và sẵn sàng sửa hướng nếu giả định sai |
| Concise | Câu đầu nêu kết quả, bỏ mở bài, tường thuật và tóm tắt cuối | Câu trả lời mặc định dài hơn bạn muốn |
| Explanatory | Thêm khối Insight ngắn giải thích lý do đằng sau code | Đang làm quen codebase hoặc muốn hiểu cả lý do |
| Learning | Như Explanatory, và chừa vài đoạn code có quyết định thiết kế để bạn tự viết (đánh dấu TODO(human)) | Muốn luyện code thật trong khi việc vẫn xong |
Vài chi tiết đáng chú ý: Concise vẫn viết đầy đủ khi bạn hỏi giải thích, hoặc với báo lỗi, cảnh báo bảo mật và xác nhận thao tác phá huỷ. Proactive không đổi permission mode; prompt xin quyền vẫn hiện như cũ.
Cách đổi style
/output-style concise # đổi ngay, không phân biệt hoa thường
/output-style # liệt kê style, đánh dấu style hiện tại
/config → Output style # chọn từ menu
Lựa chọn được lưu vào .claude/settings.local.json. Muốn đặt mặc định cho mọi dự án, ghi vào ~/.claude/settings.json:
{ "outputStyle": "Explanatory" }
Lưu ý: trong file settings, tên style phân biệt hoa thường. Ghi explanatory sẽ âm thầm rơi về Default.
Tự viết style
Style là một file Markdown đặt ở ~/.claude/output-styles (người dùng) hoặc .claude/output-styles (dự án):
---
name: Diagrams first
description: Mở đầu mọi giải thích bằng sơ đồ
keep-coding-instructions: true
---
Khi giải thích code hay kiến trúc, bắt đầu bằng sơ đồ Mermaid
(dưới 15 node), sau đó mới giải thích bằng lời.
Trường quan trọng nhất là keep-coding-instructions. Mặc định là false: style tuỳ biến sẽ bỏ phần hướng dẫn kỹ thuật phần mềm có sẵn của Claude Code (cách khoanh phạm vi thay đổi, viết comment, kiểm chứng). Nếu bạn chỉ muốn đổi cách giao tiếp mà vẫn code như cũ, đặt true.
Style hay tính năng khác?
| Bạn muốn | Dùng |
|---|---|
| Mọi câu trả lời theo một giọng, độ dài, vai trò | Output style |
| Claude biết quy ước, lệnh, cấu trúc dự án | CLAUDE.md |
| Quy trình cho một loại việc (checklist release) | Skill |
| Điều phải xảy ra mọi lần, không ngoại lệ | Hook |
| Trợ lý riêng với model, tool riêng | Subagent |
Rủi ro và lưu ý
- Style là chỉ dẫn, không phải cưỡng chế: Claude cố làm theo nhưng không đảm bảo 100%. Việc bắt buộc hãy dùng hook.
- Chi phí token: Explanatory và Learning cố ý trả lời dài hơn; Concise thì ngược lại. Đổi style giữa phiên có ảnh hưởng tới prompt cache ở lượt đầu.
- Subagent không bị ảnh hưởng: style chỉ áp lên hội thoại chính (và fork), subagent chạy system prompt riêng.
- Sửa file style giữa phiên: cần khởi động lại Claude Code mới nạp thay đổi.
Áp dụng thế nào?
- Dev: Dùng Concise cho việc hằng ngày, chuyển sang Explanatory khi vào codebase lạ.
- Tech Lead: Cho junior dùng Learning trong tuần onboarding: việc vẫn xong mà người mới tự viết các đoạn có quyết định thiết kế.
- PM: Viết style tuỳ biến (
keep-coding-instructionsđể false) biến Claude Code thành trợ lý viết spec hay phân tích dữ liệu trong repo tài liệu.
Nguồn & tham khảo
- Output styles — Claude Code Docs