cargo adk build

Présentation

La commande cargo adk build compile votre projet d’agent ADK-Rust sans le dĂ©ployer. Elle vous permet de vĂ©rifier rapidement que votre agent se compile correctement — en dĂ©tectant les problĂšmes de dĂ©pendances, les erreurs de type et les problĂšmes de configuration — avant de lancer un cycle de dĂ©ploiement complet.

Utilisez cargo adk build dans le cadre de votre workflow de dĂ©veloppement local et de vos pipelines CI afin de valider rapidement les modifications, sans avoir besoin d’identifiants de plateforme ni d’un accĂšs rĂ©seau.

Syntaxe de la commande

cargo adk build [OPTIONS]

La commande encapsule cargo build --release par dĂ©faut, en ciblant votre projet d’agent. En cas de rĂ©ussite, elle indique le profil de compilation, le rĂ©pertoire cible et la taille du binaire.

Indicateurs et options

OptionDescriptionValeur par défaut
--manifest-path <PATH>Chemin vers le fichier Cargo.toml. Utile lors de la compilation depuis l’extĂ©rieur du rĂ©pertoire du projet.RĂ©pertoire actuel
--debugCompile en mode débogage au lieu du mode release. Compilation plus rapide, mais binaire non optimisé.Mode release

Exemples

# 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

Compilation vs Déploiement

cargo adk build et cargo adk deploy servent des objectifs différents dans le cycle de développement des agents :

Aspectcargo adk buildcargo adk deploy
ObjectifCompiler et vérifierCompiler, regrouper et envoyer vers la plateforme
Réseau requisNonOui (serveur de la plateforme)
AuthentificationAucuneJeton requis (--token ou ADK_DEPLOY_TOKEN)
SortieBinaire local dans target/Ensemble de déploiement téléversé vers la plateforme
Profil de compilationRelease (ou débogage avec --debug)Toujours en mode Release
Gestion des secretsAucuneTéléverse les secrets depuis .env
Manifeste requisUniquement Cargo.tomlCargo.toml + adk-deploy.toml
Cas d’utilisationDĂ©veloppement local, vĂ©rifications CIDĂ©ploiement en production

Quand utiliser chaque commande

  • cargo adk build — À utiliser pendant le dĂ©veloppement pour vĂ©rifier la compilation, dans les pipelines CI comme contrĂŽle avant la fusion, ou pour vĂ©rifier que les mises Ă  jour des dĂ©pendances ne cassent pas votre agent.
  • cargo adk deploy — À utiliser lorsque vous ĂȘtes prĂȘt Ă  dĂ©ployer votre agent sur la plateforme ADK. Le dĂ©ploiement inclut une Ă©tape de compilation en interne (qui peut ĂȘtre ignorĂ©e avec --skip-build).

Exemples d’utilisation

Compilation réussie

$ 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)

Compilation de débogage pour itérer plus rapidement

$ 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)

Intégration à un pipeline CI

# .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

ScĂ©narios d’erreur et rĂ©solution

Dépendances manquantes

SymptĂŽme : La compilation Ă©choue avec des erreurs d’importation non rĂ©solues.

error[E0432]: unresolved import `adk_tool`
 --> src/main.rs:3:5
  |
3 | use adk_tool::FunctionTool;
  |     ^^^^^^^^ use of undeclared crate or module `adk_tool`

Résolution : Ajoutez le crate manquant aux dépendances Cargo.toml de votre projet :

[dependencies]
adk-tool = { version = "2.1.0", features = ["mcp"] }

Structure de projet non valide

SymptĂŽme : cargo adk build ne trouve pas Cargo.toml.

Error: failed to run cargo build: No such file or directory (os error 2)

Résolution : Exécutez la commande depuis la racine de votre projet ou indiquez le chemin du manifeste :

cargo adk build --manifest-path ./my-agent/Cargo.toml

Conflits entre indicateurs de fonctionnalités

SymptÎme : La compilation échoue en raison de combinaisons de fonctionnalités incompatibles.

error: the package `my-agent` depends on `adk-realtime`, with features:
       `openai-webrtc` but `openai-webrtc` is not a feature of `adk-realtime`

Résolution : Vérifiez que vos indicateurs de fonctionnalités correspondent aux fonctionnalités disponibles pour la version ADK que vous utilisez. Exécutez cargo doc -p adk-realtime --open pour afficher les fonctionnalités disponibles ou consultez la documentation du crate.

Fichier de verrouillage obsolĂšte

SymptÎme : Erreurs de résolution de version aprÚs la mise à niveau des crates ADK.

error: failed to select a version for the requirement `adk-core = "^0.9.2"`

Résolution : Mettez à jour votre fichier de verrouillage :

cargo update
cargo adk build

ProblĂšmes liĂ©s Ă  l’environnement de compilation

SymptĂŽme : Erreurs de l’éditeur de liens ou bibliothĂšques systĂšme manquantes.

error: linker `cc` not found

RĂ©solution : Installez la chaĂźne d’outils de compilation requise pour votre plateforme :

# Ubuntu/Debian
sudo apt install build-essential pkg-config libssl-dev

# macOS
xcode-select --install

# Fedora/RHEL
sudo dnf install gcc openssl-devel

Mémoire insuffisante pendant la compilation

SymptĂŽme : Le processus de compilation est arrĂȘtĂ© ou dĂ©clenche une panique en raison d’un Ă©chec d’allocation.

Résolution : Réduisez le parallélisme ou utilisez une machine disposant de davantage de mémoire vive :

# Limit parallel compilation jobs
CARGO_BUILD_JOBS=2 cargo adk build

# Or set in .cargo/config.toml
# [build]
# jobs = 2
cargo adk build - Documentation ADK-Rust | ADK-Rust