J'Blog

22 课 · 进阶

语义检索

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

扩展 Claude 的技能

原文:Extend Claude with skills

一句话

技能(Skills)扩展 Claude 的能力,通过创建和管理自定义指令集,让 Claude 能够执行特定任务或提供专业知识。

什么时候翻这页

  1. 当你发现自己在聊天中反复粘贴相同的指令、清单或多步骤流程时
  2. 当你想要创建可重用的自定义命令来扩展 Claude 的功能时
  3. 当你需要组织和管理复杂的操作流程时
  4. 当你想要与其他开发者共享特定的工作流程或专业知识时

核心概念

  1. 技能(Skills):扩展 Claude 能力的自定义指令集,通过 SKILL.md 文件定义
  2. 内置技能(Bundled skills):Claude Code 预装的技能,如 /code-review/debug
  3. 动态上下文注入(Dynamic context injection):使用 !`command` 语法在技能执行前运行命令并获取输出
  4. 子代理执行(Subagent execution):使用 context: fork 让技能在隔离环境中运行
  5. 技能层级(Skill hierarchy):技能可以存储在个人、项目、企业或插件级别,有不同的作用范围

怎么做

创建你的第一个技能

  1. 创建技能目录:

    mkdir -p ~/.claude/skills/技能名称
    
  2. 创建 SKILL.md 文件,包含 YAML frontmatter 和指令内容:

    ---
    description: 技能描述,告诉 Claude 何时使用此技能
    ---
    
    ## 指令标题
    
    技能的具体指令内容
    
  3. 测试技能:

    • 让 Claude 自动调用:询问与描述匹配的问题
    • 直接调用:使用 /技能名称 命令

技能配置选项

SKILL.md 的 YAML frontmatter 中可以配置:

  • name:显示名称
  • description:技能描述和用途
  • disable-model-invocation:阻止 Claude 自动调用
  • allowed-tools:技能激活时可使用的工具
  • context:设置为 fork 在子代理中运行
  • paths:限制技能仅在特定文件路径下激活

命令 / 配置速查

配置项作用示例
description技能描述和用途description: 总结未提交的更改并标记风险
disable-model-invocation阻止 Claude 自动调用disable-model-invocation: true
allowed-tools技能激活时可使用的工具allowed-tools: Bash(git *) Read Grep
context: fork在子代理中运行技能context: fork
agent指定子代理类型agent: Explore
paths限制技能激活的文件路径paths: **/*.js, **/*.ts

初学者易错点

  1. 技能描述过于模糊,导致 Claude 无法正确识别何时使用该技能
  2. 技能内容过于冗长,增加了不必要的 token 消耗
  3. 忘记设置 disable-model-invocation: true 导致不希望自动执行的技能被触发
  4. 动态上下文注入语法错误,导致命令无法正确执行
  5. 技能层级混淆,不清楚不同级别技能的作用范围

相关词条

  • commands 内置命令参考
  • sub-agents 子代理
  • plugins 插件系统
  • permissions 权限管理
  • memory 持久化上下文
  • hooks 钩子系统

官方原文:https://code.claude.com/docs/en/skills