AI 编程新阶段:Claude Code功能拆解

2026-04-11 12:131阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

前言

“AI编程新阶段”接上一篇《Claude Code上手指南》,如果你已经上手了,现在正在学教程,则会发现一大堆名词,skills、mcp、全局规则、预授权、子代理等等,根本学不完,头皮发麻,学的还没AI发展的块。这个时候,你就可以看本教程,尝试以另一个视角来学习,用才学,学以用。

首先说明系统性学习固然可贵,但是如今信息科技迅速发展、牛马又困于996无法自拔,当下能已经没有能让我等慢下来系统学习的机会了。大多数学习是为了用,只有用起来才能更好的学习,“用”是学习的内驱力,实时的反馈才能更好的学习,所以不用盲目为了学而学,用不上就去它的,学个毛,打个游戏不香吗,愉悦自己又何尝不可。

所以不用系统性学完再来使用,否则会拖慢节奏也影响学习积极性,可能学完准备用,发现又来了一个新的概念,缺少正反馈,会陷入无限学习的疲惫。当你需要用的时候,就直接去用,直到你觉得很奇怪东西,那么拉跨还有人用或者是感觉已经顺手拈来,这个时候,才是你学习的时机,会给你正反馈让你感受到“居然还能这么玩!”

好了,到这里你就直到自己要不要继续看下去了,如果你还没上手,可以先看上一篇上手。接下来是万字长文,做好心理准备。

基础知识

接下来将功能以需求视角拆解,按使用频率或重要性顺序讲解,大家择取片段,学自己所需。

大家学习的时候遇到很多名词,别慌,所有功能无非就是有场景有需要才会开发对应功能,否则要它何用,这些需求场景在你上手用的时候一定会碰到(没碰到就当它不存在即可,并不是每个人每种工具都需要高阶使用)。对于claude code需求场景主要是两个大类:固化提效、技能增强,固化提效是让你在用AI时候节省人为介入时间成本,功能增强是指让AI支持更多的功能,可以做更多的事情。

在此先补个基础课,大家就更容易理解,claude与AI 交互过程的实际对话过程,假定CLAUDE.md里面的内容是“说中文”,简化版如下(token计算只是意思一下)。

  1. 用户在claude问一个问题:“1+1等于几”
  2. claude发给ai报文:“说中文 user:1+1等于几”(输入token=22)
  3. AI给claude答复:“等于2”(输出token=5)
  4. 用户继续claude提问:“那再加上1呢?”
  5. claude发给ai报文:“说中文 user:1+1等于几 ai:等于2 user:那再加上1呢?”(输入token=51)
  6. AI给claude答复:“等于3”(输出token=5)
  7. 用户继续claude提问:“好像不对额“
  8. claude发给ai报文:“说中文 user:1+1等于几 ai:等于2 user:那再加上1呢? ai:等于3 user:好像不对额”(输入token=72)
  9. AI给claude答复:“我重新计算了一下,就是等于3”(输出token=28)

基于上述知识,大家可以看到用户的每一次输入都与上一次有很多重复内容,所以呢大模型为了提升速度,都设有缓存机制,而且缓存率通常都很高90%+,要知道缓存命中时候的token价格可是原价的10%,当然大模型通常都是以用户会话的维度来缓存,且缓存设有有效时间(通常5分钟)。

额外再提一点,大家使用中转站可能会出现虽然费用较低,但缓存命中率也低,导致消耗很快的问题,这些中转可能就是白嫖切号大法了,用号池给大家轮询使用,会导致经常切用户会话而无法命中缓存。

预埋规则

当你在跟AI交互的时候,总是要跟它说,要注意这个,也要注意那个,搞一下就忘,非常难受。比如经常用英文回答你,根本看不懂,每次开局就得说请用中文谢谢。这个时候你可能会想,要是每次它启动就能知道我要说的事情就好了。

诶,这个真有!那就是CLAUDE.md文件,把要说的事情写到一个文档里面,claude启动时就会自动加载到当前上下文,意思就是你发任何文字的时候,claude都会在发给AI之前都会补上这个文件的内容,然后一起发给AI。相比你看完上面的基础课,也明白了这个功能的用处。

文件存放目录:claude安装目录,这个文件就是markdown格式,可以从上一篇教程《Claude Code上手指南》捞一个,后续各自慢慢维护,每个人的习惯、场景不一样,都会有区别。

cd ~/.claude/ #当前用户目录(也是默认安装目录) cat CLAUDE.md #没有就新增一个

编写规则要素:全文通常不超过200行,避免分散AI注意力,如果claude.md里面就是需要写很多内容,那么则可以考虑分文件,在主md文件里面说明什么时候加载子md文件。

.claude/ ├── CLAUDE.md # 主项目指令 └── rules/ ├── code-style.md # 代码样式指南 ├── testing.md # 测试约定 └── security.md # 安全要求

这里大概举例了一些技巧,深入学习大家可在搜索相关提示词教程

  1. 设定角色:在一开始就给AI设定角色,后续的交互就会限定在这个角色以内,更容易把控不易走偏。比如“你是一位JAVA开发专家”,则后续你说的任何事情,它都会基于java开发来展开思索;
  2. 动名词清晰:事情一定要明确,别让AI去猜。比如“写一个AI教程给我”,就不如“写一个适合新手学习的Claude教程”更明确(明确读者是新手、教程是claude使用教程);
  3. 格式Markdown:AI更能理解的md文档,当你写 txt 自然语言段落描述的时候,AI分词理解可能不会get到你的重点,而使用md文档,逐行说明,AI能清晰的知道文档所指;
  4. 句子精简:言简意赅不仅能节省token,更能减少AI的猜测避免出现误解。比如你写“我希望代码要能够更易理解,所以你要给代码写上注释”,就不如直接说“必须给核心代码加上中文注释”。
  5. 尽可能取否:很多时候你跟AI说要达到什么效果,做到什么样,但最终却总会有些差强人意,因为AI是尽可能符合满足要求,而非100%确保,无论怎样即使它胡诌乱造也会给你点东西。所以你需要说的是禁止它做什么,避免做什么,才更有效果(除非是明确的事情,比如说代码要写注释)。

