AI Personal Learning
und praktische Anleitung
CyberKnife-Zeichenspiegel

Serena: ein kostenloses MCP-Tool für die semantische Suche und Bearbeitung von Code

Allgemeine Einführung

Serena ist ein kostenloses und quelloffenes Programmiertool, das vom Oraios AI-Team entwickelt und auf GitHub gehostet wird. Es ist ein leistungsstarker Code-Assistent, der direkt in Ihrer Codebasis arbeitet und Entwicklern hilft, Code zu analysieren, zu bearbeiten und auszuführen.Serena ermöglicht die semantische Analyse durch das Language Server Protocol (LSP), das ein schnelles Verständnis der Codestruktur ermöglicht. Serena lässt sich auch mit großen Sprachmodellen (LLMs) integrieren, z. B. Claude Serena wurde entwickelt, um Entwickler von teuren Tool-Abhängigkeiten zu befreien und praktische, effiziente Programmierunterstützung zu bieten. Es ist für einzelne Entwickler, kleine Teams und sogar große Projekte geeignet.

Serena: Ein kostenloses MCP-Tool für die semantische Suche und Bearbeitung von Code-1


 

Funktionsliste

  • Semantische Suche: Suche nach Symbolen, Verweisen oder Definitionen auf der Grundlage der Bedeutung des Codes.
  • Codebearbeitung: Unterstützung für das Einfügen, Ersetzen und Löschen von Codeblöcken mit präziser Bedienung.
  • Befehlsausführung: Führen Sie Tests oder Skripte im Projekt aus und sehen Sie die Ergebnisse.
  • Projektübersicht: Zeigt eine Zusammenfassung der Verzeichnisstruktur und des Dateiinhalts an.
  • Mehrsprachige Unterstützung: direkte Unterstützung für Python, Java, TypeScript, indirekte Unterstützung für weitere Sprachen.
  • Speichermöglichkeit: Speichern von Analysedaten zur späteren Verwendung.
  • LLM-Integration: über MCP vielleicht Agno Der Rahmen arbeitet mit dem Sprachmodell.
  • Offener Quellcode und kostenlos: kein API-Schlüssel und keine Zahlung erforderlich für die Nutzung.

 

Hilfe verwenden

Die Installation und Verwendung von Serena erfordert einige Schritte, ist aber insgesamt nicht schwierig. Im Folgenden wird detailliert beschrieben, wie Sie Serena installieren, konfigurieren und seine Hauptfunktionen nutzen können.

Einbauverfahren

  1. Überprüfung der Umgebung
    Serena erfordert Python 3.11. Öffnen Sie ein Terminal und geben Sie ein:
python --version

Wenn Sie eine niedrigere Version als 3.11 haben, gehen Sie auf die Python-Website, um sie herunterzuladen und zu installieren.

  1. Projekt herunterladen
    Gehen Sie auf https://github.com/oraios/serena, klicken Sie auf "Code" und kopieren Sie den HTTPS-Link. Führen Sie ihn in einem Terminal aus:
git clone https://github.com/oraios/serena.git

Das Projekt wird lokal heruntergeladen.

  1. Installationswerkzeuge uv
    Serena verwendet uv zur Verwaltung von Abhängigkeiten. Um uv zu installieren, besuchen Sie bitte: https://docs.astral.sh/uv/getting-started/installation/. Führen Sie es zum Beispiel unter Linux/macOS aus:
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Installation von Abhängigkeiten
    Rufen Sie den Projektkatalog auf:
cd serena

Installieren Sie grundlegende Abhängigkeiten:

uv pip install -e .

Wenn Sie das Agno-Framework verwenden möchten, installieren Sie alle Abhängigkeiten:

uv pip install --all-extras -e .
  1. Konfigurationselemente
    Kopieren Sie die Beispielkonfigurationsdatei:
cp myproject.demo.yml myproject.yml

Compiler myproject.ymlEinstellung:

  • project_root: Ihr Code-Pfad, z.B. /home/user/mycode.
  • languageSprachtyp, z. B. python.
  • ignored_dirsIgnorieren von Ordnern wie .git.
    Speichern Sie die Datei.

Aktivierungsverfahren

Serena unterstützt im Wesentlichen zwei Arten der Nutzung: den MCP-Server und das Agno-Framework.

MCP Server (mit Claude Desktop)

  1. Installation von Claude Desktop
    Download unter https://claude.ai/download für Windows und macOS.
  2. MCP konfigurieren
    Öffnen Sie Claude Desktop, gehen Sie zu "Datei > Einstellungen > Entwickler > MCP-Server > Konfig bearbeiten", bearbeiten Sie claude_desktop_config.jsonHinzufügen:
{
"mcpServers": {
"serena": {
"command": "/path/to/uv",
"args": ["run", "--directory", "/path/to/serena", "serena-mcp-server", "/path/to/myproject.yml"]
}
}
}

