当前位置: 首页 > news >正文

Claude Code官方文档精华梳理(一)——定位、快速开始、核心概念、最佳实践(单个使用)

定位

Claude Code具备以下几种功能:

自动化你的一些任务

CC可以用来处理一些繁琐的但是必要的任务,比如说,为代码编写测试单元,然后修复整个系统的一些 bug 以及 lint 风格,然后解决一些依赖项和冲突,然后发布一些说明。
比如可以直接使用cc官网给出的示例:

claude"write tests for the auth module, run them, and fix any failures"


上面具体就是通过claude命令加上后面的要求来实现一些功能。具体要求根据实际需求填写 。

构建功能并且修复错误

用简单语言描述核心问题,然后粘贴必要的错误信息即可。

创建提交和拉取请求

cc能够与git交互,它可以暂存更改,编写提交信息,创建分支以及打开拉取请求。在CI中,是指代码传到云端后,由服务器上的自动化脚本(如 GitHub Actions)托管执行的阶段

通过MCP连接你的工具

cc可以通过这个连接到外部数据源。

使用指令、技能和钩子

这里核心是一个CLAUDE.md文件(添加在项目根目录下面的markdown文件)。这个文件放下面几个东西:
编码规范架构决策首选库审查清单的要点。展示一份CLAUDE.md文件的格式:项目以待办清单为例

首先文件命名就要符合标准,而且文件开头需要是用# CLAUDE.md来表明这是一份,而且cc会在运行时候自动记录这些,快捷创建这个文件的方式就是在cc的cli命令行输入/init命令来创建一个CLAUDE.md

可以看到testcc空文件夹下面确实初始化了一个文档

定义好项目普遍规范的时候也可以创建一个SKILL,封装一些可以重复执行的。

Hooks允许在执行cc操作之前或者之后允许shell命令,每次编辑文件后自动进行格式化处理。

管理智能体团队并创建自定义智能体

同时生成多个 Claude Code 智能体,让它们分别处理任务的不同部分。由一个主导智能体负责协调各智能体的工作、分配子任务并整合最终结果。若想同时运行多个任务,并在同一个屏幕上查看它们的执行情况,可以使用后台代理程序。

通过命令行界面进行管道操作、脚本编写及自动化处理

Claude Code 具有可组合性,且遵循 Unix 哲学。可以将日志通过管道输入到其中,也可以在持续集成过程中运行它,或者将其与其他工具结合使用。

# Analyze recent log output tail -200 app.log | claude -p "Slack me if you see any anomalies" # Automate translations in CI claude -p "translate new strings into French and raise a PR for review" # Bulk operations across files git diff main --name-only | claude -p "review these changed files for security issues"

安排重复性任务

当你需要执行一些开发当中的重复流程,比如说代码审查等也可以使用到

快速开始

下载好cc的cli界面的时候,会先让你登录,如果要切换账号可以使用/login来登录

当你要开始一个项目的时候,你可以先创建在你想保存的对应位置,然后cd到那个目录下面,然后输入claude命令。当你想要粗略的查看一下claude大致的命令。可以使用/help查看

help命令

一般来说在general下面会看到四个提示内容:

这四个更像“输入前缀/工作入口”,不是传统意义上的运行模式:! 用来执行终端命令,/ 用来调用 CC 内置命令,@ 用来引用项目文件或目录,& 用来把任务放到后台跑。工程化使用时,它们分别对应“环境操作、会话控制、上下文定位、长任务并行”。

!:Bash / Shell 模式,用来直接执行终端命令

! 的作用是让你在 CC 交互界面里直接执行系统命令,相当于不用退出当前会话,就可以跑 npm、git、pytest、docker、ls、cat、grep 等命令。适合做环境检测、构建、测试、日志查看、Git状态确认、依赖安装等工程动作。比如,想让Git管理项目,直接输入!git init即可

可以发现当前项目确实被git管理了,现在:

如果项目有使用到docker,也可以查看对应docker进程(docker 进程要启动才能看到),比如:

这样把“执行命令”和“让 AI 分析结果”放在一个连续上下文里。你不用在终端和 AI 对话之间来回复制粘贴。还有一个/它是运行cc的内置命令:/resume(用来恢复之前最近一次的会话信息)

/ 的核心价值是:管理 CC 自己的工作状态,而不是管理你的代码本身。

@:File Paths,用来显式引用文件或目录

@ 是非常重要的工程化入口。它可以把某个文件、目录、配置文件、测试文件、文档等明确交给 CC 作为上下文。虽然 CC 可以自己探索项目,但在工程实践中,明确引用文件会更稳定、更高效,尤其是大型项目。

如果你想同时对照测试文件,那么你可以@引用对应的文件,之后输入对应的提示词:

如果你在做后端服务工程化,可以这样:

@src/main/java/com/example/user/UserController.java @src/main/java/com/example/user/UserService.java 帮我梳理这个用户模块的调用链,并指出 Controller 里是否有业务逻辑泄漏

如果想要分析微服务当中一个模块的内容可以这样

@payment-service/ 分析支付模块的结构,找出可以抽象的领域服务和基础设施层代码

@ 的工程化价值非常大,因为它可以减少“上下文漂移”。比如你只想让它修改 payment 模块,就明确引用。

&:Background,用来把任务放到后台执行

& 的作用是让某些任务在后台运行。它适合长时间、非阻塞的任务,比如,大范围代码分析、全项目测试、复杂搜索、长构建、批量扫描等
工程化里,经常有一些任务会耗时较久。如果你把它们放在前台,当前对话就会被占住;而后台任务可以让你继续做其他事情。
比如想让后台分析整个项目的技术债:

