Die Gemini CLI-Erweiterung für Elasticsearch mit Tools und Fähigkeiten

Wir stellen die Erweiterung von Elastic für Googles Gemini CLI vor, mit der Elasticsearch-Daten in Entwickler- und agentischen Workflows gesucht, abgerufen und analysiert werden können.

Wir freuen uns, die Veröffentlichung unserer Elastic-Erweiterung für Googles Gemini CLI ankündigen zu können, mit der Sie die volle Leistungsfähigkeit von Elasticsearch und Elastic Agent Builder direkt in Ihren KI-Entwicklungsworkflow einbringen können. Diese Erweiterung bietet auch mehrere kürzlich entwickelte Agentenfähigkeiten für die Interaktion mit Elasticsearch.

Die Erweiterung ist hier als Open-Source-Projekt verfügbar.

Was ist Gemini CLI, und wie installieren Sie sie?

Gemini CLI ist ein Open-Source-KI-Agent, der Googles Gemini-Modelle direkt in die Befehlszeile bringt. Er ermöglicht Entwicklern, über das Terminal mit KI zu interagieren, um Aufgaben wie das Generieren von Code, das Bearbeiten von Dateien, das Ausführen von Shell-Befehlen und das Abrufen von Informationen aus dem Web durchzuführen.

Im Gegensatz zu typischen Chat-Schnittstellen integriert sich die Gemini CLI in Ihre lokale Entwicklungsumgebung. Das bedeutet, dass sie den Projektkontext versteht, Dateien ändert, Builds oder Tests ausführt und Workflows direkt im Terminal automatisiert. Dies macht sie besonders nützlich für Entwickler, Site Reliability Engineers (SREs) und Engineers, die KI-gestütztes Codieren und Automatisierung wünschen, ohne ihren Befehlszeilen-Workflow zu verlassen.

Gemini CLI kann mit mehreren Paketmanagern installiert werden. Die gängigste Methode ist die Installation über npm:

Wenn Sie sich über alternative Installationsmöglichkeiten informieren möchten, lesen Sie die offizielle Installationsseite.

Starten Sie die CLI nach der Installation durch Ausführen des folgenden Befehls:

Sie sehen einen Bildschirm, wie in Abbildung 1 dargestellt:

Elasticsearch konfigurieren

Wir benötigen eine laufende Elasticsearch-Instanz. Wenn Sie den Model Context Protocol (MCP)-Server verwenden möchten, benötigen Sie zudem Kibana 9.3+. Für die Nutzung der unten beschriebenen Elasticsearch Query Language (ES|QL)-Fähigkeit (esql) ist Kibana nicht erforderlich.

Sie können eine kostenlose Testversion auf Elastic Cloud aktivieren oder es lokal mit dem start-local-Skript installieren:

Dadurch werden Elasticsearch und Kibana auf Ihrem Computer installiert und ein API-Schlüssel generiert, den Sie für die Konfiguration von Gemini CLI verwenden können.

Der API-Schlüssel wird als Ausgabe des vorherigen Befehls angezeigt und in einer .env-Datei im Ordner elastic-start-local gespeichert.

Wenn Sie Elasticsearch lokal (zum Beispiel start-local), und Elastic Agent Builder mit MCP verwenden möchten, müssen Sie auch ein Large Language Model (LLM) verbinden. Lesen Sie diese Dokumentationsseite, um sich über die verschiedenen Optionen zu informieren.

Wenn Sie Elastic Cloud (oder serverless) verwenden, verfügen Sie bereits über eine vorgefertigte LLM-Verbindung.

Installieren Sie die Elasticsearch-Erweiterung

Sie können die Elasticsearch-Erweiterung für Gemini CLI mit folgendem Befehl installieren:

Sie können überprüfen, ob die Erweiterungen erfolgreich installiert wurden, indem Sie Gemini öffnen und den folgenden Befehl ausführen:

