Serena: бесплатный MCP-инструмент для семантического поиска и редактирования кода
Общее введение
Serena - это бесплатный инструмент программирования с открытым исходным кодом, разработанный командой Oraios AI и размещенный на GitHub. Это мощный помощник, который работает непосредственно в вашей кодовой базе, помогая разработчикам анализировать, редактировать и выполнять код. Serena позволяет проводить семантический анализ с помощью протокола Language Server Protocol (LSP), что обеспечивает быстрое понимание структуры кода. Она также интегрируется с большими языковыми моделями (LLM), такими как Клод Serena призвана освободить разработчиков от дорогостоящих зависимостей от инструментов и обеспечить практичную, эффективную поддержку программирования. Она подходит для индивидуальных разработчиков, небольших команд и даже крупных проектов.

Список функций
- Семантический поиск: поиск символов, ссылок или определений на основе смысла кода.
- Редактирование кода: поддержка вставки, замены и удаления блоков кода с точными операциями.
- Выполнение команд: запустите тесты или скрипты в проекте и посмотрите результаты.
- Обзор проекта: отображает краткую информацию о структуре каталогов и содержимом файлов.
- Поддержка нескольких языков: прямая поддержка Python, Java, TypeScript, косвенная поддержка большего количества языков.
- Память: сохранение записей анализа для последующего использования.
- Интеграция LLM: через MCP возможно Agno Фреймворк работает с языковой моделью.
- Открытый исходный код и бесплатность: для использования не требуется API-ключ или оплата.
Использование помощи
Установка и использование Serena состоит из нескольких этапов, но в целом это несложно. Ниже приводится подробное описание установки, настройки и работы с основными функциями.
Процесс установки
- Проверка окружения
Для Serena требуется Python 3.11. Откройте терминал и введите:
python --version
Если у вас версия ниже 3.11, перейдите на сайт Python, чтобы загрузить и установить ее.
- Скачать проект
Перейдите на сайт https://github.com/oraios/serena, нажмите на "Код" и скопируйте ссылку HTTPS. Запустите ее в терминале:
git clone https://github.com/oraios/serena.git
Проект будет загружен локально.
- Монтажные инструменты uv
Serena использует uv для управления зависимостями. Установить uv можно на сайте: https://docs.astral.sh/uv/getting-started/installation/. Запустите его, например, в Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Установка зависимостей
Перейдите в каталог проектов:
cd serena
Установите основные зависимости:
uv pip install -e .
Если вы хотите использовать фреймворк Agno, установите все его зависимости:
uv pip install --all-extras -e .
- Элементы конфигурации
Скопируйте файл конфигурации примера:
cp myproject.demo.yml myproject.yml
компилятор myproject.yml
Установка:
project_root
: Путь к вашему коду, например./home/user/mycode
.language
: Тип языка, например.python
.ignored_dirs
: Игнорируйте такие папки, как.git
.
Сохраните файл.
метод активации
Serena поддерживает два основных типа использования: сервер MCP и фреймворк Agno.
Сервер MCP (с рабочим столом Claude)
- Установка Claude Desktop
Загрузите по адресу https://claude.ai/download для Windows и macOS. - Настройка MCP
Откройте Claude Desktop, перейдите в меню "Файл > Настройки > Разработчик > MCP-серверы > Редактировать конфигурацию", отредактируйтеclaude_desktop_config.json
Добавить:
{
"mcpServers": {
"serena": {
"command": "/path/to/uv",
"args": ["run", "--directory", "/path/to/serena", "serena-mcp-server", "/path/to/myproject.yml"]
}
}
}
главнокомандующий (военный) /path/to/uv
ответить пением /path/to/serena
Замените путь на фактический. Пользователи Windows обращают внимание на двойной обратный слеш (\).
- активировать (план)
Сохраните и перезапустите Claude Desktop. В интерфейсе появится инструмент Serena (с маленьким значком молотка).
Агно каркас
- Установка пользовательского интерфейса
Скачать Agno UI:npx create-agent-ui@latest
или ручное клонирование:
git clone https://github.com/agno-agi/agent-ui.git cd agent-ui pnpm install pnpm dev
- Конфигурационная среда
В директории Serena скопируйте.env.example
из-за.env
Если вы используете платную модель, введите ключ API (если вы используете платную модель). - Начните Агно.
Пробежка по каталогу Serena:uv run python scripts/agno_agent.py
По умолчанию используется модель Claude, которую можно изменить на другую в скрипте.
- Подключение к пользовательскому интерфейсу
Откройте пользовательский интерфейс Agno в браузере (обычно http://localhost:5173) и подключитесь к агенту Agno.
Основная функция Эксплуатация
семантический поиск
Пытаюсь найти ссылку на определенную функцию:
- Введите запрос в интерфейсе Claude или Agno, например "Найти
my_function
цитирования". - Серена, позвони.
find_symbol
который возвращает определение функции и местоположение ссылки.
редактор кода
Вставьте новый код:
- расход или издержки
read_file
Посмотреть документ:read_file path/to/file.py
- расход или издержки
insert_at_line
Вставьте, например, добавьте код в строку 5:insert_at_line path/to/file.py 5 'print("Test")'
- Проверьте файл, чтобы подтвердить изменения.
Выполнить команду
Запустите тест:
- Вход:
execute_shell_command 'pytest tests/'
- Сирена выполняет и возвращает результат. Если что-то пошло не так, она предлагает решение.
Функциональное управление
Обзор проекта
Быстрое понимание структуры кода:
- Вход:
get_dir_overview
- Serena возвращает файлы и символы верхнего уровня в каталоге.
Автоматизированные анализы и рекомендации
Анализ проблемы:
- После выполнения теста с
think_about_collected_information
::think_about_collected_information
- Сирена предлагает исправления на основе журналов или выходных данных.
предостережение
- проблема пути: Используйте абсолютные пути, чтобы избежать ошибок относительных путей.
- безопасность: Режим "Агно".
execute_shell_command
Подтверждение не требуется. Обращайтесь осторожно. - журнал (вычисления): Включить окно ведения журнала (в
myproject.yml
управление инвестициямиshow_logs: true
) для облегчения отладки. - контроль версий: Во избежание случайной потери рекомендуется хранить код в Git.
Выполнив эти действия, вы сможете легко использовать Serena и повысить эффективность программирования.
сценарий применения
- Быстрые исправления ошибок
Если тест не удался, Серена запускает скрипт, анализирует журналы и предлагает изменения в коде, подходящие для экстренного исправления. - Знакомство с проектами с открытым исходным кодом
Используйте Serena для анализа незнакомых кодовых баз, создавая обзор структуры и быстро разбираясь с основной логикой. - Прототипирование
Отдельные разработчики используют Serena для вставки кода, запуска тестов и быстрой проверки идей.
QA
- Является ли Сирена полностью бесплатной?
Да, он с открытым исходным кодом и не требует подписки. Используйте его в сочетании с бесплатным LLM, например Claude Free Edition. - Какие языки поддерживаются?
Прямая поддержка Python, Java, TypeScript. Косвенная поддержка Ruby, Go, C# (требуется ручная настройка, не полностью протестировано). - Как вы справляетесь с большими проектами?
Serena эффективно анализирует код с помощью LSP. Рекомендуемая конфигурацияignored_dirs
Игнорируйте лишние папки.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...