6.8
深览指数
科技腾讯新闻·赛博禅心··AI 生成
深入理解Claude Code:从CLAUDE.md到Hooks、Skills、Subagents
本文系统梳理了 Claude Code(及同类 Coding Agent)提供的七种上下文注入与控制机制,包括 CLAUDE.md、Rules、Skills、Subagents、Hooks、Output Styles 和 System Prompt Append。作者核心观点是:不同指令应有不同的生命周期——事实放 CLAUDE.md,流程放 Skill,护栏放 Hook,隔离任务给 Subagent,避免将所有内容塞入一个配置文件导致 token 浪费和指令遵循率下降。文章还介绍了 Dynamic Workflows 让 Claude 自己写编排脚本、并行协调多个 Subagent 的能力。适合已经有一定 Agent 使用经验、需要提升工程效率的开发者阅读。原文 ↗
核心观点
- ▍Agent 的上下文注入方法应遵循「不同的指令有不同的生命周期」原则:事实放 CLAUDE.md,流程放 Skill,护栏放 Hook,隔离任务给 Subagent,避免将所有指令塞入一个配置文件。
- ▍CLAUDE.md 是唯一全程加载、全程占 token 的方法,不适合放流程性约束或绝对性禁止指令;绝对性约束应使用 PreToolUse Hook 做硬护栏。
- 01CLAUDE.md 分两种加载模式:根目录和个人偏好文件始终加载,子目录文件按需加载(仅 Claude 读取该目录时才载入,压缩后丢失)。
- 02Rules 位于 .claude/rules/ 目录,可加 paths 限定只在特定文件路径被访问时生效;不加路径限定的 Rule 等同于写入 CLAUDE.md。
- 03Skills 启动时只加载名字和描述(几十个 token),完整内容仅在被调用时进入上下文;调用后若上下文满,最早的 skill 会被踢出。
- 04Subagents 在独立的上下文窗口运行,主会话看不到其中间过程,最终仅返回摘要;可嵌套最深五层,适用于大量中间结果无需保留的任务。
- 05Hooks 完全绕过上下文窗口,是确定性执行的代码级机制,覆盖八种事件(PreToolUse、PostToolUse 等),动作类型包括 command、HTTP、mcp_tool、prompt 和 agent。
- 06Output Styles 注入到 system prompt 最末端,永远不会被压缩且指令遵循权重最高,但会替换默认的 system prompt(除非设置 keep-coding-instructions: true)。
- 07Dynamic Workflows 允许 Claude 自己编写编排脚本协调多个 subagent,核心函数包括 Agent()、parallel()、pipeline(),可解决 agentic laziness、self-preferential bias 和 goal drift 三个问题。
- 08Dynamic Workflows 支持六种编排模式:classify-and-act、fan-out-and-synthesize、adversarial verification、tournament、generate-and-filter、loop until done。
反方 / 局限
- — 作者指出 CLAUDE.md 会像没有 owner 的配置文件一样不断膨胀,导致指令遵循率下降;追加的指令越多,Claude 对每条指令的遵循率越低,尤其指令间有冲突时下降更快。
- — 作者承认 Output Styles 改动过大,且自定义 output style 会替换掉默认 system prompt(涉及安全问题处理、改完代码先跑测试等),除非显式保留。
Claude CodeCLAUDE.mdRulesSkillsSubagentsHooksOutput StylesSystem Prompt AppendDynamic WorkflowsAnthropicBunCodex
23 分钟 · 5 卡片 · 14 资料
读原文 →