Serena: бесплатный MCP-инструмент для семантического поиска и редактирования кода

Общее введение

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

Serena:语义检索和编辑代码的免费MCP工具

 

Список функций

  • Семантический поиск: поиск символов, ссылок или определений на основе смысла кода.
  • Редактирование кода: поддержка вставки, замены и удаления блоков кода с точными операциями.
  • Выполнение команд: запустите тесты или скрипты в проекте и посмотрите результаты.
  • Обзор проекта: отображает краткую информацию о структуре каталогов и содержимом файлов.
  • Поддержка нескольких языков: прямая поддержка Python, Java, TypeScript, косвенная поддержка большего количества языков.
  • Память: сохранение записей анализа для последующего использования.
  • Интеграция LLM: через MCP возможно Agno Фреймворк работает с языковой моделью.
  • Открытый исходный код и бесплатность: для использования не требуется API-ключ или оплата.

 

Использование помощи

Установка и использование Serena состоит из нескольких этапов, но в целом это несложно. Ниже приводится подробное описание установки, настройки и работы с основными функциями.

Процесс установки

  1. Проверка окружения
    Для Serena требуется Python 3.11. Откройте терминал и введите:
python --version

Если у вас версия ниже 3.11, перейдите на сайт Python, чтобы загрузить и установить ее.

  1. Скачать проект
    Перейдите на сайт https://github.com/oraios/serena, нажмите на "Код" и скопируйте ссылку HTTPS. Запустите ее в терминале:
git clone https://github.com/oraios/serena.git

Проект будет загружен локально.

  1. Монтажные инструменты uv
    Serena использует uv для управления зависимостями. Установить uv можно на сайте: https://docs.astral.sh/uv/getting-started/installation/. Запустите его, например, в Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Установка зависимостей
    Перейдите в каталог проектов:
cd serena

Установите основные зависимости:

uv pip install -e .

Если вы хотите использовать фреймворк Agno, установите все его зависимости:

uv pip install --all-extras -e .
  1. Элементы конфигурации
    Скопируйте файл конфигурации примера:
cp myproject.demo.yml myproject.yml

компилятор myproject.ymlУстановка:

  • project_root: Путь к вашему коду, например. /home/user/mycode.
  • language: Тип языка, например. python.
  • ignored_dirs: Игнорируйте такие папки, как .git.
    Сохраните файл.

метод активации

Serena поддерживает два основных типа использования: сервер MCP и фреймворк Agno.

Сервер MCP (с рабочим столом Claude)

  1. Установка Claude Desktop
    Загрузите по адресу https://claude.ai/download для Windows и macOS.
  2. Настройка 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 обращают внимание на двойной обратный слеш (\).

  1. активировать (план)
    Сохраните и перезапустите Claude Desktop. В интерфейсе появится инструмент Serena (с маленьким значком молотка).

Агно каркас

  1. Установка пользовательского интерфейса
    Скачать Agno UI:

    npx create-agent-ui@latest
    

    или ручное клонирование:

    git clone https://github.com/agno-agi/agent-ui.git
    cd agent-ui
    pnpm install
    pnpm dev
    
  2. Конфигурационная среда
    В директории Serena скопируйте .env.example из-за .envЕсли вы используете платную модель, введите ключ API (если вы используете платную модель).
  3. Начните Агно.
    Пробежка по каталогу Serena:

    uv run python scripts/agno_agent.py
    

    По умолчанию используется модель Claude, которую можно изменить на другую в скрипте.

  4. Подключение к пользовательскому интерфейсу
    Откройте пользовательский интерфейс Agno в браузере (обычно http://localhost:5173) и подключитесь к агенту Agno.

Основная функция Эксплуатация

семантический поиск

Пытаюсь найти ссылку на определенную функцию:

  1. Введите запрос в интерфейсе Claude или Agno, например "Найти my_function цитирования".
  2. Серена, позвони. find_symbolкоторый возвращает определение функции и местоположение ссылки.

редактор кода

Вставьте новый код:

  1. расход или издержки read_file Посмотреть документ:
    read_file path/to/file.py
    
  2. расход или издержки insert_at_line Вставьте, например, добавьте код в строку 5:
    insert_at_line path/to/file.py 5 'print("Test")'
    
  3. Проверьте файл, чтобы подтвердить изменения.

Выполнить команду

Запустите тест:

  1. Вход:
    execute_shell_command 'pytest tests/'
    
  2. Сирена выполняет и возвращает результат. Если что-то пошло не так, она предлагает решение.

Функциональное управление

Обзор проекта

Быстрое понимание структуры кода:

  1. Вход:
    get_dir_overview
    
  2. Serena возвращает файлы и символы верхнего уровня в каталоге.

Автоматизированные анализы и рекомендации

Анализ проблемы:

  1. После выполнения теста с think_about_collected_information::
    think_about_collected_information
    
  2. Сирена предлагает исправления на основе журналов или выходных данных.

предостережение

  • проблема пути: Используйте абсолютные пути, чтобы избежать ошибок относительных путей.
  • безопасность: Режим "Агно".execute_shell_command Подтверждение не требуется. Обращайтесь осторожно.
  • журнал (вычисления): Включить окно ведения журнала (в myproject.yml управление инвестициями show_logs: true) для облегчения отладки.
  • контроль версий: Во избежание случайной потери рекомендуется хранить код в Git.

Выполнив эти действия, вы сможете легко использовать Serena и повысить эффективность программирования.

 

сценарий применения

  1. Быстрые исправления ошибок
    Если тест не удался, Серена запускает скрипт, анализирует журналы и предлагает изменения в коде, подходящие для экстренного исправления.
  2. Знакомство с проектами с открытым исходным кодом
    Используйте Serena для анализа незнакомых кодовых баз, создавая обзор структуры и быстро разбираясь с основной логикой.
  3. Прототипирование
    Отдельные разработчики используют Serena для вставки кода, запуска тестов и быстрой проверки идей.

 

QA

  1. Является ли Сирена полностью бесплатной?
    Да, он с открытым исходным кодом и не требует подписки. Используйте его в сочетании с бесплатным LLM, например Claude Free Edition.
  2. Какие языки поддерживаются?
    Прямая поддержка Python, Java, TypeScript. Косвенная поддержка Ruby, Go, C# (требуется ручная настройка, не полностью протестировано).
  3. Как вы справляетесь с большими проектами?
    Serena эффективно анализирует код с помощью LSP. Рекомендуемая конфигурация ignored_dirs Игнорируйте лишние папки.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...