

























最近正式开始使用Claude Code/Codex/Gemini CLI+CC-Switch+API的Agent Coding的方式构建项目。之前是直接用Copilot和Trae这种跟IDE结合更紧密,也提供了编辑文件,浏览目录以及测试命令的功能,但Claude Code明显提供了更好的体验以及更先进的AI编程工程范式。
这里做一些实战总结,主要是Claude Code使用上。
Claude Code 是一个代理编码工具,可以读取你的代码库、编辑文件、运行命令,并与你的开发工具集成。可在终端、IDE、桌面应用和浏览器中使用。Claude Code 是一个由 AI 驱动的编码助手,可帮助你构建功能、修复错误和自动化开发任务。它理解你的整个代码库,可以跨多个文件和工具工作以完成任务。
考虑到国内充值付费问题,使用方式可参考国内丝滑落地 Claude Code/Codex Agent 编程的硬核指南.使用第三方中转站
通过Agent循环工作,而这个循环中包含模型推理和工具调用。ClaudeCode提供工具、上下文管理以及执行环境。

模型
执行引擎。在会话期间使用 /model 切换或使用 claude --model <name> 启动。
工具
没有工具,Claude 只能用文本回应。有了工具,Claude 可以采取行动:读取您的代码、编辑文件、运行命令、搜索网络并与外部服务交互.
内置工具通常分为五个类别,每个类别代表不同类型的代理能力。
| 类别 | Claude 可以做什么 |
|---|---|
| 文件操作 | 读取文件、编辑代码、创建新文件、重命名和重新组织 |
| 搜索 | 按模式查找文件、使用正则表达式搜索内容、探索代码库 |
| 执行 | 运行 shell 命令、启动服务器、运行测试、使用 git |
| 网络 | 搜索网络、获取文档、查找错误消息 |
| 代码智能 | 编辑后查看类型错误和警告、跳转到定义、查找引用(需要代码智能插件) |
工具调用时机本质还是利用模型根据提示和沿途学到的内容选择使用哪些。
可以使用 skills 扩展 Claude 知道的内容、使用 MCP 连接到外部服务、使用 hooks 自动化工作流,以及将任务卸载给 subagents。
平台集成
本身可以直接在终端运行,也可以跟VS Code,JetBrains IDEs 结合
事实上,可以通过终端、桌面应用、IDE 扩展、claude.ai/code、远程控制、Slack 和 CI/CD 管道访问 Claude Code。
claude配置主要是两个地方,一个是用户目录,另一个是项目目录

