Skip to content

盘点Claude Code 发布的一些高级功能

作者: 易安

原文地址: 微信公众号


目录


Claude Code 高级功能完全指南

本文档涵盖 Claude Code 从 0.2.x 到 2.0.x 版本的重大功能变更,提供详细的入门教程、案例演示和最佳实践。


目录


1. 思考模式 (Thinking Mode)

功能介绍

思考模式让 Claude 在回答前进行更深入的推理分析,适合复杂问题、架构设计、疑难 Bug 排查等场景。

触发方式

bash
# 方式一:在提示中加入关键词
"think about how to implement user authentication"
"think harder about this performance issue"
"ultrathink about the architecture design"

# 方式二:按 Tab 键切换思考模式(跨会话保持)

# 方式三:在提示前加 /t 临时禁用思考模式
/t 快速修复这个 typo

思考深度级别

SVG Diagram 1

关键词深度适用场景
think标准一般复杂问题
think harder深度架构设计、复杂算法
ultrathink极深系统级设计、疑难问题

案例演示

bash
# 场景:排查复杂的并发问题 
    用户: think harder about why this deadlock happens in the payment service  
      
# Claude 会进行深度分析: 
# 分析锁的获取顺序 
# 检查资源依赖图 
# 模拟并发执行路径 
# 提出根因和解决方案 
```bash

### 最佳实践 

  1. 1\. **复杂问题才用深度思考** :简单任务用 ultrathink 是浪费
  2. 2\. **结合具体问题描述** :`think about X` 比单独 `think` 效果更好
  3. 3\. **观察思考过程** :通过思考输出理解 Claude 的推理逻辑



* * *

## 2\. 计划模式 (Plan Mode) 

### 功能介绍 

计划模式将任务分为"计划"和"执行"两个阶段,Claude 先制定详细计划,获得你的批准后再执行。适合大型重构、新功能开发等场景。

### 进入方式 
```bash
# 方式一:使用快捷键 
# Mac: Shift + Tab 
# Windows: Alt + M 或 Shift + Tab 
      
# 方式二:直接请求 
    "请先制定一个实现用户认证的计划"  
      
# 方式三:启动时指定 
    claude --model opusplan  # Opus 计划 + Sonnet 执行
```bash

### 工作流程 

![SVG Diagram 2](/images/extra/05/diagram_2.svg)

### 案例演示:为项目添加 Redis 缓存层 

**场景描述** :用户在计划模式下请求为用户服务添加 Redis 缓存层

![SVG Diagram 3](/images/extra/05/diagram_3.svg)

**交互流程**

  1. 1\. **用户提出需求** → Claude 分析并制定 4 步计划
  2. 2\. **用户审查后拒绝** → 提出需要添加缓存保护机制
  3. 3\. **Claude 修改计划** → 新增"缓存保护机制"步骤,包含:
     * • 布隆过滤器防止缓存穿透
     * • 互斥锁防止缓存击穿
     * • 过期时间随机化防止缓存雪崩
  4. 4\. **用户批准** → Claude 按新计划执行



### 最佳实践 

* * *

## 3\. 自定义斜杠命令 

### 功能介绍 

 `.claude/commands/` 目录创建 Markdown 文件,自动成为可用的斜杠命令,方便复用常用提示词。

### 目录结构 
```bash
    项目根目录/  
    └── .claude/  
        └── commands/  
            ├── review.md          # /review 命令  
            ├── test.md            # /test 命令  
            └── frontend/  
                └── component.md   # /frontend:component 命令  
      
    ~/.claude/  
    └── commands/  
        └── daily.md               # 全局 /daily 命令(所有项目可用)
```bash

### 命令文件格式 
```bash
    ---  
    description: 代码审查,检查安全和性能问题  
    model: opus                    # 可选:指定使用的模型  
    allowed-tools: Read, Grep      # 可选:允许的工具  
    argument-hint: <文件路>       # 可选:参数提示  
    ---  
      
    请对以下代码进行全面审查:  
      
    @$ARGUMENTS  
      
    审查要点:  
    1. 安全漏洞(SQL注入、XSS、CSRF等)  
    2. 性能问题(N+1查询、内存泄漏等)  
    3. 代码规范(命名、注释、复杂度等)  
    4. 测试覆盖(是否有遗漏的边界情况)  
      
    请给出具体的改进建议和代码示例。
```bash

### 高级特性

```markdown
---
description: 运行测试并分析结果
---

