请先登录以管理你的Prompts

让Claude Code更强大:解锁符号级代码检索能力

Serena
AI Coding
Claude Code

Key Takeaway

  • 代码检索重要性:代码非纯文本,有结构、语义和依赖。AI工具需符号级检索,提升编程任务效率和准确率。
  • Serena推荐:免费开源工具,通过MCP对接Claude Code,利用LSP提供符号级代码理解。安装简单,针对项目配置,适合大项目(可能略慢)。
  • 设计权衡:AI工具未内置语言服务器以避臃肿和维护难,选择可扩展性。Serena填补空白,显著提升复杂代码处理。

有很多工具能让Claude Code变得更强。其中,我认为最应该、最值得首先安装的,是提升代码检索能力的工具。

本期视频,我会推荐一款非常好用的免费工具,以及跟大家讲清楚它好在哪儿、为什么需要它。

跟其它场景不一样,编程中涉及到的信息量太大了,上下文窗口再大都扛不住,所以一定要检索。

而且,代码生成、代码重构、架构分析、跨文件调试等等,这些编程任务都强烈依赖于对整个代码库的深入理解和高效访问。

在这个方面,即使是Claude Code,也只是停留在比较浅的层面。因为它把代码当作纯文本来处理。

问题是,代码不是文本。

代码看起来是一堆纯文本的字符,其实它还有结构、语义和依赖关系。

通过关键词、正则表达或者嵌入向量的搜索,Claude Code虽然能找到代码,但是这么做并不难让它真正理解代码。

而这个填补空白的机会,就留给了开发者。

哈喽各位好,欢迎回到我的频道。谦虚地说,我是国内少数几个能把关于AI的Why和How讲明白的博主。我提供的东西远比教程更值钱。记得点一波关注。如果想链接我,就来我们newtype社群。这个社群已经运营500天,有超过1500位小伙伴付费加入啦。

回到今天的主题:提升代码检索能力,让Claude Code更强大。

Serena是一个专门提升AI编程工具代码理解、检索和编辑能力的开源工具包。它通过MCP与Claude Code对接,让Claude Code获得符号级别的理解能力,从而极大提升处理代码的效率和准确率。

要安装和使用Serena非常简单,有手就行。

Serena的GitHub里写一大堆配置方法,但是对于Claude Code来说,最简单的方法就是在终端里运行这一行命令。由于它包含了project参数,所以连激活都省了,特别方便。

接着,打开Claude Code,输入/mcp,可以看到正在连接Serena。稍等个5到10秒钟就连接上了。这时,它会自动打开一个网页,显示具体信息。

最后,输入这行MCP命令。它的作用是把Serena的用法告诉Claude Code。

这边有两点我需要提醒大家:

第一,Serena并不是全局配置,而是针对特定项目的。如果你换了一个项目,还需要重新运行一遍命令。它会在项目的根目录下生成一个文件,用来记录项目信息。

第二,刚才那行MCP命令的效果是临时的。也就是说,下次你再开一个对话,又得输入一遍。如果不想这么麻烦的话,可以把内容保存进claude.md,这样Claude Code就始终记得用法了。

Serena的安装和使用就是这么简单,没什么好多说的。它最吸引我的,其实是它的实现方式。

Serena之所以能为Claude Code等AI编程工具提供符号级的代码检索能力,是因为它利用了“语言服务器”和“语言服务器协议”这两个东西。

语言服务器协议的缩写是LSP,Language Server Protocol。它是微软好多年前搞出来的开源标准协议。对行业来说,这个协议非常有用,真的是帮了大忙了。

因为在有这个协议之前,如果你是某个编辑器的开发者,想要让编辑器支持某个代码的分析功能,就得自己亲自去搞。这就带来了重复造轮子、体验不一致、维护成本高、小众语言支持少的问题。

有了LSP这个协议之后,行业就有了一个“通用接口”。开发者基于这个协议、这个通用接口去开发和维护各自语言服务器。任何编辑器,只要支持这个协议、这个通用接口,就可以使用语言服务器。

这就跟USB接口、MCP协议一样,方便非常多。

所以,Serena一方面通过MCP协议,与Claude Code进行通信;另一方面通过LSP协议,统一调度各种语言服务器。

而语言服务器对代码的理解是“符号级别”的,会比单纯的文本检索强得多。于是,Claude Code的代码检索能力就这样增强了。

看到这里,你可能会问:既然语言服务器这么好用,协议也是现成的,为什么这些AI编程工具不内置?

一切都是有成本的。如果内置语言服务器,可能会让整个工具变得很臃肿,启动慢,维护也麻烦。另外,使用起来可能会感觉到速度变慢。这是因为跟语言服务器的通信属于进程间通信,比直接内存操作慢。而且遇到大代码库的时候,语言服务器也需要更多时间去解析文件和关系。所以,这个就是精确的代价。

所以,这些工具在权衡之后,选择可扩展的设计,让用户来决定要不要安装。我的建议是,如果你的项目比较大,那还是安装吧,会有很实在的提升。

OK,以上就是本期内容。想了解AI,想成为超级个体,想找到志同道合的人,就来我们newtype社群。那咱们下期见!