6 6
7> 将 Claude Code 适配用于软件工程之外的用途7> 将 Claude Code 适配用于软件工程之外的用途
8 8
9输出样式改变 Claude 的响应方式,而不是 Claude 知道什么。它们修改系统提示以设置角色、语气和输出格式,同时保留核心功能,如运行脚本、读取和写入文件以及跟踪 TODO。当你在每个回合中不断重新提示相同的语音或格式时,或者当你希望 Claude 充当软件工程师以外的角色时,请使用一个。9输出样式改变 Claude 的响应方式,而不是 Claude 知道什么。它们修改系统提示以设置角色、语气和输出格式。当你在每个回合中不断重新提示相同的语音或格式时,或者当你希望 Claude 充当软件工程师以外的角色时,请使用一个。
10
11自定义输出样式将你的说明添加到系统提示中,并让你选择是否保留 Claude Code 的内置软件工程说明。当你改变 Claude 的通信方式但仍在编码时(例如总是用图表回答),请保留它们。当 Claude 根本不进行软件工程时(例如写作助手或数据分析师),请省略它们。
10 12
11有关你的项目、约定或代码库的说明,请改用 [CLAUDE.md](/zh-CN/memory)。13有关你的项目、约定或代码库的说明,请改用 [CLAUDE.md](/zh-CN/memory)。
12 14
22 24
23* **Learning**:协作式的边学边做模式,Claude 不仅会在编码时分享"Insights",还会要求你自己贡献小的、战略性的代码片段。Claude Code 将在你的代码中添加 `TODO(human)` 标记供你实现。25* **Learning**:协作式的边学边做模式,Claude 不仅会在编码时分享"Insights",还会要求你自己贡献小的、战略性的代码片段。Claude Code 将在你的代码中添加 `TODO(human)` 标记供你实现。
24 26
25## 输出样式如何工作
26
27输出样式直接修改 Claude Code 的系统提示。
28
29* 自定义输出样式排除了编码说明(例如用测试验证代码),除非 `keep-coding-instructions` 为 true。
30* 所有输出样式都在系统提示的末尾添加了自己的自定义说明。
31* 所有输出样式都会在对话期间触发提醒,让 Claude 遵守输出样式说明。
32
33令牌使用情况取决于样式。向系统提示添加说明会增加输入令牌,尽管 prompt caching 在会话中的第一个请求之后会降低这个成本。内置的 Explanatory 和 Learning 样式在设计上比 Default 产生更长的响应,这会增加输出令牌。对于自定义样式,输出令牌使用情况取决于你的说明告诉 Claude 生成什么。
34
35## 更改你的输出样式27## 更改你的输出样式
36 28
37运行 `/config` 并选择**输出样式**从菜单中选择一种样式。你的选择会保存到[本地项目级别](/zh-CN/settings)的 `.claude/settings.local.json`。29运行 `/config` 并选择**输出样式**从菜单中选择一种样式。你的选择会保存到[本地项目级别](/zh-CN/settings)的 `.claude/settings.local.json`。
48 40
49## 创建自定义输出样式41## 创建自定义输出样式
50 42
51自定义输出样式是包含 frontmatter 和将添加到系统提示的文本的 Markdown 文件:43自定义输出样式是一个 Markdown 文件:frontmatter 用于元数据,然后是要添加到系统提示的说明。
52 44
53```markdown theme={null}45<Steps>
54name: My Custom Style46 <Step title="创建一个 Markdown 文件">
55description:47 在三个级别之一保存它。文件名成为样式名称,除非你在 frontmatter 中设置 `name`。
56 A brief description of what this style does, to be displayed to the user
57 48
58# Custom Style Instructions49 * 用户:`~/.claude/output-styles`
50 * 项目:`.claude/output-styles`
51 * 托管策略:[托管设置目录](/zh-CN/settings#settings-files)内的 `.claude/output-styles`
52 </Step>
59 53
60You are an interactive CLI tool that helps users with software engineering54 <Step title="添加 frontmatter 和说明">
61tasks. [Your custom instructions here...]55 决定是否保留 Claude Code 的软件工程说明。如果你改变 Claude 的通信方式但仍希望它以相同的方式编码,请设置 `keep-coding-instructions: true`。如果 Claude 不会进行软件工程,请省略它。
62 56
63## Specific Behaviors57 此示例在保留 Claude 编码行为的同时,在每个解释前面加上一个图表:
64 58
65[Define how the assistant should behave in this style...]59 ```markdown theme={null}
66```60 ---
61 name: Diagrams first
62 description: Lead every explanation with a diagram
63 keep-coding-instructions: true
64 ---
67 65
68你可以在三个级别保存这些文件:66 When explaining code, architecture, or data flow, start with a Mermaid diagram showing the structure, then explain in prose.
69 67
70* 用户:`~/.claude/output-styles`68 ## Diagram conventions
71* 项目:`.claude/output-styles`69
72* 托管策略:[托管设置目录](/zh-CN/settings#settings-files)内的 `.claude/output-styles`70 Use `flowchart TD` for control flow and `sequenceDiagram` for request paths. Keep diagrams under 15 nodes.
71 ```
72 </Step>
73
74 <Step title="切换到你的样式">
75 运行 `/config` 并在**输出样式**下选择你的样式。它将在你下次启动会话时生效。
76 </Step>
77</Steps>
73 78
74[Plugins](/zh-CN/plugins-reference) 也可以在 `output-styles/` 目录中提供输出样式。79[Plugins](/zh-CN/plugins-reference) 也可以在 `output-styles/` 目录中提供输出样式。
75 80
76### Frontmatter81### Frontmatter
77 82
78输出样式文件支持 frontmatter 来指定元数据:83输出样式文件支持这些 frontmatter 字段:
79 84
80| Frontmatter | 目的 | 默认值 |85| Frontmatter | 目的 | 默认值 |
81| :------------------------- | :-------------------------------------------------------------------------------------------------- | :----- |86| :------------------------- | :------------------------------------------------------------------------------------------------------------- | :------ |
82| `name` | 输出样式的名称,如果不是文件名 | 从文件名继承 |87| `name` | 输出样式的名称,如果不是文件名 | 从文件名继承 |
83| `description` | 输出样式的描述,在 `/config` 选择器中显示 | 无 |88| `description` | 输出样式的描述,在 `/config` 选择器中显示 | 无 |
84| `keep-coding-instructions` | 是否保留 Claude Code 系统提示中与编码相关的部分。 | false |89| `keep-coding-instructions` | 保留 Claude Code 的内置软件工程说明 | `false` |
85| `force-for-plugin` | 仅限 Plugin 输出样式:在启用 plugin 时自动应用此样式,无需要求用户选择它。覆盖用户的 `outputStyle` 设置。如果多个启用的 plugin 设置了此项,则第一个加载的获胜。 | false |90| `force-for-plugin` | 仅限 Plugin 输出样式:在启用 plugin 时自动应用此样式,无需要求用户选择它。覆盖用户的 `outputStyle` 设置。如果多个启用的 plugin 设置了此项,Claude Code 使用第一个加载的。 | `false` |
86 91
87## 与相关功能的比较92## 输出样式如何工作
93
94输出样式直接修改 Claude Code 的系统提示。
88 95
89### 输出样式 vs. CLAUDE.md vs. --append-system-prompt96* 所有输出样式都在系统提示的末尾添加了自己的自定义说明。
97* 所有输出样式都会在对话期间触发提醒,让 Claude 遵守输出样式说明。
98* 自定义输出样式排除了 Claude Code 的内置软件工程说明,例如如何限定更改范围、编写注释和验证工作,除非 `keep-coding-instructions` 设置为 `true`。
90 99
91根据 Claude 是否应该停止充当编码助手或保持其默认角色并学习更多内容来选择。输出样式用你自己的角色和声音替换 Claude Code 系统提示中的软件工程部分,因此当 Claude 应该采用不同的身份(如写作编辑或数据分析助手)时,请使用一种。CLAUDE.md 和 `--append-system-prompt` 都保持 Claude Code 的默认身份并添加到它,因此当 Claude 应该保持编码助手身份同时遵循你的项目约定或额外说明时,请使用它们。100令牌使用情况取决于样式。向系统提示添加说明会增加输入令牌,尽管 prompt caching 在会话中的第一个请求之后会降低这个成本。内置的 Explanatory 和 Learning 样式在设计上比 Default 产生更长的响应,这会增加输出令牌。对于自定义样式,输出令牌使用情况取决于你的说明告诉 Claude 生成什么。
92 101
93机制也不同。输出样式直接编辑系统提示。CLAUDE.md 在系统提示之后将其内容作为用户消息添加。`--append-system-prompt` 将内容附加到系统提示的末尾,而不删除任何内容。102## 与相关功能的比较
94 103
95### 输出样式 vs. [Agents](/zh-CN/sub-agents)104多个功能自定义 Claude Code 的行为方式。输出样式直接修改系统提示并应用于每个响应。其他功能添加说明而不改变默认系统提示,或将其范围限定为特定任务。
96 105
97使用输出样式来改变主对话在每个会话中的响应方式。当你想要一个单独作用域的辅助工具,由主对话委派给它时,使用 [subagent](/zh-CN/sub-agents)。输出样式仅影响主代理循环的系统提示。Agents 处理特定任务,可以携带自己的模型、工具和关于何时调用它们的上下文。106| 功能 | 工作原理 | 何时使用 |
107| :-------------------------- | :------------------- | :------------------------- |
108| 输出样式 | 修改系统提示 | 你想要每个回合都有不同的角色、语气或默认响应格式 |
109| [CLAUDE.md](/zh-CN/memory) | 在系统提示之后添加用户消息 | Claude 应该始终了解你的项目约定和代码库上下文 |
110| `--append-system-prompt` | 附加到系统提示而不删除任何内容 | 你想要一次性添加单个调用 |
111| [Agents](/zh-CN/sub-agents) | 使用自己的系统提示、模型和工具运行子代理 | 你想要一个单独作用域的辅助工具来完成专注的任务 |
112| [Skills](/zh-CN/skills) | 在调用时或相关时加载特定于任务的说明 | 你有一个可重用的工作流 |
98 113
99### 输出样式 vs. [Skills](/zh-CN/skills)114## 相关资源
100 115
101输出样式修改 Claude 的响应方式(格式、语气、结构),一旦选择就始终处于活动状态。Skills 是特定于任务的提示,你可以使用 `/skill-name` 调用或 Claude 在相关时自动加载。使用输出样式来实现一致的格式化偏好;使用 skills 来实现可重用的工作流和任务。116* [Settings](/zh-CN/settings):`outputStyle` 字段所在的位置以及设置优先级的工作原理
117* [Permission modes](/zh-CN/permission-modes):Proactive 样式镜像自动模式而不改变你的权限模式
118* [Plugins](/zh-CN/plugins):打包和分发输出样式以及 skills、hooks 和 agents
119* [Debug your configuration](/zh-CN/debug-your-config):诊断为什么输出样式没有生效