ClaudeCode

避免权限请求

使用ClaudeCode时,会发现它总是请求各种命令的权限,非常烦人。可以通过以下方式让他获取所有工具的权限

1
claude --allow-dangerously-skip-permissions

skill

定义

skill本质上是给AI可复用的功能插件,类似于我们写代码时的一些第三方库(比如OpenCV让C++直接具有了图像处理的能力,而不必手动从底层实现这个功能)。它本质上是把“prompt + 规则/最佳实践 + 脚本 + RAG这样一整个工作流打包给AI,这样就不必每次都重新教给他。此外,通过给一些脚本,让AI从只会聊天变得能操作你的电脑,靠拢真正的Agent

1
2
3
4
5
skill:
- system prompt(角色 + 总规则)
- RAG(公司文档 / 代码规范 / API说明)
- tools(git / 编译 / 测试)
- workflow(流程控制)

system prompt、RAG、workdflow我觉得本质上都是一些文字,有什么区别呢?

  • system prompt:必须遵守啥
    • 必须符合 Linux kernel coding style
    • 使用 devm_* API
    • 错误处理必须完整
  • RAG:参考啥
    • 公司代码模板
    • 寄存器配置说明
  • workflow:该能力的工作流程
    • 确定的步骤:解析需求 -> 查 RAG -> 生成代码 -> 调用 tool -> …

为什么不能只用prompt或者RAG呢?

  • 如果全写进prompt里,会消耗很多token,并且不好维护,新规范难加进去

分类

目前的skill有以下几类:

  • coding类:通过给一些预置的非常好的prompt和规则,改进AI的代码风格、强制进行code review等操作,增强AI的写代码的能力
  • Automation类:这类skill一般还会提供一些脚本,从而让他能操作电脑自动化地完成一些事情,比如浏览网页、PDF阅读、环境部署、运维等等
  • 私有知识类:要让AI学习到一些规范或者预训练时没看过的小众知识(比如公司内部数据)第一时间可能想到的是RAG,但RAG只是让AI外挂一些记忆,并不能给AI操作的能力,skill在RAG的基础上提供一些工具,从而让AI不仅知道如何做,而直接可以动手帮你做

安装

目前skill已形成生态,ClaudeCode的skill安装有3种方式,类似一种AI的包管理系统

方式一:

  • 通过/plugin直接从插件市场安装(官方方法)

方式二:

  • 手动把skill文件放到~/.claude/skills下(全局安装)或者放到项目的.claude/skills下(项目安装)

方式三:

  • 使用npx种的skills这个CLI工具进行安装。比如:
1
npx skills add alchaincyf/zhangxuefeng-skill --agent claude-code

后边一定要加--agent claude-code不然ClaudeCode没法自动识别

该方法本质上是自动从git下载skill文件,然后将其放到.claude/skills

验证是否安装成功

使用/skills命令可以显示已安装的skills以及其安装位置

image-20260413093328915

常见skill总结

MCP

MCP(Model Context Protocol)本质上和HTTP、RCP类似,都是一种协议。MCP主要用于MCP Client(AI)和MCP Server(外部工具适配层)之间通信,从而让AI能够以一种标准的方式调用外部工具(比如git、word…)

为什么要用MCP

其实让AI调用外部工具确实不需要这样一个协议,可以为某个工具写一些固定的shell脚本就行了。但是这样不统一,并且很难复用。所以设计者就提出了MCP这个协议,把AI调用外部工具以及外部工具如何暴露接口给AI都进行了标准化 + 可插拔化 + 可扩展化

MCP Server

MCP Server可以理解为一个包装层,它给现有的应用进行封装,让这些工具具备MCP通信的能力,从而可以被AI调用。如果没有这层的话,我们如果想让这些工具能够被MCP Client调用,就得在这些工具内部实现MCP协议,那太麻烦了,每个工具比如git什么的都得从源码改动,这也不现实,所以设计者就引入了这个抽象层

MCP Server到底是daemon进程吗,还是只是一些代码?

MCP Server是一类遵循 MCP 协议的工具程序集合,他不和Web Server一样必须是个守护进程,它可以是:

  • daemon
  • CLI
  • script
  • remote service

安装

要让AI具有调用外部应用的能力,一般需要安装的是MCP Server

下载工具

MCP Server的代码通常是js写的,所以通npm或者npx包管理工具下载,也可以直接去github下载源码

1
2
npx @modelcontextprotocol/server-filesystem /your/path
npm install -g @modelcontextprotocol/server-git

client配置

下载完代码后,还需要告诉AI这些MCP Server如何运行,ClaudeCode需要写个MCP Config文件(类似VSCode的配置文件)ClaudeCode启动时会读取这个配置文件,预启动MCP Server,在AI进行工具调用时,直接和这些MCP Server通信从而调用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"@modelcontextprotocol/server-filesystem",
"/home/user/project"
]
},
"git": {
"command": "npx",
"args": [
"@modelcontextprotocol/server-git"
]
}
}
}

使用场景

git操作、连接数据库、接入公司内部系统、控制浏览器