cargo adk build
Visão geral
O comando cargo adk build compila seu projeto de agente ADK-Rust sem implantá-lo. Isso oferece uma maneira rápida de verificar se seu agente compila corretamente — identificando problemas de dependências, erros de tipo e problemas de configuração — antes de iniciar um ciclo completo de implantação.
Use cargo adk build como parte do seu fluxo de desenvolvimento local e dos pipelines de CI para validar as alterações antecipadamente, sem precisar de credenciais da plataforma ou acesso à rede.
Sintaxe do comando
cargo adk build [OPTIONS]
Por padrão, o comando executa cargo build --release, direcionado ao seu projeto de agente. Em caso de sucesso, ele informa o perfil de compilação, o diretório de destino e o tamanho do binário.
Sinalizadores e opções
| Sinalizador | Descrição | Padrão |
|---|---|---|
--manifest-path <PATH> | Caminho para o arquivo Cargo.toml. Útil ao compilar fora do diretório do projeto. | Diretório atual |
--debug | Compila no modo de depuração em vez do modo de lançamento. Compilação mais rápida, mas binário não otimizado. | Modo de lançamento |
Exemplos
# 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
Construção vs. Implantação
cargo adk build e cargo adk deploy têm finalidades diferentes no ciclo de vida do desenvolvimento de agentes:
| Aspecto | cargo adk build | cargo adk deploy |
|---|---|---|
| Finalidade | Compilar e verificar | Compilar, empacotar e enviar para a plataforma |
| Rede necessária | Não | Sim (servidor da plataforma) |
| Autenticação | Nenhuma | Token necessário (--token ou ADK_DEPLOY_TOKEN) |
| Saída | Binário local em target/ | Pacote de implantação carregado na plataforma |
| Perfil de compilação | Release (ou depuração com --debug) | Sempre Release |
| Gerenciamento de segredos | Nenhum | Envia segredos de .env |
| Manifesto obrigatório | Apenas Cargo.toml | Cargo.toml + adk-deploy.toml |
| Caso de uso | Desenvolvimento local, verificações de CI | Implantação em produção |
Quando usar cada um
cargo adk build— Use durante o desenvolvimento para verificar a compilação, em pipelines de CI como uma etapa obrigatória antes do merge ou para verificar se as atualizações de dependências não interrompem seu agente.cargo adk deploy— Use quando estiver pronto para enviar seu agente para a plataforma ADK. A implantação inclui uma etapa de compilação internamente (que pode ser ignorada com--skip-build).
Exemplos de uso
Compilação bem-sucedida
$ 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)
Compilação de depuração para iteração mais rápida
$ 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)
Integração com pipeline 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
Cenários de erro e resolução
Dependências ausentes
Sintoma: A compilação falha com erros de importação não resolvida.
error[E0432]: unresolved import `adk_tool`
--> src/main.rs:3:5
|
3 | use adk_tool::FunctionTool;
| ^^^^^^^^ use of undeclared crate or module `adk_tool`
Resolução: Adicione o crate ausente às dependências de Cargo.toml:
[dependencies]
adk-tool = { version = "2.1.0", features = ["mcp"] }
Estrutura de projeto inválida
Sintoma: cargo adk build não consegue encontrar Cargo.toml.
Error: failed to run cargo build: No such file or directory (os error 2)
Resolução: Execute o comando a partir da raiz do projeto ou especifique o caminho do manifesto:
cargo adk build --manifest-path ./my-agent/Cargo.toml
Conflitos entre flags de recursos
Sintoma: A compilação falha devido a combinações incompatíveis de recursos.
error: the package `my-agent` depends on `adk-realtime`, with features:
`openai-webrtc` but `openai-webrtc` is not a feature of `adk-realtime`
Resolução: Verifique se suas flags de recursos correspondem aos recursos disponíveis para a versão ADK que você está usando. Execute cargo doc -p adk-realtime --open para ver os recursos disponíveis ou consulte a documentação do crate.
Arquivo de bloqueio desatualizado
Sintoma: Erros de resolução de versão após atualizar crates ADK.
error: failed to select a version for the requirement `adk-core = "^0.9.2"`
Resolução: Atualize seu arquivo de bloqueio:
cargo update
cargo adk build
Problemas no ambiente de compilação
Sintoma: Erros do linker ou bibliotecas do sistema ausentes.
error: linker `cc` not found
Resolução: Instale o toolchain de compilação necessário para sua plataforma:
# Ubuntu/Debian
sudo apt install build-essential pkg-config libssl-dev
# macOS
xcode-select --install
# Fedora/RHEL
sudo dnf install gcc openssl-devel
Falta de memória durante a compilação
Sintoma: O processo de compilação é encerrado ou entra em panic devido a uma falha de alocação.
Resolução: Reduza o paralelismo ou use uma máquina com mais RAM:
# Limit parallel compilation jobs
CARGO_BUILD_JOBS=2 cargo adk build
# Or set in .cargo/config.toml
# [build]
# jobs = 2