# 使用 @提及文件
请分析 @src/services/UserService.java 的测试覆盖情况

# 使用 bash 输出
npm test -- --coverage

# 使用思考关键词
think about the test results and suggest improvements
```bash

### 案例:项目常用命令集 

```markdown
# .claude/commands/pr.md - 创建 PR
---
description: 创建 Pull Request
---
分析当前分支的所有更改,创建一个规范的 PR,包含:
1. 清晰的标题(feat/fix/docs 前缀)
2. 变更摘要(2-3 个要点)
3. 测试计划
4. 截图(如有 UI 变更)

# .claude/commands/hotfix.md - 紧急修复
---
description: 紧急 Bug 修复流程
model: opus
---
这是一个紧急修复任务:$ARGUMENTS

请:
1. 快速定位问题根因
2. 提供最小化修复方案
3. 评估影响范围
4. 建议回归测试点

# .claude/commands/refactor.md - 重构分析
---
description: 分析代码并建议重构
---
分析 $ARGUMENTS 的代码质量,识别:
1. 代码异味(长方法、重复代码、过度耦合)
2. 设计模式应用机会
3. 可测试性改进点
4. 性能优化空间

请制定分阶段重构计划。
```bash

### 最佳实践 

  1. 1\. **按功能分组** :使用子目录组织相关命令
  2. 2\. **写清晰的 description** :帮助快速识别命令用途
  3. 3\. **合理指定模型** :复杂任务用 opus,简单任务用 sonnet/haiku
  4. 4\. **使用 @提及** :让命令支持动态文件参数
  5. 5\. **项目级 vs 全局** :通用命令放 `~/.claude/commands/`



* * *

## 4\. 钩子系统 (Hooks) 

### 功能介绍 

钩子允许在 Claude Code 特定事件发生时自动执行 shell 命令,实现自动化工作流。

### 钩子生命周期 

![SVG Diagram 4](/images/extra/05/diagram_4.svg)

### 钩子类型 

钩子事件| 触发时机| 常用场景  
---|---|---  
`SessionStart`| 新会话开始| 初始化环境、加载配置  
`SessionEnd`| 会话结束| 清理资源、生成报告  
`PreToolUse`| 工具执行前| 验证、修改工具输入  
`PostToolUse`| 工具执行后| 日志记录、触发后续操作  
`UserPromptSubmit`| 用户提交提示后| 添加上下文、权限检查  
`PermissionRequest`| 请求权限时| 自动审批/拒绝权限  
`PreCompact`| 对话压缩前| 保存重要信息  
`SubagentStart`| 子代理启动| 监控、日志  
`SubagentStop`| 子代理停止| 收集结果  
`Stop`| Claude 停止工作| 通知、清理  
`Notification`| 通知事件| 自定义通知处理  
  
### 配置位置 
```bash
    // .claude/settings.json (项目级)  
    // ~/.claude/settings.json (用户级)  
    {  
    "hooks":{  
        "SessionStart":[  
          {  
            "command":"echo '会话开始于 $(date)' >> ~/.claude/session.log"  
          }  
        ],  
        "PostToolUse":[  
          {  
            "matcher":"Write",  
            "command":"echo '文件已修改: $CLAUDE_FILE_PATH'"  
          }  
        ]  
    }  
    }
```bash

### 案例:自动化工作流 

#### 案例 1:自动运行测试 
```bash
    {  
      "hooks": {  
        "PostToolUse": [  
          {  
            "matcher": "Write",  
            "command": "bash -c 'if [[ \"$CLAUDE_FILE_PATH\" == *.java ]]; then cd $CLAUDE_PROJECT_DIR && ./gradlew test --tests \"*$(basename $CLAUDE_FILE_PATH .java)Test\" 2>/dev/null || true; fi'"  
          }  
        ]  
      }  
    }
```bash

#### 案例 2:代码提交前自动格式化 
```bash
    {  
      "hooks": {  
        "PreToolUse": [  
          {  
            "matcher": "Bash",  
            "command": "bash -c 'if echo \"$CLAUDE_TOOL_INPUT\" | grep -q \"git commit\"; then cd $CLAUDE_PROJECT_DIR && npm run format; fi'"  
          }  
        ]  
      }  
    }
