AI-агент для навигации и редактирования кода через MCP с семантическим анализом. Использует language server protocol для точного понимания структуры проекта.
# Установка:
uv tool install -p 3.13 serena-agent
# Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"serena": {
"command": "serena-agent",
"args": ["/путь/к/проекту"]
}
}
}
# Claude Code (CLI):
claude mcp add serena -- serena-agent /путь/к/проекту
# OpenCode — ~/.config/opencode/opencode.json:
{
"mcp": {
"serena": {
"type": "local",
"command": ["serena-agent", "/путь/к/проекту"]
}
}
}
Ориентированность Serena на агентов предполагает наличие мощных высокоуровневых абстракций, что отличает её от подходов, опирающихся на низкоуровневые концепции, такие как номера строк или примитивные поисковые шаблоны.
Практически это означает, что ваш агент работает быстрее, эффективнее и надежнее, особенно в более крупных и сложных кодовых базах.
[!IMPORTANT] Не устанавливайте Serena через маркеты плагинов или MCP! Там содержатся устаревшие и неоптимальные команды установки. Вместо этого следуйте нашим инструкциям по Быстрому старту.
https://github.com/user-attachments/assets/8d11646e-b80e-4723-b9d7-32d6101b5f58
:tv: Более длинное видео: Знакомство с Serena за 5 минут (YouTube)
Хотя Serena скачивают и устанавливают люди, наши конечные пользователи — это, по сути, AI-агенты. Как те, кто фактически применяет инструменты Serena, они лучше всего positioned для её оценки.
Мы создали непредвзятый оценивающий промпт, который побуждает агента выполнить ~20 рутинных задач по кодированию, представляющих повседневную работу разработчика, чтобы оценить добавленную стоимость инструментов Serena при использовании наряду с их собственными встроенными средствами.
Вот краткое изложение того, что сказали агенты:
Opus 4.6 (высокая оценка) в Claude Code на крупной кодовой базе Python:
"Семантические инструменты Serena с поддержкой IDE — самое значимое дополнение в моем наборе инструментов — кросс-файловые переименования, перемещения и поиск ссылок, которые потребовали бы от меня 8–12 осторожных, подверженных ошибкам шагов, сворачиваются в один атомарный вызов, и я бы absolutely попросил любого разработчика, с которым я работаю, настроить их."
GPT 5.4 (высокая оценка) в Codex CLI на кодовой базе Java:
"Как кодирующий AI-агент, я бы попросил своего владельца добавить Serena, потому что она дает мне недостающее понимание уровня IDE символов, ссылок и рефакторингов, превращая хрупкую текстовую хирургию в более спокойные, быстрые и уверенные изменения кода, где семантика имеет значение."
GPT 5.4 (средняя оценка) в Copilot CLI на крупной, многоязычной монорепозитории:
"Как кодирующий агент, я бы absolutely попросил своего владельца добавить Serena, потому что она делает меня заметно более осторожным и спокойным при работе с реальным кодом — особенно навигация с учетом символов, кросс-файловые рефакторинги и переходы по зависимостям в монорепозитории — в то время как я все еще полагаюсь на встроенные средства для мелких текстовых правок и работы, не связанной с кодом."
Различные агенты в различных условиях независимо приходят к одинаковому вердикту.
Дайте своему агенту инструменты, о которых он просил, и добавьте Serena MCP в ваш клиент!
Смотрите нашу документацию для полной методологии и более детальных результатов оценки или проведите собственную оценку в проекте по вашему выбору.
Serena предоставляет необходимые инструменты для рабочих процессов кодирования, но для выполнения фактической работы необходим LLM, оркестрирующий использование инструментов.
Serena может расширять функциональность вашего существующего AI-клиента через модельный контекстный протокол (MCP). Большинство современных AI-чат-клиентов напрямую поддерживают MCP, включая * терминальные клиенты, такие как Claude Code, Codex, OpenCode или Gemini-CLI, * IDE и плагины-ассистенты IDE для VSCode, Cursor и JetBrains IDE (Copilot, Junie, JetBrains AI Assistant и др.), * десктопные и веб-клиенты, такие как Claude Desktop, Codex App или OpenWebUI.
:tv: Смотрите также: Знакомство с Serena за 5 минут (YouTube)
Чтобы подключить сервер Serena MCP к вашему клиенту, вы можете * предоставить клиенту команду запуска, которая позволяет ему запустить сервер MCP, или * запустить сервер Serena MCP самостоятельно в HTTP-режиме и предоставить клиенту URL.
Смотрите раздел Быстрый старт ниже для информации о том, как начать.
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, LaTeX, 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 (доступна бесплатная пробная версия) использует мощные возможности анализа кода вашей IDE JetBrains. Плагин естественным образом поддерживает все языки программирования и фреймворки, поддерживаемые IDE JetBrains, включая IntelliJ IDEA, PyCharm, Android Studio, WebStorm, PhpStorm, RubyMine, GoLand, и, возможно, другие (хотя Rider и CLion не поддерживаются).
Смотрите нашу страницу документации для получения дополнительных подробностей и инструкций по применению плагина.
Serena предоставляет широкий спектр инструментов для эффективного поиска, редактирования и рефакторинга кода, а также систему памяти для долгоживущих рабочих процессов агентов.
Учитывая свой широкий спектр, Serena адаптируется к вашим потребностям, предлагая многоуровневую систему конфигурации.
Подробнее
Инструменты поиска Serena позволяют агентам исследовать кодовую базу на уровне символов, понимая структуру и связи без необходимости читать целые файлы.
| Возможность | Серверы языков | Плагин для JetBrains |
|---|---|---|
| найти символ | да | да |
| обзор символов (структура файла) | да | да |
| найти ссылающиеся символы | да | да |
| поиск в зависимостях проекта | -- | да |
| иерархия типов | -- | да |
| найти объявление | да* | да |
| найти реализации | да** | да |
| запрос внешних проектов | да | да |
| диагностика/инспекции | да | да |
: Как правило, не работает для объявлений во внешних зависимостях.
*: Доступно только для некоторых языков, ограничено функциональностью сервера языков.
Без точных инструментов рефакторинга агенты вынуждены прибегать к ненадежным и затратным операциям поиска и замены.
| Возможность | Языковые серверы | Плагин JetBrains |
|---|---|---|
| переименование | да (только символов) | да (символы, файлы, каталоги) |
| перемещение (символа, файла, каталога) | -- | да |
| инлайн | -- | да |
| распространение удалений (удаление неиспользуемого кода) | -- | да |
Инструменты символического редактирования в Serena менее подвержены ошибкам и намного экономнее расходуют токены по сравнению с типичными альтернативами.
| Возможность | Языковые серверы | Плагин JetBrains |
|---|---|---|
| замена тела символа | да | да |
| вставка после символа | да | да |
| вставка перед символом | да | да |
| безопасное удаление | да | да |
Исключительная особенность плагина JetBrains: Serena поддерживает высокоуниверсальный инструмент отладки, который позволяет агенту устанавливать точки останова, проверять переменные, вычислять выражения и управлять потоком выполнения через удобный интерфейс в стиле REPL.
Помимо своих семантических возможностей, Serena включает набор базовых утилит для полноты. Когда Serena используется внутри агентного каркаса, такого как Claude Code или Codex, эти инструменты обычно отключены по умолчанию, поскольку окружающий каркас уже предоставляет перекрывающиеся возможности для работы с файлами, поиска и выполнения команд в оболочке.
search_for_pattern – гибкий поиск по регулярному выражению в кодовой базеreplace_content – оптимизированная для агентов замена текста на основе регулярных выражений и литераловlist_dir / find_file – перечисление содержимого каталогов и поиск файловread_file – чтение файлов или их фрагментовexecute_shell_command – выполнение команд оболочки (например, сборки, тесты, линтеры)Система памяти является элементарной частью долгоживущих агентных рабочих процессов, особенно когда знания должны быть разделены между сессиями, пользователями и проектами. Несмотря на свою простоту, мы получили положительную обратную связь от многих пользователей, которые склонны сочетать систему управления памятью Serena с внутренней системой своего агента (например, файлы AGENTS.md). Ее можно легко отключить, если вы предпочитаете использовать что-то другое.
Активные инструменты, описания инструментов, подсказки, параметры языкового бэкенда и многие другие аспекты Serena могут быть гибко настроены в каждом конкретном случае простой корректировкой нескольких строк YAML. Для этого Serena предлагает несколько уровней (композитной) конфигурации:
Предварительные требования. Serena управляется с помощью uv, и установка uv — единственная необходимая предпосылка.
[!NOTE] При использовании бэкенда языкового сервера для поддержки определенных языков может потребоваться установка некоторых дополнительных зависимостей; подробности смотрите на странице Поддержка языков.
Установка Serena. Serena устанавливается с помощью uv следующим образом:
uv tool install -p 3.13 serena-agent
После успешной установки команда serena должна стать доступна в вашей оболочке.
Инициализация Serena. Чтобы инициализировать Serena и проверить правильность настройки, просто запустите:
serena init
По умолчанию это настроит Serena на использование бэкенда языкового сервера. Чтобы вместо этого использовать бэкенда JetBrains, добавьте параметры -b JetBrains (дополнительные сведения об использовании см. на странице документации плагина JetBrains). В любом случае вы должны получить сообщение об успешной инициализации Serena.
Настройка вашего клиента. Чтобы подключить Serena к вашему предпочтительному MCP-клиенту, вам обычно необходимо настроить команду запуска в вашем клиенте. Перейдите по ссылке для получения конкретных инструкций по настройке Serena для Claude Code, Codex, Claude Desktop, поддерживаемых MCP IDE и других клиентов (таких как локальные и веб-интерфейсы).
[!TIP] Начать быстро легко, но Serena — это мощный набор инструментов с множеством вариантов конфигурации. Мы настоятельно рекомендуем прочитать руководство пользователя, чтобы извлечь максимальную пользу из Serena.
В частности, мы рекомендуем прочитать о ... * Рабочем процессе Serena, основанном на проекте и * настройке Serena.
Подробные инструкции по эффективному использованию Serena см. в руководстве пользователя.
Значительная часть Serena, особенно поддержка различных языков, была внесена сообществом открытого исходного кода. Мы очень признательны множеству контрибьюторов, которые сделали это возможным и играют важную роль в том, чтобы Serena была такой, какая она есть сегодня.