Claude Code 深度学习

Claude Code 到底是什么?

一句话定位:模型驱动的本地终端 agent------你说它做,它直接在你电脑上读写文件、跑命令、改代码。不是聊天机器人,是"有手有脚"的执行者。

一、设计哲学:模型不动,工具在外

Anthropic 的核心判断:与其训练一个专门写代码的模型(会过时、会僵化),不如把通用模型配上工具,让 agent 能力随模型升级自动变强。

所以 Claude Code(下称 CC)是一个薄客户端:本地程序只做一件事------当模型的"手、眼和记忆"。智能留在云端的 Claude 模型里。CC 从发布到现在没换过架构,但每次 Claude 模型升级,CC 免费跟着变强。

二、整体架构

#mermaid-svg-pSVUKXXF1QEHzNEC{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-pSVUKXXF1QEHzNEC .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-pSVUKXXF1QEHzNEC .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-pSVUKXXF1QEHzNEC .error-icon{fill:#552222;}#mermaid-svg-pSVUKXXF1QEHzNEC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-pSVUKXXF1QEHzNEC .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-pSVUKXXF1QEHzNEC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-pSVUKXXF1QEHzNEC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-pSVUKXXF1QEHzNEC .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-pSVUKXXF1QEHzNEC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-pSVUKXXF1QEHzNEC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-pSVUKXXF1QEHzNEC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-pSVUKXXF1QEHzNEC .marker.cross{stroke:#333333;}#mermaid-svg-pSVUKXXF1QEHzNEC svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-pSVUKXXF1QEHzNEC p{margin:0;}#mermaid-svg-pSVUKXXF1QEHzNEC .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-pSVUKXXF1QEHzNEC .cluster-label text{fill:#333;}#mermaid-svg-pSVUKXXF1QEHzNEC .cluster-label span{color:#333;}#mermaid-svg-pSVUKXXF1QEHzNEC .cluster-label span p{background-color:transparent;}#mermaid-svg-pSVUKXXF1QEHzNEC .label text,#mermaid-svg-pSVUKXXF1QEHzNEC span{fill:#333;color:#333;}#mermaid-svg-pSVUKXXF1QEHzNEC .node rect,#mermaid-svg-pSVUKXXF1QEHzNEC .node circle,#mermaid-svg-pSVUKXXF1QEHzNEC .node ellipse,#mermaid-svg-pSVUKXXF1QEHzNEC .node polygon,#mermaid-svg-pSVUKXXF1QEHzNEC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-pSVUKXXF1QEHzNEC .rough-node .label text,#mermaid-svg-pSVUKXXF1QEHzNEC .node .label text,#mermaid-svg-pSVUKXXF1QEHzNEC .image-shape .label,#mermaid-svg-pSVUKXXF1QEHzNEC .icon-shape .label{text-anchor:middle;}#mermaid-svg-pSVUKXXF1QEHzNEC .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-pSVUKXXF1QEHzNEC .rough-node .label,#mermaid-svg-pSVUKXXF1QEHzNEC .node .label,#mermaid-svg-pSVUKXXF1QEHzNEC .image-shape .label,#mermaid-svg-pSVUKXXF1QEHzNEC .icon-shape .label{text-align:center;}#mermaid-svg-pSVUKXXF1QEHzNEC .node.clickable{cursor:pointer;}#mermaid-svg-pSVUKXXF1QEHzNEC .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-pSVUKXXF1QEHzNEC .arrowheadPath{fill:#333333;}#mermaid-svg-pSVUKXXF1QEHzNEC .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-pSVUKXXF1QEHzNEC .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-pSVUKXXF1QEHzNEC .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pSVUKXXF1QEHzNEC .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-pSVUKXXF1QEHzNEC .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pSVUKXXF1QEHzNEC .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-pSVUKXXF1QEHzNEC .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-pSVUKXXF1QEHzNEC .cluster text{fill:#333;}#mermaid-svg-pSVUKXXF1QEHzNEC .cluster span{color:#333;}#mermaid-svg-pSVUKXXF1QEHzNEC div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-pSVUKXXF1QEHzNEC .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-pSVUKXXF1QEHzNEC rect.text{fill:none;stroke-width:0;}#mermaid-svg-pSVUKXXF1QEHzNEC .icon-shape,#mermaid-svg-pSVUKXXF1QEHzNEC .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pSVUKXXF1QEHzNEC .icon-shape p,#mermaid-svg-pSVUKXXF1QEHzNEC .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-pSVUKXXF1QEHzNEC .icon-shape .label rect,#mermaid-svg-pSVUKXXF1QEHzNEC .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pSVUKXXF1QEHzNEC .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-pSVUKXXF1QEHzNEC .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-pSVUKXXF1QEHzNEC :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 云端
你本机
HTTPS
终端界面

