oraios/serena
A powerful MCP toolkit for coding, providing semantic retrieval and editing capabilities - the IDE for your agent
Serena – 为 AI 编码代理设计的 IDE 风格工具包
它是什么 – Serena 是一个服务器端的“工具箱”,为大型语言模型代理提供 IDE 级别的能力,例如符号感知的代码搜索、跨文件重构、安全编辑,以及(通过 JetBrains 插件)交互式调试。它不包含自己的 LLM;相反,它与任何支持 Model Context Protocol (MCP) 的客户端通信 – 例如 Claude Code、Codex CLI、VS Code AI 助手等。
为何重要 – 目前的代理通常操作原始文本,这使得大规模变更容易出错。Serena 将代理提升到符号级别,让它理解声明、引用、层次结构,并像人类开发者一样执行原子重构。README 报告指出,使用 Serena 的代理将典型任务的步骤数减少了 8-12 步,并感觉“更敏锐、更冷静”。
核心功能
| 类别 | 功能说明 |
|---|---|
| 检索 | 查找符号、获取符号大纲、定位引用、查询外部项目、诊断 – 全部在符号级别。 |
| 重构 | 仅符号重命名(LSP)、使用 JetBrains 插件进行完整重命名/移动/内联/删除。 |
| 符号编辑 | 替换符号主体、在符号前后插入、安全删除 – 无需正则表达式技巧。 |
| 调试 (仅 JetBrains) | REPL 风格的断点设置、变量检查、表达式评估。 |
| 基本工具 | 正则表达式搜索、替换、目录/文件列表、文件读取、shell 命令执行。 |
| 记忆系统 | 简单的持久化存储,让代理能跨会话记住信息。 |
| 可配置 | 基于 YAML 的配置层(全局、每个项目、每个客户端、动态片段)。 |
| 后端 | • 语言服务器模式 – 使用任何 LSP 服务器(涵盖超过 40 种语言)。 • JetBrains 插件 – 利用 JetBrains IDE 的完整分析引擎(付费,提供免费试用)。 |
运作方式
- 安装
serena-agent工具,使用以 Python 为中心的包管理器 uv(uv tool install -p 3.13 serena-agent)。 - 运行
serena init启动 MCP 服务器(默认 LSP 后端),或运行serena init -b JetBrains使用 JetBrains 插件。 - 配置你的 AI 客户端(Claude Code、Codex、VS Code AI 扩展等)以启动或指向 MCP 服务器。客户端接着发送工具使用请求给 Serena,Serena 执行语义操作并返回结果。
- 代理可以串联这些工具(例如,查找符号 → 重命名 → 提交)来完成复杂的开发工作流程。
谁应该使用
- 正在构建代理式编码助手的开发者,需要可靠、符号感知的操作。
- 评估基于 LLM 的代码生成管线的研究人员 – Serena 为实验提供了可重现的“IDE 层”。
- 拥有大型 monorepo 的团队,其中跨文件重构和依赖导航很常见。
快速开始(来自 README)
# 1. 安装 uv(如果你还没有)
# 2. 安装 Serena
uv tool install -p 3.13 serena-agent
# 3. 初始化服务器(默认 LSP 后端)
serena init
# 4. 按照用户指南将你的 MCP 启用客户端指向服务器
使用 LSP 后端时可能需要额外的语言特定依赖。
文档与社区
- 完整文档 – https://oraios.github.io/serena/
- Discord – https://discord.com/invite/cVUNQmnV4r(支持与讨论)
- 视频介绍 – README 中的 YouTube 链接。
许可
- 核心 SolidLSP 组件 – MIT。
- Serena 应用程序的其余部分 – GPL-3.0-or-later(合并发布时使用 GPL)。
- 贡献需要签署 CLA。
总结 – Serena 是一个真正的开源项目,为 AI 编码代理提供 IDE 级别、符号级别的工具,使大规模自动化代码操作变得实用且可靠。
相关
- 项目
- 项目
- 项目
- 项目
- 项目