Serena:给编程智能体一套按符号工作的 IDE 工具
基于语言服务器的编码工具箱:按符号查找定义和引用、重命名、替换函数体,支持 40 多种语言。大仓库里比按行号改文本更稳,也更省 token。
项目与安装文档
查看项目https://github.com/oraios/serena
编程智能体在大仓库里改代码,常见的做法是 grep 一圈、读整个文件、再按行号替换文本,跨文件重命名一个函数要走十几步,还容易漏。Serena 换成 IDE 的思路:它接上语言服务器(LSP),让智能体按“符号”找定义、查引用、改函数体,一次调用完成原本要反复搜索的操作。项目由 Oraios 维护,截至 2026-10-06 约 3 万 star。
能做什么
- 符号级检索:查找符号、文件大纲、查找引用、跳到声明和实现,不必读完整文件。
- 符号级编辑:替换某个函数的函数体、在符号前后插入代码、安全删除,比按行号改文本少出错。
- 重构:语言服务器后端支持符号重命名;付费的 JetBrains 插件后端还支持移动、内联、传播删除,以及断点调试。
- 40 多种语言:Python、TypeScript、Go、Rust、Java、C#、Swift 等常见语言都在列表里,部分语言需要额外安装对应的语言服务器。
- 项目记忆:自带简单的记忆系统,可以跨会话保存项目知识,不需要时能关掉。
适合谁
- 在几十万行的单仓库里让 Claude Code 或 Codex 做跨文件重构的开发者。
- 希望智能体少读整文件、少烧上下文的团队。
接入方式
只需要先装好 uv。安装并初始化:
uv tool install -p 3.13 serena-agent
serena init
serena init 默认使用语言服务器后端,加 -b JetBrains 切到 JetBrains 插件后端。各客户端的启动命令写法见官方文档。
编辑点评
同类的代码检索 MCP 大多做“建索引、给上下文”,Serena 的不同在于它也负责改:编辑操作落在符号上,重命名由语言服务器保证引用一起改。README 特别提醒不要从 MCP 或插件市场安装,那里的命令过时,按官方 Quick Start 来。要注意几点:它带有 execute_shell_command 等基础工具,在 Claude Code 这类自带文件和 shell 工具的环境里默认关闭,在别的客户端使用时要清楚它能执行命令;移动、内联等高级重构和调试只在付费 JetBrains 插件里提供。许可证按组件区分,主程序为 GPL-3.0-or-later,SolidLSP 部分为 MIT。