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
| Option | Description | Valeur 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 |
--debug | Compile 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 :
| Aspect | cargo adk build | cargo adk deploy |
|---|---|---|
| Objectif | Compiler et vérifier | Compiler, regrouper et envoyer vers la plateforme |
| Réseau requis | Non | Oui (serveur de la plateforme) |
| Authentification | Aucune | Jeton requis (--token ou ADK_DEPLOY_TOKEN) |
| Sortie | Binaire local dans target/ | Ensemble de déploiement téléversé vers la plateforme |
| Profil de compilation | Release (ou débogage avec --debug) | Toujours en mode Release |
| Gestion des secrets | Aucune | Téléverse les secrets depuis .env |
| Manifeste requis | Uniquement Cargo.toml | Cargo.toml + adk-deploy.toml |
| Cas dâutilisation | DĂ©veloppement local, vĂ©rifications CI | DĂ©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