输入 / 渲染 / 确认弹窗
Agent 核心循环

编排引擎
权限网关

拦截危险操作
工具执行器

Read / Write / Bash / Grep...
文件系统 / Shell / Git / MCP 服务
Claude 模型推理

注:权限网关放在工具执行器之前------所有写操作先过权限检查,才被真正执行。

本地只有三样东西:界面、编排循环、工具执行器。模型在云上。

三、核心机制:Agent 循环

整个 CC 的心脏是一个循环,每轮四步:

  1. 打包上下文 ------ 系统提示词 + 对话历史 + 工具定义 + 相关文件内容
  2. 发给模型推理 ------ 模型返回"思考 + 工具调用请求"(结构化 JSON)
  3. 本地执行工具 ------ CC 解析请求,真正读写文件、跑命令
  4. 结果回填 ------ 执行输出塞回上下文,回到第 1 步

循环什么时候停?模型不再请求工具、只输出文字时,就是最终答复。你看到 CC "自己干了 20 分钟活",本质是这个循环转了几十上百圈。

关键认知:模型不能碰你的电脑。它输出的只是"请调用 Write 工具,把这段内容写到这个路径"的 JSON 指令,CC 本地执行后再把结果告诉模型。

四、七个关键设计

1. System Prompt(系统提示词)

CC 的"人格"和技能全写在一段很长的系统提示词里,每次请求都带上:角色定义、安全红线、行为规范(改文件前先读、验证后再汇报)、输出格式。

值得学的点:模型的行为不是训练死的,是提示词"编程"出来的。你还可以用 CLAUDE.md 往里追加项目级指令,等于给 CC 做二次编程。

2. 工具集设计

暴露给模型的工具高度精炼,就十来个:Read、Write、Edit、Bash、Glob、Grep、WebFetch、Task 等。每个工具的描述不只是参数格式,还有使用建议(如"优先用 Grep 而不是 Bash 里跑 grep")。

原则:工具宁少勿多,但每个描述到极致。工具太多模型会选错。

3. 权限网关(安全的根基)

所有工具调用先过权限检查,分三档:

  • 只读操作(Read/Glob/Grep)→ 自动放行
  • 写操作和命令(Write/Edit/Bash)→ 默认弹确认
  • 高危模式 → settings.json 里配置允许/拒绝规则

--dangerously-skip-permissions 就是把网关整个拆掉。设计洞察是风险不对称:读文件搞不坏系统,写操作才需要人盯着。

4. 上下文工程(真正的护城河)

模型上下文窗口有限(约 200K token),怎么塞进"最有用的信息"是核心竞争力:

  • 按需加载:不预读整个仓库,模型用 Glob/Grep 搜索,只把相关文件读进上下文
  • CLAUDE.md 分层注入:全局记忆 → 项目记忆,启动时自动拼接
  • 自动压缩:上下文快满时,把旧对话摘要成总结腾空间
  • 输出截断:命令输出太长只留头尾

和人的工作方式一样:你不会背下整个代码库,而是用到哪查到哪。

5. 子 Agent(Task 工具)

主 agent 遇到可拆分的任务时派生子 agent:子 agent 拿一份干净的上下文独立跑自己的循环,完成后只交回结论。

动机是上下文隔离------探索一个模块可能要读 50 个文件,主 agent 自己读会撑爆上下文;让子 agent 读,主 agent 只收 200 字总结。

6. MCP(插件协议)

Model Context Protocol 是一套标准协议:外部程序只要按协议提供"工具/数据源",就能被 CC 调用(数据库、监控、内部平台......)。Anthropic 把它开源成了行业标准,OpenAI、Google 后来也都接了。

7. Hooks(生命周期钩子)

在固定事件点(工具调用前/后)允许用户挂自己的脚本,比如"每次 Write 后自动跑 eslint"。给本地执行器留扩展点。

五、值得记住的设计决策

  1. 薄客户端 + 强模型:本地刻意做薄,能力随模型升级自动增强
  2. 终端优先 :终端是开发者主场,且能被脚本化(claude -p 塞进 CI/CD)
  3. 权限确认而非沙箱:本地跑 + 每步确认,换来对真实环境的完整访问
  4. 上下文即产品:CC 团队大部分迭代都在优化"给模型看什么",而不是堆功能

