如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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 方面发挥了重要作用。
来自真实用户的反馈,见证轩辕镜像的优质服务