为什么 Claude Code 值得深入学

47 阅读5分钟

Claude Code 不是一个更好的代码补全工具,它是一个AI Agent

区别在哪里:

  • 代码补全(Copilot):你告诉它写什么,它帮你打字
  • Agent(Claude Code):你告诉它做什么,它自己规划、执行、调试,直到完成

这个区别意味着,Claude Code 能做的事情边界,取决于你对它的理解深度。


第一部分:安装与基本交互

安装

npm install -g @anthropic-ai/claude-code
claude --version

三种工作模式

默认模式:每次执行前询问确认

claude
# > 帮我创建一个 Flask 项目
# [需要执行 mkdir flask-project...] 确认?(y/n)

自动模式--dangerously-skip-permissions):跳过所有权限确认

claude --dangerously-skip-permissions
# 适合:你完全信任 Claude Code 的操作,不想频繁确认
# 风险:Claude Code 会无提示删除/修改任何文件

规划模式(Plan Mode):先输出执行计划,确认后再执行

用户输入:重构这个模块,提取公共逻辑

Claude Code:
我的计划是:
1. 分析 utils.py、helpers.py 的共同函数
2. 创建 common.py 提取共同函数
3. 修改 utils.py 和 helpers.py 引用 common.py
4. 运行测试确认功能不变

是否按此计划执行?

规划模式是处理大型任务的最佳实践——先看计划,不满意就调整,再执行。


第二部分:MCP 集成

MCP 是 Claude Code 能力扩展的核心机制。

安装一个 MCP Server

以 Figma MCP Server 为例(让 Claude Code 能直接读取设计稿):

# 方法一:直接告诉 Claude Code
> 帮我安装 Figma MCP Server

# 方法二:手动配置 .claude/mcp.json
{
  "mcpServers": {
    "figma": {
      "command": "npx",
      "args": ["-y", "figma-developer-mcp"],
      "env": {
        "FIGMA_API_KEY": "your-api-key"
      }
    }
  }
}

配置后,Claude Code 就能:

> 根据 Figma 设计稿 https://figma.com/file/xxx 实现这个登录页面

Claude Code 会自动调用 Figma MCP Server 获取设计稿内容,理解颜色、尺寸、布局,然后生成对应代码。


第三部分:Context 管理

为什么要管理 Context

长时间工作后,Claude Code 的 Context Window 会逐渐填满:

  • 之前的对话历史
  • 读取过的文件内容
  • 工具调用结果

Context 满了会导致:响应变慢、遗忘早期内容、成本增加。

两种处理方式

压缩(/compact):保留关键信息,丢弃细节

> /compact
# Claude Code 会生成一个当前任务的摘要,替换完整历史

清除(/clear):完全清空,重新开始

> /clear
# 适合:当前任务完成,开始新任务

恢复历史会话

claude --resume
# 显示最近的会话列表,选择要继续的

CLAUDE.md:项目级记忆文件

在项目根目录创建 CLAUDE.md,Claude Code 启动时会自动读取,相当于给它注入"项目上下文":

# 项目说明

这是一个 Django + React 的电商项目。

## 技术栈
- 后端:Django 4.2,PostgreSQL,Redis
- 前端:React 18,TypeScript,Tailwind CSS
- 部署:Docker + Nginx

## 编码规范
- 所有 Python 函数必须有类型注解
- 前端组件用函数式组件 + Hooks
- API 接口遵循 RESTful 规范

## 常用命令
- 运行测试:`python manage.py test`
- 启动开发服务器:`docker-compose up`

## 注意事项
- 不要直接修改 migrations 文件,让 Django 自动生成
- 环境变量在 .env 文件中,不要 hardcode

第四部分:Hook 机制

Hook 是 Claude Code 最强大也最少人用到的功能之一。

Hook 允许你在 Claude Code 的执行流程中插入自定义脚本,在特定事件发生时自动触发。

Hook 类型

Hook 类型触发时机
pre_tool_use工具调用前(可以拦截)
post_tool_use工具调用后
stop任务完成时
notification需要用户注意时

配置 Hook

// .claude/hooks.json
{
  "hooks": {
    "pre_tool_use": [
      {
        "matcher": "bash",
        "hooks": [{
          "type": "command",
          "command": "python /path/to/security-check.py"
        }]
      }
    ],
    "post_tool_use": [
      {
        "matcher": "write_file",
        "hooks": [{
          "type": "command",
          "command": "python /path/to/format-check.py"
        }]
      }
    ]
  }
}

实际使用案例

安全检查:在 Claude Code 执行任何 bash 命令前,检查是否包含危险操作:

# security-check.py
import sys, json

tool_input = json.loads(sys.stdin.read())
command = tool_input.get("command", "")

DANGEROUS_PATTERNS = ["rm -rf", "DROP TABLE", "format", "> /dev/"]
for pattern in DANGEROUS_PATTERNS:
    if pattern in command:
        print(f"安全检查:检测到危险命令 '{pattern}',已拦截")
        sys.exit(2)  # 退出码 2 = 拦截此次工具调用

sys.exit(0)  # 放行

自动格式化:每次写入 Python 文件后自动运行 Black 格式化:

# format-check.py  
import sys, json, subprocess

tool_input = json.loads(sys.stdin.read())
file_path = tool_input.get("path", "")

if file_path.endswith(".py"):
    subprocess.run(["black", file_path], capture_output=True)
    print(f"已自动格式化:{file_path}")

第五部分:Agent Skill

见上一篇文章(第10篇)的详细介绍。

Claude Code 安装 Skill 后,AI 会自动识别何时使用它——不需要你每次手动调用。


第六部分:SubAgent

SubAgent 是 Claude Code 的多 Agent 协作机制。

场景:一个大型任务,不同部分需要不同专业能力。比如"把这个项目迁移到新框架"——需要分析现有代码、规划迁移路径、逐模块迁移、测试验证。

# 创建专门的 SubAgent
> 创建一个专注于测试的 SubAgent,负责这次迁移中的所有测试工作

# SubAgent 配置
~/.claude/subagents/test-agent/
├── AGENT.md    # SubAgent 的 System Prompt
└── tools.json  # 这个 SubAgent 可用的工具列表
# AGENT.md(测试专家 SubAgent)

你是一个测试工程师专家。你的职责是:
1. 为代码写单元测试和集成测试
2. 分析测试覆盖率,提出补充测试的建议
3. 执行测试,分析失败原因

你不负责写业务代码,只负责测试相关工作。
遇到需要修改业务代码才能修复的 Bug,告知主 Agent 处理。

Skill vs SubAgent 的区别

维度SkillSubAgent
粒度能力模块(如"代码审查")完整 Agent(有独立角色和工具集)
生命周期随会话存在可以持久化,多任务复用
适合场景标准化流程专业化分工

第七部分:后台任务

Claude Code 支持在后台运行长时间任务,不阻塞当前会话:

# 启动后台任务
> 在后台帮我跑完整的测试套件,完成后告诉我结果
[后台任务 #1 已启动]

# 继续做其他事情...
> 帮我看一下这个函数有没有问题

# 后台任务完成后会通知你
[后台任务 #1 完成] 测试结果:128 通过,3 失败...

总结

Claude Code 的能力层次:

基础层:自然语言指令 + 文件操作 + 终端命令
扩展层:MCP(接入外部工具/服务)
智能层:Hook(拦截和增强执行流程)
能力层:Agent Skill(复用专业化工作流)
团队层:SubAgent(多角色协作)
效率层:后台任务 + Context 管理

每一层都是独立的,可以按需学习和使用。但理解完整的层次,才能知道面对不同类型的任务,该用哪一层的工具。