Tools API

Erstellen und verwalten Sie benutzerdefinierte Tools für KI-Interaktionen. Erweitern Sie Gemini CLI mit leistungsstarken Tools für Dateioperationen, Shell-Befehle, Web-Anfragen und mehr.

Eingebaute Tools

Leistungsstarke Tools, die sofort in Gemini CLI verwendet werden können

Dateisystem-Tools

Tools zum Lesen, Schreiben und Verwalten von Dateien

read_file

Inhalt aus einer Datei lesen

Signatur:
read_file(path: string): Promise<string>
Beispiel:
const content = await tools.read_file('./package.json');
console.log(content);

write_file

Inhalt in eine Datei schreiben

Signatur:
write_file(path: string, content: string): Promise<void>
Beispiel:
await tools.write_file('./output.txt', 'Hello, World!');

list_files

Dateien in einem Verzeichnis auflisten

Signatur:
list_files(path: string): Promise<string[]>
Beispiel:
const files = await tools.list_files('./src');
console.log(files);

Shell-Tools

Tools zur Ausführung von Shell-Befehlen

run_shell_command

Shell-Befehl ausführen

Signatur:
run_shell_command(command: string, options?: ShellOptions): Promise<ShellResult>
Beispiel:
const result = await tools.run_shell_command('ls -la');
console.log(result.stdout);

run_script

Skriptdatei ausführen

Signatur:
run_script(scriptPath: string, args?: string[]): Promise<ShellResult>
Beispiel:
const result = await tools.run_script('./build.sh', ['--production']);

Web-Tools

Tools für Web-Anfragen und Suche

web_fetch

Inhalt von einer URL abrufen

Signatur:
web_fetch(url: string, options?: FetchOptions): Promise<string>
Beispiel:
const content = await tools.web_fetch('https://api.example.com/data');
console.log(content);

web_search

Im Web nach Informationen suchen

Signatur:
web_search(query: string, options?: SearchOptions): Promise<SearchResult[]>
Beispiel:
const results = await tools.web_search('Gemini CLI documentation');
console.log(results);

Benutzerdefinierte Tool-Entwicklung

Erstellen Sie Ihre eigenen Tools, um die Gemini CLI-Funktionalität zu erweitern

Benutzerdefiniertes Tool Erstellen

Hier ist ein vollständiges Beispiel für die Erstellung eines benutzerdefinierten Wetter-Tools:

import { Tool, ToolDefinition } from '@google/generative-ai-cli';

// Benutzerdefiniertes Tool definieren
const weatherTool: ToolDefinition = {
  name: 'get_weather',
  description: 'Aktuelles Wetter für einen Ort abrufen',
  parameters: {
    type: 'object',
    properties: {
      location: {
        type: 'string',
        description: 'Stadt und Staat, z.B. Berlin, Deutschland'
      },
      unit: {
        type: 'string',
        enum: ['celsius', 'fahrenheit'],
        description: 'Temperatureinheit'
      }
    },
    required: ['location']
  },
  execute: async ({ location, unit = 'celsius' }) => {
    // Ihre Wetter-API-Logik hier
    const response = await fetch(`https://api.weather.com/v1/current?location=${location}&unit=${unit}`);
    const data = await response.json();
    return `Aktuelles Wetter in ${location}: ${data.temperature}°${unit === 'celsius' ? 'C' : 'F'}, ${data.description}`;
  }
};

// Tool registrieren
gemini.registerTool(weatherTool);

// Tool in einem Gespräch verwenden
const response = await gemini.ask("Wie ist das Wetter in Berlin?", {
  tools: ['get_weather']
});

Tool-Registrierung und -Verwaltung

Verwaltung von Tools in Ihrer Gemini CLI-Instanz

Tools Registrieren

// Ein einzelnes Tool registrieren
gemini.registerTool(myTool);

// Mehrere Tools registrieren
gemini.registerTools([tool1, tool2, tool3]);

// Von einem Plugin laden
gemini.loadPlugin('./my-tools-plugin');

Tools Auflisten und Verwalten

// Alle verfügbaren Tools auflisten
const tools = gemini.listTools();

// Tool-Informationen abrufen
const toolInfo = gemini.getTool('tool_name');

// Tool deregistrieren
gemini.unregisterTool('tool_name');

Best Practices

Richtlinien für die Erstellung effektiver Tools

Tool-Design

  • Halten Sie Tools auf eine einzige Verantwortung fokussiert
  • Stellen Sie klare, beschreibende Namen und Beschreibungen bereit
  • Definieren Sie umfassende Parameter-Schemas
  • Behandeln Sie Fehler elegant und stellen Sie aussagekräftige Nachrichten bereit

Leistung

  • Implementieren Sie asynchrone Operationen korrekt
  • Fügen Sie Timeout-Behandlung für lange Operationen hinzu
  • Cachen Sie Ergebnisse wenn angemessen
  • Validieren Sie Eingaben vor der Verarbeitung

Verwandte Ressourcen

Erfahren Sie mehr über Tool-Entwicklung und -Nutzung