cargo adk build
概要
cargo adk build コマンドは、デプロイせずに ADK-Rust エージェントプロジェクトをコンパイルします。これにより、完全なデプロイサイクルに進む前に、依存関係の問題、型エラー、設定の問題を検出し、エージェントが正しくコンパイルできることをすばやく確認できます。
cargo adk build は、ローカル開発ワークフローや CI パイプラインの一部として使用し、プラットフォームの認証情報やネットワークアクセスを必要とせずに、変更を早期に検証できます。
コマンド構文
cargo adk build [OPTIONS]
このコマンドはデフォルトで cargo build --release をラップし、エージェントプロジェクトを対象にします。成功すると、ビルドプロファイル、ターゲットディレクトリ、バイナリサイズが報告されます。
フラグとオプション
| フラグ | 説明 | デフォルト |
|---|---|---|
--manifest-path <PATH> | Cargo.toml ファイルへのパス。プロジェクトディレクトリ外からビルドする場合に便利です。 | 現在のディレクトリ |
--debug | リリースの代わりにデバッグモードでビルドします。コンパイルは高速ですが、バイナリは最適化されません。 | リリースモード |
例
# 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
ビルドとデプロイの違い
cargo adk build と cargo adk deploy は、エージェント開発ライフサイクルにおいて異なる目的を果たします。
| 項目 | cargo adk build | cargo adk deploy |
|---|---|---|
| 目的 | コンパイルして検証 | コンパイル、バンドルしてプラットフォームにプッシュ |
| ネットワーク必須 | いいえ | はい(プラットフォームサーバー) |
| 認証 | なし | トークンが必要(--token または ADK_DEPLOY_TOKEN) |
| 出力 | target/ 内のローカルバイナリ | プラットフォームにアップロードされたデプロイバンドル |
| ビルドプロファイル | リリース(または --debug を使用したデバッグ) | 常にリリース |
| シークレットの処理 | なし | .env からシークレットをアップロード |
| マニフェスト必須 | Cargo.toml のみ | Cargo.toml + adk-deploy.toml |
| ユースケース | ローカル開発、CI チェック | 本番デプロイ |
各コマンドを使用するタイミング
cargo adk build— 開発中にコンパイルを確認するため、CI パイプラインでマージ前のゲートとして、または依存関係の更新によってエージェントが壊れていないことを確認するために使用します。cargo adk deploy— エージェントを ADK プラットフォームに出荷する準備ができたときに使用します。デプロイには内部的にビルド手順が含まれます(--skip-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)
反復を高速化するためのデバッグビルド
$ 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)
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
エラーのケースと解決方法
依存関係の不足
症状: 未解決のインポートエラーによりコンパイルに失敗します。
error[E0432]: unresolved import `adk_tool`
--> src/main.rs:3:5
|
3 | use adk_tool::FunctionTool;
| ^^^^^^^^ use of undeclared crate or module `adk_tool`
解決方法: 不足しているクレートを Cargo.toml の依存関係に追加します。
[dependencies]
adk-tool = { version = "2.1.0", features = ["mcp"] }
プロジェクト構造が無効
症状: cargo adk build が Cargo.toml を見つけられません。
Error: failed to run cargo build: No such file or directory (os error 2)
解決方法: プロジェクトのルートからコマンドを実行するか、マニフェストのパスを指定します。
cargo adk build --manifest-path ./my-agent/Cargo.toml
フィーチャーフラグの競合
症状: 互換性のないフィーチャーの組み合わせによりビルドに失敗します。
error: the package `my-agent` depends on `adk-realtime`, with features:
`openai-webrtc` but `openai-webrtc` is not a feature of `adk-realtime`
解決方法: フィーチャーフラグが、使用している ADK バージョンで利用可能なフィーチャーと一致していることを確認します。利用可能なフィーチャーを確認するには cargo doc -p adk-realtime --open を実行するか、クレートのドキュメントを参照してください。
古いロックファイル
症状: ADK クレートのアップグレード後にバージョン解決エラーが発生します。
error: failed to select a version for the requirement `adk-core = "^0.9.2"`
解決方法: ロックファイルを更新します。
cargo update
cargo adk build
ビルド環境の問題
症状: リンカーエラーまたはシステムライブラリの不足が発生します。
error: linker `cc` not found
解決方法: 使用しているプラットフォームに必要なビルドツールチェーンをインストールします。
# Ubuntu/Debian
sudo apt install build-essential pkg-config libssl-dev
# macOS
xcode-select --install
# Fedora/RHEL
sudo dnf install gcc openssl-devel
コンパイル中のメモリ不足
症状: ビルドプロセスが強制終了するか、メモリ割り当てに失敗してパニックが発生します。
解決方法: 並列度を下げるか、より多くの RAM を搭載したマシンを使用します。
# Limit parallel compilation jobs
CARGO_BUILD_JOBS=2 cargo adk build
# Or set in .cargo/config.toml
# [build]
# jobs = 2