作用域

配置了预埋规则之后,又有个问题,我这个项目是java代码,按照java规范去配置,正常用倒没啥问题。但今天,我只是随便问了个问题,它确给我写java代码,烦得很。这个时候你可能会想,要是这个预埋规则,能控制啥时候生效就好了。

诶,这个也有,那就是配置文件作用域,配置文件支持放到不同目录,可以在不同的时候以不同的优先级生效。比如放在项目目录的规则文件,只有当你启动claude的工作目录是此目录的时候,才会生效。

官方指导有四级,大部分场景用其中两级即可(user即 全局、Project即 当前项目)。当你涉及到团队合作的时候,有一些个人习惯配置,你想加入到Project,但是呢你又不想提交到服务器,担心git diff会误提交,那么就会用到第四级(local即 当前项目-本地)。全局的仅放通用性规则描述,比如说中文,项目的则是放当前项目介绍以及语言规范,比如描述当前是基于Spring开发的JAVA项目。

可用作用域如下:存储库也就是工作目录,就是你执行 claude 进入claude时候的目录。命令执行 cd ~/.claude/就是全局生效目录。

作用域 位置 影响范围 与团队共享?
Managed 服务器管理的设置、plist / 注册表或系统级 managed-settings.json 机器上的所有用户 是(由 IT 部署)
User ~/.claude/ 目录 您,跨所有项目
Project 存储库中的 .claude/ 此存储库上的所有协作者 是(提交到 git)
Local 存储库中的.claude/settings.local.json 您,仅在此存储库中 否(gitignored)

注意这个作用域不仅仅是 CLAUDE.md,包括以下所有,本质上就是放到不同目录即不同的生效范围以及不同优先级,这里先了解即可,后续学习具体章节制作的时候再回头查看。

功能 User 位置 Project 位置 Local 位置
Settings ~/.claude/settings.json .claude/settings.json .claude/settings.local.json
Subagents ~/.claude/agents/ .claude/agents/
MCP servers ~/.claude.json .mcp.json ~/.claude.json(每个项目)
Plugins ~/.claude/settings.json .claude/settings.json .claude/settings.local.json
CLAUDE.md ~/.claude/CLAUDE.md CLAUDE.md.claude/CLAUDE.md

还有一些细节咱就不粘贴官方教程了,有兴趣大家可以移步:Claude Code 设置 - Claude Code Docs

回溯会话

当你执行了几次对话之后,发现AI理解的越来越偏了,但是呢,重新开始又有点浪费时间,这个时候就可以用上会话回溯(checkpoing),还原到之前的某次对话。这个功能属于平常不用无所谓,关键时刻可救命,所以大家一定要记下来,操作方式太简单了,就连续两下Esc 或者命令 /rewind,然后选择需要回溯的会话节点即可(会话节点即用户发言的节点)。

951×651 13.6 KB

当在会话节点列表,选择回溯的会话节点后,会出来三个选项,含义如下:

  • Restore conversation:将会话以及文件改动都还原到此节点,在此节点之后的会话信息以及文件改动都会还原丢失,所以注意做备份;
  • Summarize from here: add context (optional):从当前节点开始压缩会话,文件改动保持不变,此外可以写额外说明让会话压缩避免丢失重要信息;
  • Never mind:退出,等同于 Esc

注意,会话信息是包含用户发送的信息以及AI回复的信息、文件改动是指claude修改的本地文件(通常是修改的代码)

1082×321 8.77 KB

官方文档:checkpointing - Claude Code Docs

SKILLS 技能

用的久了,经常做个某个事情让AI做,每次都要教它做事,有些时候没调教好,漏说了什么,它就不会了,一点都不会察言观色,情商极低。这时候你又在想,要是能让它把这个东西学明白了,以后直接说开干,它就直接开干了就好了。

诶,这个又有,那就是SKill,技能本质上就是教AI做事,什么情况下怎么做,自然语言编写即可。skill放在 .claude/skills/ 目录下(如果没有skills文件夹,可以手动新建),这个目录下每个文件夹都是一个skill,文件夹名称就是skill名称,而文件夹里面最核心的就是 SKILL.md 文件,最简单的skill就一个文件,复杂的会有多个,但其他的都是辅助与此文件的。注意md文件的格式务必使用markdown文本,这是AI最易识别的格式。

安装技能

skills的安装,分自动和手动。自动安装则是直接跟claude说,安装xxx的skill,它会自行去搜索skill仓库,然后搜索对应名称或描述的skill,然后下载到本地并解压到 .claude/skills/ 目录下,由于skill权限较大,存在一定的安全隐患,所以不建议让AI自行搜索安装,而是主动指定skills地址,让cluade安装

手动安装则是去各类网站自行下载skill文件,然后解压放到 .claude/skills/ 目录下,重新启动claude会话即可生效。

还可以通过插件市场安装,不过插件市场安装的会把它当成插件,在插件里面查看,但是用法一样,至于插件与skill的区分,可以看插件章节。

/plugin install skill-creator@claude-plugins-official #安装来自于插件市场的插件

