Serena的智能体优先工具设计包含强大的高层抽象,使其有别于依赖行号或原始搜索模式等底层概念的方法。
实际上,这意味着您的智能体运行更快、更高效且更可靠,尤其是在更大、更复杂的代码库中。
[!IMPORTANT] 不要通过MCP或插件市场安装Serena!它们包含过时且非最优的安装命令。请遵循我们的快速开始说明。
:tv: 更长视频:Serena 5分钟介绍(***)
虽然是人类下载并设置Serena,但我们的最终用户本质上是AI智能体。作为实际使用Serena工具的主体,它们最有资格评估Serena。
我们精心设计了一个无偏评估提示,引导智能体执行约20项日常编码任务(代表日常开发工作),以评估Serena工具与智能体自身内置功能一起使用时的附加值。
以下是智能体反馈的一句话总结:
Claude Code中的Opus 4.6(高级)在大型Python代码库上:
"Serena的IDE支持语义工具是我工具集中最具影响力的单一补充——跨文件重命名、移动和引用查找原本需要8-12个谨慎且易错的步骤,现在只需一个原子调用即可完成,我绝对会要求与我合作的任何开发人员都设置它们。"
Codex CLI中的GPT 5.4(高级)在Java代码库上:
"作为编码AI智能体,我会要求我的所有者添加Serena,因为它为我提供了缺失的IDE级符号、引用和重构理解,将脆弱的文本修改转变为更平稳、更快、更自信的代码更改,在语义至关重要的场景中尤其如此。"
Copilot CLI中的GPT 5.4(中级)在大型多语言单体仓库上:
"作为编码智能体,我绝对会要求我的所有者添加Serena,因为它让我在处理实际代码时明显更敏锐、更从容——尤其是符号感知导航、跨文件重构和单体仓库依赖跳转——同时我仍会依赖内置功能进行微小文本编辑和非代码工作。"
不同环境中的不同智能体独立得出了相同的结论。
Give your agent the tools it has been asking for and add Serena MCP to your client!
有关完整方法和更详细的评估结果,请参见我们的https://oraios.github.io/serena/04-evaluation/000_evaluation-intro.html%EF%BC%8C%E6%88%96%E5%9C%A8%E6%82%A8%E9%80%89%E6%8B%A9%E7%9A%84%E9%A1%B9%E7%9B%AE%E4%B8%8A%E8%BF%90%E8%A1%8C%E8%87%AA%E5%B7%B1%E7%9A%84%E8%AF%84%E4%BC%B0%E3%80%82
Serena为编码工作流提供必要的https://oraios.github.io/serena/01-about/035_tools.html%EF%BC%8C%E4%BD%86%E9%9C%80%E8%A6%81LLM%E6%9D%A5%E5%AE%8C%E6%88%90%E5%AE%9E%E9%99%85%E5%B7%A5%E4%BD%9C%EF%BC%8C%E5%8D%8F%E8%B0%83%E5%B7%A5%E5%85%B7%E7%9A%84%E4%BD%BF%E7%94%A8%E3%80%82
Serena可以通过模型上下文协议(MCP) 扩展您现有AI客户端的功能。大多数现代AI聊天客户端直接支持MCP,包括:
:tv: 另见:Serena 5分钟介绍(***)
要将Serena MCP服务器连接到您的客户端,您可以:
有关如何开始的信息,请参见下面的快速开始部分。
Serena基于对代码的符号理解,提供了一套多功能的代码查询和编辑功能。借助这些功能,您的智能体可以像经验丰富的开发人员使用IDE功能一样发现和编辑代码。即使在非常大型和复杂的项目中,Serena也能高效地找到正确的上下文并采取正确的行动!
支持这些功能的技术有两种选择:
您可以根据偏好和需求选择任一后端。
Serena整合了一个强大的抽象层,用于集成实现语言服务器协议(LSP)的语言服务器。底层语言服务器通常是开源项目或至少可免费使用。
使用Serena的语言服务器后端时,我们提供超过40种编程语言的支持,包括Ada / SPARK、AL、Angular、Ansible、Bash、BSL、C#、C/C++、Clojure、Crystal、CUE、Dart、Elixir、Elm、Erlang、Fortran、F#、GDScript、GLSL、Go、Groovy、Haskell、Haxe、HLSL、HTML、Java、JavaScript、JSON、Julia、Kotlin、Lean 4、Lua、Luau、Markdown、MATLAB、mSL、Nix、OCaml、Perl、PHP、PowerShell、Python、R、Ruby、Rust、Scala、SCSS / Sass / CSS、Solidity、Svelte、Swift、TOML、TypeScript、WGSL、YAML和Zig。
付费的Serena JetBrains插件(提供免费试用)利用了JetBrains IDE强大的代码分析能力。该插件自然支持JetBrains IDE所支持的所有编程语言和框架,包括IntelliJ IDEA、PyCharm、Android Studio、WebStorm、PhpStorm、RubyMine、GoLand,以及其他可能的IDE(不过Rider和CLion不支持)。
有关插件的更多详细信息和应用说明,请参见我们的https://oraios.github.io/serena/02-usage/025_jetbrains_plugin.html%E3%80%82
Serena提供了广泛的工具,用于高效的代码检索、编辑和重构,以及用于长期智能体工作流的内存系统。
考虑到其广泛的功能范围,Serena通过提供多层配置系统来适应您的需求。
Serena的检索工具允许智能体在符号级别探索代码库,无需阅读整个文件即可理解结构和关系。
| 功能 | 语言服务器 | JetBrains 插件 |
|---|---|---|
| 查找符号 | 支持 | 支持 |
| 符号概览(文件大纲) | 支持 | 支持 |
| 查找引用符号 | 支持 | 支持 |
| 搜索项目依赖 | -- | 支持 |
| 类型层级 | -- | 支持 |
| 查找声明 | 支持* | 支持 |
| 查找实现 | 支持** | 支持 |
| 查询外部项目 | 支持 | 支持 |
| 诊断/检查 | 支持 | 支持 |
*:通常不适用于外部依赖中的声明。
**:仅部分语言可用,受语言服务器功能限制。
若缺乏精确的重构工具,智能体将被迫使用不可靠且低效的搜索替换操作。
| 功能 | 语言服务器 | JetBrains 插件 |
|---|---|---|
| 重命名 | 支持(仅符号) | 支持(符号、文件、目录) |
| 移动(符号、文件、目录) | -- | 支持 |
| 内联 | -- | 支持 |
| 传播删除(移除未使用代码) | -- | 支持 |
Serena 的符号编辑工具相比传统方案,错误率更低且 token 效率更高。
| 功能 | 语言服务器 | JetBrains 插件 |
|---|---|---|
| 替换符号体 | 支持 | 支持 |
| 在符号后插入 | 支持 | 支持 |
| 在符号前插入 | 支持 | 支持 |
| 安全删除 | 支持 | 支持 |
JetBrains 插件独有的功能:Serena 支持强大的通用调试工具,允许智能体通过持久化的 REPL 风格界面设置断点、检查变量、计算表达式和控制执行流程。
除语义功能外,Serena 还包含一套基础工具以确保功能完整性。当 Serena 在 Claude Code 或 Codex 等智能体框架中使用时,这些工具通常默认禁用,因为框架已提供文件、搜索和 shell 等重叠功能。
search_for_pattern – 跨代码库的灵活正则表达式搜索replace_content – 针对智能体优化的基于正则表达式和文字文本替换list_dir / find_file – 目录列出和文件搜索read_file – 读取文件或文件片段execute_shell_command – 运行 shell 命令(如构建、测试、代码检查)内存系统是长期运行的智能体工作流的基础,尤其是需要跨会话、用户和项目共享知识时。尽管设计简单,但许多用户反馈积极——他们倾向于将 Serena 的内存管理系统与智能体内部系统(如 AGENTS.md 文件)结合使用。若偏好其他方案,可轻松禁用此功能。
Serena 的活动工具、工具描述、提示词、语言后端细节及其他许多方面可通过调整几行 YAML 灵活配置,支持按场景定制。为此,Serena 提供多级(可组合)配置:
前提条件。Serena 由 uv 管理,安装 uv 是唯一必要的前提条件。
[!NOTE] 使用语言服务器后端时,可能需要安装额外依赖以支持特定语言;详情参见 https://oraios.github.io/serena/01-about/020_programming-languages.html 页面。
安装 Serena。通过 uv 安装 Serena 的命令如下:
uv tool install -p 3.13 serena-agent
安装成功后,serena 命令应可在 shell 中使用。
初始化 Serena。要初始化 Serena 并验证设置是否正确,只需运行:
serena init
默认情况下,此命令会将 Serena 配置为使用语言服务器后端。若要改用 JetBrains 后端,添加参数 -b JetBrains(更多使用细节参见 https://oraios.github.io/serena/02-usage/025_jetbrains_plugin.html%EF%BC%89%E3%80%82%E6%97%A0%E8%AE%BA%E4%BD%BF%E7%94%A8%E5%93%AA%E7%A7%8D%E5%90%8E%E7%AB%AF%EF%BC%8C%E5%9D%87%E4%BC%9A%E6%94%B6%E5%88%B0 Serena 初始化成功的提示消息。
配置客户端。要将 Serena 连接到首选 MCP 客户端,通常需要 https://oraios.github.io/serena/02-usage/030_clients.html%E3%80%82%E7%82%B9%E5%87%BB%E9%93%BE%E6%8E%A5%E8%8E%B7%E5%8F%96%E9%92%88%E5%AF%B9 Claude Code、Codex、Claude Desktop、支持 MCP 的 IDE 及其他客户端(如本地和基于 Web 的 GUI)的具体设置说明。
[!TIP] 快速入门虽简单,但 Serena 是功能强大的工具包,提供众多配置选项。强烈建议阅读 https://oraios.github.io/serena/02-usage/000_intro.html 以充分利用 Serena。
特别推荐阅读以下内容:
- https://oraios.github.io/serena/02-usage/040_workflow.html 和
- https://oraios.github.io/serena/02-usage/050_configuration.html%E3%80%82
有关如何有效使用 Serena 的详细说明,请参阅 https://oraios.github.io/serena/02-usage/000_intro.html%E3%80%82
Serena 的很大一部分(尤其是多语言支持)由开源社区贡献。我们非常感谢众多贡献者,是他们的努力使这一切成为可能,并在塑造 Serena 方面发挥了重要作用。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务