C3-10 使用claude code(进阶)
核心原理:代理循环(Agentic Loop)
Claude Code 不仅仅是写代码,它能做任何从命令行可以做的事情
核心概念:Claude Code 的本质是一个"代理循环"——收集上下文 → 采取行动 → 验证结果,不断循环直到任务完成。
之前claude code代码泄露,代码核心逻辑就是一个大的while循环
基本使用:快速上手指南
基础对话:像和同事说话一样
Claude Code 是对话式的,你不需要完美的提示词。就像和一个聪明的同事交流:
四种工作模式
按 Shift+Tab 可以切换模式:
<grid>
<column width-ratio="0.500000">
📝 ### Default 模式
默认模式。Claude 修改文件或执行命令前会先问你。
适合:初学者、敏感操作
</column>
<column width-ratio="0.500000">
⚡ ### Auto-accept 模式
Claude 自动编辑文件,只在执行特殊命令时才询问。
适合:熟练用户、快速开发
</column>
</grid>
<grid>
<column width-ratio="0.500000">
🔍 ### Plan 模式
Claude 只探索和制定计划,不修改任何文件。
适合:分析复杂问题、制定方案
</column>
<column width-ratio="0.500000">
🤖 ### Auto 模式
Claude 完全自主运行,后台安全检查代替人工审核。
适合:无人值守任务、CI/CD
</column>
</grid>
常用命令速查
<colgroup><col/><col/><col/></colgroup>🎁 不需要记命令,使用的时候输入斜杠会自动补全
| 命令/快捷键 | 功能说明 | 快捷键 |
|---|---|---|
| 📋 会话管理(最常用) | ||
| /clear | 清空上下文,开始全新对话。任务切换时必用!别名:/reset、/new | - |
| /compact | 压缩上下文(总结对话释放空间),可加焦点:/compact 关注 API 变更 | - |
| /rewind | 回退到之前的状态(代码+对话),类似"撤销"。别名:/undo | Esc+Esc |
| /resume | 恢复之前的对话(从列表中选择)。别名:/continue | - |
| /rename | 给当前会话命名,方便之后用 /resume 找到 | - |
| 中断 Claude | 立即停止 Claude 当前操作,保留上下文可继续对话 | Esc |
| 切换模式 | 在 Default/Auto-accept/Plan/Auto 四种模式间切换 | Shift+Tab |
| 🔧 项目配置(初始设置) | ||
| /init | 分析项目并自动生成 CLAUDE.md(新项目第一件事!) | - |
| /memory | 编辑 CLAUDE.md 文件、管理自动记忆 | - |
| /permissions | 管理工具权限(允许/禁止哪些命令)。别名:/allowed-tools | - |
| /config | 打开设置界面(主题、模型、风格等)。别名:/settings | - |
| /doctor | 诊断安装问题,按 f 可让 Claude 自动修复 | - |
| /hooks | 查看和管理 Hook 配置 | - |
| 🧠 模型与思考 | ||
| /model | 切换 AI 模型(Sonnet 速度快、Opus 推理强) | - |
| /effort | 调整推理深度:low/medium/high/xhigh/max/ultracode | - |
| /fast | 切换快速模式(更快的输出速度) | - |
| /plan | 直接进入 Plan 模式并开始规划,如 /plan 修复认证Bug | - |
| 📝 日常开发(高频使用) | ||
| /diff | 查看未提交的代码变更(交互式 diff 查看器) | - |
| /code-review | 审查当前 diff 的正确性和代码质量。加 --fix 自动修复 | - |
| /context | 可视化上下文使用情况(看什么在占空间) | - |
| /usage | 查看 token 消耗和费用统计。别名:/cost、/stats | - |
| /copy | 将 Claude 最后一条回复复制到剪贴板 | - |
| /export | 导出整个对话为纯文本文件 | - |
| /btw | 快速问一个小问题,不会进入对话历史(不占上下文) | - |
| 🚀 进阶功能 | ||
| /goal | 设置持续目标,Claude 会跨多轮工作直到满足条件 | - |
| /deep-research | 深度研究:多 Agent 并行搜索、交叉验证、生成引用报告 | - |
| /mcp | 管理 MCP 服务器连接(连接外部工具如 Notion、数据库) | - |
| /skills | 列出所有可用的 Skills | - |
| /workflows | 查看和管理动态工作流的运行状态 | - |
| /feedback | 提交反馈或报告 Bug。别名:/bug | - |
Claude配置系统
有没有人用 Claude Code 时遇到过这些困惑:
- 我在
CLAUDE.md里写了「回答用中文」,为什么有时候不生效? - 我明明改了项目规则,Claude 却像没看见一样。
- Desktop 客户端怎么不像 CLI 那样有
/memory、/context命令? - 为什么我的同事和我的 Claude 表现不一样?
答案都在「Prompt 是怎么拼出来的」里。Claude 看到的不是单一来源的指令,而是七层拼接的结果。理解这七层,你就能精准控制 Claude 的行为。
💡 一句话核心:Claude 的 Prompt 是「层层叠加、按顺序拼接」的结果,后加载的规则优先级更高(不是「覆盖」而是「权重更大」)。
七层速览表
| 层 | 名称 | 存放位置 | 能否编辑 |
|---|---|---|---|
| 1 | Anthropic 内置 base prompt | 服务端 | ❌ 不可见不可改 |
| 2 | CLAUDE.md 文件链 | 多层级文件 | ✅ 主要编辑对象 |
| 3 | Skills 元信息 | ~/.claude/skills/、.claude/skills/ |
✅ 通过 SKILL.md |
| 4 | MCP 工具描述 | ~/.claude.json、.mcp.json |
✅ 通过 MCP 配置 |
| 5 | Subagents 描述 | ~/.claude/agents/、.claude/agents/ |
✅ 通过 agent 配置 |
| 6 | Hooks 注入 | ~/.claude/settings.json hooks 段 |
✅ 编写 hook 脚本 |
| 7 | 用户 Prompt + 附件 | 每次会话输入 | ✅ 完全可控 |
第 2 层 — CLAUDE.md 文件链(⭐ 重点)
加载顺序:
- 全部拼接,不是覆盖。所有 CLAUDE.md 都会被加载,按顺序拼接成一大段指令。
- 顺序敏感。越靠后加载的规则,Claude 越倾向遵守。教学要点:项目级要放在 user 级后面。
- CLAUDE.md 作为 user message 注入(不是 system prompt)
🎼 /memory 命令查看自己项目里被加载的指令文件
演示:CLAUDE.md 优先级验证
第 3 层 — Skills 元信息
Skills 是 Anthropic 提供的能力扩展机制,每个 Skill 是一个目录,里面有 SKILL.md 描述这个 Skill 是干什么的。
加载机制:
- Claude 启动时只加载每个 Skill 的
name+description(元信息),不加载完整内容 - 当 Claude 判断某个 Skill 与当前任务相关,或用户手动调用
/skill-name时,才懒加载完整正文 - 存放位置:
~/.claude/skills/(用户级)、.claude/skills/(项目级)
🏕️ /skills 查看当前会话注入了哪些 Skill 的元信息
第 4 层 — MCP 工具描述
MCP(Model Context Protocol)服务器会把自己的「我能做什么工具」注入到 Claude 的 context,让 Claude 知道可以调用它们。
| 场景 | CLI 读取 | Desktop 读取 |
|---|---|---|
| Claude Code 引擎 | ~/.claude.json、.mcp.json |
同上(共用) |
| Claude Desktop 聊天应用 | 需 claude mcp add-from-claude-desktop 导入 |
claude_desktop_config.json(Electron 应用数据目录) |
🎹 Cli: /mcp 查看有哪些mcp可用。
Desktop: Settings → Claude Code → MCP Servers 查看
第 5 层 — Subagents 描述
Subagents 是 Claude Code 提供的「派生子任务」机制。每个 subagent 有自己的 description 字段,这个描述会注入到主会话的 context,让主 Claude 知道「什么任务该派给哪个子 agent」。
- 存放位置:
~/.claude/agents/(用户级)、.claude/agents/(项目级) - 只在本会话内可见,不会跨会话污染
查看方式:
- CLI:
/agents - Desktop:Settings → Claude Code → Agents
第 6 层 — Hooks 注入的 additionalContext(⭐ 最神奇的一层)
Hooks 是 Claude Code 的「事件钩子」机制,可以在 Claude 执行某些动作前后自动运行外部脚本。脚本可以通过返回 JSON 向 Claude 的 context 注入额外指令。
💡 核心区别:CLAUDE.md 里的规则是"建议",Claude 可能忽略。Hooks 是"法律",100% 确定执行,没有例外。
Hook 注入位置规则:
| Hook 类型 | 注入位置 | 上限 |
|---|---|---|
| SessionStart / Setup / SubagentStart | 对话开头 | 10,000 字符 / hook |
| UserPromptSubmit | 与用户 prompt 并列 | 同上 |
| PreToolUse / PostToolUse | 紧邻工具结果 | 同上 |
| Stop / SubagentStop | 当轮末尾 | 同上 |
演示:对话开头hook注入
🎯 常见用法:读 Git 历史自动注入「最近 3 次 commit 信息」
第 7 层 — 用户 Prompt + 附件
最后一层,是完全可控的部分。每次发送消息时,Claude 看到的最末尾就是你的 prompt 和附件。
- 支持文本、图片(粘贴或拖拽)
- 支持
@文件路径语法引用项目内文件 - 支持
/命令前缀调用斜杠命令 - Desktop 支持拖拽多个文件
Subagents & Agent Teams & Workflows
Subagents:独立的"专家顾问" 🧑💼
类比:Subagent 就像请一个外部专家来做特定的审查——他有自己独立的工作空间,做完后给你一份报告,不会弄乱你的桌面。
Subagents 的关键特点
⭐ - 独立上下文:在自己的上下文窗口中工作,不占用主对话空间,没有父对话历史
- 只返回结论:探索了 100 个文件,但只返回简洁的总结
- 可并行:父可同时发起多个子代理处理不同任务
创建自定义 Subagent
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
AgentTeams:团队协作模式 🤝
💡 注意:Agent Teams 目前是实验性功能,需要手动启用。在 settings.json 中设置 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS 环境变量为 1。
启用方法
1 2 3 4 5 | |
使用示例
示例 1:并行代码审查(不同视角同时审查)
1 2 3 4 5 | |
效果:三位"审查专家"同时从不同角度审查代码,最后由负责人综合所有发现。
示例 2:竞争假设调试(用辩论找到真相)
1 2 3 4 5 | |
效果:5 个 Agent 各自提出不同的假设,然后互相质疑、试图推翻对方的理论。最终存活下来的假设最可能是真正的根因。
💡 为什么"辩论"比"顺序调查"更有效?
单个 Agent 调查时容易"锚定"——一旦找到一个看似合理的解释就停止寻找。多个独立调查者积极互相反驳,能避免确认偏误,存活下来的理论更可靠。
Dynamic Workflows:脚本驱动的编排器 ⚙️
⭐ 核心区别:Agent Teams 靠负责人"开会协调",Workflows 靠"脚本代码"确定性执行。就像工厂流水线——每个工位做什么、做完去哪里,都由程序预先写好。
触发方式
| 方式 | 说明 |
|---|---|
| 关键词触发 | 在提示中使用 ultracode 关键词,Claude 自动编写工作流 |
| 设置 effort 级别 | 运行 /effort ultracode,Claude 为每个复杂任务自动规划工作流 |
| 运行已有工作流 | 使用 /deep-research 等内置命令,或自己保存的工作流 |
| 自然语言请求 | "使用工作流来审计所有 API 端点" |
内置工作流:/deep-research
Claude Code 内置了 /deep-research 工作流,用于深度研究:
- 从多个角度扇出网络搜索
- 获取并阅读找到的来源
- 对每个声明进行交叉检查投票
- 返回一份引用的报告(未通过交叉检查的声明被过滤掉)
1 | |
保存和复用工作流
当 Claude 为你编写了一个有用的工作流后:
- 运行 /workflows 查看已完成的运行
- 选择想保留的运行,按 s 保存
- 选择保存位置:项目目录(团队共享)或 \~/.claude/(个人使用)
- 之后用 /工作流名称 直接运行
三种模式对比
| 特性 | Subagents(子代理) | Agent Teams(团队) | Workflows(工作流) |
|---|---|---|---|
| 它是什么 | Claude 生成的工作者 | 能互相沟通的对等会话 | 脚本驱动的编排器 |
| 谁做决策 | Claude,逐轮决定 | 负责人 + 队友自治 | 脚本代码 |
| Agent 间通信 | ❌ 只向主 Agent 汇报 | ✅ 队友直接互发消息 | ✅ 通过脚本变量传递 |
| 可重复性 | 低(依赖当时决策) | 中(依赖负责人协调) | 高(脚本确定性执行) |
| 类比 | 派实习生查资料 | 项目组开会协作 | 工厂流水线 |