官方skill仓库:GitHub - anthropics/claude-plugins-official: Official, Anthropic-managed directory of high quality Claude Code Plugins. · GitHub ,里面有些必备的skill,比如skill-creator,用于创建skill的skill,大家可以安装下载。同时这些skill大家可以作为最佳实践,为自己后续制作skill作为教材参考。其他各个网站都可以自行下载,解压到claude安装目录的skills文件夹下面,重启claude即可生效。

安装路径可以通过 /skills 来查看,user skills 是指用户作用域的,根据skill放到的不同目录,则生效时机不同,详情查看 作用域 章节。

657×264 7.48 KB

使用方法

skill使用也分自动和手动,但说起skills的使用,咱先来补个基础课程,claude交互过程中,是怎么个流程去使用skill,我们仍然以简化对话来说明。假定预埋规则是“说中文”,如下交互过程,注意第2步是会把当前已安装的所有skill md文件内容描述都发给ai的(上图也可以看出来 skill-creator每一次对话都会额外消耗83个token)。

  1. 用户发给claude对话:“修复github的缺陷issue-1”
  2. claude发给ai报文:说中文,用户说修复github的缺陷issue-1,另外用户还装了几个技能,你看看用不用的上,内容是name: fix-issue description: 修复github上的缺陷问题 xxxxxxx
  3. AI给claude答复:“存在符合的skill,开始执行skill fix-issue,使用gh issue view命令”
  4. claude:执行gh issue view命令
  5. claude 继续发报文给ai:说中文,用户说修复github的缺陷issue-1,另外用户还装了一个技能,你看看用不用的上,内容是name: fix-issue description: 修复github上的缺陷问题 xxxxxxx。已经获取到缺陷信息了,内容是代码再并发的时候会死锁
  6. Ai给claude答复:“执行find grep搜索xxx关键词”
  7. claude:执行find grep搜索命令
  8. claude 继续发报文给ai:【前面所有会话】+找到代码了,你看看怎么改
  9. 【会有多个来回,直到完成任务,中间省去了授权确认】
  10. claude告诉用户:问题已修复,请验收

自动使用:则是再上述第2、3步由AI选择是否使用skill以及使用哪个skill,但可能会出现 ai自行识别理解不对导致选错或因关键词未匹配导致未使用的问题;

手动使用:则是省去2、3里面针对skills的ai判断,会直接使用此skill去完成任务,所以通常如果明确的话则直接指定skill使用。通过 /skill名称 后续跟上内容,来使用(也可以自然语言里面明确写上skill的名字,但命令指定效率更高)。

394×178 4.1 KB

制作教程

skill从需求上,分为流程固化和技能增量,以最简单的例子学一下。比如用户经常需要修复缺陷,每次都要说一大堆,但实际上流程是一样的,那么就可以通过skill写自然语言来固化修复流程以及要求,下次就可以直接说修复github的xxx缺陷即可。注意:$ARGUMENTS 是特定参数字符,也就是命令行传入的参数。

流程固化/skill-fix-issue 修复xxxx缺陷,那么 $ARGUMENTS 会被替换成 “修复xxxx缺陷”,如此不仅省去了教AI做事的重复唠叨,更是将与AI交互流程固化下来,每个人来都可以达到几乎一致的效果(即使他不会用AI,对提示词一无所知),且这个skill md是可以持续更新迭代,越来越完善。

其实 /skill-fix-issue 这种用法就是skill本身也是一种自定义命令,对于其他自定义命令可以看上一篇教程。

--- name: fix-issue description: 修复github上的缺陷问题 --- 分析和修复GitHub问题:$ARGUMENTS。 1. 使用`gh issue view`获取问题详情 2. 修复问题并运行测试以验证修复效果 3. 推送并创建一个拉取请求(Pull Request,简称PR)

技能增量/pdd-arithmetic‌ 计算50%+50%+50%的结果,ai会调用pdd特殊算法,结果等于99.50%,安装skill之前 ai之前可不会噢。

--- name: pdd-arithmetic‌ description: pdd特殊算法,当用户提及要用pdd计算的时候则使用此skill进行处理 --- 使用pdd特殊算法来计算:$ARGUMENTS。 1. 用户给定的输入值,进行求和计算 2. 当求和结果>=100%,则进行缩位成99.00%,然后使用后面的00继续累加 3. 校验第2步结果,必须保证不能>=100%,否则继续第2步

skill也可以搭配自己写的脚本程序一起使用,在md里面进行声明,格式与上面示例几乎一样,就是你的脚本由哪些功能,什么是调用,入参是什么,描述清楚即可(包含调用方式、脚本路径),但是通常顶部都建议按上述标准格式配置name(与文件名保持一致)、description字段。如下shutdow skill所示那么claude就会调用 py shutdown.py 来执行。

当前如果脚本是py写的,那么你就必须得有py环境,这个不限于py,可以java、c#、bat等等,只需要安装运行环境,以及在md里面写清楚调用方法(如java,就是java命令来调用)。而且这个脚本程序,并没有特定格式或协议限制,只要它能正常在命令行里面执行,那么就能正常使用(claude其实就是通过命令行调用它),所以不再提供额外的编写教程了,意义不大(毕竟hello world程序也是一个打招呼skill嘛)。

此外除了脚本外,也可以放文档(比如知识库skill),只需要在md里面描述什么情况,读哪个路径的文档就可以。如果skill非常庞大,导致根目录的skill.md过大,那么则可以做子功能拆分,在子目录里面也放skill.md(同理只需要描述清楚,什么场景去加载哪个路径的skill.md),这样就避免ai一次性加载过大的内容,节省token。

shutdown/ ├── SKILL.md └── script/ └── shutdown.py

