cargo adk build
Übersicht
Der Befehl cargo adk build kompiliert dein ADK-Rust-Agentenprojekt, ohne es bereitzustellen. So kannst du schnell überprüfen, ob dein Agent korrekt kompiliert wird, und Abhängigkeitsprobleme, Typfehler sowie Konfigurationsprobleme erkennen, bevor du einen vollständigen Bereitstellungszyklus startest.
Verwende cargo adk build als Teil deines lokalen Entwicklungsworkflows und deiner CI-Pipelines, um Änderungen frühzeitig zu validieren, ohne Plattformanmeldedaten oder Netzwerkzugriff zu benötigen.
Befehlssyntax
cargo adk build [OPTIONS]
Der Befehl kapselt standardmäßig cargo build --release und verwendet dabei dein Agentenprojekt als Ziel. Bei Erfolg werden das Build-Profil, das Zielverzeichnis und die Binärgröße ausgegeben.
Flags und Optionen
| Flag | Beschreibung | Standard |
|---|---|---|
--manifest-path <PATH> | Pfad zur Datei Cargo.toml. Nützlich, wenn außerhalb des Projektverzeichnisses erstellt wird. | Aktuelles Verzeichnis |
--debug | Im Debug-Modus statt im Release-Modus erstellen. Schnellere Kompilierung, aber nicht optimierte Binärdatei. | Release-Modus |
Beispiele
# Build in release mode (default)
cargo adk build
# Build in debug mode for faster iteration
cargo adk build --debug
# Build a project at a specific path
cargo adk build --manifest-path /path/to/my-agent/Cargo.toml
Build vs. Bereitstellung
cargo adk build und cargo adk deploy erfüllen im Lebenszyklus der Agentenentwicklung unterschiedliche Zwecke:
| Aspekt | cargo adk build | cargo adk deploy |
|---|---|---|
| Zweck | Kompilieren und überprüfen | Kompilieren, bündeln und auf die Plattform übertragen |
| Netzwerk erforderlich | Nein | Ja (Plattformserver) |
| Authentifizierung | Keine | Token erforderlich (--token oder ADK_DEPLOY_TOKEN) |
| Ausgabe | Lokale Binärdatei in target/ | Bereitstellungspaket auf die Plattform hochgeladen |
| Build-Profil | Release (oder Debug mit --debug) | Immer Release |
| Umgang mit Geheimnissen | Keine | Lädt Geheimnisse aus .env hoch |
| Manifest erforderlich | Nur Cargo.toml | Cargo.toml + adk-deploy.toml |
| Anwendungsfall | Lokale Entwicklung, CI-Prüfungen | Produktionsbereitstellung |
Wann welches verwendet werden sollte
cargo adk build— Verwenden Sie dies während der Entwicklung, um die Kompilierung zu überprüfen, in CI-Pipelines als Voraussetzung vor dem Zusammenführen oder um sicherzustellen, dass Aktualisierungen von Abhängigkeiten Ihren Agent nicht beschädigen.cargo adk deploy— Verwenden Sie dies, wenn Sie bereit sind, Ihren Agent auf der Plattform ADK bereitzustellen. Die Bereitstellung umfasst intern einen Build-Schritt (kann mit--skip-buildübersprungen werden).
Verwendungsbeispiele
Erfolgreicher Build
$ cargo adk build
Compiling adk-core v0.9.2
Compiling adk-agent v0.9.2
Compiling my-agent v0.1.0 (/home/user/my-agent)
Finished `release` profile [optimized] target(s) in 42.3s
✅ Build successful
profile: release
target: target/release
binary: target/release/my-agent (12.4 MB)
Debug-Build für schnellere Iterationen
$ cargo adk build --debug
Compiling my-agent v0.1.0 (/home/user/my-agent)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.1s
✅ Build successful
profile: debug
target: target/debug
binary: target/debug/my-agent (45.2 MB)
Integration in eine CI-Pipeline
# .github/workflows/ci.yml
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable
- run: cargo install cargo-adk
- run: cargo adk build
Fehlerszenarien und Lösungen
Fehlende Abhängigkeiten
Symptom: Die Kompilierung schlägt mit Fehlern aufgrund nicht aufgelöster Importe fehl.
error[E0432]: unresolved import `adk_tool`
--> src/main.rs:3:5
|
3 | use adk_tool::FunctionTool;
| ^^^^^^^^ use of undeclared crate or module `adk_tool`
Lösung: Fügen Sie die fehlende Crate zu den Abhängigkeiten von Cargo.toml hinzu:
[dependencies]
adk-tool = { version = "2.1.0", features = ["mcp"] }
Ungültige Projektstruktur
Symptom: cargo adk build kann Cargo.toml nicht finden.
Error: failed to run cargo build: No such file or directory (os error 2)
Lösung: Führen Sie den Befehl aus dem Projektstammverzeichnis aus oder geben Sie den Manifestpfad an:
cargo adk build --manifest-path ./my-agent/Cargo.toml
Konflikte bei Feature-Flags
Symptom: Der Build schlägt aufgrund inkompatibler Feature-Kombinationen fehl.
error: the package `my-agent` depends on `adk-realtime`, with features:
`openai-webrtc` but `openai-webrtc` is not a feature of `adk-realtime`
Lösung: Überprüfen Sie, ob Ihre Feature-Flags mit den verfügbaren Features für die von Ihnen verwendete Version von ADK übereinstimmen. Führen Sie cargo doc -p adk-realtime --open aus, um die verfügbaren Features anzuzeigen, oder konsultieren Sie die Crate-Dokumentation.
Veraltete Lock-Datei
Symptom: Fehler bei der Versionsauflösung nach der Aktualisierung von ADK-Crates.
error: failed to select a version for the requirement `adk-core = "^0.9.2"`
Lösung: Aktualisieren Sie Ihre Lock-Datei:
cargo update
cargo adk build
Probleme mit der Build-Umgebung
Symptom: Linkerfehler oder fehlende Systembibliotheken.
error: linker `cc` not found
Lösung: Installieren Sie die erforderliche Build-Toolchain für Ihre Plattform:
# Ubuntu/Debian
sudo apt install build-essential pkg-config libssl-dev
# macOS
xcode-select --install
# Fedora/RHEL
sudo dnf install gcc openssl-devel
Nicht genügend Arbeitsspeicher während der Kompilierung
Symptom: Der Build-Prozess wird beendet oder bricht mit einem Fehler bei der Speicherzuweisung ab.
Lösung: Reduzieren Sie die Parallelität oder verwenden Sie einen Rechner mit mehr Arbeitsspeicher:
# Limit parallel compilation jobs
CARGO_BUILD_JOBS=2 cargo adk build
# Or set in .cargo/config.toml
# [build]
# jobs = 2