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`
해결 방법: 누락된 crate를 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를 실행하거나 crate 문서를 참조합니다.
오래된 잠금 파일
증상: ADK crate를 업그레이드한 후 버전 확인 오류가 발생합니다.
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