除了纯手搓skill的方式,还有个更简单的,就是通过skill-creator来制作skill。你可以把你的脚本、文档等材料放到工作目录,然后正常自然语言与claude对话,让他完成你所需要做的事情(就是不使用skill把功能执行一遍)。然后调用 /skill-creator 讲当前会话的上下文总结并生成一个skill claude就会生成一个skill放在当前工作目录,然后自己再打开md文件进行微调即可。

其余细节有兴趣可以查看官方教程:Quickstart - Agent Skills

MCP 工具

自从学会了skills之后,发现自己的claude已经被调教的可文可武,也写出了一堆无所不能奇异skill,比如说搞了一个跟公司内部系统打通的skill(搭配py或java脚本),分享给了ABC三个兄弟,后续引起一片好评,裂式传播,而后你又发现了个奇妙思想,顺带还修复了些问题,这个时候你想给大家更新skill,但是人太多了,你都不知道给谁。从开始郁郁寡欢,伟大的创意,怎能受限于此?要是我能统一管控这个skill,大家都调用到我这里,而不是放本地就好了。

嗯,不错,这个也有,当你把skill的放到服务器上跑,大家claude来调用的场景,我们就称之为MCP。当然只是这样大家可能要搞混,下面我再来把它两说清楚一点。

我们先来补个基础课程, MCP实际上分为MCP客户端和MCP服务端,而MCP则是客户端与服务端交互的一个接口规范。MCP服务端提供功能接口以及接口描述给MCP客户端,MCP客户端则可以根据描述来判断自己是否需要或调用哪个功能接口。而claude就是MCP客户端,类似于其他codex等agent体,都是属于mcp客户端范畴。

再来详细说明下skill、mcp的区分,通常来说mcp都是提供额外的功能服务,而skill是让ai知道怎么做事,说几个常见场景,你一定能理解。

SKILL

1、固化流程,约束AI行为以及提炼特定场景的提示词;

2、不涉及到第三方,仅当前电脑执行命令或发起http请求就可以完成功能;

反例:完成这个功能还需要另外一个程序提供服务的通常都不属于skill范畴(http类查询搜索除外)

MCP

1、已有程序,想要开放接口给AI Agent调用;

2、由服务端中转提供服务,然后开放接口给AI Agent调用;

反例:能通过自然对话就完成的事情一般都不属于mcp范畴

此外有必要说一点,复杂的功能,可以是skill搭配mcp一起完成,我们口头所说的 mcp通常都是指mcp服务端,可以搭配skill一起使用,告诉或者约束AI调用mcp服务的时机以及规则。

安装MCP

安装方法跟skill一样,也分为自动和手动,让claude自行安装mcp只需要自然对话即可,注意由于mcp存在一定的安全隐患,所以不建议让AI自行搜索安装,而是主动指定mcp地址,让cluade安装

手动安装就是修改配置json文件了,全局生效则是 ~/.claude.json,如果没有这个文件则手动新建即可。

修改的配置文件,可以通过 /mcp 来查看,user mcps 是指用户作用域的,根据修改的json目录不同,则生效时机不同,详情查看 作用域 章节。

/plugin install github@claude-plugins-official #通过插件市场安装mcp插件

641×261 9.46 KB

"mcpServers": { "context7": { "args": [ "/c", "npx", "-y", "@upstash/context7-mcp" ], "command": "cmd", "type": "stdio" } }

下图是ccswitch的新增自定义配置界面,大家可以看到mcp几个要素

类型:mcp客户端与服务端的交互方式,简单的说明本地命令行执行就是 stdio ,调用远程服务就是http (see是长连接http)

命令:即使用mcp是执行的命令(就是cmd里面看的命令),广义上讲就是一个可执行程序,比如window上可以填写exe文件路径(命令只是exe路径加入到环境变量path后的一个缩减写法);

参数:执行命令时所需要提供的参数,非必须,取决于mcp服务器的接口功能

308×401 12 KB

当然除非是自定义mcp工具,否则都不建议手动修改配置文件,不仅可能出错还费劲,不如把仓库或mcp地址扔给claude,让它来配置。

claude mcp list # 列出所有服务器 claude mcp add playwright npx @playwright/mcp@latest #安装playwright claude mcp remove playwright #卸载playwright claude mcp --help #查看帮助

playwright用于浏览器自动化,有使用场景的可以安装哦,比如操作谷歌浏览器(有些涉及到操作浏览器的skill会以依赖此)。

使用方法

使用方法跟skill有一点点区别,就是基本都是由AI自行选择调用,用户自然语言与claude对话,它会自行判断是否需要使用mcp以及使用哪个。当然你也可以主动跟AI明确提出使用哪个MCP,但skill可以用命令带出,mcp默认是没有对应命令的(当然你可以自行配置自定义命令,见上一篇教程)。

1071×161 9.03 KB

当然claude想要分析出来使用哪个,那它肯定是把所有的mcp信息都当成token扔给AI咯(skill的对话过程 同样适用于mcp),也就是说安装的mcp越多也就越消耗token(由于mcp功能都比较多,所以消耗token往往比skill要大很多),所以建议将不使用的进行卸载或禁用,以及安装的时候尽量分作用域安装,别全部放到全局。

717×432 11.3 KB

制作教程

制作MCP相比较来说,属于高阶操作了,不再是通过自然语言就能搞定的事情,而是需要编写代码来实现功能(当然claude可以帮你写)。

