面试官:“聊聊Subagents”,我笑了:“要从 CLAUDE.md 逐步演进 Hooks 和 Skills再到Subagents”,面试官点头:“入职细聊”。

📅 2026/7/14 23:30:21
面试官:“聊聊Subagents”,我笑了:“要从 CLAUDE.md 逐步演进 Hooks 和 Skills再到Subagents”,面试官点头:“入职细聊”。
大家好今天不讲某一个 Claude Code 功能怎么配而是把四个最容易混在一起的东西串起来CLAUDE.md、Hooks、Skills、Subagents。前面我们单独讲过 CLAUDE.md 到底怎么写也拆过 Claude Skills 的实战经验。但很多录友学完还是有个问题这些东西不都是给 Claude 加规则吗到底为什么要分四套因为它们控制的根本不是一件事。先记住这条演进线让 Claude 记住规则 → 让关键动作确定发生 → 让专项能力按需加载 → 让复杂任务交给独立角色。也就是CLAUDE.md → Hooks → Skills → Subagents注意这不是四个功能的发布时间线而是一条工程能力成熟线。每往后走一步都是因为前一层解决不了新的问题。Claude Code从CLAUDE.md常驻规则演进到Hooks事件控制、Skills按需能力和Subagents独立角色这张图回答的是为什么项目从几条规则开始最后会长出自动检查、专项流程和多个 Agent。后面的能力不是替换前面的能力而是把“写给模型看的要求”一步步外化成控制点、能力包和独立执行单元。第一阶段先用 CLAUDE.md让 Claude 知道怎么干活假设你让 Claude Code 修改一个支付接口。你每次都要重复交代项目用 pnpm、支付金额统一用分、不能直接改数据库表、改完必须跑测试。说一遍有用但只对这次对话有用。任务一长、上下文一压缩前面的要求就可能被淹没。CLAUDE.md解决的正是这个问题。它把跨任务都稳定的项目知识放进常驻上下文## 项目规则- 使用 pnpm不要使用 npm- 金额统一以分存储禁止使用浮点数- 修改支付模块后运行 pnpm test:payment- 未经确认不要修改数据库 schemaClaude Code 每次进入项目都能看到不需要你重新教育一遍。根目录写全局约束子目录再补模块规则模型走到对应目录时加载更具体的上下文。所以CLAUDE.md的定位很清楚它是 always-on 的项目说明书。但它有两个绕不过去的边界。第一看到了不代表一定做到。“修改后运行测试”仍然只是一条自然语言指令最终要靠模型记住、理解并主动执行。第二**常驻上下文不是免费仓库。**发布手册、接口文档、排障流程全塞进去每一轮都要带着一大包暂时用不到的信息重点反而被稀释。这就是下一层能力出现的原因有些事不能只提醒必须在正确的时间点自动发生。第二阶段再加 Hooks把“应该做”升级成“触发就做”还是“改完必须跑检查”这件事。写在CLAUDE.md里的意思是Claude记得做。写成 Hook 的意思是只要编辑完成这个检查点就会被触发。Hooks 插在 Claude Code 的生命周期里。一次工具调用不是模型想完就直接结束中间有一系列可以拦截和反馈的事件PreToolUse工具执行前可以检查、修改或阻止这次调用PostToolUse工具成功后可以格式化、检查并把结果喂回上下文PostToolUseFailure工具失败后记录错误或补充诊断StopClaude 准备收工时检查任务是否真的完成SubagentStart、SubagentStop子 Agent 启动和结束时追加约束或验收结果。Hooks在Claude Code工具调用前后和结束验收时插入控制点并将失败证据反馈给Agent这张图回答的是Hooks 到底插在 Agent 循环哪里。它不是循环外的一份说明而是卡在“准备行动、行动完成、准备结束”这些节点上的闸门不满足条件就把错误或证据送回 Claude让它继续修。一个最小的编辑后检查大致长这样{ hooks: { PostToolUse: [ { matcher: Edit|Write, hooks: [ { type: command, command: pnpm lint } ] } ] }}现在的 Hooks 也不只会跑 shell。它还可以调用 HTTP、MCP 工具或者让一次 prompt、一个临时 Agent 做判断。但无论执行形式怎么变它的核心都没有变由生命周期事件触发而不是等 Claude 想起来。不过别把 Hooks 神化。Hooks 适合“每次命中这个事件都要做”的动作例如格式化、危险命令拦截、审计记录。它不适合承载一整套需要理解业务、根据现场调整步骤的发布手册。确定性动作交给 Hook需要推理的流程不要硬塞进 Hook。第三阶段用 Skills把专项知识从常驻上下文里搬出去项目继续往前走你会遇到另一类东西发版时才需要的检查清单排查线上问题时才需要的 Runbook评审支付代码时才需要的安全规则调某个内部 API 时才需要的字段说明和脚本。这些内容很重要但不是每个任务都要看。塞进CLAUDE.md上下文会越来越胖做成 Hook又没办法表达“先根据现象判断再选择不同排查路径”。这时候该用 Skill。Skill 是一套按需加载的知识和工作流。Claude Code 启动时通常只看到它的名称和描述判断当前任务相关时才加载完整内容.claude/skills/payment-review/├── SKILL.md├── references/│ ├── risk-rules.md│ └── database-schema.md├── scripts/│ └── check-money-unit.sh└── assets/ └── review-template.md这里最重要的不是文件夹长什么样而是上下文加载方式变了。CLAUDE.md是“每次都带上”Skill 是“这次用到才展开”。SKILL.md还可以继续指向参考资料、脚本和模板让 Claude 用到哪一块再读哪一块。这就是渐进式披露。关于 Skill 怎么分类、怎么写 description、怎么积累 Gotchas我们在 Claude Skills 实战 已经详细讲过这里不重复。现在可以把 Hook 和 Skill 分清了Hook 由事件触发强调这件事必须发生Skill 由用户调用或任务意图触发强调这类事应该怎么做Hook 更像闸门Skill 更像专项作业手册Hook 追求稳定重复Skill 允许 Claude 根据现场推理。例如PostToolUseHook 可以在支付代码被修改后运行金额单位扫描payment-reviewSkill 则告诉 Claude 发现问题以后应该如何判断风险、补测试和给出修复方案。第四阶段拆 Subagents把“一个 Claude 全包”变成角色分工有了 SkillsClaude 已经能按需获得专项能力。但复杂任务还有一个更隐蔽的问题所有工作仍然挤在同一个上下文里。主 Agent 先读几十个文件定位问题又改代码、跑测试最后还让它审查自己的实现。上下文越来越脏早期约束被压缩更麻烦的是让同一个 Agent 给自己的答案挑错天然容易自我认可。Subagents 解决的不是“再加一份提示词”而是再开一个独立的执行上下文。一个自定义子 Agent 可以这样定义---name: payment-security-reviewerdescription: 支付模块改动完成后独立检查金额、权限和幂等风险tools: Read, Glob, Grep, Bashmodel: sonnetskills: - payment-review---只做安全评审不修改业务代码。结论必须包含风险位置、触发条件和验证证据。它拥有自己的系统提示、工具范围、模型、权限、Skills 和上下文窗口。主 Agent 只需要把任务委派出去最后接收摘要不必把子 Agent 读过的几十个文件和全部命令输出都塞回主线程。主Agent将测试安全和性能任务委派给独立上下文的Subagents并只接收带证据的结论这张图回答的是独立上下文到底省掉了什么。测试、安全、性能三个 Agent 各自在干净窗口里工作过程噪声留在各自上下文只有带证据的结论回到主 Agent执行者和审查者也被结构性地分开。所以 Skill 和 Subagent 也不是一回事Skill 是可以被复用的“方法”Subagent 是拿着方法独立干活的“角色”Skill 会把内容加载进当前上下文Subagent 在另一个上下文里执行只把结果带回来。两者还可以组合。安全审查 Agent 预加载安全 Skill测试 Agent 预加载测试 Skill主 Agent 负责拆任务、汇总结论和决定是否继续修改。这一步往后就是我们在 动态工作流 里讲的更复杂编排了多个 Agent 并行、对抗验证、生成与筛选。但别急着冲到那一步两个角色能讲清楚的任务不要为了显得高级硬开十个 Agent。四层能力放在一起到底怎么选现在回到最容易混淆的问题一条新要求来了应该写到哪里根据常驻知识事件触发专项方法和上下文隔离判断一条要求应该放进CLAUDE.md、Hooks、Skills还是Subagents这张图回答的是如何根据“是否每次都要知道、是否必须自动发生、是否需要专项推理、是否需要隔离上下文”逐层判断。它不是让你四选一而是帮你找到一条要求最主要的归属层。可以记住四个问题判断问题应该放哪里典型例子Claude 是否每次都应该知道CLAUDE.md技术栈、目录、构建命令、禁区是否命中事件就必须执行Hooks格式化、阻止危险命令、记录审计是否只在某类任务中需要一套方法Skills发布、评审、排障、数据分析是否需要独立上下文或独立角色Subagents大范围探索、安全复核、并行测试还是支付模块的例子CLAUDE.md写清金额单位、项目命令和数据库禁区Hook 在文件修改后跑静态检查在危险操作前做拦截Skill 保存支付评审方法、风险规则和验证脚本Subagents 分别检查安全、测试和性能主 Agent 汇总证据。你会发现四层能力不是互相竞争而是分别控制 Agent 的四个位置上下文里放什么生命周期中卡什么任务需要时加载什么复杂工作交给谁。最容易踩的四个坑第一把所有东西都塞进 CLAUDE.md。结果不是 Claude 懂得更多而是每轮都背着一仓库资料。长期稳定规则留下专项知识移到 Skills。第二把“禁止”只写成自然语言。“不要改.env”如果是安全红线就别只靠模型听话。能用权限和PreToolUseHook 拦截的直接做成硬边界。第三把复杂判断写成一坨 shell Hook。Hook 是触发器不是所有业务逻辑的垃圾桶。需要读资料、比较方案、根据现场调整步骤就交给 Skill 或专项 Agent。第四任务一大就疯狂开 Subagents。子 Agent 会消耗额外 token也有任务描述丢信息、结果汇总失真的成本。只有过程噪声很大、角色确实应该隔离或者工作真的能并行时再拆。写在最后很多人配置 Claude Code一上来就抄别人的全家桶几百行CLAUDE.md、几十个 Hooks、十几个 Skills再配一队 Subagents。太重了也太早了。同一条规则说了两次写进CLAUDE.md某个动作必须发生做成 Hook某套流程反复复制养成 Skill某项工作需要独立探索再交给 Subagent。别按功能清单搭系统。看问题卡在哪一层就补哪一层。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】