工作原理与扩展地图
Claude Code 的 agentic loop、模型、工具、上下文加载、执行环境、扩展能力和 5 分钟/1 小时缓存影响。
这页把官方 Overview、How Claude Code works 和 Extend Claude Code 合成一张结构图。先理解 Claude Code 怎么工作,再决定该写 CLAUDE.md、Skill、Subagent、MCP、Hook 还是 Plugin。
Claude Code 不是普通聊天窗口。它是围绕 Claude 模型的一层 agentic harness:负责加载项目上下文、暴露工具、执行命令、管理权限、保存会话,并把每一步结果反馈给模型继续决策。
#Agentic loop
Claude Code 的核心循环是三步,但真实任务会反复穿插:
| 阶段 | Claude 做什么 | 你怎么配合 |
|---|---|---|
| Gather context | 读文件、搜索符号、查看 git 状态、加载 CLAUDE.md、rules、skills 和 MCP 信息 | 给目标、目录、日志、截图和边界 |
| Take action | 编辑文件、运行命令、调用 MCP、派发 subagent、写计划或生成产物 | 控制权限模式,及时打断错误方向 |
| Verify results | 跑测试、lint、build、查看 diff、用浏览器或 GUI 验证 | 给验收命令和失败证据 |
这个循环不是固定脚本。模型会根据上一轮工具结果决定下一步,可能先查代码,再改文件,再跑测试,再根据失败回头修。
#模型和工具分工
| 部分 | 作用 | 典型配置 |
|---|---|---|
| 模型 | 理解代码、拆任务、判断下一步、解释结果 | /model、--model、/effort、fast mode、fallback model |
| 工具 | 让 Claude 真正行动,例如读文件、改代码、跑命令、访问网页、调用外部系统 | permissions、MCP、Hooks、tool search、sandbox |
| Harness | 负责会话、上下文、权限、工具调用、checkpoint、transcript、状态栏和 UI | settings、CLAUDE_CONFIG_DIR、~/.claude/projects |
模型切换和 effort 切换会进入 prompt cache key。中途频繁 /model 或 /effort 会让 5m/1h TTL 都失去意义,因为缓存不能跨不同模型配置复用。
#内置能力地图
| 能力类别 | Claude 能做什么 | 本地文档 |
|---|---|---|
| 文件操作 | Read、Edit、Write、MultiEdit、检查 diff | 工具参考 |
| 搜索 | Glob、Grep、代码结构探索、history 搜索 | 大型代码库与 Monorepo |
| 执行 | Bash、测试、构建、git、后台 Bash、Monitor | 交互模式与终端体验 |
| Web 与浏览器 | WebFetch、WebSearch、Chrome、Computer Use | Chrome 与 Computer Use |
| 外部系统 | MCP、Channels、GitHub、Slack、数据库、工单 | MCP 工具接入 |
| 自动化 | Headless、Routines、/loop、CI、Code Review | Headless 自动化 |
#执行入口
| 入口 | 代码在哪里运行 | Provider 和缓存边界 |
|---|---|---|
| Terminal CLI | 本机工作目录 | 最容易接 Passion8,缓存和本地配置可控 |
| VS Code / JetBrains | IDE 管理的 Claude Code 进程 | 要确认 IDE 继承 Base URL、Token、代理和证书 |
| Desktop | Desktop 管理的本地或组织环境 | 取决于登录方式和组织策略 |
| Web / Slack / cloud review | Anthropic 云端环境 | 通常不继承本机 Passion8 env 和本地 prompt cache |
| Agent SDK | 你的服务启动 claude 子进程 | 每个 worker/session 要自己规划状态、隔离和缓存 |
如果从本地 CLI 切到 web/cloud review,不要假设会共享 5m/1h 缓存。它们通常是不同 session、不同 provider、不同执行环境。
#上下文加载顺序
Claude Code 会自动加载多类上下文。越靠前、越稳定的内容,越容易成为 prompt cache 的可复用前缀。
| 来源 | 何时加载 | 缓存影响 |
|---|---|---|
| System prompt 和工具定义 | 会话开始和能力变化时 | 最关键的缓存前缀 |
CLAUDE.md | 启动时加载当前目录及父级,子目录按需加载 | 改后通常新会话才生效,也会改变缓存前缀 |
.claude/rules/ | 会话开始或匹配文件时加载 | path-specific rules 可减少无关上下文 |
| Skill 描述 | 会话开始用于模型判断是否调用 | 描述越多,每轮固定成本越高 |
| Skill 正文 | 调用或匹配时加载 | 作为消息追加,通常不破坏旧前缀 |
| MCP 工具名和 schema | server 启动时或按 tool search 延迟加载 | 工具 schema upfront 时最容易造成 miss |
| Hook 输出 | Hook 返回内容时进入上下文 | 输出越长,后续每轮成本越高 |
| Subagent 结果 | 子代理总结返回主会话 | 中间过程不占主会话上下文 |
不要把百科式长文都塞进 CLAUDE.md。稳定、短、每次都需要的规则放 CLAUDE.md;偶尔用到的参考资料放 Skill;外部系统接 MCP;必须强制执行的规则放 Hook 或 permissions。
#扩展选择
| 你遇到的问题 | 用什么 | 为什么 |
|---|---|---|
| Claude 总是忘记构建命令或目录约定 | CLAUDE.md | 每个会话都要知道 |
| 某个流程经常重复,但不是每次都用 | Skill | 按需加载,可用 /skill-name 调用 |
| 一个规则只对某些目录或文件类型有效 | .claude/rules/ | 降低根 CLAUDE.md 噪音 |
| 需要访问 Jira、Slack、数据库、浏览器、内部 API | MCP | 外部系统连接和认证由 server 管理 |
| 需要让 Claude 自动格式化、拦截危险命令、发通知 | Hook | 生命周期事件上确定性执行 |
| 一个任务要读很多文件,但主会话不需要中间过程 | Subagent | 隔离上下文,只返回摘要 |
| 多个 Claude session 要互相协作 | Agent Teams | 独立 session 之间通信和共享任务 |
| 多个项目要共享同一套 skills/hooks/MCP | Plugin | 版本化、可分发、可市场化 |
#容易混淆的能力
| 对比 | 结论 |
|---|---|
CLAUDE.md vs Skill | CLAUDE.md 是 always-on,Skill 是 on-demand。根文件超过 200 行时通常该拆 Skill 或 rules。 |
| Skill vs Subagent | Skill 是知识或流程,Subagent 是独立 worker。Skill 增加主上下文,Subagent 隔离主上下文。 |
| MCP vs Skill | MCP 提供工具和数据连接,Skill 教 Claude 如何使用这些工具。两者经常组合。 |
| Hook vs Skill | Hook 必定在事件上运行,适合强制规则。Skill 需要模型理解,适合需要推理的流程。 |
| Subagent vs Agent Team | Subagent 回报给主会话,Agent Team 是多个完整 Claude Code session 互相协作。 |
#缓存和成本视角
| 动作 | 5m / 1h 影响 |
|---|---|
| 连续在同一会话追问 | 命中会刷新 TTL,5m 足够高频工作 |
| 离开 10 到 45 分钟回来 | 5m 通常冷,1h 更可能继续读旧前缀 |
改 CLAUDE.md 后重启 | 前缀变,5m/1h 都会重新写缓存 |
| 增删 MCP server | 工具定义变化,容易 miss;tool search 更友好 |
| 调用 Skill | 正文作为消息追加,通常保留旧前缀 |
| 大量 Hook 输出 | 不一定破坏前缀,但会抬高后续输入 token |
| Subagent 做大范围探索 | 子代理自己付 token,主会话只拿摘要,主上下文更干净 |
| Plugin 带 MCP | 可能同时改变 skill 描述和工具定义,首次 reload 后要观察 cache creation |
更细的逐命令影响看 命令与缓存影响。底层 TTL 和 usage 字段看 Prompt 缓存。
#建议的扩展顺序
- 先跑
/init,把项目基础约定写进CLAUDE.md。 - 把敏感路径放进 permissions deny,不要只写自然语言提醒。
- 把重复 prompt 固化成 Skill 或自定义命令。
- 给必须执行的格式化、审计、通知写 Hook。
- 需要外部系统时再接 MCP,并确认 tool search。
- 大任务再引入 Subagent、Worktree、Agent Teams 或 SDK。
- 多项目复用后再打包成 Plugin 或内部 marketplace。
#官方参考
Support / 支持
Need help? / 需要帮助?
接入、计费与模型异常可邮件联系;服务可用性以状态页为准。
For setup, billing, or model issues, email us. Check the status page for uptime.
也可使用右下角微信 / QQ 客服 · WeChat / QQ support is available at the bottom right