MCP的代码实现是有特定协议要求,即MCP通讯协议,并不是随便写一个脚本就能给AI调用,但也不用你从零开始,官网已经造好了底层轮子,你只需要继承实现即可,支持多种语言,但目前来看用的最多的应该是python(没想到官方排名C#是第一梯队,java是第二梯队)。

官方SDK地址:Model Context Protocol · GitHub

官方教程地址:SDKs - Model Context Protocol

957×653 69.2 KB

有了SDK,那么就可以开始写代码了

本来我想着给大家写一个简单示例,然后想着python在AI场景使用特别广泛,就打算以python来写例子,但是发现官网的例子已经写的非常牛掰了,我就不写python了,大家可以来这里面去看下,非常详细:GitHub - modelcontextprotocol/python-sdk: The official Python SDK for Model Context Protocol servers and clients · GitHub

python教程提到的uv 安装方法给大家提供下

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

curl -LsSf https://astral.sh/uv/install.sh | sh

uv官方地址:uv

然后我就打算写个java 示例,发现,好家伙,官网也写好了:java-sdk/conformance-tests/server-servlet at main · modelcontextprotocol/java-sdk · GitHub

那我再去看看C#的有没有,没有的话我来给大家演示一下,也有:csharp-sdk/samples/ProtectedMcpServer at main · modelcontextprotocol/csharp-sdk · GitHub

好了,其他语言估计都有,反正这个制作的教程也是属于高阶,大家想玩的看示例也就会了,不想玩会看的头疼,我就不折腾了,就跟大家说几个注意点吧。

  • **制作MCP,指的是开发MCP Server,**因为claude就是mcp client!!!这个千万别搞错了;
  • 通常我们制作的mcp,都是远程http类型的mcp,方便统一维护与更新,提供http接口也是大家熟悉的方式;
  • 本地命令类型的mcp也就是通过stdio来进行通讯的,与http通讯方式不一样,其他基本一致;
  • exe 等可执行程序,也可以是mcp(exe自身就是一个命令行语句);

大家也可以考虑安装这个官网skill,它可以帮你开发mcp,我目前只是手搓代码做过mcp,未曾体验这个skill,大家可以尝试一下,官网源码以及介绍路径:claude-plugins-official/plugins/mcp-server-dev at main · anthropics/claude-plugins-official · GitHub

/plugin install mcp-server-dev@claude-plugins-official #安装来自于插件市场的插件

Plugin 插件

看到这里,你可能已经蠢蠢欲动,想要大展手脚,把claude塞满!网上找了几个skill、mcp,下载安装啥的,感觉麻烦又费手。又用了一段时间,发现有些就是垃圾想要卸载,又得去找文件夹删除,难受。这个时候你可能会想,要是能有个统一管理的东西就好了(当然ccswitch也可以用来管理且支持云同步)。

别说,你还真别说,这个也有,那就是Plugin插件。通过命令 /Plugin 可以看到官方的一些包含mcp以及skill的插件(默认安装官方市场),Plugin作为一个插件管理命令,管理插件安装卸载以及版本更新。为避免名词混淆,在此说明下两个名词。

  • 工具:可以给AI使用的一种东西,比如skill、mcp等都是工具,属于泛指,而skill是特指;
  • 插件:一个工具包,skill/mcp等都是一个工具,而一个插件是可以包含多个工具

插件管理

进入插件管理后,左右切换标签页,上下选择,回车确认。在这里就可以进行安装、卸载了。

  • Discover:来自于市场所有的插件列表,可以上下键选择,然后回车安装,可选安装作用域;
  • Installed:当前已安装的所有插件,回车进入后可以卸载禁用查看等;
  • MarketPlaces:插件市场列表,默认会添加一个官方市场,而 discover 就是读取所有市场里面的所有插件,也可以直接回车新增市场,填写github仓库地址即可(可简写 user/repository );
  • Errors:显示发生错误无法使用的插件;

有必要单独讲一下插件市场,其实就是外部提供的一堆插件列表,除了填github仓库之外,也可以填本地目录,还可以是一个远程服务器的http url,只要返回复改格式的json就行,安装就也会从这个url去下载。插件安装目录**<font style="color:rgb(17, 24, 39);background-color:rgba(238, 238, 238, 0.5);">~/.claude/plugins/cache</font>**

747×410 19.4 KB

/reload-plugins #重新加载插件: Reloaded: 0 plugins · 0 skills · 5 agents · 0 hooks ..... /plugin marketplace add anthropics/claude-plugins-official #添加插件市场(github地址简写版本) /plugin install mcp-server-dev@claude-plugins-official #安装来自于插件市场的插件 claude plugin uninstall #卸载 claude plugin enable #启用 claude plugin disable #禁用 claude plugin update #更新

如果需要把别人自定义插件加入进来,也可以下载到本地,然后通过命令行加入插件市场。

/plugin marketplace add F:\claudecode\.claude-plugin\mymarketplace.json #路径可以是文件夹

安装插件,可以像上面cli界面上选择后回车安装,也可以通过命令行安装

/plugin install github@claude-plugins-official #通过插件市场安装mcp插件 /reload-plugins #安装完成时候触发加载刷新

插件使用

通常claude也会自行判断是否需要使用,与skill等一样。当然也可以主动调用插件,通过命令 /code-review:code-review 请复核代码 来使用插件执行任务。

665×115 3.16 KB

自定义插件

当然插件也是支持自定义的,也就是自行整合一大堆工具,然后给别人一键安装。不过为了给别人更好的自由组合,又可以在插件管理里面自由安装卸载,所以大多数插件通常仅包含一个工具。

插件存放在目录 ~/.claude/plugins/cache不要手动拷贝到这个目录来替代安装,要通过安装的方式,否则会被自动删除)。如下是一个插件的内部文件夹结构,制作方法没啥复杂的逻辑,就是整合一堆skill、mcp、command等等放到一起,然后配置 plugin.json 文件。