& 分析整个项目的技术债,重点关注重复代码、过大的模块、缺失测试和不合理依赖
/btw:顺便问一下

如果你用CC正在跑一个项目,中途你忘记了一个技术如何使用,可以通过这个命名询问,这种方式不会污染上下文,快速的了解一些内容。

修复漏洞或添加功能

可以通过提示词向cc添加功能或者调试bug,比如

add input validation to the user registration form

修复漏洞或者添加功能都可以用自然语言描述

测试其他常用工作流

重构代码

讲述具体需要重构的点,让cc去重,比如:

refactor the authentication module to use async/await instead of callbacks
编写测试

如果想要测试具体某个功能,可以输入类似提示词:

write unit tests for the calculator functions
更新文档

比如说,项目有什么改动,或者项目需要什么内容需要补充,可以输入类似提示词:

update the README with installation instructions
代码审查

当你修改完代码之后,可以让cc进行检查你的这次提交

review my changes and suggest improvements

基础命令

claude -p 一般用来询问与当前无关的,/btw(不会污染上下文)可以快速询问跟当前有关的。

命令作用示例
claude启动交互模式claude
claude “任务”运行一次性任务claude “修复构建错误”
claude -p “查询”运行一次性查询,然后退出claude -p “解释这个函数”
claude -c继续当前目录中最近的一次对话claude -c
claude -r恢复之前的一次对话claude -r
/clear清除对话历史/clear
/help显示可用命令/help
exit 或 Ctrl+D退出exit

使用cc的建议

  • 具体说明要求。比如:不要说修复bug,而是要说修复用户输入错误凭据后看到空白屏幕的登录错误
  • 按照分布说明操作。比如
1. create a new database table for user profiles 2. create an API endpoint to get and update user profiles 3. build a webpage that allows users to see and edit their information
  • 在开始进行修改之前,先让cc去了解、分析你的项目。比如:熟悉并且了解当前的工作区代码。
  • 使用快捷短命令节省事件。

核心概念

Claude如何工作的?

agentic loop是指Claude Code完成任务时反复经历的“理解上下文” → 执行动作 → 验证结果的循环过程。

具体来说主要分为三个阶段:

阶段含义例子
收集上下文先理解项目、文件、错误、需求搜索相关文件、读取代码、查看报错
执行动作根据理解去做事修改代码、创建文件、运行命令
验证结果检查刚才做的是否有效运行测试、查看构建结果、检查类型错误

代理循环

当你给 Claude 布置任务时,它会经历三个阶段: 收集上下文 、 执行操作和验证结果 。这三个阶段相互交织。Claude 会在整个过程中使用各种工具,例如搜索文件以理解你的代码、编辑文件以进行修改,或者运行测试来检查其工作情况。下述循环图来自CC官网

循环会根据你的问题进行调整。关于代码库的问题可能只需要收集上下文信息。修复 bug 会反复循环所有三个阶段。重构可能需要大量的验证。Claude 会根据从上一步中学到的信息来决定每个步骤需要做什么,将数十个操作串联起来,并在过程中不断调整方向。

智能体循环由两个组件驱动:推理模型和执行工具 。Claude Code 作为 Claude 的智能体框架 :它提供工具、上下文管理和执行环境,将语言模型转化为功能强大的编码智能体。

模型

Claude Code 使用 Claude 模型来理解您的代码并进行任务推理。Claude 可以读取任何语言的代码,理解组件之间的连接方式,并找出实现目标所需的更改。对于复杂的任务,它会将工作分解成多个步骤,逐一执行,并根据学习到的信息进行调整。

有多种模型可供选择,各有优缺点。Sonnet 可以很好地处理大多数编码任务。Opus 为复杂的架构决策提供了更强大的推理能力。在会话期间使用 /model 切换模型,或使用 claude --model 启动。

工具

工具赋予了 Claude Code 自主行动的能力。没有工具,Claude 只能回复文本。有了工具,Claude 就能采取行动:读取代码、编辑文件、运行命令、搜索网络以及与外部服务交互。每次使用工具都会返回信息,这些信息会反馈到循环中,为 Claude 的下一步决策提供依据。

类别Claude Code 能做什么
文件操作读取文件、编辑代码、创建新文件、重命名和重新组织文件
搜索按模式查找文件、使用正则搜索内容、探索代码库
执行运行 shell 命令、启动服务器、运行测试、使用 Git
网页搜索网页、获取文档、查找错误信息
代码智能在编辑后查看类型错误和警告、跳转到定义、查找引用;需要代码智能插件

你的 CLAUDE.md 文件。 这是一个 markdown 文件,用于存储 Claude 在每个会话中应该知道的项目特定说明、约定和上下文。

会话工作

Claude Code 会在您工作时将对话保存到本地。每条消息、工具使用情况和结果都会写入 ~/.claude/projects/ 目录下的纯文本 JSONL 文件,这使得您可以回滚 、 恢复和创建会话。在 Claude 进行代码更改之前,它还会对受影响的文件进行快照,以便您在需要时进行还原。
如下图所示,

恢复或者分叉会话

使用 claude --continue 或 claude --resume 恢复会话会使用相同的会话 ID 重新打开会话,并将新消息追加到现有对话中。使用 --fork-session 或 /branch 进行 fork 操作会将历史记录复制到新的会话 ID 中,而原始会话保持不变。下图来自CC官网

直观的意思就是说,它将原本旧绘画的上下文复制到一个新的绘画中,这就是它的一个功能。

上下文窗口

