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 语法是否正确。然后在 /configOutput style 菜单中确认你的风格已出现并被选中。最后记得执行 /clear 或启动新会话。如果仍不生效,参考 调试配置 文档进行诊断。

输出风格和 CLAUDE.md 有什么区别?

输出风格直接修改系统提示词,适用于改变角色、语气、默认格式等全局行为。CLAUDE.md 在系统提示词之后以用户消息追加,更适合描述项目约定、代码库规则和持久上下文。两者可以配合使用:输出风格设定角色,CLAUDE.md 提供项目上下文。