review-plugin/ ├── .claude-plugin/ │ └── plugin.json #插件的名称描述版本等基础信息 ├── .mcp.json #插件的mcp列表 └── skills/ #插件的skill列表 └── code-review/ └── SKILL.md

{ "name": "code-review", "description": "Automated code review for pull requests using multiple specialized agents with confidence-based scoring", "author": { "name": "Anthropic", "email": "support@anthropic.com" } }

在开发阶段,可以通过命令 claude --plugin-dir F:\claudecode\code-review 来验证测试自己的插件。

416×240 6.84 KB

有兴趣可以查看官网文档:Plugins 参考 - Claude Code Docs

分发插件

目前主流分发方式就是通过github,也是官方推荐的方式,当然对于其他方式,比如npm包、自建网站等都可以。

由于这部分用的人较少,所以就不详细展开。主要逻辑就是,新建一个github仓库,然后仓库目录新建一个json文件 .claude-plugin/marketplace.json ,里面内容就是插件的基础信息,以及插件列表与目录。

本地分发插件,则是与github仓库相同,主要是得有 marketplace.json 文件,在新增插件市场的时候,填写这个文件的目录即可。http分发插件也是同理,返回 marketplace.json 字符串,但需要注意市场里面的插件地址要可以正常通过http访问获取。

{ "$schema": "https://anthropic.com/claude-code/marketplace.schema.json", "name": "claude-plugins-official", "description": "Directory of popular Claude Code extensions including development tools, productivity plugins, and MCP integrations", "owner": { "name": "Anthropic", "email": "support@anthropic.com" }, "plugins": [ { "name": "code-review", "description": "Automated code review for pull requests using multiple specialized agents with confidence-based scoring to filter false positives", "author": { "name": "Anthropic", "email": "support@anthropic.com" }, "source": "./plugins/code-review", "category": "productivity", "homepage": "https://github.com/anthropics/claude-plugins-public/tree/main/plugins/code-review" } ] }

官方插件市场(可做demo参考):GitHub - anthropics/claude-plugins-official: Official, Anthropic-managed directory of high quality Claude Code Plugins. · GitHub

官方插件市场文档:创建和分发 plugin marketplace - Claude Code Docs

HOOK 钩子

当做完某件事之后,必须做的一个事情,如果只是写在CLAUDE.md文件里面,无法有效约束,可能会被忽略掉,取决于AI的自觉性,但通常它都没那么自觉,这时候就需要强约束,比如让他保存代码之前,就立即执行代码格式化。

这种事情的处理呢,在代码视角叫做绑定事件event,在数据库视角叫做添加触发器trigger,而在claude里面就叫做添加钩子。钩子即claude提供的事件,你可以在这个事件上添加你要做的事情,就一定会执行。比如说,要完全要 记录AI执行命令的日志、拦截AI调用rm-rf命令等等,都可以通过hook实现。

由于钩子是claude执行的一种事件触发,所以不需要人为参与使用,也就不涉及使用方法的概念了。

安装钩子

HOOK的安装也分手动和自动,自动则是通过插件市场安装。

手动安装分两步:

1、将hook的脚本放到 .claude/hooks 目录;

2、修改配置文件 .claude/settings.json ,由于settings.json文件是支持作用域设定,所以hook自然也是一起支持的,根据配置的不同json目录,会有不同的生效范围以及优先级;

接下来以官网示例给大家说明 hooks 节点,可以配置多种hook,而每一种hook里面又可以配置多个自定义命令脚本。

settings配置文件的修改,可以使用命令让claude来操作,避免手动编辑错误,使用方法 **/update-config** 配上自然语言即可