Die Elasticsearch-Erweiterung sollte verfügbar sein.

Wenn Sie die MCP-Integration verwenden möchten, müssen Sie die Elasticsearch-Version 9.3 oder höher installiert haben. Sie benötigen die URL Ihres MCP-Servers aus Kibana:

  • Sie erhalten Ihre MCP-Server-URL unter Agenten > Alle Tools anzeigen > MCP verwalten > MCP-Server-URL kopieren.
  • Die URL wird so aussehen: https://your-kibana-instance/api/agent_builder/mcp

Sie benötigen die URL des Elasticsearch-Endpoints. Dies wird üblicherweise oben auf der Kibana Elasticsearch-Seite angezeigt. Wenn Sie Elasticsearch mit start-local ausführen, ist der Endpoint bereits im Schlüssel ES_LOCAL_URL in der .env-Datei start-local hinterlegt.

Sie benötigen auch einen API-Schlüssel. Wenn Sie Elasticsearch mit start-local ausführen, ist der ES_LOCAL_API_KEY in der .env-Datei start-local hinterlegt. Andernfalls können Sie einen API-Schlüssel über die Kibana-Schnittstelle erstellen, wie hier beschrieben:

  • In Kibana: Stack Management > Sicherheit > API-Schlüssel > API-Schlüssel erstellen.
  • Wir empfehlen, nur die Leserechte für den API-Schlüssel festzulegen und so die hier beschriebene Berechtigung feature_agentBuilder.read zu aktivieren.
  • Kopieren Sie den codierten API-Schlüsselwert.

Stellen Sie die erforderlichen Umgebungsvariablen in Ihrer Shell ein:

Installieren Sie den Beispieldatensatz

Sie können den Datensatz für E-Commerce-Bestellungen , der von Kibana verfügbar ist, installieren. Sie enthält einen einzigen Index mit dem Namen kibana_sample_data_ecommerce, der Informationen für 4.675 Bestellungen von einer E-Commerce-Website enthält. Für jede Bestellung haben wir folgende Informationen:

  • Kundeninformationen (Name, Ausweis, Geburtsdatum, E-Mail-Adresse und mehr)
  • Bestelldatum
  • Bestell-ID
  • Produkte (Liste aller Produkte mit Preis, Menge, ID, Kategorie, Rabatt und weiteren Details)
  • SKU
  • Gesamtpreis (ohne Steuern, mit Steuern)
  • Gesamtmenge
  • Geoinformationen (Stadt, Land, Kontinent, Ort, Region)