使用 CLAUDE.md 文件为 Claude 提供持久指令,并让 Claude 通过自动记忆功能自动积累学习内容。
每个 Claude Code 会话都从一个全新的上下文窗口开始。两种机制可以跨会话传递知识:
| CLAUDE.md 文件 | 自动记忆 | |
|---|---|---|
| 谁编写 | 你 | Claude |
| 包含内容 | 指令和规则 | 学习和模式 |
| 范围 | 项目、用户或组织 | 每个工作树,跨 worktrees 共享 |
| 加载到 | 每个会话 | 每个会话(前 200 行或 25KB) |
| 用于 | 编码标准、工作流、项目架构 | 构建命令、调试见解、Claude 发现的偏好 |
Claude Code 读取
CLAUDE.md,而不是AGENTS.md。如果你的存储库已经为其他编码代理使用AGENTS.md,创建一个导入它的CLAUDE.md
@引用,每个 CLAUDE.md 文件目标在 200 行以下;编写具体到足以验证的指令;模块化加载。自动记忆让 Claude 跨会话积累知识,无需你编写任何内容。Claude 在工作时为自己保存笔记:构建命令、调试见解、架构笔记、代码样式偏好和工作流习惯。Claude 不会每个会话都保存内容。它根据信息在未来对话中是否有用来决定什么值得记住。
本质是存储在~/.claude/projects/<project>/memory/的各种文件,比如
1 | ~/.claude/projects/<project>/memory/ |
MEMORY.md 的前 200 行或前 25KB(以先到者为准)在每次对话开始时加载。超过该阈值的内容在会话开始时不加载。Claude 在你的会话中读取和写入记忆文件。当你在 Claude Code 界面中看到”Writing memory”或”Recalled memory”时,Claude 正在主动更新或读取 ~/.claude/projects/<project>/memory/。
Claude Code 读取 CLAUDE.md、settings.json、hooks、skills、commands、subagents、rules 和自动内存的位置。
.claude目录包括个人的~/.claude以及项目的.claude.~/.claude 中的文件是个人配置,适用于所有项目。
| 您想要 | 编辑 | 范围 | 参考 |
|---|---|---|---|
| 为 Claude 提供项目上下文和约定 | CLAUDE.md | 项目或全局 | 内存 |
| 允许或阻止特定工具调用 | settings.json permissions 或 hooks | 项目或全局 | 权限、Hooks |
| 在工具调用前后运行脚本 | settings.json hooks | 项目或全局 | Hooks |
| 为会话设置环境变量 | settings.json env | 项目或全局 | 设置 |
| 将个人覆盖保留在 git 之外 | settings.local.json | 仅项目 | 设置范围 |
添加使用 /name 调用的提示或功能 | skills/<name>/SKILL.md | 项目或全局 | Skills |
| 定义具有自己工具的专门 subagent | agents/*.md | 项目或全局 | Subagents |
| 通过 MCP 连接外部工具 | .mcp.json | 仅项目 | MCP |
| 更改 Claude 格式化响应的方式 | output-styles/*.md | 项目或全局 | 输出样式 |
运行 /context 以获取按类别的实时分解和优化建议。运行 /memory 以检查在启动时加载了哪些 CLAUDE.md 和自动内存文件。探索上下文窗口查看一个上下文的组成
既然每次跟模型的对话都会重发一些内容, 有哪些方式可以优化以节约成本呢。目前常用的技术还是prompt caching和/compact裁剪
每次在 Claude Code 中发送消息时,它都会发出新的 API 请求。模型在请求之间不记得任何东西,所以 Claude Code 重新发送完整的上下文:系统提示、您的项目上下文、每条先前的消息和工具结果,以及您的新消息。新内容附加在末尾,这意味着每个请求的大部分与前一个请求相同。Prompt caching 是 API 避免重新处理未更改部分的方式。
为了充分利用前缀匹配,Claude Code 组织每个请求,使回合之间很少更改的内容首先出现:
| 层 | 内容 | 更改时间 |
|---|---|---|
| 系统提示 | 核心指令、工具定义、输出样式 | MCP 服务器连接或断开连接,或 Claude Code 升级 |
| 项目上下文 | CLAUDE.md、自动内存、无范围规则 | 会话开始,或在 /clear 或 /compact 之后 |
| 对话 | 您的消息、Claude 的响应、工具结果 | 每个回合 |
每种模式在便利性和监督之间做出不同的权衡。
在会话期间:按 Shift+Tab 循环切换 default → acceptEdits → plan。当前模式显示在状态栏中。并非每种模式都在默认循环中:
auto:当您的账户满足 auto mode 要求时出现;循环到 auto 会显示一个选择加入提示,直到您接受它,或选择不,不再询问以从循环中移除 autobypassPermissions:在您使用 --permission-mode bypassPermissions、--dangerously-skip-permissions 或 --allow-dangerously-skip-permissions 启动后出现;--allow- 变体将模式添加到循环中而不激活它dontAsk:永远不会出现在循环中;使用 --permission-mode dontAsk 设置它会话是与项目目录关联的已保存对话。Claude Code 在您工作时将其本地存储,因此您可以从中断处恢复、分支以尝试不同的方法,或在任务之间切换。每次在一个项目目录启动claude都视为一次独立的会话,在~/.claude/projects/下有不同项目下的若干个会话。
对于会话,可以进行恢复,命名,分支会话,导出以及管理会话内的上下文.
恢复会话通过/resume进行选择,命名通过/rename,管理上下文通过\clear清除以及/compact压缩
commands,在项目中.claude/commands下创建*.md文件Claude Code 里的 slash commands 大致分四类:
/help、/clear、/modelSKILL.md 定义,仍然可以用 /name 调用*.md文件中包含内容,frontmatter 包含描述,允许的工具等,此外还有工作流程。
包括CLAUDE.md和自动内存.
CLAUDE.md包含内容如下。可以通过/init常见,/memory查看或编辑
3.skiils
skill可以理解成:
SKILL.mdskill基本结构
1 | skill-name/ |
SKILL.md负责
告诉 Claude 该怎么做
templates/:输出模板
scripts/:辅助脚本references/:参考规则或背景知识4.subagents
subagents 是 Claude Code 里做复杂任务拆分的关键能力。你可以把它理解成“主 Claude 把某个子任务交给一个更专业、上下文更独立的助手去做”。
subagent 具备这些特点:
| 价值 | 说明 |
|---|---|
| 上下文隔离 | 避免主对话被复杂细节污染 |
| 专业分工 | 不同 agent 做不同任务 |
| 工具隔离 | 可以限制某个 agent 能做什么 |
| 可复用 | 适合团队共享常用角色 |
| 类型 | 路径 | 作用域 |
|---|---|---|
| 项目级 | .claude/agents/ | 当前项目 |
| 用户级 | ~/.claude/agents/ | 所有项目 |
subagent 文件通常是:
1 | --- |
subagents:主 Claude 委派一个边界清晰的子任务,等它把结果带回来Agent Teams:多个 Claude Code 实例协作,彼此有独立上下文窗口,还能直接通信
本质上是分配一个新角色,它有独立的上下文,职责不同,执行完后能返回结果。
5.mcp使用
如果没有 MCP,Claude 只能基于你提供的上下文回答。
有了 MCP,它可以:
MCP 常见应用场景
在.mcp.json中配置
1 | { |
6.hooks
hooks 是 Claude Code 的“事件触发自动化”机制。它允许你在某些时机自动做点事情,例如:
可以把 hook 理解成一条规则:
这些动作可以是:
hooks 最大的价值,是把“你本来每次都要手动做的检查”变成自动流程。
配置位置
~/.claude/settings.json:用户级,对所有项目生效.claude/settings.json:项目级,适合团队共享.claude/settings.local.json:本地项目配置,不建议提交hooks/hooks.json一般结构
1 | { |
hooks有匹配工具,类型,执行的命令等
1 | "hooks": { |
7.plugins
anthropics/claude-plugins-official
plugin 通常会组合这些内容:
.mcp.json所以它特别适合:
plugin配置如下
1 | my-plugin/ |
8.checkpoints
可以把 checkpoint 理解成当前会话状态的快照,通常包括:
当你需要回退时,就使用 rewind 返回到某个 checkpoint。Claude Code 会自动创建 checkpoints,所以你不需要手动先“存档”才能用。
常见有这些:
1 | 先让 Claude 改 |
这在这些任务里尤其好用:
9.高级功能
权限模式
| 模式 | 适合什么 |
|---|---|
default | 日常安全使用 |
acceptEdits | 希望编辑流畅一些 |
plan | 只想分析,不想改 |
dontAsk | 非交互脚本 |
bypassPermissions | 可信环境中的强自动化 |
auto | 有更高自动化诉求、且明确接受风险 |
通过--dangerously-skip-permissions切换到bypassPermissions,可以通过shift+tab切换,也可以通过claude --permission-mode plan.也可以通过\config配置。
claude -p输出模式适合shell脚本以及CI/CD等人物。此外还有后台任务\background让耗时任务后台跑,不阻塞当前会话.
10.CLI功能
| 命令 | 用途 |
|---|---|
claude | 打开交互模式 |
claude "query" | 带初始问题进入 REPL |
claude -p "query" | print mode,一次执行后退出 |
claude -c | 继续最近一次会话 |
claude -r "session" | 恢复指定 session |
claude mcp | 管理 MCP |
claude agents | 打开 Agent View,多 session 管理界面 |
claude agents --json | 以 JSON 输出 Agent View session 列表,适合脚本、状态栏和 session picker |
claude plugin | 管理 plugins |
claude remote-control | 启动远程控制 |
claude auth status | 查看登录状态 |
claude project purge [path] | 清理某个项目的本地 Claude Code 状态,先用 --dry-run 预览 |
claude plugin prune | 清理无主的自动安装 plugin 依赖 |
claude ultrareview [target] | 在无头模式里运行 /ultrareview,适合 CI / PR gate |
| flag | 用途 |
|---|---|
-p, --print | 进入 print mode |
-c, --continue | 继续最近一次会话 |
-r, --resume | 恢复指定 session |
-n, --name | 给 session 起名 |
-w, --worktree | 在 worktree 中启动 |
--model | 指定模型 |
--effort | 指定思考强度;现在支持 xhigh |
--permission-mode | 指定权限模式 |
--bare | 以最小模式启动 |
--add-dir | 加额外目录到工作上下文 |
--tmux | 给 worktree / 多任务场景创建 tmux 会话 |
--exclude-dynamic-system-prompt-sections | 排除系统提示中的动态段落,帮助 prompt cache 更稳定命中 |
CLI 常见会和这些配置一起使用:
--model--fallback-model--effort--settings--append-system-prompt示例:
1 | claude --model opus "design a caching strategy" |
工具与权限相关 flags
--permission-mode--dangerously-skip-permissions--allowedTools--disallowedTools--tools此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。