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

SinalizadorDescriçãoPadrão
--manifest-path <PATH>Caminho para o arquivo Cargo.toml. Útil ao compilar fora do diretório do projeto.Diretório atual
--debugCompila 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:

Aspectocargo adk buildcargo adk deploy
FinalidadeCompilar e verificarCompilar, empacotar e enviar para a plataforma
Rede necessáriaNãoSim (servidor da plataforma)
AutenticaçãoNenhumaToken necessário (--token ou ADK_DEPLOY_TOKEN)
SaídaBinário local em target/Pacote de implantação carregado na plataforma
Perfil de compilaçãoRelease (ou depuração com --debug)Sempre Release
Gerenciamento de segredosNenhumEnvia segredos de .env
Manifesto obrigatórioApenas Cargo.tomlCargo.toml + adk-deploy.toml
Caso de usoDesenvolvimento local, verificações de CIImplantaçã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