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 字段:
输出样式是系统提示的一部分,Claude Code 在会话开始时读取一次。更改将在 /clear 或新会话后生效。请参阅Claude Code 如何使用 Prompt 缓存了解输出样式更改对缓存的影响。
创建自定义输出样式
自定义输出样式是一个 Markdown 文件:frontmatter 用于元数据,然后是要添加到系统提示的说明。
创建一个 Markdown 文件
在三个级别之一保存它。文件名成为样式名称,除非你在 frontmatter 中设置 name。
- 用户:
~/.claude/output-styles - 项目:
.claude/output-styles - 托管策略:托管设置目录内的
.claude/output-styles
项目输出样式从工作目录和仓库根目录之间的每个 .claude/output-styles/ 加载。从 v2.1.178 开始,当多个这样的嵌套目录定义了同名样式时,Claude Code 使用最接近工作目录的那个。
添加 frontmatter 和说明
决定是否保留 Claude Code 的软件工程指令。如果你只改变 Claude 的表达方式,但仍希望它保持原有编码行为,请设置 keep-coding-instructions: true。如果 Claude 不会从事软件工程工作,则省略该字段。
此示例在保留 Claude 编码行为的同时,在每个解释前面加上一个图表:
切换到你的样式
运行 /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 | 在调用时或相关时加载特定于任务的说明 | 你有一个可重用的工作流 |
相关资源
- Settings:
outputStyle字段所在的位置以及设置优先级的工作原理 - Permission modes:Proactive 样式与自动模式的比较方式
- Plugins:打包和分发输出样式以及 skills、hooks 和 agents
- Debug your configuration:诊断为什么输出样式没有生效