6 6
7> 了解何时使用 CLAUDE.md、Skills、subagents、hooks、MCP 和 plugins。7> 了解何时使用 CLAUDE.md、Skills、subagents、hooks、MCP 和 plugins。
8 8
9Claude Code 结合了一个能够推理代码的模型和[内置工具](/zh-CN/how-claude-code-works#tools),用于文件操作、搜索、执行和网络访问。内置工具涵盖了大多数编码任务。本指南涵盖扩展层:您添加的功能,用于自定义 Claude 的知识、将其连接到外部服务以及自动化工作流。9Claude Code 结合了一个能够推理代码的模型和[内置工具](/docs/zh-CN/how-claude-code-works#tools),用于文件操作、搜索、执行和网络访问。内置工具涵盖了大多数编码任务。本指南涵盖扩展层:您添加的功能,用于自定义 Claude 的知识、将其连接到外部服务以及自动化工作流。
10 10
11<Note>11<Note>
12 有关核心代理循环如何工作的信息,请参阅 [Claude Code 如何工作](/zh-CN/how-claude-code-works)。12 有关核心代理循环如何工作的信息,请参阅 [Claude Code 如何工作](/docs/zh-CN/how-claude-code-works)。
13</Note>13</Note>
14 14
15**初次使用 Claude Code?** 从 [CLAUDE.md](/zh-CN/memory) 开始了解项目约定,然后根据需要添加其他扩展[当特定触发器出现时](#build-your-setup-over-time)。15**初次使用 Claude Code?** 从 [CLAUDE.md](/docs/zh-CN/memory) 开始了解项目约定,然后根据需要添加其他扩展[当特定触发器出现时](#build-your-setup-over-time)。
16 16
17<h2 id="overview">17<h2 id="overview">
18 概述18 概述
20 20
21扩展插入代理循环的不同部分:21扩展插入代理循环的不同部分:
22 22
23* **[CLAUDE.md](/zh-CN/memory)** 添加 Claude 每个会话都能看到的持久上下文23* **[CLAUDE.md](/docs/zh-CN/memory)** 添加 Claude 每个会话都能看到的持久上下文
24* **[Skills](/zh-CN/skills)** 添加可重用的知识和可调用的工作流24* **[Skills](/docs/zh-CN/skills)** 添加可重用的知识和可调用的工作流
25* **[代码智能](/zh-CN/tools-reference#lsp-tool-behavior)** 将 Claude 连接到语言服务器,用于符号级导航和实时类型错误25* **[代码智能](/docs/zh-CN/tools-reference#lsp-tool-behavior)** 将 Claude 连接到语言服务器,用于符号级导航和实时类型错误
26* **[MCP](/zh-CN/mcp)** 将 Claude 连接到外部服务和工具26* **[MCP](/docs/zh-CN/mcp)** 将 Claude 连接到外部服务和工具
27* **[Subagents](/zh-CN/sub-agents)** 在隔离的上下文中运行自己的循环,返回摘要27* **[Subagents](/docs/zh-CN/sub-agents)** 在隔离的上下文中运行自己的循环,返回摘要
28* **[Agent teams](/zh-CN/agent-teams)** 协调多个独立会话,具有共享任务和点对点消息传递28* **[动态工作流](/docs/zh-CN/workflows)** 从 Claude 编写的脚本运行许多 subagents,返回一个结果
29* **[Hooks](/zh-CN/hooks-guide)** 在生命周期事件上触发,可以运行脚本、HTTP 请求、提示或 subagent29* **[跨会话消息传递](/docs/zh-CN/cross-session-messaging)** 让 Claude 将消息从您的一个会话传递到另一个会话
30* **[Plugins](/zh-CN/plugins)** 和 **[marketplaces](/zh-CN/plugin-marketplaces)** 打包和分发这些功能30* **[Hooks](/docs/zh-CN/hooks-guide)** 在 Claude Code 到达生命周期事件时运行您的脚本、HTTP 请求、MCP 工具调用、提示或 subagent
31* **[Plugins](/docs/zh-CN/plugins)** 和 **[marketplaces](/docs/zh-CN/plugin-marketplaces)** 打包和分发这些功能
31 32
32[Skills](/zh-CN/skills) 是最灵活的扩展。Skill 是一个包含知识、工作流或说明的 markdown 文件。您可以使用 `/deploy` 之类的命令调用 skills,或者 Claude 可以在相关时自动加载它们。Skills 可以在您当前的对话中运行,也可以通过 subagents 在隔离的上下文中运行。33[Skills](/docs/zh-CN/skills) 是最灵活的扩展。Skill 是一个包含知识、工作流或说明的 markdown 文件。您可以使用 `/deploy` 之类的命令调用 skills,或者 Claude 可以在相关时自动加载它们。Skills 可以在您当前的对话中运行,也可以通过 subagents 在隔离的上下文中运行。
33 34
34<h2 id="match-features-to-your-goal">35<h2 id="match-features-to-your-goal">
35 将功能与您的目标相匹配36 将功能与您的目标相匹配
38功能范围从 Claude 每个会话都能看到的始终开启的上下文,到您或 Claude 可以调用的按需功能,再到在特定事件上运行的后台自动化。下表显示了可用的功能以及何时使用每个功能。39功能范围从 Claude 每个会话都能看到的始终开启的上下文,到您或 Claude 可以调用的按需功能,再到在特定事件上运行的后台自动化。下表显示了可用的功能以及何时使用每个功能。
39 40
40| 功能 | 作用 | 何时使用 | 示例 |41| 功能 | 作用 | 何时使用 | 示例 |
41| ----------------------------------------------------------------- | ----------------------------- | ---------------------------- | --------------------------------------- |42| ----------------------------------------------------------------- | -------------------------------------- | ------------------------------- | --------------------------------------- |
42| **CLAUDE.md** | 每次对话加载的持久上下文 | 项目约定、"始终执行 X" 规则 | "使用 pnpm,而不是 npm。提交前运行测试。" |43| **CLAUDE.md** | 每次对话加载的持久上下文 | 项目约定、"始终执行 X" 规则 | "使用 pnpm,而不是 npm。提交前运行测试。" |
43| **Skill** | Claude 可以使用的说明、知识和工作流 | 可重用内容、参考文档、可重复的任务 | `/deploy` 运行您的部署清单;包含端点模式的 API 文档 skill |44| **Skill** | Claude 可以使用的说明、知识和工作流 | 可重用内容、参考文档、可重复的任务 | `/deploy` 运行您的部署清单;包含端点模式的 API 文档 skill |
44| **Subagent** | 返回摘要结果的隔离执行上下文 | 上下文隔离、并行任务、专门的工作者 | 读取许多文件但仅返回关键发现的研究任务 |45| **Subagent** | 返回摘要结果的隔离执行上下文 | 上下文隔离、并行任务、专门的工作者 | 读取许多文件但仅返回关键发现的研究任务 |
45| **[Agent teams](/zh-CN/agent-teams)** | 协调多个独立的 Claude Code 会话 | 并行研究、新功能开发、使用竞争假设进行调试 | 生成审查者同时检查安全性、性能和测试 |46| **[Dynamic workflow](/docs/zh-CN/workflows)** | Claude 编写的脚本,在后台运行许多 subagents | 超出少数 subagents 范围的工作,或您想交叉检查的发现 | 审计整个代码库,第二组代理验证每个发现 |
46| **[Code intelligence](/zh-CN/tools-reference#lsp-tool-behavior)** | 语言服务器导航和诊断 | 类型化语言、大型代码库(其中 grep 速度慢或不精确) | 跳转到符号的定义,而不是读取整个文件 |47| **[Cross-session messaging](/docs/zh-CN/cross-session-messaging)** | Claude 将消息从您的一个会话传递到另一个会话 | 您自己运行的需要彼此发现的会话,在任务中途 | 一个会话警告另一个会话,它所做的更改会破坏另一个会话正在构建的内容 |
48| **[Code intelligence](/docs/zh-CN/tools-reference#lsp-tool-behavior)** | 语言服务器导航和诊断 | 类型化语言、大型代码库(其中 grep 速度慢或不精确) | 跳转到符号的定义,而不是读取整个文件 |
47| **MCP** | 连接到外部服务 | 外部数据或操作 | 查询您的数据库、发布到 Slack、控制浏览器 |49| **MCP** | 连接到外部服务 | 外部数据或操作 | 查询您的数据库、发布到 Slack、控制浏览器 |
48| **Hook** | 由事件触发的脚本、HTTP 请求、提示或 subagent | 必须在每个匹配事件上运行的自动化 | 每次文件编辑后运行 ESLint |50| **Hook** | 由事件触发的脚本、HTTP 请求、MCP 工具调用、提示或 subagent | 必须在每个匹配事件上运行的自动化 | 每次文件编辑后运行 ESLint |
49| **[Artifact](/zh-CN/artifacts)** | 将会话输出发布为私有、交互式网页 | 您想以视觉方式查看或共享的输出,而不是作为终端文本 | 一个在 Claude 调查时更新的事件时间线 |51| **[Artifact](/docs/zh-CN/artifacts)** | 将会话输出发布为私有、交互式网页 | 您想以视觉方式查看或共享的输出,而不是作为终端文本 | 一个在 Claude 调查时更新的事件时间线 |
50 52
51**[Plugins](/zh-CN/plugins)** 是打包层。Plugin 将 skills、hooks、subagents 和 MCP servers 捆绑到单个可安装单元中。Plugin skills 是命名空间的(如 `/my-plugin:review`),因此多个 plugins 可以共存。当您想在多个存储库中重用相同的设置或通过 **[marketplace](/zh-CN/plugin-marketplaces)** 分发给他人时,使用 plugins。53**[Plugins](/docs/zh-CN/plugins)** 是打包层。Plugin 将 skills、hooks、subagents 和 MCP servers 捆绑到单个可安装单元中。Plugin skills 是命名空间的(如 `/my-plugin:review`),因此多个 plugins 可以共存。当您想在多个存储库中重用相同的设置或通过 **[marketplace](/docs/zh-CN/plugin-marketplaces)** 分发给他人时,使用 plugins。
52 54
53<h3 id="build-your-setup-over-time">55<h3 id="build-your-setup-over-time">
54 随时间推移构建您的设置56 随时间推移构建您的设置
58 60
59| 触发器 | 添加 |61| 触发器 | 添加 |
60| :-------------------------- | :---------------------------------------------------------------------------- |62| :-------------------------- | :---------------------------------------------------------------------------- |
61| Claude 两次出错约定或命令 | 将其添加到 [CLAUDE.md](/zh-CN/memory) |63| Claude 两次出错约定或命令 | 将其添加到 [CLAUDE.md](/docs/zh-CN/memory) |
62| 您一直在输入相同的提示来启动任务 | 将其保存为用户可调用的 [skill](/zh-CN/skills) |64| 您一直在输入相同的提示来启动任务 | 将其保存为用户可调用的 [skill](/docs/zh-CN/skills) |
63| 您第三次将相同的剧本或多步骤过程粘贴到聊天中 | 将其捕获为 [skill](/zh-CN/skills) |65| 您第三次将相同的剧本或多步骤过程粘贴到聊天中 | 将其捕获为 [skill](/docs/zh-CN/skills) |
64| 您一直在从 Claude 看不到的浏览器标签页复制数据 | 将该系统连接为 [MCP server](/zh-CN/mcp) |66| 您一直在从 Claude 看不到的浏览器标签页复制数据 | 将该系统连接为 [MCP server](/docs/zh-CN/mcp) |
65| Claude 读取许多文件以查找符号的定义或使用位置 | 为您的语言安装 [code intelligence plugin](/zh-CN/discover-plugins#code-intelligence) |67| Claude 读取许多文件以查找符号的定义或使用位置 | 为您的语言安装 [code intelligence plugin](/docs/zh-CN/discover-plugins#code-intelligence) |
66| 一个辅助任务用您不会再次引用的输出淹没您的对话 | 通过 [subagent](/zh-CN/sub-agents) 路由它 |68| 一个辅助任务用您不会再次引用的输出淹没您的对话 | 通过 [subagent](/docs/zh-CN/sub-agents) 路由它 |
67| 您希望每次都发生某事而无需询问 | 编写 [hook](/zh-CN/hooks-guide) |69| 您希望每次都发生某事而无需询问 | 编写 [hook](/docs/zh-CN/hooks-guide) |
68| 第二个存储库需要相同的设置 | 将其打包为 [plugin](/zh-CN/plugins) |70| 第二个存储库需要相同的设置 | 将其打包为 [plugin](/docs/zh-CN/plugins) |
69 71
70相同的触发器告诉您何时更新您已有的内容。重复的错误或反复出现的审查评论是 CLAUDE.md 编辑,而不是聊天中的一次性更正。您一直手动调整的工作流是需要另一次修订的 skill。72相同的触发器告诉您何时更新您已有的内容。重复的错误或反复出现的审查评论是 CLAUDE.md 编辑,而不是聊天中的一次性更正。您一直手动调整的工作流是需要另一次修订的 skill。
71 73
86 | ------------------------------------ | ------------- | --------------------- |88 | ------------------------------------ | ------------- | --------------------- |
87 | **它是什么** | 可重用的说明、知识或工作流 | 具有自己上下文的隔离工作者 |89 | **它是什么** | 可重用的说明、知识或工作流 | 具有自己上下文的隔离工作者 |
88 | **关键优势** | 在上下文之间共享内容 | 上下文隔离。工作单独进行,仅返回摘要 |90 | **关键优势** | 在上下文之间共享内容 | 上下文隔离。工作单独进行,仅返回摘要 |
89 | **[上下文窗口](/zh-CN/context-window)影响** | 添加到您的主窗口 | 使用具有自己输入和输出令牌的单独窗口 |91 | **[上下文窗口](/docs/zh-CN/context-window)影响** | 添加到您的主窗口 | 使用具有自己输入和输出令牌的单独窗口 |
90 | **最适合** | 参考材料、可调用的工作流 | 读取许多文件的任务、并行工作、专门的工作者 |92 | **最适合** | 参考材料、可调用的工作流 | 读取许多文件的任务、并行工作、专门的工作者 |
91 93
92 **Skills 可以是参考或操作。** 参考 skills 提供 Claude 在整个会话中使用的知识(如您的 API 风格指南)。操作 skills 告诉 Claude 执行特定操作(如运行您的部署工作流的 `/deploy`)。94 **Skills 可以是参考或操作。** 参考 skills 提供 Claude 在整个会话中使用的知识(如您的 API 风格指南)。操作 skills 告诉 Claude 执行特定操作(如运行您的部署工作流的 `/deploy`)。
93 95
94 **当您需要上下文隔离或上下文窗口变满时,使用 subagent**。Subagent 可能读取数十个文件或运行广泛的搜索,但您的主对话仅接收摘要。由于 subagent 工作不消耗您的主上下文,当您不需要中间工作保持可见时,这也很有用。自定义 subagents 可以有自己的说明并可以预加载 skills。96 **当您需要上下文隔离或上下文窗口变满时,使用 subagent**。Subagent 可能读取数十个文件或运行广泛的搜索,但您的主对话仅接收摘要。由于 subagent 工作不消耗您的主上下文,当您不需要中间工作保持可见时,这也很有用。自定义 subagents 可以有自己的说明并可以预加载 skills。
95 97
96 **它们可以结合。** Subagent 可以预加载特定的 skills(`skills:` 字段)。Skill 可以使用 `context: fork` 在隔离的上下文中运行。有关详细信息,请参阅 [Skills](/zh-CN/skills)。98 **它们可以结合。** Subagent 可以预加载特定的 skills(`skills:` 字段)。Skill 可以使用 `context: fork` 在隔离的上下文中运行。有关详细信息,请参阅 [Skills](/docs/zh-CN/skills)。
97 </Tab>99 </Tab>
98 100
99 <Tab title="CLAUDE.md vs Skill">101 <Tab title="CLAUDE.md vs Skill">
110 112
111 **如果它是 Claude 有时需要的参考材料(API 文档、风格指南)或您使用 `/<name>` 触发的工作流(部署、审查、发布),请将其放在 skill 中**。113 **如果它是 Claude 有时需要的参考材料(API 文档、风格指南)或您使用 `/<name>` 触发的工作流(部署、审查、发布),请将其放在 skill 中**。
112 114
113 **经验法则:** 保持 CLAUDE.md 在 200 行以下。如果它在增长,将参考内容移到 skills 或拆分为 [`.claude/rules/`](/zh-CN/memory#organize-rules-with-claude%2Frules%2F) 文件。115 **经验法则:** 保持 CLAUDE.md 在 200 行以下。如果它在增长,将参考内容移到 skills 或拆分为 [`.claude/rules/`](/docs/zh-CN/memory#organize-rules-with-claude%2Frules%2F) 文件。
114 </Tab>116 </Tab>
115 117
116 <Tab title="CLAUDE.md vs Rules vs Skills">118 <Tab title="CLAUDE.md vs Rules vs Skills">
124 126
125 **对于每个会话需要的说明,使用 CLAUDE.md**:构建命令、测试约定、项目架构。127 **对于每个会话需要的说明,使用 CLAUDE.md**:构建命令、测试约定、项目架构。
126 128
127 **使用 rules 来保持 CLAUDE.md 专注。** 带有 [`paths` frontmatter](/zh-CN/memory#path-specific-rules) 的 rules 仅在 Claude 处理匹配文件时加载,节省上下文。129 **使用 rules 来保持 CLAUDE.md 专注。** 带有 [`paths` frontmatter](/docs/zh-CN/memory#path-specific-rules) 的 rules 仅在 Claude 处理匹配文件时加载,节省上下文。
128 130
129 **对于 Claude 有时只需要的内容,使用 skills**,如 API 文档或您使用 `/<name>` 触发的部署清单。131 **对于 Claude 有时只需要的内容,使用 skills**,如 API 文档或您使用 `/<name>` 触发的部署清单。
130 </Tab>132 </Tab>
131 133
132 <Tab title="Subagent vs Agent team">134 <Tab title="Subagent vs Dynamic workflow">
133 两者都并行化工作,但它们在架构上不同:135 两者都在您的主对话之外进行工作。使用 subagents,Claude 逐轮决定接下来运行什么。在工作流中,脚本决定:
134 136
135 * **Subagents** 在您的会话内运行并将结果报告回您的主上下文137 * **Subagents** 是 Claude 生成的工作者,每个都向生成它的对话返回摘要
136 * **Agent teams** 是相互通信的独立 Claude Code 会话138 * **[Dynamic workflows](/docs/zh-CN/workflows)** 是 Claude 编写的脚本,在后台运行许多 subagents 并返回一个结果
137 139
138 | 方面 | Subagent | Agent team |140 **当您需要一个快速、专注的工作者时,使用 subagent**:研究一个问题、验证一个声明、审查一个文件。Subagent 完成工作并返回摘要,所以您的主对话保持清洁。Claude 在生成时命名的 subagents 也可以 [相互发送消息](/docs/zh-CN/sub-agents#what-loads-at-startup)。
139 | -------- | ----------------- | ----------------------- |
140 | **上下文** | 自己的上下文窗口;结果返回给调用者 | 自己的上下文窗口;完全独立 |
141 | **通信** | 仅向主代理报告结果 | 队友直接相互发送消息 |
142 | **协调** | 主代理管理所有工作 | 具有自我协调的共享任务列表 |
143 | **最适合** | 仅结果重要的专注任务 | 需要讨论和协作的复杂工作 |
144 | **令牌成本** | 较低:结果摘要返回到主上下文 | 较高:每个队友是一个单独的 Claude 实例 |
145 141
146 **当您需要一个快速、专注的工作者时,使用 subagent**:研究一个问题、验证一个声明、审查一个文件。Subagent 完成工作并返回摘要。您的主对话保持清洁。142 当一个工作[超出少数 subagents 的范围](/docs/zh-CN/workflows#when-to-use-a-workflow)时,或当您想在看到发现之前交叉检查它们时,**使用 dynamic workflow**,例如代码库范围的审计、大型迁移或从多个角度起草的计划。要启动一个,[在您的提示中要求一个工作流](/docs/zh-CN/workflows#ask-for-a-workflow-in-your-prompt)。
147 143
148 **当队友需要共享发现、相互质疑和独立协调时,使用 agent team**。Agent teams 最适合具有竞争假设的研究、并行代码审查以及每个队友拥有单独部分的新功能开发。144 **要将一个发现从您的一个会话传递到另一个会话**,要求第一个会话的 Claude 发送它。Claude 使用 [cross-session messaging](/docs/zh-CN/cross-session-messaging) 传递它。[并行运行代理](/docs/zh-CN/agents) 比较了运行多个 Claude 的其他方式,包括您交接并稍后检查的会话。
149
150 **过渡点:** 如果您运行并行 subagents 但遇到上下文限制,或者您的 subagents 需要相互通信,agent teams 是自然的下一步。
151
152 <Note>
153 Agent teams 是实验性的,默认禁用。有关设置和当前限制,请参阅 [agent teams](/zh-CN/agent-teams)。
154 </Note>
155 </Tab>145 </Tab>
156 146
157 <Tab title="MCP vs Skill">147 <Tab title="MCP vs Skill">
168 **MCP** 给予 Claude 与外部系统交互的目的构建的工具,连接和身份验证由服务器处理。158 **MCP** 给予 Claude 与外部系统交互的目的构建的工具,连接和身份验证由服务器处理。
169 159
170 **Skills** 给予 Claude 关于如何有效使用这些工具的知识,以及您可以使用 `/<name>` 触发的工作流。Skill 可能包括您团队的数据库架构和查询模式,或带有您团队消息格式规则的 `/post-to-slack` 工作流。160 **Skills** 给予 Claude 关于如何有效使用这些工具的知识,以及您可以使用 `/<name>` 触发的工作流。Skill 可能包括您团队的数据库架构和查询模式,或带有您团队消息格式规则的 `/post-to-slack` 工作流。
171
172 示例:MCP 服务器将 Claude 连接到您的数据库。Skill 教导 Claude 您的数据模型、常见查询模式以及用于不同任务的表。
173 </Tab>161 </Tab>
174 162
175 <Tab title="Hook vs Skill">163 <Tab title="Hook vs Skill">
176 Hook 在生命周期事件上触发;skill 被加载到上下文中供 Claude 应用。164 Claude Code 在生命周期事件上运行 hook;它将 skill 加载到上下文中供 Claude 应用。
177 165
178 | 方面 | Hook | Skill |166 | 方面 | Hook | Skill |
179 | --------- | ------------------------------------------------------------------- | ---------------------------------- |167 | --------- | ------------------------------------------------------------------- | ---------------------------------- |
180 | **运行** | Shell 命令、HTTP 请求、LLM 提示或 subagent | Claude 读取和遵循的说明 |168 | **运行** | Shell 命令、HTTP 请求、MCP 工具调用、LLM 提示或 subagent | Claude 读取和遵循的说明 |
181 | **由以下触发** | [生命周期事件](/zh-CN/hooks#hook-events),如 `PostToolUse` 或 `SessionStart` | 您输入 `/<name>`,或 Claude 将描述与您的任务相匹配 |169 | **由以下触发** | [生命周期事件](/docs/zh-CN/hooks#hook-events),如 `PostToolUse` 或 `SessionStart` | 您输入 `/<name>`,或 Claude 将描述与您的任务相匹配 |
182 | **确定性** | 总是在其事件上触发;触发器是有保证的 | Claude 解释说明;结果可能会有所不同 |170 | **确定性** | 总是在其事件上触发;触发器是有保证的 | Claude 解释说明;结果可能会有所不同 |
183 | **上下文成本** | 零,除非 hook 返回输出 | 描述在每个会话加载;使用时加载完整内容 |171 | **上下文成本** | 零,除非 hook 返回输出 | 描述在每个会话加载;使用时加载完整内容 |
184 | **最适合** | 每次都以相同方式运行且不需要 Claude 思考的操作 | 需要推理的工作流、参考材料、多步骤任务 |172 | **最适合** | 每次都以相同方式运行且不需要 Claude 思考的操作 | 需要推理的工作流、参考材料、多步骤任务 |
199 187
200功能可以在多个级别定义:用户范围、每个项目、通过 plugins 或通过托管策略。您还可以在子目录中嵌套 CLAUDE.md 文件或在 monorepo 的特定包中放置 skills。当相同的功能存在于多个级别时,以下是它们的分层方式:188功能可以在多个级别定义:用户范围、每个项目、通过 plugins 或通过托管策略。您还可以在子目录中嵌套 CLAUDE.md 文件或在 monorepo 的特定包中放置 skills。当相同的功能存在于多个级别时,以下是它们的分层方式:
201 189
202* **CLAUDE.md 文件** 是累加的:所有级别同时向 Claude 的上下文贡献内容。来自您的工作目录及以上的文件在启动时加载;子目录在您在其中工作时加载。当说明冲突时,Claude 使用判断来协调它们,更具体的说明通常优先。有关详细信息,请参阅 [CLAUDE.md 文件如何加载](/zh-CN/memory#how-claude-md-files-load)。190* **CLAUDE.md 文件** 是累加的:所有级别同时向 Claude 的上下文贡献内容。来自您的工作目录及以上的文件在启动时加载;子目录在您在其中工作时加载。当说明冲突时,Claude 使用判断来协调它们,更具体的说明通常优先。有关详细信息,请参阅 [CLAUDE.md 文件如何加载](/docs/zh-CN/memory#how-claude-md-files-load)。
203* **Skills 和 subagents** 按名称覆盖:当相同的名称存在于多个级别时,一个定义根据优先级获胜(对于 skills 为托管 > 用户 > 项目;对于 subagents 为托管 > CLI 标志 > 项目 > 用户 > plugin)。Plugin skills 是 [命名空间的](/zh-CN/plugins#add-skills-to-your-plugin) 以避免冲突。有关详细信息,请参阅 [skill 发现](/zh-CN/skills#where-skills-live) 和 [subagent 范围](/zh-CN/sub-agents#choose-the-subagent-scope)。191* **Skills 和 subagents** 按名称覆盖:当相同的名称存在于多个级别时,一个定义根据优先级获胜(对于 skills 为托管 > 用户 > 项目;对于 subagents 为托管 > CLI 标志 > 项目 > 用户 > plugin)。Plugin skills 是 [命名空间的](/docs/zh-CN/plugins#add-skills-to-your-plugin) 以避免冲突。有关详细信息,请参阅 [skill 发现](/docs/zh-CN/skills#resolve-skills-that-share-a-name) 和 [subagent 范围](/docs/zh-CN/sub-agents#choose-the-subagent-scope)。
204* **MCP 服务器** 按名称覆盖:本地 > 项目 > 用户。有关详细信息,请参阅 [MCP 范围](/zh-CN/mcp#scope-hierarchy-and-precedence)。192* **MCP 服务器** 按名称覆盖:本地 > 项目 > 用户。有关详细信息,请参阅 [MCP 范围](/docs/zh-CN/mcp#scope-hierarchy-and-precedence)。
205* **Hooks** 合并:所有注册的 hooks 为其匹配的事件触发,无论来源如何。有关详细信息,请参阅 [hooks](/zh-CN/hooks-guide)。193* **Hooks** 合并:所有注册的 hooks 为其匹配的事件触发,无论来源如何。有关详细信息,请参阅 [hooks](/docs/zh-CN/hooks)。
206 194
207<h3 id="combine-features">195<h3 id="combine-features">
208 组合功能196 组合功能
223 了解上下文成本211 了解上下文成本
224</h2>212</h2>
225 213
226您添加的每个功能都会消耗 Claude 的一些上下文。太多可能会填满您的上下文窗口,但它也可能增加噪音,使 Claude 效率降低;skills 可能无法正确触发,或 Claude 可能会失去对您的约定的跟踪。了解这些权衡有助于您构建有效的设置。有关这些功能如何在运行会话中组合的交互式视图,请参阅 [探索上下文窗口](/zh-CN/context-window)。214您添加的每个功能都会消耗 Claude 的一些上下文。太多可能会填满您的上下文窗口,但它也可能增加噪音,使 Claude 效率降低;skills 可能无法正确触发,或 Claude 可能会失去对您的约定的跟踪。了解这些权衡有助于您构建有效的设置。有关这些功能如何在运行会话中组合的交互式视图,请参阅 [探索上下文窗口](/docs/zh-CN/context-window)。
227 215
228<h3 id="context-cost-by-feature">216<h3 id="context-cost-by-feature">
229 按功能的上下文成本217 按功能的上下文成本
232每个功能都有不同的加载策略和上下文成本:220每个功能都有不同的加载策略和上下文成本:
233 221
234| 功能 | 何时加载 | 加载内容 | 上下文成本 |222| 功能 | 何时加载 | 加载内容 | 上下文成本 |
235| --------------------- | ---------- | ------------------ | ----------------- |223| --------------------- | ---------- | ----------------------------------------------------------------------------------- | ----------------- |
236| **CLAUDE.md** | 会话开始 | 完整内容 | 每个请求 |224| **CLAUDE.md** | 会话开始 | 完整内容 | 每个请求 |
237| **Skills** | 会话开始 + 使用时 | 启动时的描述,使用时的完整内容 | 低(每个请求的描述)\* |225| **Skills** | 会话开始 + 使用时 | 启动时的描述,使用时的完整内容 | 低(每个请求的描述)\* |
238| **MCP 服务器** | 会话开始 | 工具名称;完整架构按需 | 低,直到使用工具 |226| **MCP 服务器** | 会话开始 | 工具名称;完整架构按需 | 低,直到使用工具 |
239| **Code intelligence** | 文件编辑后和按需 | 编辑后的诊断;符号查找时的位置信息 | 低;减少其他地方的文件读取 |227| **Code intelligence** | 文件编辑后和按需 | 编辑后的诊断;符号查找时的位置信息 | 低;减少其他地方的文件读取 |
240| **Subagents** | 生成时 | 具有指定 skills 的新鲜上下文 | 与主会话隔离 |228| **Subagents** | 生成时 | 具有指定 skills 的新鲜上下文,或用于 [fork](/docs/zh-CN/sub-agents#fork-the-current-conversation) 的父对话 | 与主会话隔离 |
241| **Hooks** | 触发时 | 无(外部运行) | 零,除非 hook 返回额外上下文 |229| **Hooks** | 触发时 | 无(外部运行) | 零,除非 hook 返回额外上下文 |
242 230
243\*默认情况下,skill 描述在会话开始时加载,以便 Claude 可以决定何时使用它们。在 skill 的 frontmatter 中设置 `disable-model-invocation: true` 以将其完全隐藏在 Claude 中,直到您手动调用它。这将 skills 的上下文成本降低到零,您只需自己触发这些 skills。对于您未编写的 skill,在设置中设置 [`skillOverrides`](/zh-CN/skills#override-skill-visibility-from-settings) 以在不编辑其文件的情况下执行相同操作。231\*默认情况下,skill 描述在会话开始时加载,以便 Claude 可以决定何时使用它们。在 skill 的 frontmatter 中设置 `disable-model-invocation: true` 以将其完全隐藏在 Claude 中,直到您手动调用它。对于您未编写的 skill,在设置中设置 [`skillOverrides`](/docs/zh-CN/skills#override-skill-visibility-from-settings) 以在不编辑其文件的情况下执行相同操作。
244 232
245<h3 id="understand-how-features-load">233<h3 id="understand-how-features-load">
246 了解功能如何加载234 了解功能如何加载
248 236
249每个功能在会话的不同点加载。下面的选项卡解释了每个功能何时加载以及什么进入上下文。237每个功能在会话的不同点加载。下面的选项卡解释了每个功能何时加载以及什么进入上下文。
250 238
251<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/context-loading.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=aab139e750494a237ae2e0c8f9139b0a" alt="上下文加载:CLAUDE.md 在会话开始时加载并保留在每个请求中。MCP 工具名称在启动时加载,完整架构延迟到使用。Skills 在启动时加载描述,在调用时加载完整内容。Subagents 获得隔离的上下文。Hooks 外部运行。" width="720" height="382" data-path="images/context-loading.svg" />239<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/context-loading.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=aab139e750494a237ae2e0c8f9139b0a" className="dark:hidden" alt="上下文加载:CLAUDE.md 在会话开始时加载并保留在每个请求中。MCP 工具名称在启动时加载,完整架构延迟到使用。Skills 在启动时加载描述,在调用时加载完整内容。Subagents 获得隔离的上下文。Hooks 外部运行。" width="720" height="382" data-path="images/context-loading.svg" />
240
241<img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/context-loading-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=b274089ef9612d9c760bca9838557626" className="hidden dark:block" alt="上下文加载:CLAUDE.md 在会话开始时加载并保留在每个请求中。MCP 工具名称在启动时加载,完整架构延迟到使用。Skills 在启动时加载描述,在调用时加载完整内容。Subagents 获得隔离的上下文。Hooks 外部运行。" width="720" height="382" data-path="images/context-loading-dark.svg" />
252 242
253<Tabs>243<Tabs>
254 <Tab title="CLAUDE.md">244 <Tab title="CLAUDE.md">
256 246
257 **加载内容:** 所有 CLAUDE.md 文件的完整内容(托管、用户和项目级别)。247 **加载内容:** 所有 CLAUDE.md 文件的完整内容(托管、用户和项目级别)。
258 248
259 **继承:** Claude 从您的工作目录读取 CLAUDE.md 文件直到根目录,并在访问这些文件时发现子目录中的嵌套文件。有关详细信息,请参阅 [CLAUDE.md 文件如何加载](/zh-CN/memory#how-claude-md-files-load)。249 **继承:** Claude 从您的工作目录读取 CLAUDE.md 文件直到根目录,并在访问这些文件时发现子目录中的嵌套文件。有关详细信息,请参阅 [CLAUDE.md 文件如何加载](/docs/zh-CN/memory#how-claude-md-files-load)。
260 250
261 <Tip>保持 CLAUDE.md 在 200 行以下。将参考材料移到 skills,这些 skills 按需加载。</Tip>251 <Tip>保持 CLAUDE.md 在 200 行以下。将参考材料移到 skills,这些 skills 按需加载。要获取 [已检入 CLAUDE.md 的修剪建议](/docs/zh-CN/memory#my-claude-md-is-too-large),请运行 `/doctor`。</Tip>
262 </Tab>252 </Tab>
263 253
264 <Tab title="Skills">254 <Tab title="Skills">
265 Skills 是 Claude 工具包中的额外功能。它们可以是参考材料(如 API 风格指南)或可调用的工作流,您可以使用 `/<name>` 触发(如 `/deploy`)。Claude Code 包括 [捆绑的 skills](/zh-CN/commands),如 `/code-review`、`/batch` 和 `/debug`,可以开箱即用。您也可以创建自己的。Claude 在适当时使用 skills,或者您可以直接调用一个。255 Skills 是 Claude 工具包中的额外功能。它们可以是参考材料(如 API 风格指南)或可调用的工作流,您可以使用 `/<name>` 触发(如 `/deploy`)。Claude Code 包括 [捆绑的 skills](/docs/zh-CN/commands),如 `/code-review`、`/batch` 和 `/debug`,可以开箱即用。您也可以创建自己的。
266 256
267 **何时:** 取决于 skill 的配置。默认情况下,描述在会话开始时加载,完整内容在使用时加载。对于仅用户 skills(`disable-model-invocation: true`),在您调用它们之前不加载任何内容。257 **何时:** 取决于 skill 的配置。默认情况下,描述在会话开始时加载,完整内容在使用时加载。对于仅用户 skills(`disable-model-invocation: true`),在您调用它们之前不加载任何内容。
268 258
280 <Tab title="MCP 服务器">270 <Tab title="MCP 服务器">
281 **何时:** 会话开始。271 **何时:** 会话开始。
282 272
283 **加载内容:** 来自连接的服务器的工具名称。完整的 JSON 架构保持延迟,直到 Claude 需要特定工具。273 **加载内容:** 来自连接的服务器的工具名称和服务器说明。完整的 JSON 架构保持延迟,直到 Claude 需要特定工具。
284 274
285 **上下文成本:** [工具搜索](/zh-CN/mcp#scale-with-mcp-tool-search)默认启用,因此空闲 MCP 工具消耗最少的上下文。275 **上下文成本:** [工具搜索](/docs/zh-CN/mcp#scale-with-mcp-tool-search)默认启用,因此空闲 MCP 工具消耗最少的上下文。
286 276
287 <Tip>运行 `/mcp` 查看连接状态和每个服务器的令牌成本。Claude Code [自动重新连接到远程服务器](/zh-CN/mcp#automatic-reconnection)(如果它们断开连接),您可以断开您未主动使用的服务器。</Tip>277 <Tip>运行 `/mcp` 查看每个服务器的连接状态。运行 `/context all` 查看每个加载的 MCP 工具使用多少令牌。Claude Code [自动重新连接到远程服务器](/docs/zh-CN/mcp#automatic-reconnection)(如果它们断开连接),您可以断开您未主动使用的服务器。</Tip>
288 </Tab>278 </Tab>
289 279
290 <Tab title="Code intelligence">280 <Tab title="Code intelligence">
294 284
295 **上下文成本:** 低。符号查找通常替代广泛的文件读取,因此净上下文使用可能会下降。285 **上下文成本:** 低。符号查找通常替代广泛的文件读取,因此净上下文使用可能会下降。
296 286
297 <Tip>LSP 工具在您为您的语言安装 [code intelligence 插件](/zh-CN/discover-plugins#code-intelligence) 之前处于非活动状态。</Tip>287 <Tip>LSP 工具在您为您的语言安装 [code intelligence 插件](/docs/zh-CN/discover-plugins#code-intelligence) 之前处于非活动状态。</Tip>
298 </Tab>288 </Tab>
299 289
300 <Tab title="Subagents">290 <Tab title="Subagents">
302 292
303 **加载内容:** 新鲜、隔离的上下文,包含:293 **加载内容:** 新鲜、隔离的上下文,包含:
304 294
305 * agent 的自己的系统提示,而不是完整的 Claude Code 系统提示295 * agent 的自己的系统提示,而不是 Claude Code 系统提示
306 * agent 的 `skills:` 字段中列出的 skills 的完整内容296 * agent 的 `skills:` 字段中列出的 skills 的完整内容
307 * CLAUDE.md 和 git 状态,除了内置的 Explore 和 Plan agents [省略两者](/zh-CN/sub-agents#what-loads-at-startup)297 * CLAUDE.md 和 git 状态,除了内置的 Explore 和 Plan agents [省略两者](/docs/zh-CN/sub-agents#what-loads-at-startup)
308 * 主 agent 在提示中传递的任何上下文298 * 主 agent 在提示中传递的任何上下文
309 299
310 **上下文成本:** 与主会话隔离。Subagents 不继承您的对话历史或调用的 skills。300 对于 [fork](/docs/zh-CN/sub-agents#fork-the-current-conversation),Claude Code 加载父对话到目前为止、系统提示和工具。
301
302 **上下文成本:** 与主会话隔离。
311 303
312 <Tip>对于不需要您完整对话上下文的工作,使用 subagents。它们的隔离防止膨胀您的主会话。</Tip>304 <Tip>对于不需要您完整对话上下文的工作,使用 subagents。它们的隔离防止膨胀您的主会话。</Tip>
313 </Tab>305 </Tab>
314 306
315 <Tab title="Hooks">307 <Tab title="Hooks">
316 **何时:** 触发时。Hooks 在特定的生命周期事件上触发,如工具执行、会话边界、提示提交、权限请求和压缩。有关完整列表,请参阅 [Hooks](/zh-CN/hooks)。308 **何时:** 触发时。Claude Code 在特定的生命周期事件上运行 hooks,如工具执行、会话边界、提示提交、权限请求和压缩。有关完整列表,请参阅 [Hooks](/docs/zh-CN/hooks)。
317 309
318 **加载内容:** 默认情况下无。Hooks 在主对话外执行。310 **加载内容:** 默认情况下无。Hooks 在主对话外执行。
319 311
330每个功能都有自己的指南,包含设置说明、示例和配置选项。322每个功能都有自己的指南,包含设置说明、示例和配置选项。
331 323
332<CardGroup cols={2}>324<CardGroup cols={2}>
333 <Card title="CLAUDE.md" icon="file-lines" href="/zh-CN/memory">325 <Card title="CLAUDE.md" icon="file-lines" href="/docs/zh-CN/memory">
334 存储项目上下文、约定和说明326 存储项目上下文、约定和说明
335 </Card>327 </Card>
336 328
337 <Card title="Skills" icon="brain" href="/zh-CN/skills">329 <Card title="Skills" icon="brain" href="/docs/zh-CN/skills">
338 给予 Claude 领域专业知识和可重用的工作流330 给予 Claude 领域专业知识和可重用的工作流
339 </Card>331 </Card>
340 332
341 <Card title="Subagents" icon="users" href="/zh-CN/sub-agents">333 <Card title="Subagents" icon="users" href="/docs/zh-CN/sub-agents">
342 将工作卸载到隔离的上下文334 将工作卸载到隔离的上下文
343 </Card>335 </Card>
344 336
345 <Card title="Agent teams" icon="network" href="/zh-CN/agent-teams">337 <Card title="Dynamic workflows" icon="network" href="/docs/zh-CN/workflows">
346 协调多个并行工作的会话338 从一个脚本运行许多 subagents
339 </Card>
340
341 <Card title="Cross-session messaging" icon="terminal" href="/docs/zh-CN/cross-session-messaging">
342 让 Claude 向您的其他会话发送消息
347 </Card>343 </Card>
348 344
349 <Card title="MCP" icon="plug" href="/zh-CN/mcp">345 <Card title="MCP" icon="plug" href="/docs/zh-CN/mcp">
350 将 Claude 连接到外部服务346 将 Claude 连接到外部服务
351 </Card>347 </Card>
352 348
353 <Card title="Hooks" icon="bolt" href="/zh-CN/hooks-guide">349 <Card title="Hooks" icon="bolt" href="/docs/zh-CN/hooks-guide">
354 使用 hooks 自动化工作流350 使用 hooks 自动化操作
355 </Card>351 </Card>
356 352
357 <Card title="Plugins" icon="puzzle-piece" href="/zh-CN/plugins">353 <Card title="Plugins" icon="puzzle-piece" href="/docs/zh-CN/plugins">
358 捆绑和共享功能集354 捆绑和共享功能集
359 </Card>355 </Card>
360 356
361 <Card title="Marketplaces" icon="store" href="/zh-CN/plugin-marketplaces">357 <Card title="Marketplaces" icon="store" href="/docs/zh-CN/plugin-marketplaces">
362 托管和分发 plugin 集合358 托管和分发 plugin 集合
363 </Card>359 </Card>
364</CardGroup>360</CardGroup>