Claude 的上下文窗口会显示你的对话历史记录、文件内容、命令输出、 CLAUDE.md 文件、 自动记忆 、已加载技能和系统指令。随着你的操作,上下文窗口会逐渐被填满。Claude 会自动压缩上下文,但对话早期的一些指令可能会丢失。你可以在 CLAUDE.md 文件中添加持久化规则,然后运行 /context 来查看哪些内容占用了空间。如下图所示:

/context 命令本质上是在告诉你:当前会话的上下文窗口被哪些内容占用了、还剩多少空间、哪些工具和记忆被加载进来了。
当前仅用了24%的上下文内容,空间还比较充足。

Context Usage:上下文使用总览
图最上方的 Context Usage 是整个 /context 输出的核心区域。它显示当前 CLI 会话的上下文窗口使用情况。
图里显示的是:48.1k / 200k tokens (24%)
意思是:当前会话总上下文容量大约是 200k tokens,已经使用了 48.1k tokens,占总容量的 24%。
这里的 token 可以粗略理解为“模型能读取和记住的文本单位”。它不是严格等于字数,中文、英文、代码、符号都会被拆成不同数量的 token。现在只用了四分之一左右,所以还没有接近上下文上限。

Estimated usage by category:按类别估算上下文占用
这一块是整张图最值得看的地方。它把当前上下文消耗拆成了不同来源:
System prompt(系统级规则占用): 5.6k tokens (2.8%)
这表示当前 CLI 工具运行时自带的一些基础规则、行为约束和工作方式说明,占用了大约 5.6k tokens,约占总上下文的 2.8%。

System tools(内置工具定义占用): 16.4k tokens (8.2%)
这一项表示 CLI 内置工具的说明和接口定义占用了多少上下文。
例如读取文件、编辑文件、运行命令、搜索内容、查看诊断信息等能力,通常都需要有工具定义。模型要知道“有哪些工具可以用”“每个工具怎么调用”“什么时候适合用”,这些说明本身也会占用上下文。这里 System tools 占了 16.4k tokens,是图中比较大的部分之一。它说明当前环境加载了不少基础工具能力。

MCP tools: 10.9k tokens (5.4%)
这一项表示通过 MCP 机制接入的外部工具定义占用了多少上下文。
从图下半部分可以看到,当前加载了不少外部工具,比如设计工具相关、IDE 相关的工具。每个工具都有自己的说明、参数结构和使用方式,所以会占用 token。
你这里 MCP 工具占了 10.9k tokens,约 5.4%。这个比例不算夸张,但已经能看出来:外部工具接得越多,上下文基础占用就越大。
如果你发现上下文很快被吃满,而当前任务根本用不到这些外部工具,可以考虑减少不必要的 MCP 服务加载。

Custom agents: 40 tokens (0.0%)
这一项表示你当前加载的自定义智能体配置占用。
图里只有 40 tokens,几乎可以忽略。说明当前会话里没有加载复杂的自定义智能体,或者相关配置很少。
如果以后你配置了多个自定义智能体,比如代码审查智能体、测试智能体、架构分析智能体等,这一项可能会变大。

Memory files: 357 tokens (0.2%)
这一项表示工具加载进当前会话的记忆文件或持久化记忆内容。
比如项目长期规则、用户偏好、某些历史上下文摘要等,可能会被放进这一类。这里是 357 tokens,非常小,说明当前会话加载的长期记忆内容很少。这个状态比较干净。

Skills: 682 tokens (0.3%)
这一项表示已加载技能的说明占用。
技能可以理解为某些可复用能力、固定流程或任务模板。比如某个工具可能有专门用于写测试、生成文档、做代码审查的技能描述。这里 Skills 只占 682 tokens,也很小。说明当前加载的技能不多,对上下文压力很低。

Messages: 14.4k tokens (7.2%)
这一项非常关键。它表示当前会话中的对话消息占用了多少上下文,包括你输入的需求、工具回复、模型回复、命令结果、错误日志等。
你这里 Messages 占了 14.4k tokens,约 7.2%。
这说明你当前会话已经有一些交互内容,但还不算多。如果你持续在同一个会话里:
不断粘贴长日志;
让它读取很多文件;
执行大量命令并保留输出;
让它反复分析大段代码;
那么 Messages 会越来越大。
当上下文快满时,Messages 往往是最容易膨胀的一类。

Free space: 118.7k tokens (59.4%)
这说明当前会话还有很大余量。你可以继续让它阅读代码、分析项目、运行命令、处理错误信息,不需要立刻清理上下文。
一般来说:
如果 Free space 还有 50% 以上,说明非常宽裕;
如果只剩 20% 到 30%,就要开始注意(可以考虑使用/compact);
如果只剩 10% 以下,后续任务可能会触发压缩,或者出现早期信息被弱化的问题。

Autocompact buffer: 33k tokens (16.5%)
Autocompact buffer 可以理解为系统为自动压缩上下文预留的一块空间。当上下文越来越接近上限时,CLI 可能会自动把早期对话、工具结果、长输出等内容压缩成摘要,以便继续对话。
这并不代表它已经被你的聊天内容“用掉了”,而是说明系统预留了一块缓冲区域,用于后续自动压缩和上下文管理。
可以理解为:真正完全空闲的区域还有很多,同时系统还额外保留了一部分空间用于压缩机制。

上下文填充满时候

当您接近限制时,Claude Code 会自动管理上下文。它会先清除较早的工具输出,然后在需要时总结对话。您的请求和关键代码片段会被保留;但对话早期的一些详细说明可能会丢失。建议您将持久规则放在 CLAUDE.md 文件中,而不是依赖对话历史记录。

