☰
Claude Code 从 0 到 1 全攻略:MCP / SubAgent / Agent Skill / Hook / 图片 / 上下文处理 / 后台任务
2026/9/28 4:20:36 网站建设 项目流程

1. 为什么你的 Claude Code 总是“差点意思”

很多人第一次打开 Claude Code,敲两行命令,看它把todo.html一口气写出来,会觉得这工具已经够用了。但真把它放进日常项目里,问题马上暴露:每次都要重新解释项目背景,改完代码格式乱成一团,让它审代码它只会说“看起来不错”,上下文一长就开始胡言乱语,想让它同时干两件事结果互相打架。

这些不是模型能力问题,而是工程化配置没做。Claude Code 本身是一个可编程的 Agent 框架,settings.json和config.toml是它的骨架,MCP、SubAgent、Agent Skill、Hook、图片输入、上下文压缩、后台任务则是挂在骨架上的器官。缺了哪一块,它都只能算一个“会写代码的聊天框”。

这篇内容面向已经装好 Claude Code、但还没把它调顺的人。我会从配置文件骨架开始,逐项给出可复制的片段和验证动作,中间穿插我踩过的坑。模型通道部分统一走 TaoToken,这样 Key 和 API 地址只需要维护一份,后面所有配置都围绕它展开。

2. TaoToken 前置:把 Key 和通道先固定下来

Claude Code 默认走 Anthropic 官方通道,但实际工程里我们往往需要统一出口、统一计费、统一限流。TaoToken 提供的就是这样一个统一通道,官网在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 入口是 https://taotoken.net/api 。

你需要先拿到一个 Key。登录后进入控制台,在 API Keys 页面创建一个,复制出来。这个 Key 后面会写进环境变量,Claude Code 和所有子进程都会读它。

export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_AUTH_TOKEN="sk-你的TaoTokenKey" export API_TIMEOUT_MS=600000 export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

把这四行追加到~/.bashrc,然后source ~/.bashrc。注意ANTHROPIC_BASE_URL不要带末尾斜杠,否则部分版本会拼出双斜杠导致 404。API_TIMEOUT_MS设成 600000 是因为 MCP 调用和图片处理经常超过默认的 60 秒。

验证通道是否通,最直接的办法是启动 Claude Code 后执行/model,看它列出的模型是否来自 TaoToken 通道。如果还是显示官方模型名,说明环境变量没生效,检查一下是不是写进了~/.zshrc而你在用 bash。

提示:TaoToken 的 Key 建议按项目分多个,控制台里可以给每个 Key 加备注。这样某个项目 Key 泄露时,直接吊销那一个就行,不影响其他项目。

3. settings.json 与 config.toml 骨架

Claude Code 的配置分两层:用户级在~/.claude/settings.json,项目级在项目根目录的.claude/settings.json。项目级会覆盖用户级同名项。config.toml则用于更底层的通道和模型映射,放在~/.claude/config.toml。

先看settings.json的骨架,这是后面所有功能挂载的地方:

{ "skipDangerousModePermissionPrompt": true, "permissions": { "allow": ["Bash(npm run *)", "Bash(git *)"], "deny": ["Bash(rm -rf *)"] }, "hooks": { "PostToolUse": [] }, "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api" } }

permissions.allow里列出的命令模式,Claude Code 执行时不再询问。deny优先级更高,用来兜底危险操作。env段可以把 TaoToken 的地址固化进配置,这样即使 shell 环境丢了也能跑。

再看config.toml,它负责模型映射:

[models] default = "claude-sonnet-4-5" small_fast = "claude-haiku-4-5" [provider] base_url = "https://taotoken.net/api" timeout_ms = 600000

default是主对话模型,small_fast用于标题生成、意图识别这类轻量任务。把这两个分开,能省不少 token。改完配置后重启 Claude Code,执行/config可以看到当前生效的模型和通道。

4. MCP:让 Claude Code 接上外部世界

MCP 是 Claude Code 和外部工具之间的标准接口。装一个 MCP Server,等于给 Claude Code 开了一扇窗。以 Figma MCP 为例,先退出 Claude Code,在终端执行:

claude mcp add --transport http figma https://mcp.figma.com/mcp

然后claude mcp list确认已注册。重新进入 Claude Code,执行/mcp,选中 figma,再选 Authenticate,浏览器会弹出授权页。授权成功后/mcp里 figma 状态变成可用。

调用时不需要你指定用哪个工具,直接把 Figma 设计稿链接粘进对话,Claude Code 会自己判断调用get_design_context还是get_screenshot。这里有个坑:如果你的模型通道不支持 image 类型消息,Figma MCP 返回的截图会报错。TaoToken 通道下建议用支持多模态的模型,否则就只用get_design_context拿文本化的设计信息。

MCP 的配置也可以写进settings.json,方便团队共享:

{ "mcpServers": { "figma": { "transport": "http", "url": "https://mcp.figma.com/mcp" } } }

注意:MCP Server 的输出会直接进入上下文。一个设计稿的完整 context 可能几千 token,连续调几次上下文就满了。所以 MCP 用完记得配合/compact。

5. SubAgent 与 Agent Skill:两种上下文策略

这两个功能经常被混为一谈,但它们的上下文处理方式完全相反,用错了场景会很痛苦。

Agent Skill 是共享主对话上下文的。你写一个SKILL.md,放在~/.claude/skills/daily-report/下:

--- name: daily-report description: 生成每日开发进度日报。当用户想要总结今天的工作时使用。 --- # daily-report ## 格式要求 请严格按照以下 Markdown 格式输出: # 开发日报 (YYYY-MM-DD) ## 今日摘要 ## 详细变更 ### 新增功能 ### 问题修复