Um die Beispieldaten zu installieren, öffnen Sie die Seite Integrationen in Kibana (suchen Sie in der Suchleiste oben nach „Integration") und installieren Sie die Beispieldaten. Weitere Einzelheiten finden Sie in der Dokumentation hier.

Ziel dieses Artikels ist es, zu zeigen, wie einfach es ist, die Gemini CLI so zu konfigurieren, dass sie mit Elasticsearch verbunden ist und mit dem Index kibana_sample_data_ecommerce interagiert.

Verwendung des Elasticsearch MCP

Sie können die Verbindung mit folgendem Befehl in Gemini überprüfen:

Sie sollten sehen, dass elastic-agent-builder aktiviert ist, wie in Abbildung 2 dargestellt:

Elasticsearch bietet eine Reihe von Standardtools. Sehen Sie sich die Beschreibung hier an.

Mithilfe dieser Tools können Sie mit Elasticsearch interagieren und Fragen stellen wie:

  • Give me the list of all the indexes available in Elasticsearch.
  • How many customers are based in the USA in the kibana_sample_data_ecommerce index of Elasticsearch?

Je nach Frage wird Gemini eines oder mehrere der verfügbaren Tools verwenden, um sie zu beantworten.

Die

In der Elasticsearch-Erweiterung für Gemini CLI haben wir auch/elastic-Befehle hinzugefügt.

Wenn Sie den Befehl /help ausführen, werden Ihnen alle verfügbaren /elastic-Optionen angezeigt (Abbildung 3):

Diese Befehle können nützlich sein, wenn Sie ein bestimmtes Tool des elastic-agent-builder-MCP-Servers direkt ausführen möchten. Beispielsweise können Sie mit dem folgenden Befehl das Mapping von kibana_sample_data_ecommerce abrufen:

Diese Befehle sind im Wesentlichen Abkürzungen für das Ausführen spezifischer Tools, anstatt sich auf das Gemini-Modell zu verlassen, um zu bestimmen, welches Tool aufgerufen werden sollte.

Verwendung der Elasticsearch-Fähigkeiten

Diese Erweiterung beinhaltet außerdem eine agentische Fähigkeit für ES|QL, die in Elasticsearch verfügbare Elasticsearch Query Language. Agentische Fähigkeiten stellen ein offenes Format dar, das KI-Coding-Agenten wie Gemini CLI individuelle Anweisungen für bestimmte Aufgaben gibt. Sie verwenden ein Konzept namens Progressive Disclosure (progressive Offenlegung), was bedeutet, dass der anfänglichen Systemaufforderung nur eine kurze Beschreibung der Fähigkeit hinzugefügt wird. Wenn Sie den Agenten bitten, eine Aufgabe auszuführen, wie etwa eine Abfrage an Elasticsearch, passt er die Anfrage an die relevante Fähigkeit an und lädt dynamisch die detaillierten Anweisungen. Dies ist eine effiziente Methode, um Token-Budgets zu verwalten und der KI genau den Kontext bereitzustellen, den sie benötigt.

Die esql-Fähigkeit ist so konzipiert, dass Gemini CLI ES|QL-Abfragen direkt in Ihrem Cluster schreiben und ausführen kann. ES|QL ist eine leistungsstarke Abfragesprache, die die Datenexploration, die Log-Analyse und die Aggregationen sehr intuitiv macht. Wenn diese Fähigkeit aktiviert ist, müssen Sie nicht nach der ES|QL-Syntax suchen; Sie können der Gemini CLI einfach Fragen zu Ihren Daten in natürlicher Sprache stellen, und der Agent kümmert sich um den Rest.

Die Ausführung erfolgt mit einfachen curl-Befehlen, die in einem Terminal ausgeführt werden. Dies ist möglich, da Elasticsearch eine umfangreiche Sammlung von REST APIs bereitstellt, die sich problemlos in jede beliebige Architektur integrieren lassen.

Was die esql Fähigkeit bietet:

  • Erkennung von Indizes und Schemata: Der Agent kann die integrierten Tools der Fähigkeit nutzen, um verfügbare Indizes aufzulisten und Feld-Mappings abzurufen. Bevor der Agent beispielsweise eine Abfrage für die E-Commerce-Datensätze schreibt, kann er eine Schema-Prüfung für kibana_sample_data_ecommerce ausführen, um die verfügbaren Felder wie taxful_total_price oder category zu ermitteln.
  • Nahtlose Übersetzung natürlicher Sprache: Diese Fähigkeit bietet dem Agenten mehr als nur ein einfaches Nachschlagewerk; sie liefert eine konkrete Anleitung zur Interpretation der Nutzerabsicht. Wenn Sie Anfragen in natürlicher Sprache eingeben, wie „Zeige durchschnittliche Reaktionszeit gruppiert nach Service“, nutzt der Agent die in der Fähigkeit integrierte Mustererkennung, um Ihre Worte sofort in die richtigen ES|QL-Aggregationen, Filter und Befehle umzuwandeln.
  • Selbstkorrektur: Wenn eine Abfrage fehlschlägt (zum Beispiel wegen eines Typfehlers oder eines Syntaxfehlers), gibt die Fähigkeit die generierte Abfrage zusammen mit der genauen Elasticsearch-Fehlermeldung zurück, sodass der Agent die Abfrage sofort beheben und erneut ausführen kann, ohne dass Sie eingreifen müssen.

Da die esql-Fähigkeit auch als Tool auf dem elastic-agent-builder-MCP-Server verfügbar ist, müssen wir diesen Server vorübergehend deaktivieren. Sie können sie mit dem folgendem Befehl deaktivieren:

Dann können Sie einfach einen Befehl wie diesen in Ihre Gemini CLI eingeben:

Der Agent wird:

  • Die Notwendigkeit der esql-Fähigkeit erkennen
  • Überprüfen Sie das Schema von kibana_sample_data_ecommerce.
  • Eine ES|QL-Abfrage erstellen wie: FROM kibana_sample_data_ecommerce | STATS total_revenue = SUM(taxful_total_price) BY category.keyword | SORT total_revenue DESC | LIMIT 5
  • Die Abfrage über die Elasticsearch-API ausführen
  • Das Ergebnis Ihnen direkt im Terminal anzeigen

Hier haben wir ein Beispiel für die Antwort von Gemini auf die vorherige Eingabe aufgeführt:

Es ist interessant festzustellen, wie das Gemini-Modell die endgültige Antwort generiert, indem es alle Schritte zeigt, die es dabei durchläuft. Hier können Sie deutlich den Einfluss der Fähigkeit auf den Denkprozess des Modells erkennen. Wenn das Modell zum ersten Mal erkennt, dass es eine Fähigkeit verwenden oder einen Shell-Befehl ausführen muss, erfragt es die Genehmigung mithilfe des Human-in-the-Loop-Ansatzes.

Durch die Übernahme der aufwendigen Aufgaben der Schemaerkennung, Abfragegenerierung und -ausführung ermöglicht Ihnen die esql-Fähigkeit, sich voll und ganz auf die Antworten zu konzentrieren, anstatt auf die Mechanismen ihrer Ermittlung. Sie erhalten die Daten, die Sie benötigen, richtig formatiert und direkt in Ihrem Terminal, ohne jemals eine einzige Zeile Syntax zu schreiben oder zu einer anderen Anwendung zu wechseln.

Fazit

In diesem Artikel haben wir die kürzlich veröffentlichte Elasticsearch-Erweiterung für die Gemini CLI vorgestellt. Mit dieser Erweiterung können Sie über Gemini und den von Elastic Agent Builder bereitgestellten Elasticsearch-MCP-Server, der ab Version 9.3.0 verfügbar ist, sowie über den Befehl /elastic mit Ihrer Elasticsearch-Instanz interagieren.

Darüber hinaus enthält die Erweiterung auch eine esql-Fähigkeit, die die Anfrage eines Nutzers von der natürlichen Sprache in eine ES|QL-Abfrage umwandelt. Diese Fähigkeit kann besonders nützlich sein, wenn der MCP-Server nicht genutzt werden kann, da die zugrundeliegende Kommunikation durch einfache Curl-Befehle in einem Terminal gesteuert wird. Elasticsearch bietet eine umfangreiche Auswahl an REST APIs, die leicht in jedes Projekt integriert werden können. Dies ist besonders nützlich bei der Entwicklung von agentischen KI-Anwendungen.

Weitere Informationen zu unserer Gemini CLI-Erweiterung finden Sie hier im Projekt-Repository.

Zugehörige Inhalte

Sind Sie bereit, hochmoderne Sucherlebnisse zu schaffen?

Eine ausreichend fortgeschrittene Suche kann nicht durch die Bemühungen einer einzelnen Person erreicht werden. Elasticsearch wird von Datenwissenschaftlern, ML-Ops-Experten, Ingenieuren und vielen anderen unterstützt, die genauso leidenschaftlich an der Suche interessiert sind wie Sie. Lasst uns in Kontakt treten und zusammenarbeiten, um das magische Sucherlebnis zu schaffen, das Ihnen die gewünschten Ergebnisse liefert.

Probieren Sie es selbst aus