六、横向对比:同类工具怎么选

工具 形态 核心差异 适合场景
Claude Code 终端 CLI 工具调用 + 本地执行 复杂任务、自动化、多文件操作
Cursor AI 编辑器 编辑器内实时补全 + 对话 沉浸式写代码
Windsurf AI 编辑器 多 agent 并行 团队协作、多模块改动
Cline VS Code 插件 开源免费,可换任意模型 预算有限、想自定义
Aider 终端 CLI 极简结对编程,自动 commit 命令行爱好者
Copilot VS Code 插件 深度绑定 GitHub GitHub 用户、轻量辅助
OpenAI Codex 云端异步 扔任务自己跑 批量任务
Devin 全自主 号称完全自主,争议大 别太指望
Bolt.new 浏览器 生成应用一键部署 快速原型

本质区别就两个维度:交互方式 (对话式 / 编辑器嵌入 / 异步自主)和自主程度(帮你写 → 你说它做 → 你说它全干)。

CC 卡在中间最舒服的位置:有自主能力但不瞎跑。Devin 那种"完全自主"目前不成熟,CC 这种"人机协作"才是现阶段最实用的。

七、自己造一个简化版 Agent

核心代码量很小,几百行就能跑:

  1. 一个循环:读用户输入 → 拼 messages 数组 → 调 Claude API(带 tools 定义)
  2. 解析返回的 tool_use 块 → 本地执行(先实现 Read/Write/Bash 三个就够)
  3. 把工具结果以 tool_result 消息追加回去 → 再调 API
  4. 直到模型返回纯文本,循环退出

理解了 CC 的原理,等于理解了市面上所有 agent 产品(Cursor 的 agent 模式、Cline、Devin)------它们全是同一个范式的不同包装。

八、为什么中国大陆用不了?

Anthropic 自 2025 年 9 月起将中国大陆及港澳列入"不受支持地区"(同类还有俄罗斯、伊朗、朝鲜),这是政策限制而非技术故障。官方理由:法律监管风险(担心受限地区企业被迫配合情报要求)、防止模型能力经蒸馏加速当地 AI 研发、以及"确保变革性 AI 服务于民主利益"。执行上分两条线:公司看股权------中资直接或间接持股超 50% 一律禁用,无论注册在哪个国家;个人看地区------身处支持地区即可用(与国籍无关),身处大陆则不可用,代理伪装 IP 属于违反服务条款,检测到就封号(2026 上半年封了 1140 万账号,申诉成功率约 10%)。这是美国对华科技管制从芯片延伸到模型的大环境的一部分。国内替代路径:开源的 Cline/Aider 配国产模型(DeepSeek、Qwen 等),agent 原理完全相同。

附:日常使用速查

入口说明 :单次任务用 claude -p "任务",复杂多轮任务建议直接 claude 进交互式会话。

bash 复制代码
claude                      # 交互式会话(最常用)
claude -p "任务"             # 单次执行
claude --resume             # 恢复上次会话
claude --dangerously-skip-permissions   # 免确认(慎用)
相关推荐
hey you~2 小时前
嘈杂环境ASR识别优化:降噪、VAD切分与Whisper模型微调完整教程(2026版)
macos·whisper·xcode
Khalil三省5 小时前
Mac怎么显示桌面歌词?Apple Music和Spotify也能开
macos·开源·效率工具·音乐
sakiko_6 小时前
纯Appdelegate控制的老项目适配Xcode27(iOS27SDK)
macos·objective-c·cocoa
2501_915921431 天前
详细教程:使用Perfdog工具测量iOS应用的功耗性能与优化方法
android·macos·ios·小程序·uni-app·cocoa·iphone
OliverQiu2 天前
开源一个 macOS 小工具:集中管理 ChatGPT 的网络启动配置
macos·chatgpt·swiftui·mac·proxy·codex·dmg
wangDer_me2 天前
将mac电脑变成一个虚拟打印机
macos·电脑
加载力科技3 天前
Mac 打开 ISO 文件完整教程:3 种方法挂载与解压,挂载失败也能提取文件
macos·命令模式·磁盘工具·mac打开iso·hdiutil·iso解压·mac技巧
Web Security Loop3 天前
MAC安装最新Burpsuite pro详细步骤教程
web安全·macos·网络安全·安全性测试
Raspberry_Pi_官方账号3 天前
Raspberry Pi Desktop 全面升级,现已登陆 PC 和 Mac
服务器·网络·macos·树莓派·raspberry pi·raspberrypios