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

FlagBeschreibungStandard
--manifest-path <PATH>Pfad zur Datei Cargo.toml. Nützlich, wenn außerhalb des Projektverzeichnisses erstellt wird.Aktuelles Verzeichnis
--debugIm 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:

Aspektcargo adk buildcargo adk deploy
ZweckKompilieren und überprüfenKompilieren, bündeln und auf die Plattform übertragen
Netzwerk erforderlichNeinJa (Plattformserver)
AuthentifizierungKeineToken erforderlich (--token oder ADK_DEPLOY_TOKEN)
AusgabeLokale Binärdatei in target/Bereitstellungspaket auf die Plattform hochgeladen
Build-ProfilRelease (oder Debug mit --debug)Immer Release
Umgang mit GeheimnissenKeineLädt Geheimnisse aus .env hoch
Manifest erforderlichNur Cargo.tomlCargo.toml + adk-deploy.toml
AnwendungsfallLokale Entwicklung, CI-PrüfungenProduktionsbereitstellung

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