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