你的项目
目录和子目录中的文件,以及经你许可的其他位置文件。
Claude Code 是一个运行在终端中的智能 Agent 助手。虽然它擅长编码,但它可以帮助你完成任何通过命令行能做的事情:编写文档、运行构建、搜索文件、研究主题等等。
本指南涵盖核心架构、内置能力和高效使用技巧。
当你给 Claude 一个任务时,它会经历三个阶段:收集上下文、执行操作、验证结果。这三个阶段相互融合,Claude 在整个过程中使用工具 — 搜索文件理解代码、编辑进行修改、运行测试检查结果。
┌─────────────┐ ┌─────────────┐ ┌─────────────┐│ 收集上下文 │ ──→ │ 执行操作 │ ──→ │ 验证结果 ││ 搜索、阅读 │ │ 编辑、运行 │ │ 测试、检查 │└─────────────┘ └─────────────┘ └─────────────┘ ↑ │ └────────── 根据结果调整 ──────────────────┘循环根据任务自适应:
Agent 循环由两部分驱动:
| 组件 | 作用 |
|---|---|
| 模型 | 理解代码并推理任务 |
| 工具 | 执行实际操作(读文件、编辑、运行命令等) |
Claude Code 充当围绕 Claude 的 Agent 框架:提供工具、上下文管理和执行环境,将语言模型转变为强大的编码 Agent。
Claude Code 使用 Claude 模型来理解代码并推理任务。Claude 可以阅读任何语言的代码,理解组件间的关联,找出需要更改的内容。对于复杂任务,它会将工作分解为步骤,逐步执行并根据学到的内容调整。
多种模型提供不同的权衡:
| 模型 | 特点 | 适用场景 |
|---|---|---|
| Sonnet | 平衡速度和能力 | 大多数编码任务 |
| Opus | 最强推理能力 | 复杂架构决策 |
| Haiku | 最快速度 | 简单快速任务 |
切换模型:
/model 命令claude --model <name>工具让 Claude Code 具备 Agent 能力。没有工具,Claude 只能输出文本;有了工具,Claude 可以行动:读取代码、编辑文件、运行命令、搜索网络、与外部服务交互。
| 类别 | Claude 能做什么 |
|---|---|
| 文件操作 | 读取文件、编辑代码、创建新文件、重命名和重组 |
| 搜索 | 按模式查找文件、用正则搜索内容、探索代码库 |
| 执行 | 运行 shell 命令、启动服务器、运行测试、使用 git |
| 网络 | 搜索网络、获取文档、查询错误信息 |
| 代码智能 | 查看编辑后的类型错误和警告、跳转定义、查找引用 |
当你说「修复失败的测试」时,Claude 可能会:
每次工具使用都给 Claude 提供新信息,指导下一步行动。这就是 Agent 循环的实际运作。
内置工具是基础。你还可以通过以下方式扩展:
| 扩展方式 | 说明 |
|---|---|
| Skills | 扩展 Claude 的知识和工作流 |
| MCP | 连接外部服务 |
| Hooks | 自动化工作流 |
| 子 Agent | 将任务委派给独立 Agent |
当你在目录中运行 claude 时,Claude Code 获得以下访问权限:
你的项目
目录和子目录中的文件,以及经你许可的其他位置文件。
你的终端
任何你能运行的命令:构建工具、git、包管理器、系统工具、脚本。
Git 状态
当前分支、未提交的更改和最近的提交历史。
CLAUDE.md
存储项目特定指令、约定和上下文的 Markdown 文件。
还包括:
Agent 循环、工具和能力在所有使用 Claude Code 的地方都是相同的。不同的是代码在哪里执行以及你如何与之交互。
| 环境 | 代码运行位置 | 适用场景 |
|---|---|---|
| 本地 | 你的机器 | 默认。完全访问文件、工具和环境 |
| 云端 | Anthropic 管理的 VM | 卸载任务,处理本地没有的仓库 |
| Remote Control | 你的机器(浏览器控制) | 使用 Web UI 同时保持本地执行 |
可以通过以下方式访问 Claude Code:
界面决定了你如何看到和与 Claude 交互,但底层的 Agent 循环完全相同。
Claude Code 在你工作时本地保存对话。每条消息、工具使用和结果都被存储,支持回退、恢复和分叉会话。在 Claude 修改代码前,它还会快照受影响的文件以便回退。
每个 Claude Code 对话是绑定到当前目录的会话。恢复时,你只能看到该目录的会话。
# 恢复上次会话claude --continue
# 选择恢复特定会话claude --resume
# 分叉会话(创建新会话 ID,保留对话历史)claude --continue --fork-sessionClaude 的上下文窗口包含:对话历史、文件内容、命令输出、CLAUDE.md、已加载的 Skills 和系统指令。随着工作进行,上下文不断填充。
Claude Code 自动管理上下文:
关键建议:将持久规则放在 CLAUDE.md 中,而不是依赖对话历史。
| 命令 | 说明 |
|---|---|
/context | 查看什么在占用上下文空间 |
/compact | 手动压缩上下文 |
/compact focus on API changes | 带焦点的压缩 |
/mcp | 检查每个 MCP 服务器的上下文成本 |
disable-model-invocation: true 可将描述也排除Claude 有两个安全机制:检查点(撤销文件更改)和权限(控制 Claude 可以做什么)。
每次文件编辑都可撤销。在 Claude 编辑任何文件之前,它会快照当前内容。
按 Shift+Tab 循环切换权限模式:
| 模式 | 说明 |
|---|---|
| 默认 | Claude 在文件编辑和 shell 命令前询问 |
| 自动接受编辑 | Claude 自动编辑文件,仍然询问命令 |
| 计划模式 | Claude 只使用只读工具,创建你可以批准的计划 |
你还可以在 .claude/settings.json 中允许特定命令(如 npm test、git status),设置可以从组织级策略到个人偏好层层覆盖。
Claude Code 可以教你如何使用它。问类似这样的问题:
内置命令也能引导你:
| 命令 | 说明 |
|---|---|
/init | 引导你为项目创建 CLAUDE.md |
/agents | 帮你配置自定义子 Agent |
/doctor | 诊断安装的常见问题 |
Claude Code 是对话式的。你不需要完美的提示词,先说你想要什么,然后逐步改进:
> 修复登录 bug
[Claude 调查,尝试修复]
> 不太对。问题在会话处理部分。
[Claude 调整方案]第一次尝试不对时,不需要重头来过,迭代即可。
如果 Claude 走了错误方向,直接输入你的纠正并按 Enter。Claude 会停止当前操作,根据你的输入调整方案。不需要等它完成,也不需要重新开始。
初始提示越精确,需要的纠正就越少。引用具体文件、提及约束、指向示例模式:
> checkout 流程对过期信用卡用户出错了。> 检查 src/payments/ 中的问题,特别是 token 刷新。> 先写一个失败的测试,然后修复它。模糊的提示词(如「修复登录 bug」)可以工作,但你需要花更多时间引导。
当 Claude 能检查自己的工作时表现更好。包含测试用例、贴截图、或定义期望输出:
> 实现 validateEmail。> 测试用例: 'user@example.com' → true,> 'invalid' → false, 'user@.com' → false。> 完成后运行测试。对于复杂问题,将研究与编码分开。使用计划模式(Shift+Tab 两次)先分析代码库:
> 阅读 src/auth/ 并理解我们如何处理会话。> 然后为添加 OAuth 支持创建一个计划。审查计划、通过对话完善,然后让 Claude 实现。这种两阶段方法比直接编码效果更好。
把 Claude 当作能干的同事来委派任务。给出上下文和方向,然后信任 Claude 处理细节:
> checkout 流程对过期信用卡用户出错了。> 相关代码在 src/payments/。你能调查并修复吗?你不需要指定读哪些文件或运行什么命令。Claude 会自己搞定。