```bash

#### 案例 3:权限自动审批 
```bash
    {  
      "hooks":{  
        "PermissionRequest":[  
          {  
            "matcher":"Read",  
            "command":"echo '{\"decision\": \"allow\"}'",  
            "timeout":5000  
          },  
          {  
            "matcher":"Bash(npm test:*)",  
            "command":"echo '{\"decision\": \"allow\"}'",  
            "timeout":5000  
          }  
        ]  
    }  
    }
```bash

#### 案例 4:会话结束时生成报告/博客/知识库/社交媒体内容 
```bash
    {  
      "hooks": {  
        "SessionEnd": [  
          {  
            "command": "bash -c 'echo \"Session ended at $(date). Total changes: $(git diff --stat | tail -1)\" >> ~/.claude/daily-report.txt'"  
          }  
        ]  
      }  
    }
```bash

### 钩子输入数据 

钩子命令可通过环境变量访问上下文:
```bash
    $CLAUDE_PROJECT_DIR    # 项目目录  
    $CLAUDE_FILE_PATH      # 当前操作的文件路径  
    $CLAUDE_TOOL_INPUT     # 工具输入参数 (JSON)  
    $CLAUDE_TOOL_OUTPUT    # 工具输出结果 (JSON)
```bash

### 高级:PreToolUse 修改输入 
```bash
    {  
      "hooks":{  
        "PreToolUse":[  
          {  
            "matcher":"Bash",  
            "command":"node ~/.claude/scripts/validate-bash-command.js",  
            "timeout":10000  
          }  
        ]  
    }  
    }
```bash
```bash
    // validate-bash-command.js  
    const input = JSON.parse(process.env.CLAUDE_TOOL_INPUT);  
      
    // 添加安全前缀  
    if (input.command.includes('rm')) {  
      input.command = `echo "即将执行: ${input.command}" && ${input.command}`;  
    }  
      
    // 输出修改后的输入  
    console.log(JSON.stringify({ toolInput: input }));
```bash

### 最佳实践 

  1. 1\. **设置超时** :避免钩子卡死整个会话
  2. 2\. **错误处理** :钩子失败不应阻塞主流程
  3. 3\. **日志记录** :记录钩子执行结果便于调试
  4. 4\. **最小权限** :钩子只做必要的操作
  5. 5\. **测试钩子** :先手动运行命令确保正确



* * *

## 5\. 自定义代理 (Agents) 

### 功能介绍 

自定义代理是具有专门能力和工具限制的 Claude 实例,适合将复杂任务委托给专门的"专家"。

### 代理工作模式 

![SVG Diagram 5](/images/extra/05/diagram_5.svg)

### 创建代理 
```bash
# 使用命令创建 
    /agents  
      
# 或手动创建文件 
    mkdir -p .claude/agents
```bash

### 代理配置文件 
```bash
    <!-- .claude/agents/security-reviewer.md -->  
    ---  
    description: 安全审计专家,专注于发现代码中的安全漏洞  
    model: opus  
    permissionMode: bypassPermissions  
    disallowedTools:  
      - Bash  
      - Write  
    skills:  
      - security-checklist  
    ---  
      
    你是一位资深的安全审计专家,专注于:  
      
    1.**OWASP Top 10** 漏洞检测  
       - SQL 注入  
       - XSS 跨站脚本  
       - CSRF 跨站请求伪造  
       - 不安全的反序列化  
      
    2.**认证与授权**  
       - 弱密码策略  
       - 会话管理缺陷  
       - 权限提升漏洞  
      
    3.**敏感数据处理**  
       - 硬编码密钥  
       - 明文存储密码  
       - 日志泄露敏感信息  
      
    4.**依赖安全**  
       - 已知漏洞的依赖  
       - 过时的库版本  
      
    审查时请:  
    - 给出具体的代码位置和行号  
    - 评估漏洞严重程度(Critical/High/Medium/Low)  
    - 提供修复建议和代码示例
```bash

### 调用代理 
```bash
# 方式一:@提及 
    @security-reviewer 请审查 src/controllers/AuthController.java  
      
# 方式二:Task 工具自动选择 
    "请对认证模块进行安全审计"  # Claude 会自动选择合适的代理