{ //---其他内容---- "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": ".claude/hooks/block-rm.sh" } ] } ] }, //----其他内容---- }

通过 /hooks 查看已安装的hook,继续enter,可以进入查看安装的具体hook,以及hook文件路径(配置路径 + 脚本路径)。

864×357 7.9 KB

758×405 6.92 KB

制作钩子

虽然我按照官网文档,也搞过一些简单的demo钩子,但由于目前日常使用还没遇到过非用不可的场景,所以也没深入研究过,至于简单例子demo,官网文档,大家看一下也就会了。

有兴趣可以查看官方文档:Hooks 参考 - Claude Code Docs

Agent 子代理

还记得之前提过到一个使用注意点嘛,就是不同的事情,避免在同一个会话里面执行,否则出现会话上下文干扰会导致AI能力急剧下降,还浪费token。但是呢有些时候,又依赖于上下文,要分叉做不同的事情,这种就没法说新开一个会话来执行了,毕竟不能又重新对话一轮,这个时候就需要用到子代理了。

子代理,其实可以认为是多线程,主线程干活的时候,分一些事情给子代理,子代理可以拿到主线程的一些上下文信息,但多个子代理之间是各自独立互不干涉。

常见使用场景说明,比如代码修改后,让另一个AI进行复核,编写代码有读写权限,而复核代码仅给与读权限,两个agent可各自设立角色(即claude.md),避免相互干扰,此外还有多模型切换,设定子代理使用的模型,可以让不同的活交给不同的模型来处理。

通过 /agents 命令查看已有的子代理列表,选择已有子代理点击进去之后,可以进行查改删操作。此外也可以再次新增子代理,以自然语言对话的方式让claude帮你生成子代理。

597×450 7.71 KB389×282 3.52 KB

安装 Agent

claude其实也有内置代理,比如Plan模式,实际上就是一个只读代理。其他的子代理想要使用,最方便快捷的那便是通过插件市场安装了(可界面,可命令),毕竟插件含所有,万物皆插件。

/plugin install code-review@claude-plugins-official #安装来自于插件市场的插件

如果是自行下载或者自定义agent,那么也可也手动放到对应目录 ~/.claude/agents ,重新启动即可生效。注意不要安装重复类型的agent,否则会导致claude在选择使用时出现混乱,偶尔A偶尔B,无法预料(比如两个代码复核agent)。

使用 Agent

使用方式与前面提到的基本相同,也分自动和手动,如果是自动使用,那么就是你的自然对话与代理描述字段有相关性,claude判断后决定使用子代理执行任务。

手动使用则通过 @ 符号来选择代理(如 @"code-reviewer (agent)"),然后继续输入你需要做的事情(注意@后面不是一定要跟agent词,而是可以输入你的agent名称,此处演示示例)。

324×165 5.03 KB

当然也可以在启动claude的时候,就以指定agent来启动,后续所有任务都用此agent来执行。

claude --agent code-reviewer

制作 Agent

制作agent其实挺简单的,因为agent其实就是一个配置文件,与你写的skill没有什么大的区别,无非就是文件顶部有一些agent的属性,其余都是自然语言(当然涉及到一堆附加工具也会变得复杂)。如下就是一个简版子代理,包含名称、使用时机、模型、作用域,注意通常name与文件名保持一致

--- name: code-reviewer description: "Use this agent when you need a thorough code review of recently written or modified code" model: sonnet memory: user --- 你是一位资深软件工程师和代码审查专家,你的职责是对最近编写或修改的代码进行深入、系统的代码审查,提供具体、可操作的改进建议。

通过命令行 /agents ,选择 “Create new agent”,然后输入agent相关描述,让claude给你自动生成agent,然后继续选择agent的权限、使用模型、颜色(用于区分子代理)、作用域范围(agent也会有memory记忆),之后就是预览AI生成的agents,确认后则保存,后续可以手动调整。

agents配置相关字段如下所示(没有列全,仅常用字段):

字段名 是否必须 字段描述
name Yes 使用小写字母和连字符的唯一标识符
description Yes Claude 何时应该委托给此 subagent
tools No Tools subagent 可以使用。如果省略,继承所有工具
disallowedTools No 要拒绝的工具,从继承或指定的列表中删除
model No Model 使用:sonnetopushaiku、完整模型 ID(例如,claude-opus-4-6)或 inherit。默认为 inherit
permissionMode No Permission mode:defaultacceptEditsdontAskbypassPermissionsplan
skills No Skills 在启动时加载到 subagent 的上下文中。注入完整的技能内容,而不仅仅是可用于调用。Subagents 不继承来自父对话的技能
mcpServers No MCP servers 对此 subagent 可用。每个条目要么是引用已配置服务器的服务器名称(例如,"slack"),要么是内联定义,其中服务器名称为键,完整的 MCP server config 为值
hooks No Lifecycle hooks 限定于此 subagent

官方文档地址:创建自定义 subagents - Claude Code Docs

多任务 SubAgent

有些时候,批量处理多个任务的时候,任务又很相似,这个时候可以尝试先做一个,之后在当前会话开启多个后台任务并发执行,可以节省很多时间。如果新开会话不仅浪费token还又得给ai讲解一遍,费时费力,所以就在当前主会话开启多任务即可。

开启方式很简单就是自然对话,如:请开启10个后台任务,按当前修改方案,批量修改下面的10个文件 ,后续claude就会开启任务并发执行,当执行完成后,会在当前会话返回最终结果。不过如果是简单任务的话,claude可能会选择后台运行bash命令,而不是开启SubAgent(两种都是并发,能达成效果即可)。

Bash后台任务:简单命令即可完成,中间无需额外介入的任务通常会使用此方式;

SubAgent:复杂任务,中间要AI再次多次介入的任务,会使用此方式;

865×493 79.3 KB

1081×465 22.6 KB

查看当前后台任务则是命令 /tasks ,则可以列出来当前正在运行的所有后台任务,继续点进去可以查看当前任务执行情况(也会显示AI的交互输出),也可以随时停止任务。

350×192 26.1 KB

Memory 记忆

大家前面所有的内容都是在指导AI做事,比如claude.md是你教ai做事,但是memory则是ai对你的印象习惯形成的记忆,是claude对历史会话进行总结的本地记忆,所以大家用claude在某个行业领域经常使用后,它以后也会注重在这个行业领域跟你交互回答,也更能理解你的描述与需求,比如日常使用的命令习惯、注释习惯等等。

~/.claude/projects/<project>/memory/ ├── MEMORY.md # 简洁索引,加载到每个会话 └── ... # Claude 创建的任何其他记忆文件

记忆文件由claude自行创建,可能会有多个,但主文件就是 MEMORY.md,在每次会话启动的时候,与全局规则 CLAUDE.md 文件一样,会加载文件的前200行到当前会话中。

通过 /memory 命令可以查看当前记忆的设置以及目录地址:

  • Auto-memory:是否开启主动记忆,即开启memory功能;
  • Auto-dream:是否开启后台整合,当它开启时,Claude 会在会话结束后,在后台对记忆进行整理归纳;
  • Open auto-memory folder:打开主动记忆的文件夹目录,新项目或没使用多久,可能会没有文件,因为claude还没有发现总结的内容(另外两个选项是打开用户配置的规则文件,可忽略);

878×348 6.47 KB

除了claude自行分析主动记忆外,你也可以明确提出让他记住某件事情,比如请记住文件创建都必须用utf-8,那么它就会写入到memery.md里面,不过这种通常都通过claude.md来配置。哦,此外,你可以手动编辑memory.md文件,就像claude.md一样。

795×297 11.4 KB

官网介绍文档:Claude 如何记住你的项目 - Claude Code Docs

Channel 通道

有些地方也会提到这个名字,有些翻译是“频道”或“渠道”,我个人觉得“通道”更为合适一些。它在写代码的时候,很少会使用到,因为正常写代码都是用户主动发消息给Claude,然后Claude再执行任务。

但是如果你不想或没法通过命令行打字发消息给Claude,比如服务器上部署了个应用服务,当服务异常的时候,自动发送日志给Claude做检查,那两个服务之间的交互沟通的就是Channel,也就是两个服务之间的信息传输通道。

类似于龙虾openclaw的实现,你通过微信发消息后,微信服务器就是通过channel传输给openclaw,然后openclaw执行任务后,再通过channel返回给微信。所以基于此,实际上openclaw能做的,claude都能。通常类似于微信这种是提供服务(channel服务端),而claude是作为客户端去监听接收服务端推送的消息,整体实现方式于MCP服务端类似,只是多加了事件通知(claude也是mcp客户端)。

这个与编码关联不大,就不做展开讲解了,有兴趣可以看官网文档:Channels 参考 - Claude Code Docs

其他内容

上一篇已经讲解过的 自定义命令、预授权以及一些自带的命令就不详细展开了,还有一些花哨的自定义快捷键、自定义状态栏,也就不说了,意义不大浪费时间。但有一些挺好用的命令工具,给大家列举一下:

  • /clear:清空终端界面的显示内容以及会话信息,官方原文 在不相关的任务之间运行 /clear 以重置context
  • /compact:上下文压缩,本质上claude会自动压缩策略,所以一般不要手动压缩,省token会丢失准确度,意义不大。压缩会话就是把历史内容做整理精简,但可能会导致你认为的重要点丢失,所以大家就当这个命令不存在,如果一个事情上下人不够就拆子任务;
  • /context:查看当前会话的token使用量以及上下文占用量是否充足等信息;
  • /help:查看当前版本以及一些命令(含内置以及自定义命令)的描述帮助;
  • /loop:定时任务,不过写代码这个用的倒不多,loop后跟自然语言描述即可,比如 /loop 每30分钟检查一下xxx文件更新,查看取消定时任务是自然语言对话即可(不用加loop命令前缀);
  • /btw:临时提问,比如执行任务过程中提到了某个知识点,想要详细了解下,直接问会干扰当前上下文,这个时候就可以用 /btw来进行临时提问后按ESC退出不影响当前会话;
  • 云端跨设备同步会话任务,这个其实也挺好用的,但是只能是官网账号登录才能使用;
  • 快捷键:孰能生巧,可以查看 https://code.claude.com/docs/zh-CN/interactive-mode,比如`Ctrl+O`查看详细输出,`Ctrl+L` 清空当前已输入文本),有些挺好用的,大家可以去看看;

哦,对了还有 LSP servers 这个用的真的少,所以我们不提也罢。有兴趣的可以去看下:Plugins 参考 - Claude Code Docs

最后总结

所有的名字功能玩法,都是提升AI的使用,等你你明白需求场景的时候再去使用,不明白是说明此时你并不需要它,别上来就咔咔研究,想着都要,结果就像你研究的龙虾一样,唯一的作用就是消耗你的token,浪费大量研究的时间精力,实际根本没怎么使用。这点不限于claude这类工具,对于其他事情,亦是如此。

吐槽一下,claude内存问题到现在还没解决,其他设备不清楚,window机器上挂机放着内存也会越来越大,导致每次都要重开,所以大家注意别挂机过夜。

有兴趣可以去考个官网证书(暂无其他用,但可吹牛逼):Claude 101

参考资料

Claude Code 设置 - Claude Code Docs (这个是官方文档,非常建议大家都去看一看,有很多干货,本文的很多内容都是从这里学过来的)

Model Context Protocol

What is the Model Context Protocol (MCP)? - Model Context Protocol

附录

哎呀呀,一不小心就写了这么多字,我已经很克制了啊,兄弟们,木得办法,这里面每个章节都可以单独零出去写一篇文章了,我已经是没有展开细讲了,尽量包含常用功能点。我想过把章节文章拆分出去,然后这里汇总做链接,但是后面发现这样做要经常跳转,很影响阅读的连贯性,就放弃了。

想必大家能看到这里,对claude功能,已经略有小感了,接下来大家都可以作为专家,上台讲解感悟了。

原本计划再来个细节讲解,以实际项目来实操,但是想了下,文字不便于描述,得视频才有比较好的效果,但B站已经有太多的视频讲解了,我就不掺和了。而且我这个教程主要目的是让大家对claude功能有清晰的认识,从而能更快上手,而非追求把功能用的炉火纯青,所以就以此篇结束吧。

最后祝大家,学有所感,用有所成,于人生之中绽放,向天地之间遨游!

网友解答:
--【壹】--:

好长,太强大了


--【贰】--:

收藏起来


--【叁】--:

太强了,插个眼,晚点学习


--【肆】--:

太牛了佬


--【伍】--:

收藏了感谢


--【陆】--:

大佬太厉害了吧,前排支持


--【柒】--:

太强了, 佬


--【捌】--:

收藏了,感谢佬分享


--【玖】--:

感谢,又学到了很多


--【拾】--:

内容太多了 先收藏在观看


--【拾壹】--:

太强了,佬


--【拾贰】--:

大佬牛逼,前排!


--【拾叁】--:

去我的收藏夹吃灰吧


--【拾肆】--:

好长,用心了,感谢分享


--【拾伍】--:

感谢大佬


--【拾陆】--:

感谢大佬


--【拾柒】--:

收藏了 都是干货 满满细节


--【拾捌】--:

厉害厉害~~~


--【拾玖】--:

麻溜插眼~