Allgemeine Einführung
Emigo ist ein von MatthewZMD auf GitHub entwickelter Open-Source-KI-Programmierassistent für Emacs, der Programmierern hilft, Aufgaben wie die Codeanalyse in Emacs durch die Integration eines Large Language Model (LLM) durchzuführen. Emigo ist ein von MatthewZMD auf GitHub entwickelter Open-Source-KI-Programmierassistent für Emacs, der Programmierern dabei hilft, Code in Emacs zu analysieren, zu generieren und zu modifizieren, indem er ein großes Sprachmodell (LLM) integriert.Emigos Kernmerkmal ist eine "Agenten-KI", die nicht nur Text generiert, sondern auch mit dem Projekt durch Werkzeuge interagiert, wie z.B. Dateien lesen, Code schreiben oder Befehle ausführen. Sie kann nicht nur Text generieren, sondern auch mit dem Projekt interagieren, indem sie z. B. Dateien liest, Code schreibt oder Befehle ausführt. Entwickelt wurde es von Aider und Cline Emigo ist der Nachfolger von Aidermacs, inspiriert von Tools wie Aidermacs. Derzeit befindet sich Emigo im Betatest und die Funktionen werden noch verfeinert, damit die Entwickler sie ausprobieren und ihr Feedback abgeben können.
Funktionsliste
- Einsatz agentenbasierter WerkzeugeAI wählt und führt Werkzeuge auf der Grundlage von Aufgabenanforderungen aus, z. B. zum Lesen oder Schreiben von Dateien oder zum Ausführen von Befehlen.
- Nahtlose Integration mit EmacsDie Benutzeroberfläche und die Tastenkombinationen entsprechen der Emacs-Erfahrung.
- Unterstützung für mehrere AI-ModelleVerbindung zu Modellen wie OpenRouter, Deepseek usw. über LiteLLM, das für den Benutzer frei verfügbar ist.
- Kontextmanagement (Computertechnik)Automatische Aufzeichnung des Dialogverlaufs und der Projektdateien, um ein kohärentes Gespräch zu gewährleisten.
- Datei-Kontext HinzufügenSchnelles Hinzufügen von Dateien zur KI-Analyse über das "@"-Symbol.
- Erzeugung und Anzeige von Code-PatchesDie von AI zurückgegebenen Code-Änderungen werden zur besseren Übersicht hervorgehoben.
Hilfe verwenden
Emigo ist ein KI-Assistent für Emacs-Benutzer. Hier finden Sie eine detaillierte Anleitung zur Installation und Verwendung, damit Sie schnell loslegen können.
Einbauverfahren
- Überprüfung der Umweltanforderungen
- Benötigt Emacs Version 28 oder höher. Es kann unter https://www.gnu.org/software/emacs/ heruntergeladen und installiert werden.
- Benötigt Python 3.x, das für diejenigen, die es installiert haben, übersprungen werden kann und für diejenigen, die es nicht haben, von https://www.python.org/ bezogen werden kann.
- Emigo herunterladen
Klonen Sie Emigo in das Emacs-Konfigurationsverzeichnis, indem Sie den folgenden Befehl in einem Terminal ausführen:
git clone https://github.com/MatthewZMD/emigo.git ~/.emacs.d/emigo
- Installation von Python-Abhängigkeiten
Wechseln Sie in das Emigo-Verzeichnis und führen Sie es aus:
cd ~/.emacs.d/emigo
pip install -r requirements.txt
Dadurch werden die erforderlichen Python-Bibliotheken, wie z. B. LiteLLM, installiert.
- Emacs konfigurieren
Öffnen Sie die Emacs-Konfigurationsdatei (normalerweise~/.emacs.d/init.el
), fügen Sie den folgenden Code hinzu:
(use-package emigo
:straight (:host github :repo "MatthewZMD/emigo")
:config
(emigo-enable) ;; 自动启动后台进程
:custom
(emigo-model "openrouter/deepseek/deepseek-chat-v3-0324") ;; 设置默认模型
(emigo-base-url "https://openrouter.ai/api/v1") ;; 设置 API 地址
(emigo-api-key (emigo-read-file-content "~/.config/openrouter/key.txt"))) ;; 加载 API 密钥
- Konfiguration::
emigo-model
Auswahl von AI-Modellen, Empfehlungen OpenRouter von Deepseek.emigo-base-url
: Geben Sie die Adresse des API-Dienstes ein.emigo-api-key
Holen Sie den Schlüssel von OpenRouter (https://openrouter.ai) und speichern Sie ihn im angegebenen Pfad.
- Überprüfen der Installation
Nachdem Sie die Konfiguration gespeichert haben, starten Sie Emacs neu.M-x emigo
Wenn ein neuer Puffer erscheint, war die Installation erfolgreich.
Wie zu verwenden
Emigo-Operationen werden hauptsächlich in Emacs durchgeführt, wobei Tastenkombinationen und interaktive Fenster kombiniert werden.
Emigo starten
- Geben Sie im Projektverzeichnis
M-x emigo
Der spezielle Puffer wird nach dem Wagenrücklauf geöffnet. - Wenn Sie sich in einem Git-Repository befinden, verwendet Emigo das Stammverzeichnis des Repositorys als Sitzungspfad. Um das aktuelle Verzeichnis zu verwenden, geben Sie
C-u M-x emigo
.
Eingabeaufforderung
- Geben Sie Ihre Anforderungen in den Puffer ein, zum Beispiel:
请优化 @src/main.py 中的排序函数
- Emigo findet automatisch
src/main.py
und zur Verarbeitung an die KI geschickt.
Hinzufügen von Dateien zum Kontext
- Verweisen Sie auf die Datei mit dem Symbol "@", z. B.
@src/utils.py
Ist dies nicht der Fall, fügt Emigo sie dem Kontext hinzu. - So zeigen Sie die Kontextdatei an: Drücken Sie
C-c C-l
(läuft)emigo-list-context-files
). - So löschen Sie eine Datei: Drücken Sie
C-c C-f
(läuft)emigo-remove-file-from-context
).
Interaktion mit AI
- Sobald die Aufgabe eingegeben ist, analysiert die KI sie und liefert die Ergebnisse. Zum Beispiel:
请帮我调试 @src/main.c 中的内存泄漏
- Die von der KI zurückgegebenen Patches werden als solche hervorgehoben:
- free(ptr);
+ if (ptr) free(ptr);
Prozess der Werkzeugnutzung
- Die agentenbasierte Funktionalität von Emigo wird durch Tools implementiert. Die KI wählt Tools anhand von Aufgaben wie z. B.:
read_file
Lesen Sie den Inhalt der Datei.write_to_file
Schreiben in Datei.execute_command
Befehl ausführen.- AI kann dazu auffordern:
我需要运行 gcc -o test main.c,同意吗?
- drücken.
y
Bestätigen Sie, dass die Ergebnisse nach der Ausführung des Werkzeugs in den Dialog eingegeben werden.
Sitzungsmanagement
- Überprüfen Sie den Kontext: Verwenden Sie
C-c C-l
Zeigt eine Liste der aktuellen Dateien an. - Neustart der Sitzung: Schließen Sie den Puffer und führen Sie die Sitzung erneut durch.
M-x emigo
.
Statusmeldungen zur Entwicklung
- Emigo befindet sich derzeit in der Beta-Phase und kann noch API-Änderungen, instabile Funktionen oder eine unvollständige Dokumentation aufweisen. Es wird empfohlen, dass Sie es nur zu Testzwecken verwenden und Probleme über GitHub melden.
Anwendungsszenario
- Code-Fehlersuche
Wenn Sie in einem C-Projekt einen Absturz feststellen, geben Sie "check @main.c for errors" ein, und die KI wird den Fehler analysieren und eine Lösung vorschlagen. - Rekonstruktion von Dokumenten
Geben Sie "Refactor functions in @src/utils.py" ein und Emigo wird den optimierten Code generieren und den Patch anzeigen. - Befehlsausführung
Geben Sie "compile @src/main.c" in das Projekt ein und die KI wähltexecute_command
Werkzeug Läufegcc
.
QA
- Welche Modelle werden von Emigo unterstützt?
LiteLLM unterstützt mehrere Modelle, z. B. Deepseek von OpenRouter, Anthropic's Claude usw., geben Sie einfach den Modellnamen und die API in der Konfiguration an. - Warum antwortet die Eingabeaufforderung nicht?
Möglicherweise liegt ein ungültiger API-Schlüssel oder ein Netzwerkproblem vor. Überprüfen Sie den Pfad der Schlüsseldatei und die Netzwerkverbindung, um sicherzustellen, dass dieemigo-base-url
Erreichbar. - Wie kann ich Emigo aktualisieren?
existieren~/.emacs.d/emigo
Verzeichnislaufgit pull
und starten Sie dann Emacs neu.