Claude Code 模型与界面

Claude Code 模型与界面

输出样式

2 分钟阅读

输出样式

将 Claude Code 适配用于软件工程之外的用途

输出样式改变 Claude 的响应方式,而不改变 Claude 掌握的知识。它通过修改系统 Prompt 来设定角色、语气和输出格式。如果你每轮都要重复要求同一种表达风格或格式,或者希望 Claude 扮演软件工程师以外的角色,可以使用输出样式。

自定义输出样式会把你的指令加入系统 Prompt,并允许你选择是否保留 Claude Code 内置的软件工程指令。如果你只是改变 Claude 的表达方式但仍让它编写代码(例如始终先用图表回答),请保留这些指令。如果 Claude 完全不从事软件工程工作(例如作为写作助手或数据分析师),则可以省略。

有关你的项目、约定或代码库的说明,请改用 CLAUDE.md

内置输出样式

Claude Code 的默认输出样式使用现有系统 Prompt,旨在帮助你高效完成软件工程任务。

还有三种额外的内置输出样式:

  • Proactive:Claude 立即执行,做出合理的假设而不是暂停进行常规决策,并倾向于行动而非规划。这提供了比自动模式更强的自主执行指导,并且无需更改你的权限模式即可工作,因此你仍然会在工具运行前看到权限提示。

  • Explanatory:在帮助你完成软件工程任务的同时提供教育性的"Insights"。帮助你理解实现选择和代码库模式。

  • Learning:协作式的边学边做模式,Claude 不仅会在编码时分享"Insights",还会要求你自己贡献小的、战略性的代码片段。Claude Code 将在你的代码中添加 TODO(human) 标记供你实现。

更改你的输出样式

运行 /config 并选择输出样式从菜单中选择一种样式。你的选择会保存到本地项目级别.claude/settings.local.json

独立的 /output-style 命令在 v2.1.73 中已弃用,在 v2.1.91 中被移除。使用 /config 或直接编辑 outputStyle 设置。

要在不使用菜单的情况下设置样式,直接编辑设置文件中的 outputStyle 字段:

{
  "outputStyle": "Explanatory"
}

输出样式是系统提示的一部分,Claude Code 在会话开始时读取一次。更改将在 /clear 或新会话后生效。请参阅Claude Code 如何使用 Prompt 缓存了解输出样式更改对缓存的影响。

创建自定义输出样式

自定义输出样式是一个 Markdown 文件:frontmatter 用于元数据,然后是要添加到系统提示的说明。

1

创建一个 Markdown 文件

在三个级别之一保存它。文件名成为样式名称,除非你在 frontmatter 中设置 name

  • 用户:~/.claude/output-styles
  • 项目:.claude/output-styles
  • 托管策略:托管设置目录内的 .claude/output-styles

项目输出样式从工作目录和仓库根目录之间的每个 .claude/output-styles/ 加载。从 v2.1.178 开始,当多个这样的嵌套目录定义了同名样式时,Claude Code 使用最接近工作目录的那个。

2

添加 frontmatter 和说明

决定是否保留 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.
3

切换到你的样式

运行 /config 并在输出样式下选择你的样式。它将在 /clear 后或下次启动会话时生效。

Plugins 也可以在 output-styles/ 目录中提供输出样式。

Frontmatter

输出样式文件支持这些 frontmatter 字段:

Frontmatter目的默认值
name输出样式的名称,如果不是文件名从文件名继承
description输出样式的描述,在 /config 选择器中显示
keep-coding-instructions保留 Claude Code 的内置软件工程指令false
force-for-plugin仅限 Plugin 输出样式:启用 plugin 时自动应用此样式,无需用户手动选择。该字段会覆盖用户的 outputStyle 设置。如果多个已启用的 plugin 都设置了此项,Claude Code 使用第一个加载的样式。false

输出样式如何工作

输出样式直接修改 Claude Code 的系统 Prompt。

  • 所有输出样式都会在系统 Prompt 末尾加入各自的自定义指令。
  • 所有输出样式都会在对话期间触发提醒,让 Claude 遵守输出样式说明。
  • 自定义输出样式默认不包含 Claude Code 的内置软件工程指令,例如如何限定更改范围、编写注释和验证工作;将 keep-coding-instructions 设置为 true 可保留这些指令。

Token 用量取决于所选样式。向系统 Prompt 添加指令会增加输入 Token,不过第一个请求之后,Prompt 缓存可降低这部分成本。内置的 Explanatory 和 Learning 样式按设计会比 Default 生成更长的响应,因此会增加输出 Token。对于自定义样式,输出 Token 用量取决于指令要求 Claude 生成的内容。

多种功能都可以自定义 Claude Code 的行为。输出样式直接修改系统 Prompt,并应用于每次响应;其他功能会在不改变默认系统 Prompt 的情况下加入指令,或把作用范围限定在特定任务中。

功能工作原理何时使用
输出样式修改系统提示你想要每个回合都有不同的角色、语气或默认响应格式
CLAUDE.md在系统提示之后添加用户消息Claude 应该始终了解你的项目约定和代码库上下文
--append-system-prompt附加到系统提示而不删除任何内容你想要一次性添加单个调用
Agents使用自己的系统提示、模型和工具运行子智能体你想要一个单独作用域的辅助工具来完成专注的任务
Skills在调用时或相关时加载特定于任务的说明你有一个可重用的工作流
  • SettingsoutputStyle 字段所在的位置以及设置优先级的工作原理
  • Permission modes:Proactive 样式与自动模式的比较方式
  • Plugins:打包和分发输出样式以及 skills、hooks 和 agents
  • Debug your configuration:诊断为什么输出样式没有生效