要控制压缩过程中保留的内容,请在 CLAUDE.md 中添加“压缩说明”部分,或者运行 /compact 并聚焦(例如 /compact focus on the API changes )。

如果单个文件或工具输出过大,导致每次摘要后上下文立即重新填充,Claude Code 会在几次尝试后停止自动压缩并显示错误,而不是循环执行。

运行 /context 查看空间占用情况。MCP 工具定义默认延迟加载,并通过工具搜索按需加载,因此只有工具名称会占用上下文,直到 Claude 使用特定工具为止。运行 /mcp 查看每个服务器的成本。

利用技能和子代理管理上下文

除了压缩之外,您还可以使用其他功能来控制加载到上下文中的内容。
技能按需加载。Claude 在会话开始时可以看到技能描述,但只有在使用技能时才会加载完整内容。对于手动调用的技能,请设置 disable-model-invocation: true ,以便在需要时才显示描述。对于非您编写的技能,请使用设置中的 skillOverrides 来实现相同的功能。

子代理拥有独立于主对话之外的全新上下文。它们的工作不会使上下文变得臃肿。完成后,它们会返回一个摘要。正是这种隔离性使得子代理有助于长时间会话。

使用检查点撤销更改

所有文件编辑都是可逆的。 在 Claude 编辑任何文件之前,它都会对当前内容进行快照。如果出现问题,按两次 Esc 即可回滚到之前的状态,或者让 Claude 撤销操作。

检查点仅限于您的会话,与 Git 无关。它们仅涵盖文件更改。影响远程系统(数据库、API、部署)的操作无法创建检查点,这就是为什么 Claude 会在运行具有外部副作用的命令之前询问的原因。

控制Claude能做什么?

