cover

为什么你的 Claude Code 能力总是留不住

我见过太多人这样用 Claude Code:装一堆 MCP Server,CLAUDE.md 改了一版又一版,可一开新项目还是得从零解释上下文。工具越攒越多,能力没沉淀下来。

这不是 Claude Code 的问题,是缺一套管理框架。

这篇文章想聊的就是怎么把 Claude Code 的 Skills 生态盘活——从技能发现、评估到工作流组合,建一套能反复用的体系。

先换个视角

传统开发里,依赖靠 package.json,基础设施靠 IaC,接口契约靠 OpenAPI。到了 AI Coding 场景,很多人的能力管理还停在文档夹和浏览器收藏夹里。

Claude Code 通过 MCP(Model Context Protocol)把外部工具接进 Agent 的上下文。配置得当的实例,本质是一个能力栈,不是一个聊天窗口。我的经验是,视角一转,用法就变了:

  • 技能是可调用的原子能力
  • 工作流是技能的编排组合
  • CLAUDE.md 是这套能力的接口声明

想清楚这三层关系,后面的事就顺了。

第一层:技能发现

MCP 生态现在大到没法靠人肉翻,我常走三条路。

策划型注册表。 awesome-claude(HeyClaude)把 MCP servers、skills、commands、hooks 都收进来了,支持 npm 包分发。找某类能力的优选项,从这里翻最快。

反向匹配。 skill-finder 的思路反过来——不堆工具清单,而是按你的任务描述筛能力组合。输入要做什么,它给你拼工具链。任务驱动,省心。

交叉链接。 MCP 社区最近在推一个做法,在各 server 的 README 里加「Works Well With」段落,把互补的包串起来。比如 server-filesystem 配上带搜索能力的 MCP,Agent 就能直接把搜到的结果落盘。顺着这张图找,比单独看一个工具有意思得多。

第二层:技能评估

不是每个 MCP 都值得进你的能力栈。找到之后,我习惯从四个维度快速过一遍:

维度 要问自己的问题
原子性 这工具做的事够不够单一、职责清不清楚?
组合性 它能跟手头已有的工具叠出有效能力吗?
稳定性 维护活不活跃?CI 有没有固定版本?
上下文消耗 调一次大概吃多少 token?会不会把 context window 撑爆?

稳定性这条最容易被人略过。MCP 官方 servers 仓库里有个 PR 专门讨论把 GitHub Actions 的 floating tags 换成不可变的 commit SHA——原因是那条 workflow 牵扯到 NODE_AUTH_TOKEN 的发包权限,供应链风险不能马虎。自己维护的能力栈,同样需要版本锁定。

第三层:工作流组合

单个技能能干的事有限,组合起来才有乘数效应。这也是大家最容易低估的一环。

我用得最顺的范式是「数据获取 → 处理加工 → 结果落盘」:

filesystem MCP        ←  读写本地文件
search/fetch MCP      ←  获取外部数据
transform skill       ←  数据清洗 / 格式转换
output MCP            ←  生成 PDF / 推送 API

落到 claude_desktop_config.json 上是这样:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]
    },
    "fetch": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-fetch"]
    },
    "pdf-generator": {
      "command": "npx",
      "args": ["-y", "your-pdf-mcp-server"]
    }
  }
}

用 CLAUDE.md 声明能力接口

很多人把 CLAUDE.md 当成给模型看的背景资料,其实它更该是能力栈的接口声明文件。把可用工具、调用约定、输出格式都写进去:

## 可用能力

### 文件操作
- 工具:filesystem MCP
- 约定:所有输出文件放 /workspace/output/,按日期分目录

### 外部数据获取
- 工具:fetch MCP
- 约定:原始响应缓存到 /workspace/cache/,TTL 1小时

### 文档生成
- 工具:pdf-generator MCP
- 约定:模板放 /workspace/templates/,优先复用已有模板

## 工作流组合示例
「生成竞品分析报告」= fetch竞品信息 → 写入cache → 调用report模板 → 输出PDF

这么写完,每开新会话,Claude Code 一眼就知道当前能调什么、边界在哪,不用你再一遍遍解释。

第四层:能力沉淀

工作流跑出来的成果怎么留住?这一步我发现很多人压根没想过。

建一个私有的 skills repo:

my-claude-skills/
├── workflows/
│   ├── code-review.md       # 代码审查工作流
│   ├── api-doc-gen.md       # API 文档生成工作流
│   └── bug-triage.md        # Bug 分类工作流
├── mcpConfigs/
│   ├── dev-stack.json       # 开发场景 MCP 配置
│   └── research-stack.json  # 调研场景 MCP 配置
├── claudeMDs/
│   ├── backend-project.md   # 后端项目模板
│   └── frontend-project.md  # 前端项目模板
└── README.md                # 技能图谱索引

新项目初始化时,直接从这个 repo 拉对应配置,五分钟就能让 Claude Code 进入工作状态。claude-skills-vibe-toolkit 做的也是这个方向:把工作流资产系统化,让能力变成可复用的东西,而不是锁在你的个人记忆里。

进阶:给能力栈做版本管理

在团队里推 Claude Code,版本管理这关躲不掉。几条亲测有用的做法:

  • MCP 配置走 Git,跟代码一个待遇,工具一升级就有 diff 可查
  • 锁版本,配置里写死精确版本号,别用 latest
  • 按场景拆栈,开发、测试、文档生成各用各的 MCP 配置,互不干扰
  • 每月 review 一次,没实际调用记录的工具移出去
// 推荐:锁定版本
"args": ["-y", "@modelcontextprotocol/[email protected]"]

// 不推荐:浮动版本
"args": ["-y", "@modelcontextprotocol/server-filesystem@latest"]

写在最后

把 Claude Code Skills 当成需要工程化管理的生态,而不是随手拼的工具箱。这个转变,是「会用 AI 编程工具」和「真正发挥 Agent 能力」之间真正的分水岭。

发现、评估、组合、沉淀,四步连成闭环。每做完一个项目,能力栈就该比上次更完整一点。这不是配一次就完事的活,是要持续迭代的工程习惯。

顺带说一句接入的事。Claude Code 本身免费开源,真正的门槛在国内用起来麻烦:得自己解决网络、还要管 API 账单。我们做 ECC 就是把这块磨平,让你直接接上 Anthropic 全系模型,免梯子、计费透明、连接稳定,省下配环境的功夫。


关于 Easy Claude Code

如果你想用上 Claude Code,可以试试我们 ECC(Easy Claude Code)的中转服务:免🪜、低成本、快速稳定,直连官方 Claude Code。企业定制化服务可详询。