1. 从被学长一句话问懵,到跑通第一个 Claude Code 任务
Claude Code 是 Anthropic 推出的终端原生 AI 编程助手,它直接跑在你的命令行里,能读写项目文件、执行 Shell 命令、搜索代码库、跑测试、提交 Git。它不是一个聊天窗口,而是一个 Agent——聊天窗口只能回答问题,Agent 能直接操作你的项目。这篇笔记适合刚接触 Claude Code、想搞清楚 Plan、Skills、子代理和上下文管理到底怎么用的人,也适合已经装好工具但每次只会“打字让它写代码”的新手。
我当时的处境很典型:简历上写着“熟练使用 AI 辅助编程”,结果被问“Claude Code 的三种工作模式分别解决什么问题?上下文快满的时候你怎么处理?”直接卡壳。回去之后我花了一周,用一个番茄钟项目把核心操作全跑了一遍,也顺手把接入通道换成了 TaoToken 的统一 Key,省得每个工具单独配一遍。下面这份笔记不聊虚的,只讲操作、配置和踩过的坑,你跟着做就能独立完成一次完整调用。
先明确一个认知:Claude Code 的启动方式很简单,进入项目目录执行claude,底部出现输入框就能用自然语言下指令。但真正拉开差距的,是你怎么控制它的工作模式、上下文和审查机制。这三块搞明白了,工具使用能力才算过关。
2. 前置准备:用 TaoToken 统一 Key 接入 Claude Code
在讲 Plan 和子代理之前,得先把通道打通。Claude Code 默认走 Anthropic 官方接口,但很多新手卡在 Key 配置和环境变量上。我实测下来,用 TaoToken 的统一 Key 通道接入更省事,一个 Key 能覆盖模型对话、编码计划等多个入口,不用来回切换。
TaoToken 在这里扮演的是统一 API 通道的角色,你拿到 Key 之后,把它配到 Claude Code 的环境变量或 settings.json 里即可。官网入口是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 地址是 https://taotoken.net/api (这个不加 UTM)。注意,API 地址和官网地址是两个不同的东西,配置时别填错。
你需要提前准备的东西不多:一个 TaoToken 账号、一个 API Key、本地装好的 Node.js 环境(Claude Code 依赖 npm 安装)。Key 的获取在控制台的 API Keys 页面,建议单独建一个项目专用的 Key,方便后续排查和轮换。
提示:Key 只显示一次,复制后立刻存到密码管理器或本地环境变量文件里,别直接提交到 Git。
拿到 Key 后,先别急着跑复杂任务。我建议先用一个空目录做验证,确认通道通了再上真实项目。这一步花五分钟,能省掉后面半小时的排错时间。
3. 可复制配置:settings.json 骨架与环境变量
Claude Code 的配置分两层:一层是环境变量(放 Key 和 API 地址),一层是项目级的 settings.json(放模型、权限、工具开关)。下面这份骨架你可以直接复制,把占位符换成自己的值。
先配环境变量。Linux/macOS 在~/.zshrc或~/.bashrc里加,Windows 用系统环境变量或 PowerShell 的$env::
# TaoToken 统一通道配置 export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="sk-你的TaoTokenKey"改完执行source ~/.zshrc让它生效。验证是否读到:
echo $ANTHROPIC_BASE_URL echo $ANTHROPIC_API_KEY | head -c 8第二条只打印前 8 位,确认 Key 非空又不泄露全文。
然后是项目级 settings.json,放在项目根目录的.claude/settings.json:
{ "model": "claude-sonnet-4-20250514", "permissions": { "allow": [ "Read", "Write", "Edit", "Bash(git status)", "Bash(git diff)", "Bash(npm run test)" ], "deny": [ "Bash(rm -rf *)", "Bash(curl *)" ] }, "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api" } }这份配置做了三件事:锁定模型、用 allow/deny 控制工具权限、把 API 地址写进项目环境。deny 里挡掉rm -rf和curl是保命操作,新手阶段尤其重要——Agent 能执行 Shell,权限边界必须自己划。
如果你要长期跑编码任务或 Agent 工作流,可以了解下 Coding Plan 入口,它更适合高频、长会话的场景:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。短期验证模型能力的话,模型对话入口更轻量:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。
配置写完,进入项目目录执行claude,如果没报认证错误,说明通道通了。接下来才是真正的操作部分。
4. 跑通首个任务:Plan 模式 + Skills + 子代理完整流程
4.1 三种工作模式先搞清楚
Claude Code 有三种模式,按Shift+Tab循环切换。很多人用了半年只用默认模式,这是硬伤。
| 模式 | 核心行为 | 适用场景 |
|---|---|---|
| Normal(默认) | 每步操作需确认 | 不熟悉项目时,需要人工把关 |
| Auto-accept | 自动执行,不再弹窗 | 信任度高、批量操作时 |
| Plan | 只分析不修改,先出方案 | 复杂需求,必须先规划再动手 |
判断标准很简单:不确定 Claude 会做什么就用 Normal;确定它不会搞砸就用 Auto-accept;需求复杂到你自己都没想清楚,就切 Plan。
4.2 Plan 模式:先出方案再动手
大部分人一上来就让 Claude 写代码,结果写出来和预期不符,改来改去。正确流程是切到 Plan 模式,给结构化提示词:
请帮我开发一个番茄钟 Web 应用,技术栈用 React + TypeScript + Tailwind CSS。 功能包括:25 分钟倒计时、开始/暂停/重置、番茄计数、休息提醒。 请先帮我规划项目结构和开发步骤,不要写代码。这段提示词有三个硬性要求:技术栈锁死、功能边界明确、行为约束(只规划不写代码)。Claude 输出方案后会给你三个选项:自动执行 / 逐步确认 / 修改方案。计划会写入一个.md文档,可以用Ctrl+G编辑。
提示词质量直接决定产出质量,模糊的提示词产出模糊的代码,这是等式关系。
4.3 Skills:给 Agent 挂载专业能力
功能能跑但页面丑,不是模型能力问题,是缺少设计领域的上下文。Skills 就是预置的能力扩展包:
/plugin install frontend-design安装后在提示词里指定使用:
番茄钟功能都完成了,但页面很丑。请用 frontend-design skill 帮我重新设计界面。 我想要简洁现代的风格,暖色调,圆形倒计时显示,配合番茄的红色主题。Skills 的本质是在主对话中注入领域知识,Claude 还是同一个实例,但它“读过了”一份专业设计规范。注意,Skills 内容会占用主会话上下文空间,这一点后面和子代理对比时很关键。
4.4 子代理:独立上下文的 Code Review
让 Claude 审查自己写的代码存在确认偏误,它倾向于认为自己的代码是对的。子代理启动一个拥有独立上下文窗口的新实例,从零开始审查。
通过/agents命令创建,选择作用域(推荐 Project),用自然语言描述职责和审查标准,配置可用工具和权限。使用方式:
用 code-quality-reviewer agents 帮我审核这个项目的代码子代理审查完只把精炼摘要返回主对话,对主会话上下文占用很小。这里有个架构级区别要记住:
| 维度 | Skills | 子代理 |
|---|---|---|
| 执行实例 | 主 Claude 本体 | 独立的新 Claude 实例 |
| 上下文隔离 | 不隔离,占用主会话空间 | 完全隔离,独立窗口 |
| 来源 | 插件市场安装 | 通过 /agents 自定义创建 |
| 适用场景 | 增强特定领域能力 | 需要独立视角的任务 |
Skills 是往主对话注入知识,子代理是开辟新推理空间。主会话上下文紧张时,子代理比 Skills 更优,因为它不加重主对话负担。
4.5 上下文管理:/compact 与 /clear
Claude 开始犯迷糊(改错文件、混淆语法、遗忘约定)时,不是模型退化,是上下文窗口快溢出了。用/context诊断占用比例,超过 70% 就要干预。
后续任务与当前相关,用/compact把对话历史压缩为摘要;切换到无关任务,用/clear彻底清空。/compact不是无损压缩,会丢部分细节,但核心技术决策和文件修改记录会保留。关闭终端后对话自动存档,恢复用:
claude --resume # 从列表选择历史会话 claude --continue # 直接恢复最近一次,简写 claude -c5. 本篇常见报错排查
配置和调用过程中,新手最容易撞上这几类报错,我按出现频率排一下。
认证失败:401 或 invalid api key。先确认环境变量是否真的生效,执行echo $ANTHROPIC_API_KEY | head -c 8看有没有值。如果为空,说明 shell 配置文件没 source,或者写错了文件(zsh 用户写进.bashrc是无效的)。再检查 Key 有没有多余空格,复制时很容易带上换行。
连接超时或 base url 报错。检查ANTHROPIC_BASE_URL是否填成了官网地址。API 地址是https://taotoken.net/api,不带 UTM 参数,别把官网链接整个粘进去。地址末尾不要多加斜杠,有些客户端对尾斜杠敏感。
权限被拒:permission denied。这是 settings.json 的 allow 列表没放行对应工具。比如你想让它跑npm run test,但 allow 里只写了Bash(git status),就会被拦。按报错提示把具体命令加进 allow,别图省事写Bash(*),那等于放弃权限边界。
上下文溢出:context length exceeded。说明单次会话塞太多了。先/compact压缩,如果还不行就/clear重开,靠 CLAUDE.md 兜底项目背景。CLAUDE.md 放在项目根目录,启动时自动读取,用/init可以自动生成。写它的原则是:每条信息都问自己“删掉这条 Claude 会不会犯错”,不会就不写。
子代理不生效。确认/agents创建时作用域选的是 Project,且调用时名字拼写一致。子代理的审查标准描述太模糊也会导致它“走过场”,把审查维度写具体,比如“检查是否有未处理的 Promise rejection、是否有硬编码密钥”。
6. 把工具用明白,才是 AI 工程化的底座
回到开头那次模拟面试,学长的话不好听但说的是事实:工具使用能力是 AI 工程化能力的底座。面试官不会满足于“我用过 Claude Code”,他会追问你怎么管理上下文窗口、Plan 模式和直接编码的区别、子代理和 Skills 的架构差异。这些答案不在文档里,在你实际操作的手感里。
我的建议是新建一个空项目,把 Plan、Skills、子代理、/compact、/clear、@引用、CLAUDE.md 这几样从头到尾跑一遍。读十遍不如动手一次。接入通道用 TaoToken 统一 Key 配好之后,重点就全在操作细节上了。需要长期跑编码任务的话,Coding Plan 入口在这里:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ;想先验证模型对话效果,走这个:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ;Key 管理在控制台:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ;接入文档在:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。配置过程中卡住了,先翻接入文档的排错章节,比到处问人快。