```bash

### 案例:项目代理集合 

#### 代理 1:测试专家 
```bash
    <!-- .claude/agents/test-expert.md -->  
    ---  
    description: 测试专家,编写高质量单元测试和集成测试  
    model: sonnet  
    allowedTools:  
      - Read  
      - Grep  
      - Glob  
      - Write  
      - Bash(npm test:*)  
      - Bash(./gradlew test:*)  
    ---  
      
    你是测试领域专家,擅长:  
      
    1.**单元测试设计**  
       - 边界值测试  
       - 等价类划分  
       - 错误路径覆盖  
      
    2.**测试框架**  
       - JUnit 5 + Mockito (Java)  
       - Jest + Testing Library (JS)  
       - pytest (Python)  
      
    3.**测试原则**  
       - 一个测试一个断言  
       - 测试行为而非实现  
       - 保持测试独立性  
      
    请为给定代码编写全面的测试,目标覆盖率 > 80%。
```bash

#### 代理 2:性能优化师 
```bash
    <!-- .claude/agents/performance-optimizer.md -->  
    ---  
    description: 性能优化专家,识别和解决性能瓶颈  
    model: opus  
    ---  
      
    你是性能优化专家,专注于:  
      
    1.**数据库优化**  
       - N+1 查询问题  
       - 缺失索引  
       - 慢查询分析  
      
    2.**代码优化**  
       - 算法复杂度  
       - 内存使用  
       - 并发处理  
      
    3.**缓存策略**  
       - 缓存位置选择  
       - 过期策略  
       - 缓存穿透/雪崩防护  
      
    分析问题时请提供:  
    - 性能影响量化评估  
    - 优化前后对比  
    - 实施优先级建议
```bash

#### 代理 3:文档撰写者 
```bash
    <!-- .claude/agents/doc-writer.md -->  
    ---  
    description: 技术文档撰写专家  
    model: haiku  
    allowedTools:  
      - Read  
      - Grep  
      - Write  
    ---  
      
    你是技术文档专家,负责:  
      
    1.**API 文档**  
       - 接口说明  
       - 参数描述  
       - 示例请求/响应  
      
    2.**代码注释**  
       - 类/方法文档  
       - 复杂逻辑说明  
       - TODO/FIXME 标注  
      
    3.**用户指南**  
       - 安装说明  
       - 快速开始  
       - 常见问题  
      
    保持文档简洁、准确、易于维护。
```bash

### 代理模型选择策略 
```bash
# 按任务复杂度选择模型 
    opus:     架构设计、安全审计、复杂重构  
    sonnet:   日常开发、代码审查、测试编写  
    haiku:    文档生成、简单修复、代码探索
```bash

### 最佳实践 

  1. 1\. **单一职责** :每个代理专注一个领域
  2. 2\. **限制工具** :只给代理必要的工具权限
  3. 3\. **选择合适模型** :简单任务用 haiku 节省资源
  4. 4\. **编写清晰指令** :详细描述代理的能力边界
  5. 5\. **组合使用** :复杂任务可串联多个代理



* * *

## 6\. 插件系统 (Plugins) 

### 功能介绍 

插件系统允许从市场安装或自己创建扩展,包括命令、代理、钩子和 MCP 服务器。

### 插件生态系统 

![SVG Diagram 6](/images/extra/05/diagram_6.svg)

### 基本命令 
```bash
# 查看可用插件市场 
    /plugin marketplace  
      
