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.
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
- Ü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.
- 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.
- 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
- 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 .
- Konfigurationselemente
Kopieren Sie die Beispielkonfigurationsdatei:
cp myproject.demo.yml myproject.yml
Compiler myproject.yml
Einstellung:
project_root
: Ihr Code-Pfad, z.B./home/user/mycode
.language
Sprachtyp, z. B.python
.ignored_dirs
Ignorieren 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)
- Installation von Claude Desktop
Download unter https://claude.ai/download für Windows und macOS. - MCP konfigurieren
Öffnen Sie Claude Desktop, gehen Sie zu "Datei > Einstellungen > Entwickler > MCP-Server > Konfig bearbeiten", bearbeiten Sieclaude_desktop_config.json
Hinzufü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 (\).
- 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
- 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
- Konfiguration der Umgebung
Kopieren Sie in das Serena-Verzeichnis.env.example
wegen.env
Wenn Sie ein kostenpflichtiges Modell verwenden, geben Sie den API-Schlüssel ein (wenn Sie ein kostenpflichtiges Modell verwenden). - 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.
- 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:
- Geben Sie in der Claude- oder Agno-Oberfläche eine Anfrage ein, z. B. "Suchen
my_function
des Zitats". - Serena, ruf an.
find_symbol
die die Funktionsdefinition und den Referenzort zurückgibt.
Code-Editor
Neuen Code einfügen:
- Kosten oder Aufwand
read_file
Dokument anzeigen:read_file path/to/file.py
- 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")'
- Überprüfen Sie die Datei, um die Änderungen zu bestätigen.
Befehl ausführen
Führen Sie den Test durch:
- Eingabe:
execute_shell_command 'pytest tests/'
- 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:
- Eingabe:
get_dir_overview
- Serena gibt die Dateien und Symbole der obersten Ebene im Verzeichnis zurück.
Automatisierte Analysen und Empfehlungen
Analyse des Problems:
- Nach der Durchführung des Tests mit
think_about_collected_information
::think_about_collected_information
- 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
Investitionsmanagementshow_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
- 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. - 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. - Prototyping
Einzelne Entwickler verwenden Serena, um Code einzufügen, Tests durchzuführen und Ideen schnell zu validieren.
QA
- 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. - 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). - Wie gehen Sie mit großen Projekten um?
Serena analysiert Code effizient mit LSP. Empfohlene Konfigurationignored_dirs
Ignorieren Sie überflüssige Ordner.