资讯动态

Claude Code 实战手册:终端里的 AI Agent 编程全流程指南

发布时间:2026/9/7 21:06:09 来源:尧图企业网站定制
这两年 AI 编程的话题几乎被 Cursor 刷屏但真正让我觉得“编程范式变了”的是终端里这个叫 Claude Code 的命令行工具。它不是传统意义上的“AI 补全插件”而是一个能自己去读项目结构、批量修改文件、执行命令、观察测试结果然后接着改的 Agent。这篇文章我不打算复述官方文档而是按照我实际把 Claude Code 装进日常开发流程的顺序把环境准备、安装登录、日常命令、IDE 集成、高频报错排查以及提示词技巧完整过一遍。如果你刚接触 Agent 编程正犹豫要不要从“AI 帮你补全”切换到“AI 帮你干活”这篇可以作为一份能直接照着操作的落地手册。1. 先搞清楚Claude Code 和 Cursor、Copilot 到底差在哪1.1 从“补全”到“执行”的范式转变很多人第一次用 Claude Code 会不太适应因为它和 Copilot、Cursor 的使用体验完全是两回事。Copilot 的核心是补全你写个函数名它帮你补完函数体光标停在那里Tab 确定。Cursor 往前迈了一步你可以在对话框里描述需求它帮你改多个文件但本质上仍然是“你驱动、它建议”改完你要手动审查、手动跑测试、手动发现问题再继续问。Claude Code 的差别在于它不是一个编辑器插件而是运行在终端里的一个 Agent。它会根据你的任务描述自己决定调用哪些工具——读文件、搜索符号、改代码、执行 shell 命令、看运行结果、再决定下一步动作。这个过程不是一次性的“生成一段代码”而是一个循环读、改、跑、看、再改直到任务完成为止。这就像你从“用输入法打字”切换到“请了一个实习工程师”。输入法永远在等你打下一个字实习工程师会自己打开代码看逻辑遇到不懂的来问你改完会跑一下测试给你看结果。Claude Code 干的正是后面这件事。1.2 Claude Code 的工作模型工具、权限、会话Claude Code 的能力边界来自它手上的“工具”。官方给它配置了一组基础工具Read读取文件、Write写文件、Edit精确编辑、Bash在终端里执行命令、Grep内容搜索、Glob文件匹配以及一个用于拆分复杂任务的 Task 工具。这些工具组合起来它就能在本地代码库里做真实的事情而不是像聊天机器人那样只输出文本建议。工具意味着它能产生副作用改文件、装依赖、跑测试。所以 Claude Code 设计了一套权限机制——默认情况下每次它要执行一个有副作用的操作都会在终端里征求你的同意。你可以选择允许单次、允许这类操作或者直接拒绝。这个设计非常关键它让 Agent 的自主性和人的控制权之间有了一个明确的缓冲层。会话session是另一个核心概念。你启动一次claude命令开启一个会话它会记住这个会话里的上下文。如果你中途退出可以用--continue继续上一次对话也可以用--resume有选择地恢复指定会话。这种设计对实际开发很重要——你上午让它调研一个 bug下午回来接着问“你觉得应该怎么改”它是记得上午聊过什么的。1.3 它擅长什么不擅长什么用了一段时间之后我对 Claude Code 的适用边界有很清晰的判断。它最擅长的是那种“跨文件、机械性、有明确验收标准”的活重构模块、批量替换、补测试、按需求文档实现一个小功能、排查测试失败原因、整理代码结构、补文档。这些任务信息密度高、结果好验证Agent 跑起来效率远高于人工。它不太擅长的是需要大量外部判断的架构决策、它知识截止日期之后才出现的新框架、需要你提供但代码库里没有的隐性业务知识、以及对安全性极度敏感的操作。比如让它“重构整个项目的认证模块”这种任务如果不在会话里给它讲清楚业务约束和验收标准它很容易改出一个看起来正确、但完全不符合实际业务逻辑的结果。搞清楚边界之后你才能正确地用它把它当成一个需要明确交接的协作者而不是一个万能代码生成器。这个认知决定了后面的所有使用方式。2. 安装前置条件Node 环境、Git 与账号认证2.1 Node.js 版本要求与安装检查Claude Code 通过 npm 分发所以第一件事是准备好 Node.js 环境。官方要求 Node.js 18 及以上版本我的建议是直接用 20 LTS 或更新的 LTS 版本没必要卡在最低要求上。先检查本机是否已有 Nodenode -v npm -v如果node命令不存在或者版本低于 18需要先装 Node.js。macOS 上我推荐用 nvm 管理版本方便在多个 Node 版本之间切换# macOS / Linux 安装 nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash # 重新加载 shell 配置 source ~/.zshrc # 或 source ~/.bashrc # 安装 Node 20 LTS nvm install 20 nvm use 20Windows 用户有两个选择装 nvm-windows或者直接去官网下载 LTS 安装包。这里提前说一句Claude Code 在 Windows 上能用但如果你后面发现 Bash 工具执行某些 shell 命令时行为怪异最省心的方案是装 WSL 后在 WSL 的 Linux 环境里跑。它不是必须的但能避开很多路径和脚本兼容问题。2.2 Git不只是版本管理还是 Agent 的“工作台”很多人以为 Claude Code 需要 Git 只是因为“写代码当然要版本管理”实际上 Git 对 Agent 的意义比这大得多。Claude Code 在拿到一个任务后会主动用git diff查看你当前未提交的改动避免踩到你还没完工的代码它改完文件后会通过git diff告诉你具体改了哪些内容方便你审查它甚至能在你授权下创建分支、生成提交信息。可以说Git 既是它理解项目当前状态的眼睛也是它的操作日志。所以安装完 Git 之后请确认基础配置已经做好git --version git config --global user.name 你的名字 git config --global user.email 你的邮箱我的习惯是在让 Claude Code 动代码之前先在工作区里git commit或至少git stash一次确保工作区是干净的。这样无论 Agent 改出什么问题一条git checkout .就能撤回。2.3 账号认证订阅登录还是 API KeyClaude Code 支持两条认证路线使用前你需要先确定走哪条。第一条是订阅路线你有一个 Claude 账号Pro 或 Max 订阅首次运行claude时会弹出浏览器让你登录授权之后按订阅权益使用。这条路适合日常开发时高强度交互式使用计费相对固定。第二条是 API 路线你去 Anthropic 的控制台创建 API Key然后通过环境变量注入export ANTHROPIC_API_KEYsk-ant-...API 路线按 token 计费适合脚本自动化、CI 流程或者不想走浏览器登录的场景。两条路线的底层能力是一致的区别只是计费方式和认证方式。注意API Key 是敏感凭证别写进项目仓库也别在截图里晒出来。我见过有人把 Key 直接提交到 GitHub 公开仓库结果几分钟内就被盗刷。另外提醒一句安装前确认终端能够正常访问 Anthropic 的服务接口否则后面所有步骤都会卡在网络层。这属于环境连通性的基础检查建议提前确认别等装完了再排查。3. Claude Code 安装全流程从 npm 命令到首次对话3.1 全局安装与版本验证环境准备好之后安装本身其实只有一条命令npm install -g anthropic-ai/claude-code装完后验证一下claude --version如果能正常输出版本号说明安装成功。npm 全局安装会把claude命令链接到系统 PATH 里如果提示找不到命令多半是 npm 全局安装目录没加进 PATH检查一下 npm prefix 对应的目录。后续更新也很简单Claude Code 本身有自动更新机制你也可以手动执行claude update或者用 npm 更新npm update -g anthropic-ai/claude-code这里我要特别强调更新这件事。Claude Code 迭代非常快新模型、新工具、新参数经常是跟着新版本走的。你一旦发现报错信息里出现“not a model this version of Claude Code recognizes”这类话第一反应应该是“版本是不是旧了”而不是去怀疑配置。后面排查章节我会细说。3.2 登录认证的完整交互安装完成后在你打算使用的项目目录下直接运行claude首次运行会进入登录流程。如果是订阅路线终端会输出一个链接并打开浏览器你在网页上确认授权后回到终端就会看到会话启动。如果你设了ANTHROPIC_API_KEY环境变量则会直接进入会话跳过浏览器登录。登录完成后系统会在本地保存凭证下次运行不需要再走一遍流程。如果你在 CI 或脚本里使用不需要进入交互式会话用-p参数配合 API Key 即可claude -p 用一句话总结这个项目是做什么的这个模式会把请求发给模型把结果直接打印到 stdout 然后退出非常适合写自动化脚本。我在后面章节会专门展开。3.3 首次启动在真实项目里跑通第一个任务第一次启动别急着让它写复杂功能建议先在一个有代表性的项目里跑一轮最简单的闭环确认工具链路是通的。我会按这个顺序来cd ~/my-project git status # 确认工作区干净 claude进入交互会话后先让它做一件低风险、结果易验证的事请介绍一下这个项目的整体结构包括主要模块、技术栈和入口文件。看它是否正确读取了目录结构是否用了 Grep、Glob 等工具。然后可以再让它完成一个小任务比如“在 REAME.md 里补充一行当前版本号”或“写一个简单的工具函数并补上测试”。这一步的核心目的不是产出代码而是确认三件事它能读你的代码、它能在你授权下写文件、它的 Bash 工具能正常执行命令。这三条链路都通了后面的大任务才有基础。提示第一次跑大任务之前建议先创建一个临时分支或者用 git tag 打一个还原点。不要一上来就在主分支上让它大刀阔斧地改这是我在真实项目里踩出来的教训。4. 日常使用手册高频命令、会话管理与权限控制4.1 高频命令速查交互式会话之外的命令行参数也需要掌握我把平时用最多的整理成了一张表命令作用我的使用场景claude启动交互式会话日常开发主入口claude 任务描述一次性提问后退出快速问个问题claude --continue继续上一个会话午休回来接着干活claude --resume有选择地恢复某个会话跨天跟踪一个任务claude -p 任务非交互模式直接输出结果脚本与自动化claude --model sonnet指定模型启动按任务难度选模型claude --dangerously-skip-permissions跳过所有权限确认仅限沙箱或 CI 环境会话内还有一组斜杠命令相当于 Agent 的控制面板命令作用/help查看帮助/status查看当前会话状态/model切换模型/compact压缩对话上下文/clear清空当前会话/cost查看 token 消耗/config打开配置管理/permissions管理工具权限/mcp管理 MCP 服务连接/doctor诊断环境问题这些命令不用死记随时/help都能看到。重点是理解它们各自解决什么问题别等卡住了才想起来。4.2 会话管理上下文是 Agent 的“记忆”Claude Code 的会话机制是整个工具的灵魂它的记忆只在会话内有效。我之前踩过的坑是让它分析了一个 bug 原因中间切换去开会回来的时候重新开了一个会话结果它完全不记得之前分析过什么又要从零解释一遍。正确的做法是使用--continueclaude --continue这会在原有的上下文基础上继续对话所有之前的分析、决定、文件内容都还在。如果你同时开了多个分支任务想分别跟踪就用--resume来选择一个具体会话恢复。会话变长之后上下文窗口会逐渐被占满。这时候有两个选择/compact把历史对话压缩成摘要保留关键信息但释放空间/clear彻底清空从头开始。我的经验是一个会话里如果已经来回扯了二三十轮效率会明显下降这时候与其硬撑着聊不如/compact一次或者干脆把已经确认的结论记到 CLAUDE.md 里新开一个干净会话继续。4.3 权限系统为什么它每次都问你“是否允许”Claude Code 默认的模式下每次它准备执行 Bash 命令或修改文件都会弹出一个请求让你选择允许、拒绝或记住这个决定。第一次用的人会觉得烦——“我不是已经让它改了吗怎么还问”但这个“烦”恰恰是安全性的体现。Agent 在自主执行任务时可能做出你预期之外的动作比如执行一条你没仔细看的 shell 命令或者修改了一个你只是在思考中提及、并不打算真改的文件。逐次授权是给“人在回路”留了检查点。有两个常见路径可以调整这个体验用--allowedTools和--disallowedTools在启动时指定允许或禁止的工具集合例如/Bash(git*)放行所有 git 命令。在配置文件里按工具类型批量设置权限策略。只有极少数场景我才会用--dangerously-skip-permissions——比如在一个完全隔离的临时目录里跑自动化实验或者 CI 环境里执行有明确范围的任务。在正式项目里我相信没人愿意让一个 Agent 在无监督状态下自由执行任意命令。4.4 模型选择Opus、Sonnet、Haiku 怎么搭配Claude Code 底层可以调用不同档位的模型用/model切换。大致分工是Opus 档最强适合复杂重构、疑难 bug、架构设计Sonnet 档是速度和质量的平衡点日常开发主力Haiku 档最快最便宜适合简单问答、格式整理、文档生成。我个人的搭配策略是先用 Sonnet 做日常的机械改动遇到“我看了半天没头绪”的问题时切到 Opus 深度分析等它给出了完整方案再切回 Sonnet 执行具体改动。这样既保证质量又控制成本。你可以通过/cost随时查看当前会话的 token 消耗情况摸清自己的使用强度。5. 把 Claude Code 接进 IDE 和团队协作流5.1 VSCode 集成从“切窗口”到“一个环境搞定”Claude Code 本身是终端工具但和 VSCode 集成之后体验会好很多。你可以在 VSCode 扩展市场搜索 “Claude Code” 安装官方扩展装完后扩展会把 Claude Code 面板嵌入编辑器侧边栏并且带上编辑器当前打开文件的上下文。我更常用的方式是直接在 VSCode 内置终端里跑claude然后把 VSCode 自带的 Source Control 面板用于审查它产生的每一次改动。这个组合非常顺在终端里给 Claude Code 下任务它改完文件后切到 VSCode 的 Git 面板逐个文件看 diff有问题的直接手动修正或者回到终端让它继续改。这样既有 Agent 的执行力又有传统 IDE 的审查体验。JetBrains 系也有对应的插件套路类似就不展开了。5.2 用 CLAUDE.md 统一项目上下文告别反复解释如果你不想每次新开会话都重新给它讲一遍项目背景、技术栈和规范CLAUDE.md 就是你最需要的文件。在项目根目录放一个CLAUDE.md它会成为项目级的高优先级上下文Agent 启动时能自动加载。我的写法很简单直接# 项目简介 这是一个基于 Next.js 14 的电商管理后台前端用 TailwindCSS后端接口走内部网关。 ## 常用命令 - 开发npm run dev - 测试npm test - 构建npm run build ## 规范 - 新功能必须包含测试 - 组件放在 src/components 下按页面模块分子目录 - 不要修改 src/api 下的文件由后端团队统一维护这样一来每次开会话不用重复交代背景它自己看文件就能知道约束。个人级偏好可以放到~/.claude/CLAUDE.md比如“回答尽量简洁”“默认使用中文”。这种嵌入式的“记忆”是把 Agent 接入长期项目的关键。另外你还可以在.claude/commands/目录下自定义斜杠命令。比如写一个.claude/commands/review.md内容是“请严格检查当前分支的改动重点找潜在 bug、边界条件遗漏和安全隐患”之后只需要敲/review就能复用这套审查标准。5.3 与 Git 和 CI 的配合提交信息、代码审查、自动化Claude Code 对 Git 工作流的支持很实用。最常用的两个场景第一生成提交信息。改动完成后直接对它说“根据当前改动生成一个符合 Conventional Commits 规范的提交信息”它读取git diff后给出的信息通常比我手写的更完整尤其是涉及多文件重构的时候。第二代码审查。在提交 PR 之前让它审查自己或其他人的改动请 review 当前分支相对于 main 的改动重点检查 1. 是否有潜在的边界条件问题 2. 是否有明显的性能隐患 3. 测试是否覆盖了核心路径对于 CI 场景-p模式加--output-format json非常有用claude -p 分析 src/ 目录下所有 TODO 注释输出 JSON 列表 --output-format json这样可以在流水线里跑一些轻量的静态分析任务。另外Claude Code 也支持 MCPModel Context Protocol通过/mcp可以连接 GitHub、数据库等外部工具让 Agent 直接操作外部系统。我目前只接了一个 GitHub MCP 用于拉取 issue 和 PR 信息效果还不错但建议按需接入别一上来接一堆反而增加复杂度和权限风险。6. 实测高频报错与排查思路6.1 “is not a model this version of Claude Code recognizes”最常见的拦路虎这个报错在社区里出现频率极高典型文案类似deepseek-v4-pro is not a model this version of Claude Code recognizes第一次遇到的时候我以为是网络问题重装了两次都没用。后来梳理清楚这类报错无非两种原因一是模型名称来源不合法。Claude Code 支持通过环境变量或配置指定模型名比如设置了ANTHROPIC_MODEL或ANTHROPIC_SMALL_FAST_MODEL或者接了第三方提供 Anthropic 兼容接口的服务这类服务通常需要你指定一个模型名。如果你设置的模型名不在当前客户端版本认识的列表里就会报这个错。二是客户端版本太旧。Anthropic 发布新模型之后旧版客户端不认识新模型名也会报同样的话。排查顺序我建议这样# 第一步看是不是自己设置的模型名 env | grep ANTHROPIC # 第二步查当前的客户端版本 claude --version # 第三步直接升级到最新版 claude update如果是自己设置的模型名导致的不识别把环境变量里模型名改成客户端版本认识的名称或者升级后再试。如果接了第三方兼容服务去确认对方文档里明确支持哪个模型名、用哪个环境变量字段来传。很多人在这里栽跟头本质上是对“客户端识别模型名”和“服务端接受模型名”这两件事的关系没理清——客户端要先认得这个名字才能把请求发出去。6.2 网络超时与“The agent execution provider did not respond in time”另一个高频报错是类似 “The agent execution provider did not respond in time” 的超时信息。这个错误背后通常是请求发出去了但服务端在限定时间内没有返回。我总结下来主要原因有三个单次请求上下文太大。比如你让它分析一个巨大的文件或者一个会话累计的上下文已经很长请求构造和生成的耗时会显著增加。解决办法是/compact压缩上下文或者把大任务拆小。网络连接不稳定。这里先确认系统能否稳定访问 Anthropic 的服务接口再排查本地网络工具、防火墙等基础设置。模型负载高峰。高峰期 Opus 档位的响应速度会明显变慢超时概率也上升。遇到超时不要无脑重试同一个请求。按这个顺序处理先/compact减小上下文再切一个轻量模型试试最后如果还不行把任务拆成更小的步骤分几次下达。6.3 认证失效、Node 版本过低与 Windows 路径问题认证失效是另一个常见问题表现是会话开始后请求 401 或提示登录过期。处理方式很简单删掉本地旧的凭证重新登录或者检查ANTHROPIC_API_KEY是否有效、是否被轮换过。API Key 过期后系统不会给出特别明显的提示很容易让人误判是网络问题。还有两类环境问题值得注意。一类是 Node 版本过低老项目机器上可能还跑着 Node 14安装时可能不报错运行时却出现各种语法或模块解析错误。这种情况直接升级 Node 版本即可。另一类是 Windows 下的路径问题。Claude Code 的 Bash 工具在 Windows 原生环境下遇到含空格路径、或者需要用到 Unix 风格命令的脚本时行为可能和预期不符。我的建议是重度使用就走 WSL别在原生 Windows 上折腾轻度使用遇到问题就手动执行命令来兜底不跟它较劲。最后提醒一个泛用工具/doctor。如果你说不清问题出在哪先运行它它会自动检查项目状态、权限、环境变量和常见配置问题大部分环境类故障都能从这里找到线索。7. 提示词与工作流经验让 Agent 真的替你干活7.1 高质量任务描述的四个要素同样一个 Agent有人用起来像高级工程师有人用起来像只会胡写的实习生差别基本全在任务描述上。我给任务的模板永远是四段式目标把订单模块的金额计算从 int 改成 decimal避免精度丢失。 约束不要改动数据库表结构保留现有接口的返回字段不变。 验收订单金额相关的单测全部通过金额相等的断言改为比较 BigDecimal。 相关文件src/order/amount.ts、src/order/__tests__/amount.test.ts目标让它知道要干什么约束让它知道哪些不能碰验收告诉它怎样才算干完相关文件帮它减少搜索范围。这四点缺一不可。很多失败案例的根源就是只有“目标”没有“约束”和“验收”——它自由发挥的后果最后全需要你来收拾。7.2 先规划后动手把“直接干”变成“先说方案”我学到的最重要的一条工作流原则是在让 Agent 动手改代码之前先让它输出执行计划。只需要在任务开头加一句先不要改代码。请先分析问题给出你的修改方案、涉及的文件和潜在风险我确认后再动手。这个做法的价值非常大。一个是它能逼着 Agent 先理解问题而不是盲目搜索替换另一个是给你一个中途纠偏的机会——它理解的方案可能和你预期的不一样早发现比晚发现省事得多。方案确认后你再明确说“按方案执行”它就会开始动手。这就像真正的项目管理先审方案再批预算最后才施工。跳过方案评审直接施工的项目十个有八个要返工。7.3 用测试当需求文档让 Agent 有据可依在测试文化比较成熟的项目里我更喜欢让测试来当“需求文档”。比如要实现一个金额格式化函数与其描述半天格式规则不如直接给它一个测试文件在 src/utils/formatAmount.test.ts 中补充以下测试用例 1. 0 返回 0.00 2. 1234.5 返回 1,234.50 3. 负数 -99.99 返回 -99.99 然后让所有测试通过。测试就是最精确的验收标准Agent 改完代码跑一遍测试过没过一目了然不存在“我觉得它做完了但其实没做完”的模糊地带。这就是我前面说的“验收”的最好载体。7.4 审查习惯与我的个人体会最后说一个可能不被重视、但我认为最重要的习惯每次它改完必须看 diff 再决定是否接受。Claude Code 默认的权限机制已经帮你挡了一层风险但它执行完任务之后改动仍然可能有“看起来对、实际错”的地方。我自己的固定流程是让它改完后我切到 Git 面板逐文件审查 diff发现问题就地修改或丢回给它继续修确认没问题后再统一提交。每个能稳定交付的任务都是人机协作反复磨合出来的结果。在我自己长期维护的项目里Claude Code 已经承担了大部分跨文件机械性改动和测试补全工作而我把省下来的时间花在方案评审和代码审查上。这个过程一开始并不流畅——它不理解项目背景、我不习惯写约束条件、报错了也常常一头雾水。但把 CLAUDE.md 建好、把任务描述模板固定下来、把“先方案后执行”变成习惯之后协作效率是质的提升。最后再分享一个小技巧在项目里建一个.claude/commands/目录把你的常用任务审查、补测试、生成提交信息、修 lint 错误都固化成斜杠命令。它可能不像“一键生成整个项目”那么炫酷但把高频重复动作沉淀下来才是 Agent 编程真正省时间的打开方式。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价