6 6
7> 了解何时使用 CLAUDE.md、Skills、subagents、hooks、MCP 和 plugins。7> 了解何时使用 CLAUDE.md、Skills、subagents、hooks、MCP 和 plugins。
8 8
9Claude Code 结合了一个能够推理代码的模型和[内置工具](/docs/zh-CN/how-claude-code-works.md#tools),用于文件操作、搜索、执行和网络访问。内置工具涵盖了大多数编码任务。本指南涵盖扩展层:您添加的功能,用于自定义 Claude 的知识、将其连接到外部服务以及自动化工作流。9Claude Code 结合了一个能够推理代码的模型和[内置工具](https://code.claude.com/docs/zh-CN/how-claude-code-works.md#tools),用于文件操作、搜索、执行和网络访问。内置工具涵盖了大多数编码任务。本指南涵盖扩展层:您添加的功能,用于自定义 Claude 的知识、将其连接到外部服务以及自动化工作流。
10 10
11> [!NOTE]11> [!NOTE]
12>12>
13> 有关核心代理循环如何工作的信息,请参阅 [Claude Code 如何工作](/docs/zh-CN/how-claude-code-works.md)。13> 有关核心代理循环如何工作的信息,请参阅 [Claude Code 如何工作](https://code.claude.com/docs/zh-CN/how-claude-code-works.md)。
14 14
15**初次使用 Claude Code?** 从 [CLAUDE.md](/docs/zh-CN/memory.md) 开始了解项目约定,然后根据需要添加其他扩展[当特定触发器出现时](#build-your-setup-over-time)。15**初次使用 Claude Code?** 从 [CLAUDE.md](https://code.claude.com/docs/zh-CN/memory.md) 开始了解项目约定,然后根据需要添加其他扩展[当特定触发器出现时](#build-your-setup-over-time)。
16 16
17## 概述17## 概述
18 18
19扩展插入代理循环的不同部分:19扩展插入代理循环的不同部分:
20 20
21* **[CLAUDE.md](/docs/zh-CN/memory.md)** 添加 Claude 每个会话都能看到的持久上下文21* **[CLAUDE.md](https://code.claude.com/docs/zh-CN/memory.md)** 添加 Claude 每个会话都能看到的持久上下文
22* **[输出样式](/docs/zh-CN/output-styles.md)** 为会话中的每个响应设置 Claude 的角色、语气和响应格式22* **[输出样式](https://code.claude.com/docs/zh-CN/output-styles.md)** 为会话中的每个响应设置 Claude 的角色、语气和响应格式
23* **[Skills](/docs/zh-CN/skills.md)** 添加可重用的知识和可调用的工作流23* **[Skills](https://code.claude.com/docs/zh-CN/skills.md)** 添加可重用的知识和可调用的工作流
24* **[代码智能](/docs/zh-CN/tools-reference.md#lsp-tool-behavior)** 将 Claude 连接到语言服务器,用于符号级导航和实时类型错误24* **[代码智能](https://code.claude.com/docs/zh-CN/tools-reference.md#lsp-tool-behavior)** 将 Claude 连接到语言服务器,用于符号级导航和实时类型错误
25* **[MCP](/docs/zh-CN/mcp.md)** 将 Claude 连接到外部服务和工具25* **[MCP](https://code.claude.com/docs/zh-CN/mcp.md)** 将 Claude 连接到外部服务和工具
26* **[Subagents](/docs/zh-CN/sub-agents.md)** 在隔离的上下文中运行自己的循环,返回摘要26* **[Subagents](https://code.claude.com/docs/zh-CN/sub-agents.md)** 在隔离的上下文中运行自己的循环,返回摘要
27* **[动态工作流](/docs/zh-CN/workflows.md)** 从 Claude 编写的脚本运行许多 subagents,返回一个结果27* **[动态工作流](https://code.claude.com/docs/zh-CN/workflows.md)** 从 Claude 编写的脚本运行许多 subagents,返回一个结果
28* **[跨会话消息传递](/docs/zh-CN/cross-session-messaging.md)** 让 Claude 将消息从您的一个会话传递到另一个会话28* **[跨会话消息传递](https://code.claude.com/docs/zh-CN/cross-session-messaging.md)** 让 Claude 将消息从您的一个会话传递到另一个会话
29* **[Hooks](/docs/zh-CN/hooks-guide.md)** 在 Claude Code 到达生命周期事件时运行您的脚本、HTTP 请求、MCP 工具调用、提示或 subagent29* **[Hooks](https://code.claude.com/docs/zh-CN/hooks-guide.md)** 在 Claude Code 到达生命周期事件时运行您的脚本、HTTP 请求、MCP 工具调用、提示或 subagent
30* **[Plugins](/docs/zh-CN/plugins/overview.md)** 和 **[marketplaces](/docs/zh-CN/plugins/overview.md)** 打包和分发这些功能30* **[Plugins](https://code.claude.com/docs/zh-CN/plugins/overview.md)** 和 **[marketplaces](https://code.claude.com/docs/zh-CN/plugins/overview.md)** 打包和分发这些功能
31 31
32[Skills](/docs/zh-CN/skills.md) 是最灵活的扩展。Skill 是一个包含知识、工作流或说明的 markdown 文件。您可以使用 `/deploy` 之类的命令调用 skills,或者 Claude 可以在相关时自动加载它们。Skills 可以在您当前的对话中运行,也可以通过 subagents 在隔离的上下文中运行。32[Skills](https://code.claude.com/docs/zh-CN/skills.md) 是最灵活的扩展。Skill 是一个包含知识、工作流或说明的 markdown 文件。您可以使用 `/deploy` 之类的命令调用 skills,或者 Claude 可以在相关时自动加载它们。Skills 可以在您当前的对话中运行,也可以通过 subagents 在隔离的上下文中运行。
33 33
34## 将功能与您的目标相匹配34## 将功能与您的目标相匹配
35 35
38| 功能 | 作用 | 何时使用 | 示例 |38| 功能 | 作用 | 何时使用 | 示例 |
39| - | - | - | - |39| - | - | - | - |
40| **CLAUDE.md** | 每次对话加载的持久上下文 | 项目约定、"始终执行 X" 规则 | "使用 pnpm,而不是 npm。提交前运行测试。" |40| **CLAUDE.md** | 每次对话加载的持久上下文 | 项目约定、"始终执行 X" 规则 | "使用 pnpm,而不是 npm。提交前运行测试。" |
41| **[Output style](/docs/zh-CN/output-styles.md)** | 为整个会话设置 Claude 的角色、语气和响应格式的说明 | 您想在每个响应中使用的声音、长度或格式,或 Claude 作为软件工程师以外的角色工作 | 用于较短响应的内置 Concise 风格;一个自定义风格,首先用图表回答每个问题 |41| **[Output style](https://code.claude.com/docs/zh-CN/output-styles.md)** | 为整个会话设置 Claude 的角色、语气和响应格式的说明 | 您想在每个响应中使用的声音、长度或格式,或 Claude 作为软件工程师以外的角色工作 | 用于较短响应的内置 Concise 风格;一个自定义风格,首先用图表回答每个问题 |
42| **Skill** | Claude 可以使用的说明、知识和工作流 | 可重用内容、参考文档、可重复的任务 | `/deploy` 运行您的部署清单;包含端点模式的 API 文档 skill |42| **Skill** | Claude 可以使用的说明、知识和工作流 | 可重用内容、参考文档、可重复的任务 | `/deploy` 运行您的部署清单;包含端点模式的 API 文档 skill |
43| **Subagent** | 返回摘要结果的隔离执行上下文 | 上下文隔离、并行任务、专门的工作者 | 读取许多文件但仅返回关键发现的研究任务 |43| **Subagent** | 返回摘要结果的隔离执行上下文 | 上下文隔离、并行任务、专门的工作者 | 读取许多文件但仅返回关键发现的研究任务 |
44| **[Dynamic workflow](/docs/zh-CN/workflows.md)** | Claude 编写的脚本,在后台运行许多 subagents | 超出少数 subagents 范围的工作,或您想交叉检查的发现 | 审计整个代码库,第二组代理验证每个发现 |44| **[Dynamic workflow](https://code.claude.com/docs/zh-CN/workflows.md)** | Claude 编写的脚本,在后台运行许多 subagents | 超出少数 subagents 范围的工作,或您想交叉检查的发现 | 审计整个代码库,第二组代理验证每个发现 |
45| **[Cross-session messaging](/docs/zh-CN/cross-session-messaging.md)** | Claude 将消息从您的一个会话传递到另一个会话 | 您自己运行的需要彼此发现的会话,在任务中途 | 一个会话警告另一个会话,它所做的更改会破坏另一个会话正在构建的内容 |45| **[Cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md)** | Claude 将消息从您的一个会话传递到另一个会话 | 您自己运行的需要彼此发现的会话,在任务中途 | 一个会话警告另一个会话,它所做的更改会破坏另一个会话正在构建的内容 |
46| **[Code intelligence](/docs/zh-CN/tools-reference.md#lsp-tool-behavior)** | 语言服务器导航和诊断 | 类型化语言、大型代码库(其中 grep 速度慢或不精确) | 跳转到符号的定义,而不是读取整个文件 |46| **[Code intelligence](https://code.claude.com/docs/zh-CN/tools-reference.md#lsp-tool-behavior)** | 语言服务器导航和诊断 | 类型化语言、大型代码库(其中 grep 速度慢或不精确) | 跳转到符号的定义,而不是读取整个文件 |
47| **MCP** | 连接到外部服务 | 外部数据或操作 | 查询您的数据库、发布到 Slack、控制浏览器 |47| **MCP** | 连接到外部服务 | 外部数据或操作 | 查询您的数据库、发布到 Slack、控制浏览器 |
48| **Hook** | 由事件触发的脚本、HTTP 请求、MCP 工具调用、提示或 subagent | 必须在每个匹配事件上运行的自动化 | 每次文件编辑后运行 ESLint |48| **Hook** | 由事件触发的脚本、HTTP 请求、MCP 工具调用、提示或 subagent | 必须在每个匹配事件上运行的自动化 | 每次文件编辑后运行 ESLint |
49| **[Artifact](/docs/zh-CN/artifacts.md)** | 将会话输出发布为私有、交互式网页 | 您想以视觉方式查看或共享的输出,而不是作为终端文本 | 一个在 Claude 调查时更新的事件时间线 |49| **[Artifact](https://code.claude.com/docs/zh-CN/artifacts.md)** | 将会话输出发布为私有、交互式网页 | 您想以视觉方式查看或共享的输出,而不是作为终端文本 | 一个在 Claude 调查时更新的事件时间线 |
50 50
51**[Plugins](/docs/zh-CN/plugins/overview.md)** 是打包层。Plugin 将 skills、hooks、subagents 和 MCP servers 捆绑到单个可安装单元中。Plugin skills 是命名空间的(如 `/my-plugin:review`),因此多个 plugins 可以共存。当您想在多个存储库中重用相同的设置或通过 **[marketplace](/docs/zh-CN/plugins/overview.md)** 分发给他人时,使用 plugins。51**[Plugins](https://code.claude.com/docs/zh-CN/plugins/overview.md)** 是打包层。Plugin 将 skills、hooks、subagents 和 MCP servers 捆绑到单个可安装单元中。Plugin skills 是命名空间的(如 `/my-plugin:review`),因此多个 plugins 可以共存。当您想在多个存储库中重用相同的设置或通过 **[marketplace](https://code.claude.com/docs/zh-CN/plugins/overview.md)** 分发给他人时,使用 plugins。
52 52
53### 随时间推移构建您的设置53### 随时间推移构建您的设置
54 54
56 56
57| 触发器 | 添加 |57| 触发器 | 添加 |
58| :- | :- |58| :- | :- |
59| Claude 两次出错约定或命令 | 将其添加到 [CLAUDE.md](/docs/zh-CN/memory.md) |59| Claude 两次出错约定或命令 | 将其添加到 [CLAUDE.md](https://code.claude.com/docs/zh-CN/memory.md) |
60| 您一直在要求 Claude 更简洁、解释更多或以相同格式回答 | 设置 [output style](/docs/zh-CN/output-styles.md) |60| 您一直在要求 Claude 更简洁、解释更多或以相同格式回答 | 设置 [output style](https://code.claude.com/docs/zh-CN/output-styles.md) |
61| 您一直在输入相同的提示来启动任务 | 将其保存为用户可调用的 [skill](/docs/zh-CN/skills.md) |61| 您一直在输入相同的提示来启动任务 | 将其保存为用户可调用的 [skill](https://code.claude.com/docs/zh-CN/skills.md) |
62| 您第三次将相同的剧本或多步骤过程粘贴到聊天中 | 将其捕获为 [skill](/docs/zh-CN/skills.md) |62| 您第三次将相同的剧本或多步骤过程粘贴到聊天中 | 将其捕获为 [skill](https://code.claude.com/docs/zh-CN/skills.md) |
63| 您一直在从 Claude 看不到的浏览器标签页复制数据 | 将该系统连接为 [MCP server](/docs/zh-CN/mcp.md) |63| 您一直在从 Claude 看不到的浏览器标签页复制数据 | 将该系统连接为 [MCP server](https://code.claude.com/docs/zh-CN/mcp.md) |
64| Claude 读取许多文件以查找符号的定义或使用位置 | 为您的语言安装 [code intelligence plugin](/docs/zh-CN/plugins/code-intelligence.md) |64| Claude 读取许多文件以查找符号的定义或使用位置 | 为您的语言安装 [code intelligence plugin](https://code.claude.com/docs/zh-CN/plugins/code-intelligence.md) |
65| 一个辅助任务用您不会再次引用的输出淹没您的对话 | 通过 [subagent](/docs/zh-CN/sub-agents.md) 路由它 |65| 一个辅助任务用您不会再次引用的输出淹没您的对话 | 通过 [subagent](https://code.claude.com/docs/zh-CN/sub-agents.md) 路由它 |
66| 您希望每次都发生某事而无需询问 | 编写 [hook](/docs/zh-CN/hooks-guide.md) |66| 您希望每次都发生某事而无需询问 | 编写 [hook](https://code.claude.com/docs/zh-CN/hooks-guide.md) |
67| 第二个存储库需要相同的设置 | 将其打包为 [plugin](/docs/zh-CN/plugins/overview.md) |67| 第二个存储库需要相同的设置 | 将其打包为 [plugin](https://code.claude.com/docs/zh-CN/plugins/overview.md) |
68 68
69相同的触发器告诉您何时更新您已有的内容。重复的错误或反复出现的审查评论是 CLAUDE.md 编辑,而不是聊天中的一次性更正。您一直手动调整的工作流是需要另一次修订的 skill。69相同的触发器告诉您何时更新您已有的内容。重复的错误或反复出现的审查评论是 CLAUDE.md 编辑,而不是聊天中的一次性更正。您一直手动调整的工作流是需要另一次修订的 skill。
70 70
83| - | - | - |83| - | - | - |
84| **它是什么** | 可重用的说明、知识或工作流 | 具有自己上下文的隔离工作者 |84| **它是什么** | 可重用的说明、知识或工作流 | 具有自己上下文的隔离工作者 |
85| **关键优势** | 在上下文之间共享内容 | 上下文隔离。工作单独进行,仅返回摘要 |85| **关键优势** | 在上下文之间共享内容 | 上下文隔离。工作单独进行,仅返回摘要 |
86| **[上下文窗口](/docs/zh-CN/context-window.md)影响** | 添加到您的主窗口 | 使用具有自己输入和输出令牌的单独窗口 |86| **[上下文窗口](https://code.claude.com/docs/zh-CN/context-window.md)影响** | 添加到您的主窗口 | 使用具有自己输入和输出令牌的单独窗口 |
87| **最适合** | 参考材料、可调用的工作流 | 读取许多文件的任务、并行工作、专门的工作者 |87| **最适合** | 参考材料、可调用的工作流 | 读取许多文件的任务、并行工作、专门的工作者 |
88 88
89**Skills 可以是参考或操作。** 参考 skills 提供 Claude 在整个会话中使用的知识(如您的 API 风格指南)。操作 skills 告诉 Claude 执行特定操作(如运行您的部署工作流的 `/deploy`)。89**Skills 可以是参考或操作。** 参考 skills 提供 Claude 在整个会话中使用的知识(如您的 API 风格指南)。操作 skills 告诉 Claude 执行特定操作(如运行您的部署工作流的 `/deploy`)。
90 90
91**当您需要上下文隔离或上下文窗口变满时,使用 subagent**。Subagent 可能读取数十个文件或运行广泛的搜索,但您的主对话仅接收摘要。由于 subagent 工作不消耗您的主上下文,当您不需要中间工作保持可见时,这也很有用。自定义 subagents 可以有自己的说明并可以预加载 skills。91**当您需要上下文隔离或上下文窗口变满时,使用 subagent**。Subagent 可能读取数十个文件或运行广泛的搜索,但您的主对话仅接收摘要。由于 subagent 工作不消耗您的主上下文,当您不需要中间工作保持可见时,这也很有用。自定义 subagents 可以有自己的说明并可以预加载 skills。
92 92
93**它们可以结合。** Subagent 可以预加载特定的 skills(`skills:` 字段)。Skill 可以使用 `context: fork` 在隔离的上下文中运行。有关详细信息,请参阅 [Skills](/docs/zh-CN/skills.md)。93**它们可以结合。** Subagent 可以预加载特定的 skills(`skills:` 字段)。Skill 可以使用 `context: fork` 在隔离的上下文中运行。有关详细信息,请参阅 [Skills](https://code.claude.com/docs/zh-CN/skills.md)。
94 94
95**CLAUDE.md vs Skill**95**CLAUDE.md vs Skill**
96 96
107 107
108**如果它是 Claude 有时需要的参考材料(API 文档、风格指南)或您使用 `/<name>` 触发的工作流(部署、审查、发布),请将其放在 skill 中**。108**如果它是 Claude 有时需要的参考材料(API 文档、风格指南)或您使用 `/<name>` 触发的工作流(部署、审查、发布),请将其放在 skill 中**。
109 109
110**经验法则:** 保持 CLAUDE.md 在 200 行以下。如果它在增长,将参考内容移到 skills 或拆分为 [`.claude/rules/`](/docs/zh-CN/memory#organize-rules-with-claude%2Frules%2F) 文件。110**经验法则:** 保持 CLAUDE.md 在 200 行以下。如果它在增长,将参考内容移到 skills 或拆分为 [`.claude/rules/`](https://code.claude.com/docs/zh-CN/memory#organize-rules-with-claude%2Frules%2F) 文件。
111 111
112**CLAUDE.md vs Output style**112**CLAUDE.md vs Output style**
113 113
116| 方面 | CLAUDE.md | Output style |116| 方面 | CLAUDE.md | Output style |
117| - | - | - |117| - | - | - |
118| **包含** | 关于您的项目的事实和规则 | 角色、语气和响应格式 |118| **包含** | 关于您的项目的事实和规则 | 角色、语气和响应格式 |
119| **切换** | 始终加载 | 一次一个活跃;[随时切换风格](/docs/zh-CN/output-styles.md#change-your-output-style) |119| **切换** | 始终加载 | 一次一个活跃;[随时切换风格](https://code.claude.com/docs/zh-CN/output-styles.md#change-your-output-style) |
120| **最适合** | 构建命令、约定、"永远不要执行 X" 规则 | 更短的响应、代码旁边的解释、非工程角色 |120| **最适合** | 构建命令、约定、"永远不要执行 X" 规则 | 更短的响应、代码旁边的解释、非工程角色 |
121 121
122**如果它对项目为真,无论您使用什么风格,请将其放在 CLAUDE.md 中**:编码约定、构建命令、项目结构。122**如果它对项目为真,无论您使用什么风格,请将其放在 CLAUDE.md 中**:编码约定、构建命令、项目结构。
123 123
124**如果它关于响应本身,您可能想再次关闭它,请使用 output style**:长度、格式、Claude 解释多少,或不同的角色,如写作助手。Claude Code 包括 [内置风格](/docs/zh-CN/output-styles.md#built-in-output-styles),您可以编写自己的。124**如果它关于响应本身,您可能想再次关闭它,请使用 output style**:长度、格式、Claude 解释多少,或不同的角色,如写作助手。Claude Code 包括 [内置风格](https://code.claude.com/docs/zh-CN/output-styles.md#built-in-output-styles),您可以编写自己的。
125 125
126**它们结合。** CLAUDE.md 保持加载,无论您选择什么风格。Claude 遵循两者作为说明,所以都不是强制执行的。对于必须每次都发生的任何事情,使用 [hook](/docs/zh-CN/hooks-guide.md)。126**它们结合。** CLAUDE.md 保持加载,无论您选择什么风格。Claude 遵循两者作为说明,所以都不是强制执行的。对于必须每次都发生的任何事情,使用 [hook](https://code.claude.com/docs/zh-CN/hooks-guide.md)。
127 127
128**CLAUDE.md vs Rules vs Skills**128**CLAUDE.md vs Rules vs Skills**
129 129
137 137
138**对于每个会话需要的说明,使用 CLAUDE.md**:构建命令、测试约定、项目架构。138**对于每个会话需要的说明,使用 CLAUDE.md**:构建命令、测试约定、项目架构。
139 139
140**使用 rules 来保持 CLAUDE.md 专注。** 带有 [`paths` frontmatter](/docs/zh-CN/memory#path-specific-rules) 的 rules 仅在 Claude 处理匹配文件时加载,节省上下文。140**使用 rules 来保持 CLAUDE.md 专注。** 带有 [`paths` frontmatter](https://code.claude.com/docs/zh-CN/memory#path-specific-rules) 的 rules 仅在 Claude 处理匹配文件时加载,节省上下文。
141 141
142**对于 Claude 有时只需要的内容,使用 skills**,如 API 文档或您使用 `/<name>` 触发的部署清单。142**对于 Claude 有时只需要的内容,使用 skills**,如 API 文档或您使用 `/<name>` 触发的部署清单。
143 143
146两者都在您的主对话之外进行工作。使用 subagents,Claude 逐轮决定接下来运行什么。在工作流中,脚本决定:146两者都在您的主对话之外进行工作。使用 subagents,Claude 逐轮决定接下来运行什么。在工作流中,脚本决定:
147 147
148* **Subagents** 是 Claude 生成的工作者,每个都向生成它的对话返回摘要148* **Subagents** 是 Claude 生成的工作者,每个都向生成它的对话返回摘要
149* **[Dynamic workflows](/docs/zh-CN/workflows.md)** 是 Claude 编写的脚本,在后台运行许多 subagents 并返回一个结果149* **[Dynamic workflows](https://code.claude.com/docs/zh-CN/workflows.md)** 是 Claude 编写的脚本,在后台运行许多 subagents 并返回一个结果
150 150
151**当您需要一个快速、专注的工作者时,使用子代理**:研究一个问题、验证一个声明、审查一个文件。子代理完成工作并返回摘要,所以您的主对话保持清洁。Claude 在生成时[命名](/docs/zh-CN/sub-agents.md#subagent-names)的子代理也可以 [相互发送消息](/docs/zh-CN/sub-agents.md#what-loads-at-startup)。151**当您需要一个快速、专注的工作者时,使用子代理**:研究一个问题、验证一个声明、审查一个文件。子代理完成工作并返回摘要,所以您的主对话保持清洁。Claude 在生成时[命名](https://code.claude.com/docs/zh-CN/sub-agents.md#subagent-names)的子代理也可以 [相互发送消息](https://code.claude.com/docs/zh-CN/sub-agents.md#what-loads-at-startup)。
152 152
153当一个工作[超出少数 subagents 的范围](/docs/zh-CN/workflows.md#when-to-use-a-workflow)时,或当您想在看到发现之前交叉检查它们时,**使用 dynamic workflow**,例如代码库范围的审计、大型迁移或从多个角度起草的计划。要启动一个,[在您的提示中要求一个工作流](/docs/zh-CN/workflows.md#ask-for-a-workflow-in-your-prompt)。153当一个工作[超出少数 subagents 的范围](https://code.claude.com/docs/zh-CN/workflows.md#when-to-use-a-workflow)时,或当您想在看到发现之前交叉检查它们时,**使用 dynamic workflow**,例如代码库范围的审计、大型迁移或从多个角度起草的计划。要启动一个,[在您的提示中要求一个工作流](https://code.claude.com/docs/zh-CN/workflows.md#ask-for-a-workflow-in-your-prompt)。
154 154
155**要将一个发现从您的一个会话传递到另一个会话**,要求第一个会话的 Claude 发送它。Claude 使用 [cross-session messaging](/docs/zh-CN/cross-session-messaging.md) 传递它。[并行运行代理](/docs/zh-CN/agents.md) 比较了运行多个 Claude 的其他方式,包括您交接并稍后检查的会话。155**要将一个发现从您的一个会话传递到另一个会话**,要求第一个会话的 Claude 发送它。Claude 使用 [cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md) 传递它。[并行运行代理](https://code.claude.com/docs/zh-CN/agents.md) 比较了运行多个 Claude 的其他方式,包括您交接并稍后检查的会话。
156 156
157**MCP vs Skill**157**MCP vs Skill**
158 158
177| 方面 | Hook | Skill |177| 方面 | Hook | Skill |
178| - | - | - |178| - | - | - |
179| **运行** | Shell 命令、HTTP 请求、MCP 工具调用、LLM 提示或 subagent | Claude 读取和遵循的说明 |179| **运行** | Shell 命令、HTTP 请求、MCP 工具调用、LLM 提示或 subagent | Claude 读取和遵循的说明 |
180| **由以下触发** | [生命周期事件](/docs/zh-CN/hooks.md#hook-events),如 `PostToolUse` 或 `SessionStart` | 您输入 `/<name>`,或 Claude 将描述与您的任务相匹配 |180| **由以下触发** | [生命周期事件](https://code.claude.com/docs/zh-CN/hooks.md#hook-events),如 `PostToolUse` 或 `SessionStart` | 您输入 `/<name>`,或 Claude 将描述与您的任务相匹配 |
181| **确定性** | 在其事件上触发,无需 Claude 决定 | Claude 解释说明;结果可能会有所不同 |181| **确定性** | 在其事件上触发,无需 Claude 决定 | Claude 解释说明;结果可能会有所不同 |
182| **上下文成本** | 零,除非 hook 返回输出 | 描述在每个会话加载;使用时加载完整内容 |182| **上下文成本** | 零,除非 hook 返回输出 | 描述在每个会话加载;使用时加载完整内容 |
183| **最适合** | 编辑后运行 linting、阻止不安全的命令、记录日志、发送通知 | 需要推理的工作流、参考材料、多步骤任务 |183| **最适合** | 编辑后运行 linting、阻止不安全的命令、记录日志、发送通知 | 需要推理的工作流、参考材料、多步骤任务 |
194 194
195功能可以在多个级别定义:用户范围、每个项目、通过 plugins 或通过托管策略。您还可以在子目录中嵌套 CLAUDE.md 文件或在 monorepo 的特定包中放置 skills。当相同的功能存在于多个级别时,以下是它们的分层方式:195功能可以在多个级别定义:用户范围、每个项目、通过 plugins 或通过托管策略。您还可以在子目录中嵌套 CLAUDE.md 文件或在 monorepo 的特定包中放置 skills。当相同的功能存在于多个级别时,以下是它们的分层方式:
196 196
197* **CLAUDE.md 文件** 是累加的:所有级别同时向 Claude 的上下文贡献内容。来自您的工作目录及以上的文件在启动时加载;子目录在您在其中工作时加载。当说明冲突时,Claude 使用判断来协调它们。有关详细信息,请参阅 [CLAUDE.md 文件如何加载](/docs/zh-CN/memory.md#how-claude-md-files-load)。197* **CLAUDE.md 文件** 是累加的:所有级别同时向 Claude 的上下文贡献内容。来自您的工作目录及以上的文件在启动时加载;子目录在您在其中工作时加载。当说明冲突时,Claude 使用判断来协调它们。有关详细信息,请参阅 [CLAUDE.md 文件如何加载](https://code.claude.com/docs/zh-CN/memory.md#how-claude-md-files-load)。
198* **Skills 和 subagents** 按名称覆盖:当相同的名称存在于多个级别时,一个定义根据优先级获胜(对于 skills 为托管 > 用户 > 项目;对于 subagents 为托管 > CLI 标志 > 项目 > 用户 > plugin)。Plugin skills 是 [命名空间的](/docs/zh-CN/plugins/components.md#skills) 以避免冲突。有关详细信息,请参阅 [skill 发现](/docs/zh-CN/skills.md#resolve-skills-that-share-a-name) 和 [subagent 范围](/docs/zh-CN/sub-agents.md#choose-the-subagent-scope)。198* **Skills 和 subagents** 按名称覆盖:当相同的名称存在于多个级别时,一个定义根据优先级获胜(对于 skills 为托管 > 用户 > 项目;对于 subagents 为托管 > CLI 标志 > 项目 > 用户 > plugin)。Plugin skills 是 [命名空间的](https://code.claude.com/docs/zh-CN/plugins/components.md#skills) 以避免冲突。有关详细信息,请参阅 [skill 发现](https://code.claude.com/docs/zh-CN/skills.md#resolve-skills-that-share-a-name) 和 [subagent 范围](https://code.claude.com/docs/zh-CN/sub-agents.md#choose-the-subagent-scope)。
199* **MCP 服务器** 按名称覆盖:本地 > 项目 > 用户。有关详细信息,请参阅 [MCP 范围](/docs/zh-CN/mcp.md#scope-hierarchy-and-precedence)。199* **MCP 服务器** 按名称覆盖:本地 > 项目 > 用户。有关详细信息,请参阅 [MCP 范围](https://code.claude.com/docs/zh-CN/mcp.md#scope-hierarchy-and-precedence)。
200* **Hooks** 合并:所有注册的 hooks 为其匹配的事件触发,无论来源如何。有关详细信息,请参阅 [hooks](/docs/zh-CN/hooks.md)。200* **Hooks** 合并:所有注册的 hooks 为其匹配的事件触发,无论来源如何。有关详细信息,请参阅 [hooks](https://code.claude.com/docs/zh-CN/hooks.md)。
201 201
202### 组合功能202### 组合功能
203 203
214 214
215## 了解上下文成本215## 了解上下文成本
216 216
217您添加的每个功能都会消耗 Claude 的一些上下文。太多可能会填满您的上下文窗口,但它也可能增加噪音,使 Claude 效率降低;skills 可能无法正确触发,或 Claude 可能会失去对您的约定的跟踪。了解这些权衡有助于您构建有效的设置。有关这些功能如何在运行会话中组合的交互式视图,请参阅 [探索上下文窗口](/docs/zh-CN/context-window.md)。217您添加的每个功能都会消耗 Claude 的一些上下文。太多可能会填满您的上下文窗口,但它也可能增加噪音,使 Claude 效率降低;skills 可能无法正确触发,或 Claude 可能会失去对您的约定的跟踪。了解这些权衡有助于您构建有效的设置。有关这些功能如何在运行会话中组合的交互式视图,请参阅 [探索上下文窗口](https://code.claude.com/docs/zh-CN/context-window.md)。
218 218
219### 按功能的上下文成本219### 按功能的上下文成本
220 220
222 222
223| 功能 | 何时加载 | 加载内容 | 上下文成本 |223| 功能 | 何时加载 | 加载内容 | 上下文成本 |
224| - | - | - | - |224| - | - | - | - |
225| **CLAUDE.md** | 会话开始 | 完整内容 | 每个请求 |225| **CLAUDE.md** | 会话开始 | 在会话开始时加载的每个文件的完整内容 | 每个请求 |
226| **Output styles** | 会话开始,以及当您切换样式时再次加载 | 活跃样式的完整说明;默认样式无内容 | 每个请求 |226| **Output styles** | 会话开始,以及当您切换样式时再次加载 | 活跃样式的完整说明;默认样式无内容 | 每个请求 |
227| **Skills** | 会话开始 + 使用时 | 启动时的描述,使用时的完整内容 | 低(每个请求的描述)\* |227| **Skills** | 会话开始 + 使用时 | 启动时的描述,使用时的完整内容 | 低(每个请求的描述)\* |
228| **MCP 服务器** | 会话开始 | 工具名称;完整架构按需 | 低,直到使用工具 |228| **MCP 服务器** | 会话开始 | 工具名称;完整架构按需 | 低,直到使用工具 |
229| **Code intelligence** | 文件编辑后和按需 | 编辑后的诊断;符号查找时的位置信息 | 低;减少其他地方的文件读取 |229| **Code intelligence** | 文件编辑后和按需 | 编辑后的诊断;符号查找时的位置信息 | 低;减少其他地方的文件读取 |
230| **Subagents** | 生成时 | 具有指定 skills 的新鲜上下文,或用于 [fork](/docs/zh-CN/sub-agents.md#fork-the-current-conversation) 的父对话 | 与主会话隔离 |230| **Subagents** | 生成时 | 具有指定 skills 的新鲜上下文,或用于 [fork](https://code.claude.com/docs/zh-CN/sub-agents.md#fork-the-current-conversation) 的父对话 | 与主会话隔离 |
231| **Hooks** | 触发时 | 无(外部运行) | 零,除非 hook 返回额外上下文 |231| **Hooks** | 触发时 | 无(外部运行) | 零,除非 hook 返回额外上下文 |
232 232
233\*在 skill 的 frontmatter 中设置 [`disable-model-invocation: true`](/docs/zh-CN/skills#control-who-invokes-a-skill),可使其描述不进入 Claude 的上下文。对于您未编写的 skill,在设置中设置 [`skillOverrides`](/docs/zh-CN/skills#override-skill-visibility-from-settings) 以在不编辑其文件的情况下执行相同操作。233\*在 skill 的 frontmatter 中设置 [`disable-model-invocation: true`](https://code.claude.com/docs/zh-CN/skills#control-who-invokes-a-skill),可使其描述不进入 Claude 的上下文。对于您未编写的 skill,在设置中设置 [`skillOverrides`](https://code.claude.com/docs/zh-CN/skills#override-skill-visibility-from-settings) 以在不编辑其文件的情况下执行相同操作。
234 234
235### 了解功能如何加载235### 了解功能如何加载
236 236
242 242
243**何时:** 会话开始243**何时:** 会话开始
244 244
245**加载内容:** 所有 CLAUDE.md 文件的完整内容(托管、用户和项目级别)。245**加载内容:** 在会话开始时加载的每个 CLAUDE.md 文件的完整内容(托管、用户和项目级别)。
246 246
247**继承:** Claude 从您的工作目录读取 CLAUDE.md 文件直到根目录,并在访问这些文件时发现子目录中的嵌套文件。有关详细信息,请参阅 [CLAUDE.md 文件如何加载](/docs/zh-CN/memory.md#how-claude-md-files-load)。247**继承:** Claude 从您的工作目录读取 CLAUDE.md 文件直到根目录,并在访问这些文件时发现子目录中的嵌套文件。有关详细信息,请参阅 [CLAUDE.md 文件如何加载](https://code.claude.com/docs/zh-CN/memory.md#how-claude-md-files-load)。如果嵌套的 CLAUDE.md 超出其[单文件大小限制](https://code.claude.com/docs/zh-CN/memory.md#claude-ignores-the-end-of-my-subdirectory-claude-md),Claude 只会收到该文件的开头部分。
248 248
249> [!TIP]249> [!TIP]
250>250>
251> 保持 CLAUDE.md 在 200 行以下。将参考材料移到 skills,这些 skills 按需加载。要获取 [已检入 CLAUDE.md 的修剪建议](/docs/zh-CN/memory.md#my-claude-md-is-too-large),请运行 `/doctor`。251> 保持 CLAUDE.md 在 200 行以下。将参考材料移到 skills,这些 skills 按需加载。要获取 [已检入 CLAUDE.md 的修剪建议](https://code.claude.com/docs/zh-CN/memory.md#my-claude-md-is-too-large),请运行 `/doctor`。
252 252
253**Skills**253**Skills**
254 254
255Skills 是 Claude 工具包中的额外功能。它们可以是参考材料(如 API 风格指南)或可调用的工作流,您可以使用 `/<name>` 触发(如 `/deploy`)。Claude Code 包括 [捆绑的 skills](/docs/zh-CN/commands.md),如 `/code-review`、`/batch` 和 `/debug`,可以开箱即用。您也可以创建自己的。255Skills 是 Claude 工具包中的额外功能。它们可以是参考材料(如 API 风格指南)或可调用的工作流,您可以使用 `/<name>` 触发(如 `/deploy`)。Claude Code 包括 [捆绑的 skills](https://code.claude.com/docs/zh-CN/commands.md),如 `/code-review`、`/batch` 和 `/debug`,可以开箱即用。您也可以创建自己的。
256 256
257**何时:** 取决于 skill 的配置。默认情况下,描述在会话开始时加载,完整内容在使用时加载。对于仅用户 skills(`disable-model-invocation: true`),在您调用它们之前不加载任何内容。257**何时:** 取决于 skill 的配置。默认情况下,描述在会话开始时加载,完整内容在使用时加载。对于仅用户 skills(`disable-model-invocation: true`),在您调用它们之前不加载任何内容。
258 258
274 274
275**加载内容:** 来自连接的服务器的工具名称和服务器说明。完整的 JSON 架构保持延迟,直到 Claude 需要特定工具。275**加载内容:** 来自连接的服务器的工具名称和服务器说明。完整的 JSON 架构保持延迟,直到 Claude 需要特定工具。
276 276
277**上下文成本:** [工具搜索](/docs/zh-CN/mcp.md#scale-with-mcp-tool-search)默认启用,因此空闲 MCP 工具消耗最少的上下文。277**上下文成本:** [工具搜索](https://code.claude.com/docs/zh-CN/mcp.md#scale-with-mcp-tool-search)默认启用,因此空闲 MCP 工具消耗最少的上下文。
278 278
279> [!TIP]279> [!TIP]
280>280>
281> 运行 `/mcp` 查看每个服务器的连接状态。运行 `/context all` 查看每个加载的 MCP 工具使用多少令牌。Claude Code [自动重新连接到远程服务器](/docs/zh-CN/mcp.md#automatic-reconnection)(如果它们断开连接),您可以断开您未主动使用的服务器。281> 运行 `/mcp` 查看每个服务器的连接状态。运行 `/context all` 查看每个加载的 MCP 工具使用多少令牌。Claude Code [自动重新连接到远程服务器](https://code.claude.com/docs/zh-CN/mcp.md#automatic-reconnection)(如果它们断开连接),您可以断开您未主动使用的服务器。
282 282
283**Code intelligence**283**Code intelligence**
284 284
290 290
291> [!TIP]291> [!TIP]
292>292>
293> LSP 工具在您为您的语言安装 [code intelligence 插件](/docs/zh-CN/plugins/code-intelligence.md) 之前处于非活动状态。293> LSP 工具在您为您的语言安装 [code intelligence 插件](https://code.claude.com/docs/zh-CN/plugins/code-intelligence.md) 之前处于非活动状态。
294 294
295**Subagents**295**Subagents**
296 296
300 300
301* Agent 自己的系统提示词,而不是 Claude Code 系统提示词301* Agent 自己的系统提示词,而不是 Claude Code 系统提示词
302* Agent 的 `skills:` 字段中列出的 skill 的完整内容302* Agent 的 `skills:` 字段中列出的 skill 的完整内容
303* CLAUDE.md 和 git 状态。内置的 Explore 和 Plan Agent [启动时两者都不包含](/docs/zh-CN/sub-agents.md#what-loads-at-startup),而定义中设置了 [`omitClaudeMd`](/docs/zh-CN/sub-agents#supported-frontmatter-fields) 的 Agent 启动时不包含用户、项目和本地 CLAUDE.md 文件。303* CLAUDE.md 和 git 状态。内置的 Explore 和 Plan Agent [启动时两者都不包含](https://code.claude.com/docs/zh-CN/sub-agents.md#what-loads-at-startup),而定义中设置了 [`omitClaudeMd`](https://code.claude.com/docs/zh-CN/sub-agents#supported-frontmatter-fields) 的 Agent 启动时不包含用户、项目和本地 CLAUDE.md 文件。
304* 主 Agent 在提示词中传递的任何上下文304* 主 Agent 在提示词中传递的任何上下文
305 305
306对于 [fork](/docs/zh-CN/sub-agents.md#fork-the-current-conversation),Claude Code 加载父对话到目前为止、系统提示和工具。306对于 [fork](https://code.claude.com/docs/zh-CN/sub-agents.md#fork-the-current-conversation),Claude Code 加载父对话到目前为止、系统提示和工具。
307 307
308**上下文成本:** 与主会话隔离。308**上下文成本:** 与主会话隔离。
309 309
313 313
314**Hooks**314**Hooks**
315 315
316**何时:** 触发时。Claude Code 在特定的生命周期事件上运行 hooks,如工具执行、会话边界、提示提交、权限请求和压缩。有关完整列表,请参阅 [Hooks](/docs/zh-CN/hooks.md)。316**何时:** 触发时。Claude Code 在特定的生命周期事件上运行 hooks,如工具执行、会话边界、提示提交、权限请求和压缩。有关完整列表,请参阅 [Hooks](https://code.claude.com/docs/zh-CN/hooks.md)。
317 317
318**加载内容:** 默认情况下无。Hooks 在主对话外执行。318**加载内容:** 默认情况下无。Hooks 在主对话外执行。
319 319
327 327
328每个功能都有自己的指南,包含设置说明、示例和配置选项。328每个功能都有自己的指南,包含设置说明、示例和配置选项。
329 329
330> **[CLAUDE.md](/docs/zh-CN/memory.md)**330> **[CLAUDE.md](https://code.claude.com/docs/zh-CN/memory.md)**
331>331>
332> 存储项目上下文、约定和说明332> 存储项目上下文、约定和说明
333 333
334> **[Skills](/docs/zh-CN/skills.md)**334> **[Skills](https://code.claude.com/docs/zh-CN/skills.md)**
335>335>
336> 给予 Claude 领域专业知识和可重用的工作流336> 给予 Claude 领域专业知识和可重用的工作流
337 337
338> **[Subagents](/docs/zh-CN/sub-agents.md)**338> **[Subagents](https://code.claude.com/docs/zh-CN/sub-agents.md)**
339>339>
340> 将工作卸载到隔离的上下文340> 将工作卸载到隔离的上下文
341 341
342> **[Dynamic workflows](/docs/zh-CN/workflows.md)**342> **[Dynamic workflows](https://code.claude.com/docs/zh-CN/workflows.md)**
343>343>
344> 从一个脚本运行许多 subagents344> 从一个脚本运行许多 subagents
345 345
346> **[Cross-session messaging](/docs/zh-CN/cross-session-messaging.md)**346> **[Cross-session messaging](https://code.claude.com/docs/zh-CN/cross-session-messaging.md)**
347>347>
348> 让 Claude 向您的其他会话发送消息348> 让 Claude 向您的其他会话发送消息
349 349
350> **[MCP](/docs/zh-CN/mcp.md)**350> **[MCP](https://code.claude.com/docs/zh-CN/mcp.md)**
351>351>
352> 将 Claude 连接到外部服务352> 将 Claude 连接到外部服务
353 353
354> **[Hooks](/docs/zh-CN/hooks-guide.md)**354> **[Hooks](https://code.claude.com/docs/zh-CN/hooks-guide.md)**
355>355>
356> 使用 hooks 自动化操作356> 使用 hooks 自动化操作
357 357
358> **[Plugins](/docs/zh-CN/plugins/overview.md)**358> **[Plugins](https://code.claude.com/docs/zh-CN/plugins/overview.md)**
359>359>
360> 捆绑和共享功能集360> 捆绑和共享功能集
361 361
362> **[Marketplaces](/docs/zh-CN/plugins/create-marketplace.md)**362> **[Marketplaces](https://code.claude.com/docs/zh-CN/plugins/create-marketplace.md)**
363>363>
364> 托管和分发 plugin 集合364> 托管和分发 plugin 集合