按 Shift+Tab 可在权限模式之间切换:

  • 默认设置 :Claude 会在编辑文件和执行 shell 命令前询问。
  • 自动接受编辑 :Claude 会自动编辑文件并运行常见的文件系统命令(例如 mkdir 和 mv ,无需询问,但仍会询问其他命令。
  • 计划模式 :Claude仅使用只读工具,创建计划供您在执行前审批。
  • 自动模式 :Claude 会对所有操作进行后台安全检查。目前为研究预览版。

可以在 .claude/settings.json 中允许特定命令,这样 Claude 就无需每次都询问。这对于像 npm test 或 git status 这样的受信任命令非常有用。设置的范围可以从组织级策略到个人偏好。

内置命令还会指导您完成设置:

  • /init 会引导您为项目创建 CLAUDE.md 文件。
  • /agents 帮助您配置自定义子代理
  • /doctor 诊断您的安装常见问题

务必提前明确说明

你的初始提示越精确,需要修改的地方就越少。请引用具体文件,说明限制条件,并提供示例模式。比如:

The checkout flow is broken for users with expired cards. Check src/payments/ for the issue, especially token refresh. Write a failing test first, then fix it.

Claude 在能够检查自身工作结果时表现更佳。请添加测试用例、粘贴预期 UI 的屏幕截图,或定义所需的输出。对于视觉设计,请粘贴设计图的截图,并请 Claude 将其实现与设计图进行比较。

模糊的提示虽然有效,但你会花更多时间在操控上。像上面那样具体的提示往往一次就能成功。

在开始工作前进行计划模式

对于复杂问题,应将研究与编码分开。首先使用计划模式( Shift+Tab 两次)分析代码库。

审阅计划,通过讨论加以完善,然后让Claude执行。这种两阶段方法比直接编写代码效果更好。

授权一些信息

考虑将任务委托给一位能干的同事。提供背景信息和方向,然后相信Claude会处理好细节:
The checkout flow is broken for users with expired cards.
The relevant code is in src/payments/. Can you investigate and fix it?

Claude Code的最佳实践工程

从配置环境到跨并行会话扩展,充分利用Claude Code的技巧和模式。

Claude Code 是一个智能体编码环境。与只会回答问题并等待的聊天机器人不同,Claude Code 可以读取你的文件、运行命令、进行修改,并在你观看、引导或完全离开的情况下自主解决问题。

大多数最佳实践都基于一个限制:Claude 的上下文窗口很快就会填满,并且随着窗口的填满,性能会下降。

Claude 的上下文窗口会显示你的所有对话,包括每条消息、Claude 读取的每个文件以及每个命令输出。但是,这个窗口很快就会被填满。一次调试会话或代码库探索就可能生成并消耗数万个令牌。

这一点很重要,因为随着上下文填充,LLM 的性能会下降。当上下文窗口接近满格时,Claude 可能会开始“忘记”之前的指令或出现更多错误。上下文窗口是需要管理的最重要资源。

当工作看起来完成时,Claude 就会停止。如果没有检查,它就可以运行,“看起来完成”是唯一可用的信号,而你则成了验证循环:每一个错误都等着你去发现。给 Claude 一些能产生通过或失败结果的任务,循环就会自动闭合。Claude 执行任务,运行检查,读取结果,然后重复此过程,直到检查通过为止。

检查内容可以是 Claude 可以在对话中读取的任何信号:测试套件、构建退出代码、代码检查器、将输出与测试用例进行比较的脚本,或者与设计进行比较的浏览器屏幕截图 。

策略修改前修改后
提供验证标准“实现一个验证电子邮件地址的函数”“编写一个 validateEmail 函数。示例测试用例:user@example.com 返回 true,invalid 返回 false,user@.com 返回 false。实现后运行测试。”
直观地验证用户界面变化“让仪表盘看起来更美观”“【粘贴截图】实现此设计。截取结果截图并与原图进行比较。列出差异并进行修复。”
解决根本原因,而不是表面症状“构建失败了”“构建失败并出现这个错误:【粘贴错误信息】。修复它并验证构建成功。解决根本原因,不要只是屏蔽错误。”

每一步都以牺牲用户注意力为代价来换取设置。提示版本适用于目前任何任务。/goal 和 Stop hook 版本则能让无人值守的运行在没有用户干预的 /goal 下正确完成。

先探索,再计划,最后编码

让 Claude 直接开始编写代码可能会导致代码解决错误的问题。使用计划模式可以将探索过程与执行过程分开。

推荐的工作流程分为四个阶段:

Explore

进入计划模式。Claude会读取文件并回答问题,但不会进行任何更改。

claude (plan mode) read /src/auth and understand how we handle sessions and login. also look at how we manage environment variables for secrets.
Plan

请Claude制定一份详细的实施计划。

claude (plan mode) I want to add Google OAuth. What files need to change? What's the session flow? Create a plan.

当计划输出好之后,可以进行修改,以确保计划跟自己如期想的一致。

Implement

退出计划模式,让 Claude 编写代码,并根据计划进行验证。

claude (default mode) implement the OAuth flow from your plan. write tests for the callback handler, run the test suite and fix any failures.
Commit

请 Claude 提交一份包含描述性信息的 PR。

claude (default mode) commit with a descriptive message and open a PR

总结:计划模式虽然有用,但也会增加系统开销。对于范围明确且修复工作量较小的任务(例如修复拼写错误、添加日志行或重命名变量),请直接让 Claude 执行。当你不确定该如何操作、更改涉及多个文件或对要修改的代码不熟悉时,制定计划最为有用。如果可以用一句话描述差异,则可以省略计划。

请在提示中提供具体背景信息

Claude 可以推断意图,但它无法读懂你的心思。请引用具体文件,说明限制条件,并指出示例模式。

策略修改前修改后
明确任务范围。指定文件、场景和测试偏好。“给 foo.py 添加测试”“为 foo.py 编写一个测试,覆盖用户未登录时的边界情况。避免使用 mock。”
指向信息来源。让 Claude 查看可以回答问题的来源。“为什么 ExecutionFactory 的 API 这么奇怪?”“查看 ExecutionFactory 的 Git 历史,并总结它的 API 是如何演变成现在这样的。”
引用现有模式。让 Claude 参考代码库中的已有实现方式。“添加一个日历组件”“查看首页上现有组件的实现方式,理解当前模式。HotDogWidget.php 是一个很好的例子。按照这个模式实现一个新的日历组件,让用户可以选择月份,并通过前后翻页选择年份。不要引入代码库中尚未使用的库,从零开始实现。”
描述症状。说明问题表现、可能位置,以及什么样才算修复完成。“修复登录 bug”“用户反馈在会话超时后登录失败。检查 src/auth/ 中的认证流程,尤其是 token 刷新逻辑。先编写一个能复现该问题的失败测试,然后再修复它。”

当你还在探索阶段,并且有余力进行调整时,模糊的提示语会很有用。例如, “what would you improve in this file?” 这样的提示语可以引出一些你原本不会想到要问的问题。

提供丰富的内容

使用 @ 符号引用文件、粘贴屏幕截图/图像或直接传输数据。

可以通过多种方式向 Claude 提供丰富的数据:

  • 使用 @ 引用文件, 而不是直接描述代码所在位置。Claude 会先读取文件再做出响应。
  • 直接粘贴图片 。复制/粘贴或拖放图片到提示框中。
  • 提供文档和 API 参考的 URL 。使用 /permissions 将常用域名添加到允许列表。
  • 通过运行 cat error.log | claude 将数据通过管道直接发送文件内容。
  • 让 Claude 获取它需要的内容 。告诉 Claude 使用 Bash 命令、MCP 工具或读取文件来获取上下文信息。

编写一份有效的CLAUDE.md文件

运行 /init 以根据您当前的项目结构生成一个初始的 CLAUDE.md 文件,然后随着时间的推移进行完善。

CLAUDE.md 是一个特殊文件,Claude 会在每次对话开始时读取该文件。其中包含 Bash 命令、代码风格和工作流程规则。这为 Claude 提供了仅凭代码无法推断出的持久上下文信息。

/init 命令会分析您的代码库,以检测构建系统、测试框架和代码模式,从而为您提供一个坚实的基础来进行改进。

CLAUDE.md 文件没有固定格式,但请保持简洁易读。

CLAUDE.md # Code style - Use ES modules (import/export) syntax, not CommonJS (require) - Destructure imports when possible (eg. import { foo } from 'bar') # Workflow - Be sure to typecheck when you're done making a series of code changes - Prefer running single tests, and not the whole test suite, for performance

CLAUDE.md 会在每次会话中加载,因此请仅包含适用范围广泛的内容。对于仅有时相关的领域知识或工作流程,请使用技能代替。Claude 会按需加载它们,而不会使每次对话都变得臃肿。

务必简洁。每删除一行,都要问自己: “删除这行会导致 Claude 出错吗?” 如果不会,就删掉它。臃肿的 CLAUDE.md 文件会导致 Claude 忽略你的实际指令!

如果 Claude 总是做出你不希望他做的事情,即使你已经设置了规则禁止,那可能是因为文件太长,导致规则被忽略了。如果 Claude 问了一些问题,而这些问题在 CLAUDE.md 文件中已经有了答案,那么可能是措辞含糊不清。请像对待代码一样对待 CLAUDE.md 文件:出现问题时要检查它,定期进行精简,并通过观察 Claude 的行为是否发生变化来测试更改的效果。

你可以通过添加强调(例如,“重要”或“必须”)来优化说明,以提高执行率。将 CLAUDE.md 文件提交到 Git,以便你的团队可以参与贡献。随着时间的推移,该文件的价值会不断增长。

CLAUDE.md 文件可以使用 @path/to/import 语法导入其他文件:

See @README.md for project overview and @package.json for available npm commands. # Additional Instructions - Git workflow: @docs/git-instructions.md - Personal overrides: @~/.claude/my-project-instructions.md

您可以将 CLAUDE.md 文件放置在以下多个位置:

  • 主文件夹( ~/.claude/CLAUDE.md ) :适用于所有 Claude 会话
  • 项目根目录( ./CLAUDE.md ) :将其提交到 Git 以便与您的团队共享。
  • 项目根目录( ./CLAUDE.local.md ) :个人项目特定备注;请将此文件添加到您的 .gitignore 文件中,以免与您的团队共享。
  • 父目录 :适用于单体仓库,其中 root/CLAUDE.md 和 root/foo/CLAUDE.md 都会自动加载。
  • 子目录 :Claude 会在读取这些目录中的文件时按需拉取子 CLAUDE.md 文件。

配置权限

默认情况下,Claude Code 会请求可能修改系统的操作权限,例如文件写入、Bash 命令、MCP 工具等。这虽然安全,但却很繁琐。十次审批之后,你实际上已经不是在审核,而只是在点击通过。有三种方法可以减少这些干扰:

  • 自动模式 :一个独立的分类器模型会审查命令,并仅阻止那些看起来有风险的操作,例如范围扩大、未知基础设施或恶意内容驱动的操作。当您信任任务的大致方向,但不想逐个点击操作时,此模式最为理想。
  • 权限允许列表 :允许使用您确定安全的特定工具,例如 npm run lint 或 git commit
  • 沙盒 :启用操作系统级别的隔离,限制文件系统和网络访问,使 Claude 能够在定义的边界内更自由地工作。

使用CLI工具

命令行工具是与外部服务交互最高效的方式。如果您使用 GitHub,请安装 gh CLI。Claude 知道如何使用它来创建 issue、提交 pull request 和阅读评论。如果没有 gh ,Claude 仍然可以使用 GitHub API,但未经身份验证的请求经常会遇到速率限制。

Claude 还能高效地学习它原本不知道的命令行工具。尝试输入类似 Use ‘foo-cli-tool --help’ to learn about foo tool, then use it to solve A, B, C.

连接MCP服务器

借助 MCP 服务器 ,您可以要求 Claude 实现问题跟踪器中的功能、查询数据库、分析监控数据、集成 Figma 中的设计以及自动化工作流程。

设置钩子

使用钩子来处理那些必须每次都执行且不能有任何例外的操作。

钩子会在 Claude 工作流程中的特定节点自动运行脚本。与仅供参考的 CLAUDE.md 指令不同,钩子是确定性的,能够保证操作的执行。

Claude 可以帮你编写钩子。你可以尝试类似 “编写一个钩子,在每次文件编辑后运行 eslint” 或 “编写一个钩子,阻止对 migrations 文件夹的写入”这样的提示。 你也可以直接编辑 .claude/settings.json 文件来手动配置钩子,然后运行 /hooks 来浏览已配置的内容。
在Powershell终端创建hooks文件夹:

这样子之后工作区目录如下图所示:

然后再powershell终端下面输入指令,创建一个脚本文件:

填充一部分内容充当测试使用,保存并关闭

然后修改当前根目录下面的.claude/settings.json

设置好了之后可以使用内置命令/hooks使用和查看

当我们开始与cc交互时,会根据时机触发设计好的钩子,比如,当我要求cc创建一个txt文件测试的时候:

可以看到,工作区hooks文件夹下面出现了hook-log文件:

里面记录了hook的日志信息

创建技能

技能可以扩展 Claude 的知识库,提供与您的项目、团队或领域相关的特定信息。Claude 会在相关时自动应用这些技能,或者您也可以使用 /skill-name 直接调用它们。

通过在 .claude/skills/ 目录下添加一个包含 SKILL.md 文件的目录来创建技能:

以下是示例内容:

--- name: api-conventions description: REST API design conventions for our services --- # API Conventions - Use kebab-case for URL paths - Use camelCase for JSON properties - Always include pagination for list endpoints - Version APIs in the URL path (/v1/, /v2/)

技能还可以定义您可以直接调用的可重复工作流程:

.claude/skills/fix-issue/SKILL.md --- name: fix-issue description: Fix a GitHub issue disable-model-invocation: true --- Analyze and fix the GitHub issue: $ARGUMENTS. 1. Use `gh issue view` to get the issue details 2. Understand the problem described in the issue 3. Search the codebase for relevant files 4. Implement the necessary changes to fix the issue 5. Write and run tests to verify the fix 6. Ensure code passes linting and type checking 7. Create a descriptive commit message 8. Push and create a PR

运行 /fix-issue 1234 以调用它。对于需要手动触发副作用的工作流程,请使用 disable-model-invocation: true 。

创建自定义子代理角色

在 .claude/agents/ 中定义一些专门的助手,让 Claude 可以将一些独立任务委托给他们来完成。

子代理在各自的上下文中运行,可以使用各自独立的工具。它们适用于需要处理多个文件或需要特殊处理的任务,而不会干扰主对话的流畅性。
在对应路径下创建文件:

.claude/agents/security-reviewer.md --- name: security-reviewer description: Reviews code for security vulnerabilities tools: Read, Grep, Glob, Bash model: opus --- You are a senior security engineer. Review code for: - Injection vulnerabilities (SQL, XSS, command injection) - Authentication and authorization flaws - Secrets or credentials in code - Insecure data handling Provide specific line references and suggested fixes.

请告诉Claude必须明确使用子代理: “使用子代理来审查这段代码,以查找安全漏洞。”

安装插件

运行 /plugin 以浏览市场。插件可以无需配置即可添加技能、工具和集成功能。

这些插件将技能、钩子、子代理以及 MCP 服务器整合到一个可安装的单元中,由社区和 Anthropic 共同开发。如果您使用的是结构化语言,请安装一个代码智能插件,以便 Claude 在编辑时能够进行精确的符号导航,并自动检测错误。

有效沟通

你与 Claude Code 的沟通方式对结果的质量有着显著的影响。

提出关于代码库的问题

你可以像问一位资深工程师一样来提问Claude。

在接触新的代码库时,可以使用 Claude Code 来进行学习和探索。你可以向 Claude 提出与向其他工程师提问时相同的问题。

  • 日志记录是如何工作的呢?
  • 如何创建一个新的 API 端点?
  • 在 foo.rs 文件的第 134 行中, async move { … } 做了什么?
  • CustomerOnboardingFlowImpl 处理了哪些特殊情况?
  • 为什么在第 333 行中,这段代码调用的是 foo() 而不是 bar() 呢?

使用 Claude Code 进行这样的操作是一种有效的培训流程,能够缩短新人上手的时间,同时减少其他工程师的工作负担。无需任何特殊的提示:可以直接向模型提问。

让Claude询问你

对于较大的特征数据,先让 Claude 进行访谈。从最简单的提示开始,使用 AskUserQuestion 工具让 Claude 对你进行访谈。

Claude询问了一些你可能尚未考虑到的方面,包括技术实现、用户界面/用户体验、特殊情况以及各种权衡问题。

I want to build [brief description]. Interview me in detail using the AskUserQuestion tool. Ask about technical implementation, UI/UX, edge cases, concerns, and tradeoffs. Don't ask obvious questions, dig into the hard parts I might not have considered. Keep interviewing until we've covered everything, then write a complete spec to SPEC.md.

当规范文档完成之后,就可以开始一个新的会话来执行该任务了。新的会话会拥有清晰的上下文,完全专注于实现细节,而您也可以随时参考之前的规范文档。

最实用的规范应该是独立的:它们会明确指定相关的文件和接口,指出哪些内容不属于规范的范围,最后还会包含一个端到端的验证步骤,以证明功能的正常运行。花费时间来编写精确的规范,比仅仅关注实现过程要更有价值。

管理会话

这些对话是持续进行的,并且是可以中断的。请充分利用这一点吧!

尽早且调整方向

一旦发现情况偏离了正轨,请立即纠正克劳德。

最好的效果来自于紧密的反馈机制。虽然克劳德偶尔能一次性完美解决难题,但快速进行修正通常能更快得到更好的解决方案。

  • Esc :停止使用 Esc 键来中断 Claude 的操作。上下文会被保留下来,因此你可以继续执行后续操作。
  • Esc + Esc 或 /rewind :双击 Esc ,或运行 /rewind 以打开回放菜单,恢复之前的对话和代码状态;或者从选定的消息中生成摘要。
  • “Undo that” :让 Claude 撤销了这些更改。
  • /clear :在无关的任务之间重置上下文。长时间处理与上下文无关的任务可能会降低性能。

如果你在同一场会话中多次纠正了 Claude 的错误,那么整个会话的进程就会充满失败尝试。建议重新启动 /clear ,并从一个更具体的提示开始新的会话,同时结合你学到的经验来制定新的提示。这样一次简洁的会话,以更好的提示为基础,几乎总能取得更好的效果,而多次纠正错误却可能适得其反。

积极管理上下文

在无关的任务之间运行 /clear ,以重置上下文。当会话记录达到一定的长度限制时,Claude Code 会自动压缩会话历史数据。这样既能保留重要的代码和决策记录,又能释放存储空间。

在长时间的运行过程中,Claude 的上下文窗口可能会充斥着无关紧要的对话、文件内容以及命令。这可能会降低 Claude 的性能,有时甚至会导致 Claude 分心。

  • 在各个任务之间频繁使用 /clear ,以完全重置上下文窗口。
  • 当自动压缩功能触发时,Claude 会总结出最重要的内容,包括代码模式、文件状态以及关键决策等。
  • 为了获得更多的控制权限,请运行 /compact ,例如 /compact Focus on the API changes 。
  • 如果想要只压缩部分对话内容,可以使用 Esc + Esc 或 /rewind 来指定要压缩的消息片段。然后选择“从这里开始压缩”或“压缩到此处”。第一种方式会压缩从指定点开始的对话内容,同时保留之前的上下文信息;第二种方式则会压缩更早的对话内容,但会保留最近的对话信息。
  • 在 CLAUDE.md 文件中,可以通过使用类似 “When compacting, always preserve the full list of modified files and any test commands” 这样的指令来定制压缩行为,以确保关键上下文在摘要生成过程中能够被保留下来。

对于那些不需要深入讨论的快速问题,可以使用 /btw 。答案会呈现在一个可隐藏的叠加窗口中,不会保存在任何对话历史记录里。因此,你可以无需考虑上下文情况就能检查某个细节。

使用子代理进行调查工作

让 “use subagents to investigate X” 负责进行调研工作。他们会在独立的上下文中进行探索,这样就能让你的主要讨论保持清晰,便于实施。

由于上下文是你面临的基本限制,因此子代理是最强大的工具之一。当 Claude 研究一个代码库时,它会读取许多文件,而这些文件的读取过程都会占用你的上下文资源。子代理在独立的上下文窗口中运行,并报告摘要信息:

Use subagents to investigate how our authentication system handles token refresh, and whether we have any existing OAuth utilities I should reuse.

子代理会浏览代码库,读取相关文件,然后汇报发现的情况,而不会让主对话变得过于复杂。

在 Claude 完成某个任务之后,你还可以使用子代理来进行验证工作。

use a subagent to review this code for edge cases

使用存档点进行回放

你发送的每个提示都会生成一个检查点。你可以将对话内容、代码或两者恢复到任何之前的检查点。

Claude 会在每次修改文件之前自动保存快照,这样就可以通过检查点来恢复这些文件。点击 Escape 进行双击操作,或者运行 /rewind 来打开回放菜单。你可以选择仅恢复对话内容、仅恢复代码内容,或者同时恢复两者;也可以从选定的消息中生成摘要。更多细节请参考检查点功能说明。

与其精心规划每一个步骤,你可以让克劳德尝试一些冒险的方法。如果这些方法失败了,就可以回退到之前的步骤,然后尝试不同的方法。 checkpoint 功能可以在不同的会话之间保留,所以你可以关闭终端,之后仍然可以回退到之前的步骤。

检查点仅跟踪 Claude 所进行的修改,而不记录外部流程的变更。这并不能替代 git 的功能。

恢复会话

将 /rename 作为名称来处理,并将其视为不同的分支:每个工作流都有属于自己的持久化上下文。

Claude 代码将对话内容保存在本地,因此当任务需要多次讨论时,无需再重复解释上下文。可以使用 claude --continue 来选取最新的会话记录,或者使用 claude --resume 从列表中选择。为会话记录起描述性的名称,例如 oauth-migration ,这样之后就能轻松找到它们。有关完整的简历、分支和命名控制选项,请参阅“管理会话”部分。

当前的话,展示的是本仓库下的一个绘画记录。如果你按 CTRL+A 的话,看的是本电脑下的所有项目的绘画记录。按空格键可以查看对应会话的记录内容。方便定位自己之前想要定位到的一个绘画区间。

实现自动化并扩展规模

一旦你能够高效地使用一个 Claude,那么通过并行处理、非交互模式以及分布式处理等方式,你的输出效果将会成倍提升。

到目前为止,所有的假设都是基于一个人类、一个克劳德,以及一次对话。但实际上,克劳德代码可以横向扩展。下节的技巧展示了如何完成更多的事情。

http://www.jsqmd.com/news/939961/

相关文章:

  • 一份可落地、轻量、结合AI辅助的测试工作规范
  • Vivado硬件管理器隐藏技巧:用Bus Plot Viewer把ILA数据画成专业图表(附对比线图/点图实战)
  • LitCAD:免费开源CAD软件终极指南,10分钟学会专业绘图
  • Claude Code 100个真实案例 - 用AI搭建农业物联网监测平台(土壤+气象+作物)
  • 2026年靠谱的中山MIM金属粉末/MIM异形金属件/MIM零件/中山MIM结构件厂家精选合集 - 品牌宣传支持者
  • 让AI画个军棋棋盘,结果折腾了一整天
  • 3PEAK思瑞浦 TPA6581-DF0R DFN0.8X0.8-4 运算放大器
  • 手把手教你用DCA1000和mmWave Studio 2.0采集AWR1843雷达数据(附驱动检查与避坑指南)
  • GitHub问题频发:可靠性堪忧,前端代码臃肿,与竞品对比差距明显!
  • 保姆级教程:在Nvidia Jetson Orin(Ubuntu 20.04)上配置NoMachine远程桌面,含ARM64版deb包下载
  • 从CHI 2010看人机交互的范式演进与技术多样性
  • 三步打造专属qBittorrent搜索引擎插件:从零开始到实战部署
  • 复杂调查设计与机器学习融合:SDRF算法解析与应用
  • 办公人员专属工作流:自动整理每日工作文件、归档文档、生成工作总结
  • 告别软件模拟!STM32F103硬件I2C驱动OLED屏实战(附标准库源码)
  • RPG Maker MV资源解密小工具:浏览器里点几下就能解开rpgmvp/rpgmvm/rpgmvo加密文件
  • ArcGIS Pro 3 里OSGB转SLPK,我踩过的那些坑和最终的高效批处理方案
  • 如何5分钟配置Zotero-GPT:AI智能文献管理插件终极指南
  • SIM868M32蓝牙版嵌入式AT开发包(含MT6261编译环境与全功能Demo)
  • 低资源语言手写文本识别的ViT-Transformer创新方案
  • Claude Code 100个真实案例 - 5分钟用AI做一个贪吃蛇游戏(带排行榜和特效)
  • STM32学习笔记【11.蜂鸣器和按键模块】
  • 2026年靠谱的极简门墙柜/陕西门墙柜工厂定制/门墙柜同色定制优质厂家汇总推荐 - 行业平台推荐
  • 一个用于模拟国际空间站通信中延迟/中断容忍网络的开源框架
  • 告别root权限烦恼:非root用户kingbase安装KingbaseES数据库的完整流程(附服务注册与状态检查)
  • ABAP Activation 机制详解,从 inactive version 到 runtime object 的完整链路
  • 手机端AI编程:KimiClaw和马维斯到底哪家强
  • 2026年靠谱的高精度中空旋转平台/130中空旋转平台厂家对比推荐 - 品牌宣传支持者
  • 告别卡顿!用ArcGIS Pro 3的批处理功能高效转换超大OSGB模型为SLPK
  • 【Linux网络】网络层IP协议(一)