输出风格
用内置的 Proactive、Concise、Explanatory、Learning 风格或自定义风格,改变 Claude 的角色、语气和回复格式;怎么切换,怎么自己写一个。
输出风格是一组为整个会话设定 Claude 的角色、语气和回复格式的指令。Claude Code 在默认风格之外内置了四种,你也可以自己写。用输出风格改变 Claude 在整个会话里回应你和与你协作的方式,这样不必在每条提示里重复同样的要求。例如,内置风格可以让回复更短、给每处改动加解释,或让 Claude 不问常规问题就开始工作。
输出风格只是给 Claude 的指令,不保证某事一定发生或一定不发生。关于项目的知识放 CLAUDE.md;必须每次都发生的事(如每次编辑后格式化、阻止某个命令)用 Hook。
内置输出风格
Claude Code 以 Default 风格启动,即它完成软件工程任务的标准指令。其他四种内置风格都保留这些指令,并加上自己的。
| 风格 | 改变了什么 | 何时用 |
|---|---|---|
| Proactive | Claude 立即开始工作,对常规决策做合理假设而不是询问 | 想让 Claude 自己处理常规决策,假设错了你再纠正 |
| Concise | 回复先说结果,省略开场白、过程叙述和总结 | 默认回复比你想要的长 |
| Explanatory | Claude 添加简短的 Insight 块,解释它写的代码背后的选择 | 你在熟悉代码库,或想要改动连同理由一起得到 |
| Learning | Claude 解释它的选择,并留下一小段代码让你自己写 | 想在任务照常完成的同时得到动手编码练习 |
- Default:没有选择输出风格。Claude Code 不加任何风格指令,Claude 按为软件工程任务写的标准系统提示工作
- Proactive:Claude 收到任务就开始实现,对常规决策做合理假设而不是停下来问,除非你要求计划,否则不会切到计划模式,你可以随时纠正方向。风格指令也让 Claude 在删除数据或改动共享/生产系统的动作之前在对话里先向你确认,这是 Claude 遵循的指令,与权限提示是两回事。切换到 Proactive 不会改变你的权限模式
- Concise:回复的第一句话说明发生了什么或答案是什么,省略引导语、逐步叙述和结尾总结,简单问题用一到三句话回答;工程工作做得和 Default 一样彻底。当你要求解释或更多细节、以及你为了安全行动需要的内容(错误报告、失败的测试输出、安全警告、对破坏性动作的确认)时,Claude 仍然写全长
- Explanatory:Claude 像 Default 那样完成任务,并添加简短的解释说明它为什么做出这些选择,每条解释出现在对话里它所针对的代码之前或之后,放在标为
Insight的块里;这些解释不会写进你的文件 - Learning:Claude 添加与 Explanatory 同样的
Insight块,并且请你写一部分代码。Claude 自己处理常规实现;遇到有真正设计决策的部分(如错误处理、数据结构或业务逻辑)时,它在文件里用TODO(human)注释标出位置,然后发一条说明已经做了什么、要写什么、要权衡什么的请求,之后停下来等你。你在TODO(human)处写你的代码,完成后告诉 Claude,它会就你的代码给出一条Insight并继续任务
切换输出风格
用命令、菜单或设置文件选择风格。命令和两个菜单会把你的选择保存到 .claude/settings.local.json(本地项目级)。
/output-style命令:运行/output-style <style>切换,如/output-style concise;不带参数时列出你能选的风格并标出当前的。这个命令在非交互模式和 Agent SDK 会话里也能用(需要 v2.1.269 或更新版本)- 终端菜单:运行
/config并选 Output style - VS Code 扩展:用
/打开命令菜单并选 Output styles,可以选择包括你自定义风格在内的风格 - 桌面应用:在设置文件里设置
outputStyle字段
不用菜单设置风格,直接在设置文件里编辑 outputStyle 字段:
{
"outputStyle": "Explanatory"
}值区分大小写,内置名要写成 Proactive、Concise、Explanatory 和 Learning;与风格名不完全匹配的值(如 explanatory)会得到 Default 风格(/output-style 命令则忽略大小写)。想让某个风格成为跨项目的默认,在 ~/.claude/settings.json 里设置 outputStyle,项目自己的设置文件优先于这个值。会话中途切换风格时,Claude 从你的下一条消息开始使用新风格。
创建自定义输出风格
自定义输出风格是一个 Markdown 文件:前置信息放元数据,后面是给 Claude 的指令。可以保存在三个层级之一,文件名成为风格名(除非你在前置信息里设置 name):
- 用户:
~/.claude/output-styles - 项目:
.claude/output-styles - 托管策略:托管设置目录里的
.claude/output-styles
项目输出风格从工作目录到仓库根之间的每个 .claude/output-styles/ 加载;多个嵌套目录定义了同名风格时,用离工作目录最近的那个。要决定是否保留 Claude Code 的软件工程指令:如果你只是在改变 Claude 的沟通方式但仍想让它按同样的方式编码,设置 keep-coding-instructions: true;Claude 不会做软件工程时则省略它。下面的例子让每次解释都先给图,同时保留 Claude 的编码行为:
---
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.官方原文还涵盖前置信息字段参考,以及与 CLAUDE.md、Skill、子智能体和 --append-system-prompt 的取舍对比。