J'Blog

21 课 · 进阶

语义检索

基于 Chroma 向量库,与 Workspace 知识库分离。用自然语言描述你想查的内容。 非管理员每人每天可检索 5 次(消耗站点 AI 配额)。

扩展 Claude Code

原文:Extend Claude Code

一句话

了解何时使用 CLAUDE.md、Skills、subagents、hooks、MCP 和 plugins 来扩展 Claude Code 功能。

什么时候翻这页

  • 需要为项目添加持久化上下文和规则
  • 想创建可重用的知识库和工作流程
  • 需要连接外部服务或自动化特定操作
  • 遇到上下文窗口限制,需要隔离执行环境

核心概念

  • 扩展层:Claude Code 内置工具之外的定制功能,用于扩展 Claude 的知识、连接外部服务和自动化工作流
  • CLAUDE.md:持久化上下文文件,每次对话都会加载,包含项目约定和规则
  • Skills:可重用的知识、指令和工作流程,可通过 /命令 调用或自动加载
  • Subagents:在隔离上下文中运行的独立代理,返回摘要结果
  • Hooks:在生命周期事件触发时运行的脚本、HTTP 请求、提示或子代理
  • MCP (Model Context Protocol):连接 Claude 与外部服务和工具的协议
  • Plugins:将技能、钩子、子代理和 MCP 服务器打包成可安装单元
  • Agent teams:协调多个独立会话,共享任务和对等消息传递

怎么做

理要点

  1. 渐进式构建:不需要一开始就配置所有功能,根据实际需求逐步添加
  2. 功能分层:不同功能在不同层级定义(用户级、项目级、插件级)
  3. 上下文成本管理:了解各功能对上下文窗口的影响,避免过度消耗
  4. 功能组合:不同功能可以组合使用,发挥各自优势

功能添加顺序

触发场景添加功能
Claude 两次误解约定或命令添加到 CLAUDE.md
反复输入相同提示启动任务保存为可调用的 skill
第三次粘贴相同程序到聊天捕获为 skill
需要从浏览器标签复制数据连接为 MCP 服务器
Claude 读取多个文件查找符号定义安装代码智能插件
辅助任务产生大量不相关输出通过子代理路由
每次都需要执行某操作而不必询问编写 hook
第二个仓库需要相同设置打包为 plugin

命令 / 配置速查

功能命令/配置说明
Skills/skill-name调用特定技能
MCP/mcp查看连接状态和令牌成本
Subagents在技能中使用 context: fork在隔离上下文中运行技能
Skillsdisable-model-invocation: true仅手动调用技能,减少上下文成本
Hooks在生命周期事件中触发PostToolUseSessionStart

初学者易错点

  1. 过度依赖 CLAUDE.md:将所有内容都放在 CLAUDE.md 中,建议保持在 200 行以内,将参考材料移至 skills
  2. 混淆 Skill 和 Subagent:Skill 是可重用内容,Subagent 是隔离的工作器,根据需求选择
  3. 忽略上下文成本:大量加载技能会增加上下文消耗,使用 disable-model-invocation 减少不必要加载
  4. Hook 与 Skill 混用:Hook 用于必须每次以相同方式执行的操作,Skill 需要推理或内容知识
  5. 功能层级冲突:相同功能在不同层级定义时,了解优先级规则(管理 > 用户 > 项目)

相关词条

  • memory CLAUDE.md 项目上下文管理
  • skills 可重用知识和工作流
  • sub-agents 隔离执行环境
  • hooks-guide 生命周期事件自动化
  • mcp 外部服务连接
  • plugins 功能打包与分发

官方原文:https://code.claude.com/docs/en/features-overview