# 安装插件 
    /plugin install owner/repo  
    /plugin install owner/repo[#branch](javascript:;)  # 指定分支  
      
# 管理插件 
    /plugin list                # 列出已安装插件  
    /plugin enable plugin-name  # 启用插件  
    /plugin disable plugin-name # 禁用插件  
    /plugin uninstall plugin-name  
      
# 验证插件结构 
    /plugin validate path/to/plugin
```bash

### 插件结构 
```bash
    my-plugin/  
    ├── plugin.json              # 插件清单  
    ├── commands/                # 斜杠命令  
   └── my-command.md  
    ├── agents/                  # 自定义代理  
   └── my-agent.md  
    ├── hooks/                   # 钩子配置  
   └── hooks.json  
    ├── output-styles/           # 输出风格  
   └── my-style.md  
    └── mcp/                     # MCP 服务器配置  
        └── servers.json
```bash

### 创建插件 

```json
// plugin.json
{
  "name":"my-awesome-plugin",
  "version":"1.0.0",
  "description":"我的超棒插件",
  "author":"your-name",
  "commands":["commands/*.md"],
  "agents":["agents/*.md"],
  "hooks":"hooks/hooks.json"
}
```bash

### 案例:团队协作插件 
```bash
# 项目根目录配置团队插件市场 
# .claude/settings.json 
    {  
      "extraKnownMarketplaces": [  
        "https://github.com/our-company/claude-plugins"  
      ]  
    }
```bash
```bash
# 团队插件仓库结构 
    our-company/claude-plugins/  
    ├── plugins/  
   ├── code-review/        # 代码审查规范  
   ├── commit-standard/    # 提交规范  
   └── test-coverage/      # 测试覆盖检查  
    └── registry.json           # 插件注册表
```bash

### 最佳实践 

  1. 1\. **版本控制** :使用 git 标签管理插件版本
  2. 2\. **文档齐全** :每个插件提供 README
  3. 3\. **团队共享** :通过私有仓库分享团队插件
  4. 4\. **定期更新** :保持插件与 Claude Code 版本兼容



* * *

## 7\. MCP 服务器 

### 功能介绍 

MCP (Model Context Protocol) 允许 Claude 连接外部服务,如数据库、API、文件系统等,扩展其能力边界。

### MCP 架构 

![SVG Diagram 7](/images/extra/05/diagram_7.svg)

### 添加 MCP 服务器 
```bash
# 交互式添加 
    claude mcp add  
      
# 从 Claude Desktop 导入 
    claude mcp add-from-claude-desktop  
      
# 直接添加 JSON 
    claude mcp add-json my-server '{"command":"node","args":["server.js"]}'  
      
# 使用配置文件启动 
    claude --mcp-config path/to/mcp.json
```bash

### 配置文件格式 
```bash
    // .mcp.json (项目级,可提交到仓库)  
    {  
    "mcpServers":{  
        "filesystem":{  
          "command":"npx",  
          "args":["-y","@anthropic-ai/mcp-server-filesystem","/path/to/dir"]  
        },  
        "postgres":{  
          "command":"npx",  
          "args":["-y","@anthropic-ai/mcp-server-postgres"],  
          "env":{  
            "DATABASE_URL":"${DATABASE_URL}"  # 支持环境变量展开  
          }  
        },  
        "custom-api":{  
          "command":"node",  
          "args":["./mcp-servers/my-api-server.js"],  
          "timeout":30000  
        }  
    }  
    }
```bash

### SSE/HTTP 远程服务器 
```bash
    {  
      "mcpServers":{  
        "remote-service":{  
          "type":"sse",  
          "url":"https://mcp.example.com/sse",  
          "headers":{  
            "Authorization":"Bearer ${API_TOKEN}"  
          }  
        },  
        "http-service":{  
          "type":"http",  
          "url":"https://mcp.example.com/api"  
        }  
    }  
    }
```bash

### 动态 Headers (OAuth) 
```bash
    {  
      "mcpServers": {  
        "oauth-service": {  
          "type": "sse",  
          "url": "https://api.example.com/mcp",  
          "headersHelper": "node ./scripts/get-oauth-token.js"  
        }  
      }  
    }
```bash

### 案例:常用 MCP 服务器 

#### 数据库访问 
```bash
    {  
      "mcpServers":{  
        "postgres":{  
          "command":"npx",  
          "args":["-y","@anthropic-ai/mcp-server-postgres"],  
          "env":{  
            "POSTGRES_HOST":"localhost",  
            "POSTGRES_PORT":"5432",  
            "POSTGRES_DB":"myapp",  
            "POSTGRES_USER":"${DB_USER}",  
            "POSTGRES_PASSWORD":"${DB_PASSWORD}"  
          }  
        }  
    }  
    }
```bash

#### Git 仓库操作 
```bash
    {  
      "mcpServers":{  
        "git":{  
          "command":"npx",  
          "args":["-y","@anthropic-ai/mcp-server-git"],  
          "env":{  
            "GIT_REPO_PATH":"${PWD}"  
          }  
        }  
    }  
    }
```bash

#### Slack 集成 
```bash
    {  
      "mcpServers":{  
        "slack":{  
          "command":"npx",  
          "args":["-y","@anthropic-ai/mcp-server-slack"],  
          "env":{  
            "SLACK_BOT_TOKEN":"${SLACK_BOT_TOKEN}"  
          }  
        }  
    }  
    }
```bash

### 管理 MCP 服务器 
```bash
# 查看已配置的服务器 
    /mcp  
      
# 查看服务器详情和工具列表 
    claude mcp list  
      
# @提及启用/禁用服务器 
    @postgres  # 切换 postgres 服务器状态
```bash

### 最佳实践 

  1. 1\. **敏感信息用环境变量** :不要在配置中硬编码密钥
  2. 2\. **设置合理超时** :避免慢服务器阻塞会话
  3. 3\. **项目级配置提交仓库** :团队共享 `.mcp.json`
  4. 4\. **用户级配置存私密服务** :个人 API 密钥放 `~/.claude/`



* * *

## 8\. 对话管理 

### 功能介绍 

Claude Code 提供完整的对话管理功能,支持恢复、回退、导出和搜索历史对话。

### 对话管理流程 

![SVG Diagram 8](/images/extra/05/diagram_8.svg)

### 核心命令 
```bash
# 继续上一次对话 
    claude --continue  
      
# 选择历史对话恢复 
    claude --resume  
    /resume  # 在会话中切换  
      
# 回退对话(撤销代码更改) 
    /rewind  
      
# 导出对话 
    /export  
      
# 压缩对话 
    /compact
```bash

### 对话恢复工作流 

```bash
# 场景:昨天做了一半的功能,今天继续

# 方式一:直接继续
claude --continue
"我们昨天做到哪里了?请继续"

# 方式二:选择特定对话
claude --resume
# 使用分支过滤和搜索找到目标对话
# 选择后自动恢复上下文
```bash

### 回退功能详解 

```bash
# /rewind 会显示对话历史的检查点
/rewind

# 选择要回退到的点
# Claude 会:
#   - 撤销该点之后的所有代码更改
#   - 恢复对话状态
#   - 允许你重新开始

# 适用场景:
#   - Claude 走错了方向
#   - 想尝试不同的实现方案
#   - 代码改坏了需要恢复
```bash

### 对话压缩 
```bash
# 自动压缩(默认开启) 
# 对话过长时自动触发,保留关键上下文 
      
# 手动压缩 
    /compact  
      
# 配置压缩行为 
# ~/.claude/settings.json 
    {  
      "autoCompact": true,  
      "compactThreshold": 0.8  # 80% 上下文时触发  
    }
```bash

### 进度检查点(项目级) 

```bash
# 保存当前进度(使用项目自定义命令)
/progress-save

# 加载历史进度
/progress-load

# 检查点文件位置
docs/progress/checkpoints/
└── 2024-01-15_feature-auth.md
```bash

### 最佳实践 

  1. 1\. **定期保存进度** :复杂任务每完成一个里程碑就保存
  2. 2\. **善用 /rewind** :比手动撤销更安全
  3. 3\. **导出重要对话** :有价值的对话导出存档
  4. 4\. **按分支过滤** :多分支开发时更容易找到相关对话



* * *

## 9\. 后台命令与沙盒模式 

### 后台命令 (Ctrl+B) 

#### 功能介绍 

将长时间运行的命令放到后台执行,Claude 可以继续其他工作。

#### 使用方式 
```bash
# 方式一:Ctrl+B 发送到后台 
    npm run dev  # Ctrl+B 而非 Enter  
      
# 方式二:自动后台(长命令自动触发) 
# 运行超过 BASH_DEFAULT_TIMEOUT_MS 的命令会自动转后台 
      
# 查看后台任务 
    /tasks  
      
# 查看任务输出 
    BashOutput(task-id)  
      
# 终止后台任务 
    KillShell(task-id)
```bash

#### 典型场景 
```bash
# 场景 1:启动开发服务器 
    npm run dev  # Ctrl+B 发送到后台  
    "服务器启动后,请帮我修改 Header 组件"  
      
# 场景 2:运行长时间测试 
    npm run test:e2e  # Ctrl+B  
    "测试运行时,请帮我检查 API 文档"  
      
# 场景 3:监控日志 
    tail -f logs/app.log  # Ctrl+B  
    "请帮我分析日志中的错误模式"
```bash

### 沙盒模式 (Sandbox) 

#### 功能介绍 

沙盒模式限制 Bash 工具的系统访问权限,防止意外的破坏性操作。

#### 配置方式 
```bash
    // .claude/settings.json  
    {  
      "sandbox": {  
        "enabled": true,  
        "allowUnsandboxedCommands": false  // 禁用 dangerouslyDisableSandbox  
      }  
    }
```bash

#### 沙盒行为 

![SVG Diagram 9](/images/extra/05/diagram_9.svg)

### 最佳实践 

  1. 1\. **开发服务器用后台** :不阻塞主对话
  2. 2\. **生产环境启用沙盒** :防止意外操作
  3. 3\. **监控长任务** :定期检查后台任务状态
  4. 4\. **合理设置超时** :`BASH_DEFAULT_TIMEOUT_MS` 按需调整



* * *

## 10\. 权限管理 

### 功能介绍 

精细控制 Claude 可以使用的工具和操作,平衡效率与安全。

### 权限决策流程 

![SVG Diagram 10](/images/extra/05/diagram_10.svg)

### 权限模式 

```bash
# 查看/修改权限模式
/permissions

# 三种模式
1. 默认模式:敏感操作需确认
2. 自动接受模式 (Shift+Tab):自动批准大部分操作
3. 计划模式:先计划后执行,每步需确认
```bash

### 工具权限规则 
```bash
    // .claude/settings.json  
    {  
    "permissions":{  
        "allow":[  
          "Read",  
          "Glob",  
          "Grep",  
          "Bash(npm test:*)",  
          "Bash(npm run build:*)",  
          "Bash(git:*)",  
          "Write(src/**)"  
        ],  
        "deny":[  
          "Bash(rm -rf:*)",  
          "Bash(sudo:*)",  
          "Write(.env*)",  
          "Write(*.pem)"  
        ],  
        "ask":[  
          "Bash(npm install:*)",  
          "Write(package.json)"  
        ]  
    }  
    }
```bash

### 权限规则语法 
```bash
# 基本格式 
    Tool(pattern)  
      
# 示例 
    Read                      # 允许所有读取  
    Read(src/**)              # 只允许读取 src 目录  
    Bash(npm:*)               # 允许所有 npm 命令  
    Bash(npm test:*)          # 只允许 npm test 及其参数  
    Write(*.java)             # 允许写入 Java 文件  
    mcp__postgres__query      # 允许特定 MCP 工具
```bash

### 项目级共享权限 
```bash
    // .claude/settings.json (提交到仓库)  
    {  
    "permissions":{  
        "allow":[  
          "Bash(./gradlew:*)",  
          "Bash(npm:*)",  
          "Read",  
          "Glob",  
          "Grep"  
        ],  
        "deny":[  
          "Bash(rm -rf /)*",  
          "Write(credentials*)"  
        ]  
    }  
    }
```bash

### 最佳实践 

  1. 1\. **最小权限原则** :只允许必要的操作
  2. 2\. **项目级规则共享** :团队使用相同的权限配置
  3. 3\. **敏感文件加 deny** :防止意外修改配置文件
  4. 4\. **危险命令加 ask** :`npm install` 等需要确认



* * *

## 11\. Explore 子代理 

### 功能介绍 

Explore 是专门用于代码库探索的子代理,由 Haiku 驱动,高效且节省上下文。

### Explore 代理工作原理 

![SVG Diagram 11](/images/extra/05/diagram_11.svg)

![SVG Diagram 12](/images/extra/05/diagram_12.svg)

### 自动触发 

```bash
# Claude 会自动在这些场景使用 Explore 代理:
"这个项目的目录结构是什么?"
"帮我找到处理用户认证的代码"
"项目中有哪些 API 端点?"
```bash

### 手动调用 
```bash
# 使用 Task 工具指定 
    "使用 Explore 代理快速了解 src/services 目录的功能"  
      
# 在提示中指定深度 
    "quick 扫描一下项目结构"      # 快速扫描  
    "medium 分析认证模块"         # 中等深度  
    "very thorough 全面分析支付系统" # 深度分析
```bash

### 典型场景 

```bash
# 场景 1:新项目上手
"Explore 这个项目,告诉我:
1. 技术栈是什么
2. 核心模块有哪些
3. 入口文件在哪里"

# 场景 2:定位功能代码
"帮我找到所有涉及订单状态变更的代码"

# 场景 3:理解依赖关系
"分析 UserService 依赖了哪些其他服务"
```bash

### 最佳实践 

  1. 1\. **大项目必用** :避免主对话上下文爆炸
  2. 2\. **指定探索范围** :明确目录或功能范围
  3. 3\. **选择合适深度** :简单问题用 quick,复杂问题用 thorough
  4. 4\. **结合后续任务** :探索后让 Claude 基于发现继续工作



* * *

## 12\. 最佳实践总结 

### 完整开发工作流 

![SVG Diagram 13](/images/extra/05/diagram_13.svg)

### 日常开发工作流 

```bash
# 启动会话
claude

# 复杂任务进入计划模式
[Shift+Tab 切换到计划模式]

# 描述任务
"实现用户头像上传功能,需要:
- 前端上传组件
- 后端存储到 COS
- 图片压缩和格式转换"

# 审查并批准计划

# 执行过程中启动开发服务器
npm run dev [Ctrl+B]

# 定期保存进度
/progress-save

# 完成后提交
"请帮我提交这些更改"
```bash

### 代码审查工作流 

```bash
# 使用自定义代理
@security-reviewer 审查 src/controllers/PaymentController.java
@performance-optimizer 检查数据库查询性能
@test-expert 补充测试用例
```bash

### 大型重构工作流 
```bash
# 计划模式 
    [Shift+Tab]  
      
# 深度思考 
    "ultrathink 如何将单体应用拆分为微服务"  
      
# 分阶段执行 
    "先完成用户服务的拆分"  
      
# 每阶段保存 
    /progress-save  
      
# 如果出问题 
    /rewind  # 回退到安全点
```bash

### 团队协作配置 
```bash
    // .claude/settings.json (提交到仓库)  
    {  
    "permissions":{  
        "allow":["Bash(npm:*)","Bash(./gradlew:*)"],  
        "deny":["Write(.env*)"]  
    },  
    "hooks":{  
        "PostToolUse":[{  
          "matcher":"Write",  
          "command":"npm run lint:fix"  
        }]  
    }  
    }
```bash
```bash
    // .mcp.json (提交到仓库)  
    {  
    "mcpServers":{  
        "postgres":{  
          "command":"npx",  
          "args":["-y","@anthropic-ai/mcp-server-postgres"],  
          "env":{"DATABASE_URL":"${DATABASE_URL}"}  
        }  
    }  
    }
```bash

### 性能优化技巧 

技巧| 说明  
---|---  
使用 Explore 代理| 大项目探索不占主上下文  
及时 /compact| 主动压缩过长对话  
选择合适模型| 简单任务用 haiku,复杂用 opus  
限制 @提及范围| 不要一次性添加太多文件  
后台运行长命令| Ctrl+B 避免阻塞  
  
### 安全最佳实践 

实践| 说明  
---|---  
启用沙盒模式| 限制 Bash 工具权限  
配置 deny 规则| 保护敏感文件  
使用环境变量| 不在配置中硬编码密钥  
审查 MCP 权限| 只给必要的服务器权限  
定期更新| 保持 Claude Code 最新版本  
  
* * *

## 附录:快捷键速查 

快捷键| 功能  
---|---  
`Tab`| 文件补全 / 切换思考模式  
`Shift+Tab`| 切换计划模式 / 自动接受模式  
`Ctrl+B`| 后台运行命令  
`Ctrl+R`| 历史命令搜索  
`Ctrl+O`| 切换对话记录视图  
`Ctrl+G`| 外部编辑器编辑  
`Ctrl+Z`| 挂起 Claude Code  
`Ctrl+C`| 中断当前操作  
`ESC`| 停止 Claude 工作  
  
* * *

> 文档版本: 2.0.59 | 最后更新: 2025-12

> 我是易安,一位专注AI技术研究的AI超级个体。每天为大家带来前沿AI工具评测和实践经验,用通俗易懂的方式解读复杂的技术概念,👇长按扫码关注,一起探索AI技术的无限可能!

![图片](/images/extra/05/image_1.jpg)

  


如果觉得我的文章对你有帮助的话,可以帮我点个赞👍或者喜欢❤,让更多跟你一样好品味的人看到这些内容,感谢🙏

  


---

## 原文链接

本文转载自微信公众号,原文地址:https://mp.weixin.qq.com/s/Vpkzra5I8lvyTA8jX8l_2A

推荐阅读
[来,这是易安的介绍(第2版,交个朋友,限时送福利)](https://mp.weixin.qq.com/s?__biz=MzkyODMwNDYzOA==&mid=2247501215&idx=2&sn=bc2c71ed231b96eb4fefd0057e14f7dc&scene=21#wechat_redirect)

[我和深圳大冲的故事](https://mp.weixin.qq.com/s?__biz=MzkyODMwNDYzOA==&mid=2247501169&idx=1&sn=8c7b32496e4ef7acc634961080a14169&scene=21#wechat_redirect)

Made with vitepress by williamwong