Erste Schritte mit adk-rust: Ihr erster KI-Agent in Rust
Entfesseln Sie die Kraft von KI-Agenten mit Rust. Dieser Leitfaden zeigt Ihnen, wie Sie Ihren ersten intelligenten Agenten erstellen, ausführen und bereitstellen.
Inhaltsverzeichnis
- 1. Einführung in adk-rust
- 2. Voraussetzungen und Einrichtung
- 3. Erstellen Ihres ersten ADK-Projekts
- 4. Anatomie eines adk-rust-Agenten
- 5. Implementierung Ihres einfachen KI-Agenten
- 6. Erstellen und Ausführen Ihres Agenten
- 7. Nächste Schritte
1. Einführung in adk-rust
Die Herausforderung der Agentenentwicklung
Der Bau intelligenter Agenten, die komplexe Aufgaben bewältigen können, war lange Zeit ein Bereich voller Herausforderungen. Die Orchestrierung großer Sprachmodelle (LLMs), die Zustandsverwaltung, die Handhabung vielfältiger Eingaben und die effektive Bereitstellung dieser Agenten erfordert oft maßgeschneiderte Lösungen und erheblichen technischen Aufwand. Diese Komplexität kann ein großes Hindernis für Entwickler sein, die leistungsstarke KI-Funktionen in ihre Anwendungen integrieren möchten.
adk-rust betritt die Bühne: Optimierung der KI-Agentenentwicklung
Das Agent Development Kit (ADK) zielt darauf ab, die Entwicklung von KI-Agenten eher wie traditionelle Softwareentwicklung erscheinen zu lassen, und `adk-rust` ist seine robuste Rust-Implementierung. Es bietet ein flexibles, modulares Framework, das für die Entwicklung und Bereitstellung anspruchsvoller KI-Agenten konzipiert ist. Obwohl für Gemini und das Google-Ökosystem optimiert, ist `adk-rust` modellunabhängig und bereitstellungsunabhängig, was Kompatibilität und Flexibilität über verschiedene Plattformen hinweg gewährleistet. Dieser Leitfaden führt Sie durch die Einrichtung Ihrer Umgebung, die Erstellung Ihres ersten `adk-rust`-Projekts und die Bereitstellung eines grundlegenden KI-Assistenten, wodurch Sie eine solide Grundlage für Ihre Agentenprojekte erhalten.
2. Voraussetzungen und Einrichtung
adk-rust Bibliothek, die Ihrem Projekt hinzugefügt wurde. adk-rust erfordert außerdem einen Google API Schlüssel für die Interaktion mit Modellen wie Gemini.
Stellen Sie zunächst sicher, dass Sie Rust installiert haben. Falls nicht, ist der empfohlene Weg über rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Stellen Sie sicher, dass Ihre Rust Version 1.75 oder höher ist:
rustc --version
Als Nächstes fügen wir adk-rust als Abhängigkeit hinzu. Wir fügen auch tokio für asynchrone Operationen und dotenv hinzu, um Umgebungsvariablen wie Ihren API Schlüssel zu verwalten. Sie können sie mit cargo add hinzufügen, sobald Sie Ihr Projekt erstellt haben (was wir im nächsten Schritt tun werden):
cargo add adk-rust
cargo add tokio --features full
cargo add dotenv
Alternativ können Sie diese manuell zu Ihrer Cargo.toml Datei hinzufügen:
[dependencies]
adk-rust = "0.1"
tokio = { version = "1.40", features = ["full"] }
dotenv = "0.15"
Schließlich benötigen Sie einen Google API Schlüssel für Gemini. Diesen erhalten Sie im Google AI Studio oder in der Google Cloud Console. Erstellen Sie eine .env Datei im Stammverzeichnis Ihres Projekts und fügen Sie Ihren Schlüssel hinzu:
GOOGLE_API_KEY="YOUR_GEMINI_API_KEY_HERE"3. Ihr erstes ADK-Projekt erstellen
adk-rust Agenten dienen wird. Wir verwenden den Standardbefehl cargo new, um zu beginnen.
Öffnen Sie Ihr Terminal und führen Sie aus:
cargo new my_first_adk_agent
cd my_first_adk_agent
Dieser Befehl initialisiert ein neues Rust Projekt namens my_first_adk_agent. Die generierte Projektstruktur wird Rust Entwicklern bekannt vorkommen:
my_first_adk_agent/
├── Cargo.toml # Project manifest and dependencies
└── src/
└── main.rs # Your agent's main logic goes here
Jetzt können Sie die cargo add Befehle aus dem vorherigen Abschnitt in diesem my_first_adk_agent Verzeichnis ausführen. Denken Sie daran, manuell eine .env Datei im Stammverzeichnis (my_first_adk_agent/) für Ihren GOOGLE_API_KEY zu erstellen.4. Anatomie eines adk-rust Agenten
adk-rust Agent wird typischerweise um die LlmAgentBuilder herum aufgebaut und mit dem Launcher ausgeführt. Die Kernidee ist, die Persona, Anweisungen und die LLM, die der Agent verwenden soll, zu definieren. Werfen wir einen Blick auf die wesentlichen Komponenten, die Sie in der src/main.rs Datei eines adk-rust Agenten finden werden.
In adk-rust wird ein LlmAgent mit einer Beschreibung, einer Anweisung (die als System-Prompt für den LLM dient) und einem spezifischen Sprachmodell (wie Gemini) konfiguriert. Der Launcher übernimmt dann diesen Agenten und kümmert sich um die Ausführung, indem er eine interaktive Konsole oder eine Webserver-Schnittstelle bereitstellt. Diese Abstraktion vereinfacht die Interaktion des Agenten mit der Außenwelt.
Unten ist das vollständige 'Hello World'-Äquivalent für einen adk-rust Agenten. Kopieren Sie diesen Code in Ihre src/main.rs Datei. Wir werden jeden Teil im nächsten Abschnitt detailliert aufschlüsseln.
use adk_rust::prelude::*;
use adk_rust::Launcher;
use std::sync::Arc;
#[tokio::main]
async fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
// 1. Load environment variables from .env file
dotenv::dotenv().ok();
// 2. Get API key from environment
let api_key = std::env::var("GOOGLE_API_KEY")
.expect("GOOGLE_API_KEY environment variable not set");
// 3. Create the Gemini model
let model = GeminiModel::new(&api_key, "gemini-2.5-flash")?;
// 4. Build your agent
let agent = LlmAgentBuilder::new("my_assistant")
.description("A helpful AI assistant")
.instruction("You are a friendly and helpful assistant. Answer questions clearly and concisely.")
.model(Arc::new(model))
.build()?;
// 5. Run the agent with the CLI launcher
Launcher::new(Arc::new(agent)).run().await?;
Ok(())
}5. Implementierung Ihres einfachen KI-Agenten
adk-rust Agenten durch und konzentrieren uns darauf, wie jeder Teil des Codes zur Erstellung eines funktionsfähigen KI-Assistenten beiträgt. Sie sollten den Code aus dem vorherigen Abschnitt in Ihre src/main.rs Datei kopiert haben.
1. **Laden von Umgebungsvariablen**: dotenv::dotenv().ok(); lädt Variablen aus Ihrer .env Datei und macht Ihren GOOGLE_API_KEY innerhalb Ihrer Rust Anwendung verfügbar.
2. **Abruf des API Schlüssels**: std::env::var("GOOGLE_API_KEY") ruft Ihren API Schlüssel aus der Umgebung ab. Der .expect() Aufruf stellt sicher, dass das Programm abstürzt und eine klare Fehlermeldung liefert, wenn der Schlüssel nicht gefunden wird, wodurch stille Fehler bei der Initialisierung des Modells verhindert werden.
3. **Modellinitialisierung**: let model = GeminiModel::new(&api_key, "gemini-2.5-flash")?; instanziiert ein GeminiModel. Hier geben wir unseren API Schlüssel an und spezifizieren die gewünschte Gemini Modellversion (gemini-2.5-flash). Dieses Objekt kapselt die Verbindungs- und Interaktionslogik mit dem eigentlichen LLM Dienst und abstrahiert die Komplexität von API Aufrufen.
4. **Agentenkonstruktion**: Hier definieren Sie die Kernidentität und das Verhalten Ihres Agenten mit dem LlmAgentBuilder:
* LlmAgentBuilder::new("my_assistant"): Beginnt mit dem Bau eines Agenten und weist ihm eine eindeutige ID zu.
* .description("A helpful AI assistant"): Bietet eine menschenlesbare Beschreibung des Zwecks Ihres Agenten, nützlich für Dokumentation oder übergeordnete Orchestrierung.
* .instruction("You are a friendly and helpful assistant. Answer questions clearly and concisely."): Dies ist Ihr System-Prompt. Er leitet das zugrunde liegende LLM an, wie es sich verhalten, antworten und seine Gesamtpersona gestalten soll.
* .model(Arc::new(model)): Verknüpft den Agenten mit dem von uns erstellten GeminiModel. Arc (Atomic Reference Counted) ist ein Thread-sicherer Referenzzähler-Zeiger, der hier für gemeinsame Eigentümerschaft verwendet wird, was in asynchronen Rust Anwendungen üblich ist.
* .build()?: Schließt die Agentenkonstruktion ab. Es gibt ein Result zurück, und ? wird für eine bequeme Fehlerweitergabe verwendet.
5. **Agentenstart**: Launcher::new(Arc::new(agent)).run().await?; nimmt Ihren konfigurierten Agenten und führt ihn aus. Das Standardverhalten von Launcher::run() ist es, eine interaktive Konsole zu starten, in der Sie Prompts an Ihren Agenten eingeben und seine Antworten sehen können. Das Schlüsselwort await zeigt an, dass dies eine asynchrone Operation ist, typisch für I/O-gebundene Aufgaben wie die Interaktion mit einem LLM.6. Ihren Agenten bauen und ausführen
src/main.rs Datei mit dem Agenten-Code gefüllt und Ihre Cargo.toml mit Abhängigkeiten aktualisiert ist, sind Sie bereit, Ihren Agenten zum Leben zu erwecken! cargo ist Ihr primäres Werkzeug dafür.
Bauen Sie zunächst Ihr Projekt, um den Rust Code in eine ausführbare Datei zu kompilieren:
cargo build
Dieser Befehl kompiliert Ihren Agenten und seine Abhängigkeiten. Bei Erfolg haben Sie eine ausführbare Datei im Verzeichnis target/debug/ (oder target/release/, wenn Sie mit --release bauen).
Um Ihren Agenten im interaktiven Konsolenmodus auszuführen, der sich hervorragend zum Testen und für schnelle Interaktionen eignet, verwenden Sie:
cargo run
Ihr Terminal wird zu einer interaktiven Chat-Oberfläche, in der Sie Fragen eingeben können und Ihr Agent mit dem konfigurierten Gemini Modell antwortet. Zum Beenden können Sie normalerweise exit eingeben oder Ctrl+C drücken.
adk-rust bietet auch eine Möglichkeit, Ihren Agenten als Webserver auszuführen, sodass Sie über HTTP Anfragen mit ihm interagieren können. Dies ist besonders nützlich, um Ihren Agenten in Webanwendungen oder andere Dienste zu integrieren:
cargo run -- serve
Standardmäßig startet dies den Server auf http://127.0.0.1:8080. Sie können bei Bedarf einen anderen Port angeben:
cargo run -- serve --port 3000
Jetzt ist Ihr Agent über eine Web-API zugänglich! Sie können Anfragen an ihn senden, indem Sie Tools wie curl oder einen Webbrowser an den konfigurierten Endpunkt (z.B. http://127.0.0.1:8080/v1/agent) verwenden. Dies macht Ihren KI-Agenten zu einem bereitstellbaren, aufrufbaren Dienst.7. Nächste Schritte
adk-rust erstellt und ausgeführt. Dies ist nur der Anfang dessen, was Sie mit dem Framework erreichen können. Hier sind einige Vorschläge für die nächsten Schritte:
* **ADK-Dokumentation erkunden**: Tauchen Sie tiefer in die offizielle adk-rust Dokumentation ein, um fortgeschrittenere Funktionen zu verstehen, wie die Integration mit anderen Komponenten, die Zustandsverwaltung oder die Erstellung komplexerer Agenten-Workflows.
* **Benutzerdefinierte Tools und Fähigkeiten**: Erfahren Sie, wie Sie Ihren Agenten mit benutzerdefinierten Tools ausstatten können, die es ihm ermöglichen, mit externen APIs, Datenbanken zu interagieren oder spezifische Berechnungen über die reine Textgenerierung hinaus durchzuführen. Dies ist eine leistungsstarke Funktion zur Erweiterung der Agentenfähigkeiten.
* **Bereitstellungsoptionen**: Untersuchen Sie verschiedene Bereitstellungsstrategien für Ihre adk-rust Agenten, sei es die Containerisierung mit Docker, die Bereitstellung auf Cloud-Plattformen oder die Integration in bestehende Rust Dienste.
* **Community-Engagement**: Treten Sie der adk-rust Community bei. Das Teilen Ihrer Projekte, das Stellen von Fragen und das Beitragen zu Diskussionen kann Ihr Lernen und Ihre Problemlösung erheblich beschleunigen. Bleiben Sie mit den neuesten Entwicklungen und Best Practices in Verbindung.