重启后/skills能看到它。当你说“写一份每日总结”,Claude Code 会加载这个 Skill,并且它执行过程中的所有中间日志都留在主上下文里。所以 Skill 适合轻量、和当前对话强相关的任务。

SubAgent 则拥有独立上下文。用/agents创建,选项目级,选手动或初始化都行。一个代码审查 SubAgent 的配置:

--- name: code-reviewer description: 当用户请求代码审查时调用。 model: inherit color: green --- 你是一个严格的代码规范审查员。 ## 审查准则 1. 严禁使用 var,必须用 const 或 let。 2. CSS 类名必须使用 kebab-case。 ## 输出要求 违反规则时输出:违反规则、位置、修正建议。

SubAgent 启动后会开一个全新窗口,它读的代码、做的分析都不回传主对话,只把最终报告交回来。所以审查几万行代码这种任务,用 SubAgent 主对话依然干净。判断标准很简单:任务和当前对话关联大、输出小,用 Skill;任务独立、中间过程重,用 SubAgent。

6. Hook:写完之后自动格式化

Hook 让你在工具调用前后插入自己的逻辑。最实用的场景是自动格式化。新版 Claude Code 的 Hook 已经改成配置文件驱动,直接编辑~/.claude/settings.json:

{ "hooks": { "PostToolUse": [ { "matcher": "Write|Edit", "hooks": [ { "type": "command", "command": "jq -r '.tool_input.file_path' | xargs prettier --write" } ] } ] } }

这段配置的意思是:当 Claude Code 使用 Write 或 Edit 工具后,从 hook 传入的 JSON 里提取文件路径,对该文件跑prettier --write。前提是全局装了 prettier:

npm install -g prettier

验证方法:让 Claude Code 创建一个test.html,故意要求所有内容写在一行。生成后打开文件,如果已经被格式化成多行缩进,说明 Hook 生效了。如果没生效,检查jq是否安装,以及settings.json是否是合法 JSON。

Hook 的matcher支持正则,Write|Edit表示两个工具都触发。你也可以加Bash来在命令执行后做清理。但别在 Hook 里放耗时超过 10 秒的命令,否则会拖慢整个交互节奏。

7. 图片输入、上下文压缩与后台任务

图片输入有两个方式:直接把 png 拖进 Claude Code 窗口,或者复制文件后按Ctrl+V粘贴。注意是Ctrl+V不是Command+V,macOS 上也一样。粘贴成功后输入框会出现[Image #1]标记。

图片适合做粗略的 UI 参考,但字体、间距这类精确还原,还是走 Figma MCP 更靠谱。图片会占用上下文,一张截图可能几百到上千 token,用完记得压缩。

上下文压缩用/compact。执行后按Ctrl+O可以看到压缩结果。你也可以追加策略,比如/compact 重点保留用户需求和文件路径。压缩是不可逆的,但比/clear温和,/clear会直接清空全部上下文。

后台任务用/tasks查看。当 Claude Code 启动npm run dev这类长驻进程时,它会挂到后台,不阻塞后续对话。在/tasks界面按x可以停止任务。如果你手动在终端启动服务,它会阻塞 Claude Code,此时按Ctrl+B可以把当前前台进程转到后台。

提示:回滚用/rewind或连按两下Esc。但 Claude Code 只能回滚它自己写入的文件,mkdir、npm install产生的文件它管不了。所以重要节点还是用 git 打 commit 更稳。

8. 本篇常见错排查

报错一:claude: command not found安装后没把~/.local/bin加进 PATH。执行echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc。

报错二:启动后一直卡在登录页在~/.claude.json末尾加"hasCompletedOnboarding": true,跳过首次引导。注意这个文件是 JSON,加之前确认前一项有逗号。

报错三:MCP 调用返回 image 类型不支持当前模型通道不支持多模态消息。换支持图片的模型,或者只用返回文本的 MCP 工具。

报错四:Hook 不触发检查settings.json是否是合法 JSON,jq是否安装,以及matcher是否匹配到了实际工具名。改完配置必须重启 Claude Code。

报错五:/compact后模型变笨压缩会丢失细节。如果后续任务依赖之前的文件路径或变量名,压缩前先用/memory把关键信息写进CLAUDE.md,这样压缩后依然能读到。

报错六:SubAgent 不按格式输出SubAgent 的description决定了它何时被调用,正文决定了它怎么干活。如果输出格式不对,多半是正文里的输出要求写得不够具体。把期望的输出模板直接贴进正文。

9. 把通道和配置收拢到一处

走到这里,你的 Claude Code 应该已经具备了完整的工程化能力:settings.json管权限和 Hook,config.toml管模型映射,MCP 接外部工具,SubAgent 隔离重任务,Agent Skill 复用轻流程,图片和上下文压缩控制输入规模,后台任务保证长驻进程不阻塞。

所有这些能力都依赖一个稳定的模型通道。TaoToken 在这里的角色是把 Key、地址、超时统一收口,你不需要在每个配置文件里重复写不同的 base_url。需要新建 Key 或查看用量,去控制台 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ;Key 管理在 https://taotoken.net/api-keys?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= 。

如果你主要做长期编码和 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/models?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 发一条消息即可。Claude Code 相关的接入示例在 https://taotoken.net/claude-code-anthropic?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。

配置这件事没有一劳永逸,项目变了、模型换了、团队规范调了,settings.json和CLAUDE.md都要跟着动。但骨架搭好之后,后面每次调整都只是改几行 JSON 的事。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询