Claude Code 输出风格直接修改系统提示词,改变回复的角色、语气和格式。内置四种风格:Default(高效任务)、Proactive(主动执行)、Explanatory(解释洞察)、Learning(互动学习)。也可创建自定义 Markdown 风格文件,通过 keep-coding-instructions 控制是否保留编程指令。修改后需使用 /clear 或启动新会话生效。
Claude Code 输出风格:配置、自定义与常见问题
输出风格改变 Claude 的回复方式,不改变其知识。它们修改系统提示词来设定角色、语气和输出格式。当你每次对话都需要重复指定相同风格,或者想让 Claude 扮演非软件工程师角色时,适合使用输出风格。
自定义输出风格会向系统提示词添加你的指令,同时你可以选择是否保留 Claude Code 自带的软件工程指令。保留它们,当你改变沟通方式但仍需编写代码时(例如总用图解释);去掉它们,当 Claude 完全不从事软件工程时(如作为写作助手或数据分析师)。
项目约定、代码库规范请使用 CLAUDE.md 替代。
内置输出风格(四种模式)
Claude Code 的 Default 输出风格是现有的系统提示词,专为高效完成软件工程任务设计。
另有三种内置输出风格:
-
Proactive:Claude 立即执行,对常规决策做合理假设而非暂停等待,更倾向于行动而非规划。这比 auto 模式 的自主执行指导更强,且不改变权限模式,因此工具执行前仍会看到权限提示。
-
Explanatory:在帮你完成软件工程任务的同时,提供教学性 “Insights”(洞察)。帮助你理解实现选择和代码库模式。
-
Learning:协作、边做边学模式。Claude 不仅会在编码时分享 “Insights”,还会要求你亲自编写一些策略性的代码片段,并在代码中留下
TODO(human)标记供你实现。
切换输出风格
运行 /config 并选择 Output style 从菜单中挑选风格。选择会保存到 .claude/settings.local.json(本地项目级别)。
要绕过菜单直接设置,编辑设置文件中的 outputStyle 字段:
{
"outputStyle": "Explanatory"
}
输出风格是系统提示词的一部分,Claude Code 在会话开始时一次性读取。修改后需执行 /clear 或启动新会话才能生效。详见 Claude Code 如何使用提示缓存 中关于输出风格更改对缓存的影响。
创建自定义输出风格
自定义输出风格是一个 Markdown 文件:frontmatter 用于元数据,后面是添加到系统提示词的指令。
保存位置
支持三个保存层级。文件名成为风格名称,除非你在 frontmatter 中设置了 name。
- 用户级:
~/.claude/output-styles - 项目级:
.claude/output-styles - 托管策略:在 托管设置目录 内的
.claude/output-styles
决定是否保留编程指令
设置 keep-coding-instructions: true 如果你改变了沟通方式但仍需 Claude 以相同方式编码。不设置则 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.
在 /config 中选择
运行 /config,在 Output style 下选择你的风格。新风格在 /clear 或下次启动会话后生效。
插件 也可以在 output-styles/ 目录中附带输出风格。
Frontmatter 字段
输出风格文件支持以下 frontmatter 字段:
| Frontmatter | 用途 | 默认值 |
|---|---|---|
name |
输出风格的名称,若未设置则使用文件名 | 从文件名继承 |
description |
输出风格的描述,在 /config 选择器中显示 |
无 |
keep-coding-instructions |
是否保留 Claude Code 内置的软件工程指令 | false |
force-for-plugin |
仅适用于插件输出风格:插件启用时自动应用此风格,无需用户手动选择。会覆盖用户的 outputStyle 设置。若多个启用的插件同时设置了此字段,Claude Code 使用最先加载的那个。 |
false |
输出风格的工作原理
输出风格直接修改 Claude Code 的系统提示词。
- 所有输出风格都会在系统提示词末尾追加各自的自定义指令。
- 所有输出风格都会触发提醒,促使 Claude 在对话中遵守风格指令。
- 自定义输出风格会移除 Claude Code 内置的软件工程指令(如如何限定更改范围、写注释、验证工作等),除非设置了
keep-coding-instructions: true。
Token 用量取决于风格。向系统提示词添加指令会增加输入 token,但提示缓存可以减少同一会话中首次请求后的成本。内置的 Explanatory 和 Learning 风格设计上会产生比 Default 更长的响应,从而增加输出 token。自定义风格的输出 token 用量取决于你的指令要求 Claude 生成什么。
与其他功能的对比
多个功能可以定制 Claude Code 的行为。输出风格直接修改系统提示词并应用于每次回复。其他功能则在不修改默认系统提示词的情况下添加指令,或仅限特定任务。
| 功能 | 工作机制 | 使用场景 |
|---|---|---|
| 输出风格(Output styles) | 修改系统提示词 | 每次对话都需要不同的角色、语气或默认回复格式 |
| CLAUDE.md | 在系统提示词后追加一条用户消息 | Claude 始终应知晓项目规范和代码库上下文 |
--append-system-prompt |
追加到系统提示词末尾,不删除任何内容 | 为单次调用添加一次性指令 |
| 子代理 | 使用独立的系统提示词、模型和工具运行子代理 | 为专注任务创建独立范围的辅助代理 |
| 技能 | 在调用或相关时加载特定任务指令 | 有可复用的工作流 |
相关文档
- 设置:
outputStyle字段所在位置及设置优先级 - 权限模式:Proactive 风格与 auto 模式的比较
- 插件:打包和分发输出风格,与技能、钩子和代理一起使用
- 调试配置:诊断输出风格不生效的原因
常见问题
Claude Code 输出风格怎么切换?
运行 /config,选择 Output style 从菜单中挑选。也可以直接编辑 .claude/settings.local.json 中的 outputStyle 字段(例如 "Explanatory")。选择后需要执行 /clear 或启动新会话才能看到效果。
自定义输出风格后不生效怎么办?
首先检查文件是否保存到正确的目录(~/.claude/output-styles 或项目级的 .claude/output-styles),文件名是否为 .md 扩展名,frontmatter 语法是否正确。然后在 /config 的 Output style 菜单中确认你的风格已出现并被选中。最后记得执行 /clear 或启动新会话。如果仍不生效,参考 调试配置 文档进行诊断。
输出风格和 CLAUDE.md 有什么区别?
输出风格直接修改系统提示词,适用于改变角色、语气、默认格式等全局行为。CLAUDE.md 在系统提示词之后以用户消息追加,更适合描述项目约定、代码库规则和持久上下文。两者可以配合使用:输出风格设定角色,CLAUDE.md 提供项目上下文。