Claude Code知识整理
·
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)多文件协调开发
代码生成
代码重构
问题排查
更多推荐
所有评论(0)