cargo adk build
Descripción general
El comando cargo adk build compila tu proyecto de agente ADK-Rust sin implementarlo. Esto te proporciona una forma rápida de verificar que tu agente se compila correctamente, detectando problemas de dependencias, errores de tipos y problemas de configuración antes de iniciar un ciclo completo de implementación.
Usa cargo adk build como parte de tu flujo de trabajo de desarrollo local y de tus canalizaciones de CI para validar los cambios con antelación, sin necesidad de credenciales de la plataforma ni acceso a la red.
Sintaxis del comando
cargo adk build [OPTIONS]
De forma predeterminada, el comando encapsula cargo build --release y tiene como destino tu proyecto de agente. Si la operación se realiza correctamente, informa del perfil de compilación, el directorio de destino y el tamaño del binario.
Indicadores y opciones
| Indicador | Descripción | Predeterminado |
|---|---|---|
--manifest-path <PATH> | Ruta al archivo Cargo.toml. Útil al compilar desde fuera del directorio del proyecto. | Directorio actual |
--debug | Compilar en modo de depuración en lugar del modo de lanzamiento. Compilación más rápida, pero binario sin optimizar. | Modo de lanzamiento |
Ejemplos
# 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
Construcción frente a implementación
cargo adk build y cargo adk deploy tienen diferentes propósitos en el ciclo de vida del desarrollo de agentes:
| Aspecto | cargo adk build | cargo adk deploy |
|---|---|---|
| Propósito | Compilar y verificar | Compilar, empaquetar y enviar a la plataforma |
| Red requerida | No | Sí (servidor de la plataforma) |
| Autenticación | Ninguna | Token requerido (--token o ADK_DEPLOY_TOKEN) |
| Salida | Binario local en target/ | Paquete de implementación cargado en la plataforma |
| Perfil de compilación | Versión de lanzamiento (o depuración con --debug) | Siempre versión de lanzamiento |
| Gestión de secretos | Ninguna | Carga secretos desde .env |
| Manifiesto requerido | Solo Cargo.toml | Cargo.toml + adk-deploy.toml |
| Caso de uso | Desarrollo local, comprobaciones de CI | Implementación en producción |
Cuándo usar cada uno
cargo adk build— Úsalo durante el desarrollo para verificar la compilación, en canalizaciones de CI como requisito previo a la combinación, o para comprobar que las actualizaciones de dependencias no rompan tu agente.cargo adk deploy— Úsalo cuando estés listo para enviar tu agente a la plataforma ADK. La implementación incluye internamente un paso de compilación (se puede omitir con--skip-build).
Ejemplos de uso
Compilación exitosa
$ 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)
Compilación de depuración para iteraciones más rápidas
$ 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)
Integración en una canalización de 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
Escenarios de error y resolución
Dependencias faltantes
Síntoma: La compilación falla con errores de importación no resuelta.
error[E0432]: unresolved import `adk_tool`
--> src/main.rs:3:5
|
3 | use adk_tool::FunctionTool;
| ^^^^^^^^ use of undeclared crate or module `adk_tool`
Resolución: Añade el crate faltante a las dependencias de Cargo.toml:
[dependencies]
adk-tool = { version = "2.1.0", features = ["mcp"] }
Estructura de proyecto no válida
Síntoma: cargo adk build no puede encontrar Cargo.toml.
Error: failed to run cargo build: No such file or directory (os error 2)
Resolución: Ejecuta el comando desde la raíz de tu proyecto o especifica la ruta del manifiesto:
cargo adk build --manifest-path ./my-agent/Cargo.toml
Conflictos entre indicadores de características
Síntoma: La compilación falla debido a combinaciones de características incompatibles.
error: the package `my-agent` depends on `adk-realtime`, with features:
`openai-webrtc` but `openai-webrtc` is not a feature of `adk-realtime`
Resolución: Comprueba que tus indicadores de características coincidan con las características disponibles para la versión de ADK que estás utilizando. Ejecuta cargo doc -p adk-realtime --open para ver las características disponibles o consulta la documentación del crate.
Archivo de bloqueo desactualizado
Síntoma: Errores de resolución de versiones después de actualizar crates de ADK.
error: failed to select a version for the requirement `adk-core = "^0.9.2"`
Resolución: Actualiza tu archivo de bloqueo:
cargo update
cargo adk build
Problemas del entorno de compilación
Síntoma: Errores del enlazador o bibliotecas del sistema faltantes.
error: linker `cc` not found
Resolución: Instala la cadena de herramientas de compilación requerida para tu plataforma:
# Ubuntu/Debian
sudo apt install build-essential pkg-config libssl-dev
# macOS
xcode-select --install
# Fedora/RHEL
sudo dnf install gcc openssl-devel
Memoria insuficiente durante la compilación
Síntoma: El proceso de compilación termina o falla con un error de asignación.
Resolución: Reduce el paralelismo o utiliza una máquina con más RAM:
# Limit parallel compilation jobs
CARGO_BUILD_JOBS=2 cargo adk build
# Or set in .cargo/config.toml
# [build]
# jobs = 2