1、核心概念

1)什么是Agent? 

  • Agent:就是一个给它一个目标,它会自己规划步骤,调用工具,检查结果,反复迭代,直到任务完成。
  • Agent工作循环:用户目标-->制定计划-->调用工具-->检查结果-->完成?(未完成会继续制定计划)-->返回结果。

2)工具调用机制(Tool use)

  • claude code的工具箱
    工具 描述
    Read 读取文件内容
    Write 创建或者覆盖写入文件
    Edit 精准编辑文件的某几行
    Bash 执行终端命令
    Glob 按文件名模式搜索文件
    Grep 按内容搜索文件
    WebFetch 获取网页内容

3)模型对话

  • 一切都是对话:ClaudeCode 的界面是终端,本质上交互方式就是一轮一轮的对话;
  • 上下文窗口:Claudecode在一次session中,会记住说要的问题,调用的工具,以及得到的结果,这些信息加起来就是上下文。
    • 上下文快满的时候,就会被压缩,把早期的对话内容浓缩为摘要;
    • 会话结束,上下文就消失了;但是CLAUDE.md就相当于写的备忘录,每次Claude code启动的时候会自动读取它。
    • /compact:手动压缩上下文;/clear:清空后重新开始

4)权限模型

  • 权限设计分为三档:默认模式每次询问,🔓 半自动模式读操作自动执行写操作要确认,🔑 全自动模式所有操作自动执行

5)常用命令

启动  
claude 启动交互式会话
Claude “帮我写个函数” 带初始指令启动
claude -p "解释这段代码" 单次问答模式(print mode)
会话中的斜杠命令  
/help 查看所有可用命令
/clear 清除当前上下文,重新开始
/compact 手动压缩上下文,释放空间
/model 查看或切换使用的模型
快捷操作  
Ctrl + C 中断ClaudeCode当前正在执行的操作
Esc 取消当前输入(情空输入框)
Shift + Tab 在输入中接受Claude的自动补全建议

总结:Claude code 是一个运行在终端里的AI Agent,通过工具调用来读写你的代码和执行命令,在权限管控下完成你交给它的编程任务。

2、Claude code的使用

1)Claude code的执行流程

  • 分析你的请求
  • 运行ls查看目录结构
  • 读取关键文件(如:package.json,README等)
  • 给你一个项目概述和建议

2)模型切换(/model)

  • sonnet:日常开发首选,速度和质量平衡好
  • haiku:最快,适合简单问题
  • opus:最强,适合复杂架构设计

3、权限模型和安全机制

1)权限的三个超能力

读取任意文件 代码,配置,密钥等都可以读取
写入/修改文件 改代码,改配置,删文件等
执行Bash命令 安装包,跑脚本,调接口等

2)三种权限模式

  • 逐次审批(默认)
  • 自动读取(Auto-accept reads):文件读取,搜索自动通过,写入和执行需要审批
  • 全自动YOLO模式:启动命令(claude --dangerously-skip-permissions)

3)权限提示

选项 含义
A - Allow 仅这一次允许
D - Deny 拒绝,不执行
E - Edit 修改命令内容后再执行
S - Session 本次会话中,同类操作自动允许
W - Always 永久允许此类操作(写入配置文件)

4)安全层级

  • 文件边界:默认尊重.gitignore中定义的模式
  • 环境变量保护:API_KEY,DATABASE_URL之类的环境变量,不会读取
  • 网络限制:沙箱模式,claude code的网络访问时受限的

注意:可以在项目根目录创建 .claude/settings.json 文件来配置项目级别的权限规则,和队友共享统一的安全策略。

5)权限配置方式

  • 启动时指定允许的工具

# 只允许读取类操作
claude --allowedTools "Read,Glob,Grep"

# 允许读取 + 写文件,但不允许执行 bash
claude --allowedTools "Read,Glob,Grep,Write"

  • 配置文件

在 ~/.claude/settings.json 中配置全局默认权限:

{
  "permissions": {
    "allow": [
      "Read",
      "Glob",
      "Grep"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Bash(sudo *)"
    ]
  }
}

也可以在项目级别配置 .claude/settings.json,针对不同项目设不同策略:

{
  "permissions": {
    "allow": [
      "Read",
      "Glob",
      "Grep",
      "Write",
      "Bash(npm *)",
      "Bash(npx *)"
    ]
  }
}

4、应用场景

1)分析代码库

2)根据需求实现功能

3)实现单元测试

4)多文件协调开发

代码生成

代码重构

问题排查

 

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