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 buildcargo adk deploy は、エージェント開発ライフサイクルにおいて異なる目的を果たします。

項目cargo adk buildcargo 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 buildCargo.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