Oberbefehlshaber (Militär) /path/to/uv im Gesang antworten /path/to/serena Windows-Benutzer beachten den doppelten Backslash (\).

  1. aktivieren (einen Plan)
    Speichern Sie und starten Sie Claude Desktop neu. Auf der Benutzeroberfläche wird das Werkzeug Serena (mit dem kleinen Hammersymbol) angezeigt.

Agno-Rahmen

  1. Installieren der Benutzeroberfläche
    Agno UI herunterladen:

    npx create-agent-ui@latest
    

    oder manuelles Klonen:

    git clone https://github.com/agno-agi/agent-ui.git
    cd agent-ui
    pnpm install
    pnpm dev
    
  2. Konfiguration der Umgebung
    Kopieren Sie in das Serena-Verzeichnis .env.example wegen .envWenn Sie ein kostenpflichtiges Modell verwenden, geben Sie den API-Schlüssel ein (wenn Sie ein kostenpflichtiges Modell verwenden).
  3. Starten Sie Agno.
    Lauf im Serena-Katalog:

    uv run python scripts/agno_agent.py
    

    Claude wird standardmäßig verwendet und kann im Skript auf ein anderes Modell geändert werden.

  4. Verbinden mit der UI
    Öffnen Sie die Agno-Benutzeroberfläche in Ihrem Browser (normalerweise http://localhost:5173) und verbinden Sie sich mit dem Agno-Agenten.

Kernfunktion Betrieb

semantischer Abruf

Ich versuche, einen Verweis auf eine bestimmte Funktion zu finden:

  1. Geben Sie in der Claude- oder Agno-Oberfläche eine Anfrage ein, z. B. "Suchen my_function des Zitats".
  2. Serena, ruf an. find_symboldie die Funktionsdefinition und den Referenzort zurückgibt.

Code-Editor

Neuen Code einfügen:

  1. Kosten oder Aufwand read_file Dokument anzeigen:
    read_file path/to/file.py
    
  2. Kosten oder Aufwand insert_at_line Fügen Sie z. B. in Zeile 5 einen Code ein:
    insert_at_line path/to/file.py 5 'print("Test")'
    
  3. Überprüfen Sie die Datei, um die Änderungen zu bestätigen.

Befehl ausführen

Führen Sie den Test durch:

  1. Eingabe:
    execute_shell_command 'pytest tests/'
    
  2. Serena führt das Programm aus und gibt das Ergebnis zurück. Wenn etwas schief geht, schlägt es eine Lösung vor.

Featured Function Bedienung

Überblick über das Projekt

Verstehen Sie schnell die Struktur des Codes:

  1. Eingabe:
    get_dir_overview
    
  2. Serena gibt die Dateien und Symbole der obersten Ebene im Verzeichnis zurück.

Automatisierte Analysen und Empfehlungen

Analyse des Problems:

  1. Nach der Durchführung des Tests mit think_about_collected_information::
    think_about_collected_information
    
  2. Serena schlägt anhand von Protokollen oder Ausgaben Korrekturen vor.

caveat

  • Leitwegproblem: Verwenden Sie absolute Pfade, um relative Pfadfehler zu vermeiden.
  • SicherheitAgno-Modus.execute_shell_command Eine Bestätigung ist nicht erforderlich. Vorsichtig behandeln.
  • log (Rechnen)Aktivieren Sie das Protokollierungsfenster (im Fenster myproject.yml Investitionsmanagement show_logs: true), um die Fehlersuche zu erleichtern.
  • VersionskontrolleEs wird empfohlen, Ihren Code in Git zu verwalten, um einen versehentlichen Verlust zu vermeiden.

Mit diesen Schritten können Sie Serena problemlos verwenden und Ihre Programmiereffizienz verbessern.

 

Anwendungsszenario

  1. Schnelle Fehlerbehebungen
    Wenn der Test fehlschlägt, führt Serena das Skript aus, analysiert die Protokolle und schlägt Code-Änderungen vor, die für eine Notfallbehebung geeignet sind.
  2. Lernen über Open-Source-Projekte
    Mit Serena können Sie unbekannte Codebasen analysieren, sich einen Überblick über die Struktur verschaffen und die Kernlogik schnell in den Griff bekommen.
  3. Prototyping
    Einzelne Entwickler verwenden Serena, um Code einzufügen, Tests durchzuführen und Ideen schnell zu validieren.

 

QA

  1. Ist Serena völlig frei?
    Ja, es ist Open Source und erfordert kein Abonnement. Verwenden Sie es in Verbindung mit einem kostenlosen LLM wie Claude Free Edition.
  2. Welche Sprachen werden unterstützt?
    Direkte Unterstützung für Python, Java, TypeScript. Indirekte Unterstützung für Ruby, Go, C# (manuelle Konfiguration erforderlich, nicht vollständig getestet).
  3. Wie gehen Sie mit großen Projekten um?
    Serena analysiert Code effizient mit LSP. Empfohlene Konfiguration ignored_dirs Ignorieren Sie überflüssige Ordner.
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Serena: ein kostenloses MCP-Tool für die semantische Suche und Bearbeitung von Code
de_DEDeutsch