Voltar ao Blog
lançamentov0.2.0estávelagentes-de-grafotempo-realnavegadoravaliaçãoestúdio

ADK-Rust v0.2.0: O Primeiro Lançamento Estável

Anunciando ADK-Rust v0.2.0 - o primeiro lançamento estável com agentes de grafo, voz em tempo real, automação de navegador, framework de avaliação e construtor visual ADK Studio.

15 min de leitura

ADK-Rust v0.2.0: O Primeiro Lançamento Estável

Estamos entusiasmados em anunciar o ADK-Rust v0.2.0 - o primeiro lançamento estável do framework Rust para a construção de agentes de IA prontos para produção. Este lançamento marca um grande marco com novos recursos significativos, estabilidade aprimorada e um compromisso com o versionamento semântico daqui para frente.

Novidades na v0.2.0

🔀 Agentes de Grafo (Workflows estilo LangGraph)

O novo crate adk-graph traz a orquestração de workflow estilo LangGraph para Rust:

use adk_graph::{prelude::*, node::AgentNode};

let graph = GraphAgent::builder("support_router")
    .channels(&["input", "category", "response"])
    .node(classifier_node)
    .node(billing_node)
    .node(technical_node)
    .edge(START, "classifier")
    .conditional_edges("classifier", Router::by_field("category", vec![
        ("billing", "billing_agent"),
        ("technical", "technical_agent"),
    ]))
    .edge("billing_agent", END)
    .edge("technical_agent", END)
    .build()?;

Principais recursos:

  • Gerenciamento de Estado: Canais de estado tipados com fusão automática
  • Roteamento Condicional: Roteamento baseado em campos de estado ou lógica personalizada
  • Checkpointing: Backends SQLite e em memória para tolerância a falhas
  • Human-in-the-Loop: Interrompa workflows para aprovação humana
  • Grafos Cíclicos: Suporte para padrões ReAct com limites de iteração

🎙️ Agentes de Voz em Tempo Real

Crie assistentes de IA habilitados para voz com streaming de áudio bidirecional:

use adk_realtime::{RealtimeAgent, openai::OpenAIRealtimeModel};

let agent = RealtimeAgent::builder("voice_assistant")
    .model(Arc::new(OpenAIRealtimeModel::new(&api_key, "gpt-4o-realtime-preview")))
    .instruction("You are a helpful voice assistant.")
    .voice("alloy")
    .server_vad()  // Voice Activity Detection
    .build()?;

Provedores suportados:

  • OpenAI Realtime API (gpt-4o-realtime-preview, gpt-realtime)
  • Google Gemini Live API (gemini-2.0-flash-live-preview)

Recursos:

  • Streaming de áudio bidirecional (PCM16, G711)
  • Detecção de Atividade de Voz no lado do servidor
  • Chamada de ferramentas durante conversas de voz
  • Transferências multiagente

🌐 Automação de Navegador

O crate adk-browser oferece 46 ferramentas WebDriver para automação web:

use adk_browser::{BrowserSession, BrowserToolset, BrowserConfig};

let session = Arc::new(BrowserSession::new(
    BrowserConfig::new().webdriver_url("http://localhost:4444")
));
let tools = BrowserToolset::new(session).all_tools();

let agent = LlmAgentBuilder::new("web_agent")
    .model(model)
    .instruction("Browse the web and extract information.")
    .tools(tools)
    .build()?;

Categorias de ferramentas:

  • Navegação: browser_navigate, browser_back, browser_forward
  • Extração: browser_extract_text, browser_extract_links, browser_extract_html
  • Interação: browser_click, browser_type, browser_select
  • Formulários: browser_fill_form, browser_submit
  • Capturas de Tela: browser_screenshot, browser_screenshot_element
  • JavaScript: browser_evaluate, browser_evaluate_async

📊 Framework de Avaliação de Agentes

Teste e valide o comportamento do agente com o crate adk-eval:

use adk_eval::{Evaluator, EvaluationConfig, EvaluationCriteria};

let config = EvaluationConfig::with_criteria(
    EvaluationCriteria::exact_tools()
        .with_response_similarity(0.8)
);

let evaluator = Evaluator::new(config);
let report = evaluator
    .evaluate_file(agent, "tests/my_agent.test.json")
    .await?;

assert!(report.all_passed());

Capacidades de avaliação:

  • Validação de trajetória (sequências de chamadas de ferramentas)
  • Similaridade de resposta (Jaccard, Levenshtein, ROUGE)
  • Correspondência semântica julgada por LLM
  • Pontuação baseada em rubrica com critérios personalizados
  • Detecção de segurança e alucinações

🎨 ADK Studio: Construtor Visual de Agentes

Uma interface de arrastar e soltar para construir agentes de IA:

cargo install adk-studio
adk-studio

Recursos:

  • Canvas ReactFlow para design visual de workflow
  • Paleta completa de agentes: LLM, Sequencial, Paralelo, Loop, Roteador
  • Integração de ferramentas: Função, MCP, Navegador, Pesquisa Google
  • Teste de chat em tempo real com streaming SSE
  • Geração de código com um clique para produção Rust

🛡️ Guardrails

Validação de entrada/saída com o crate adk-guardrail:

use adk_guardrail::{Guardrails, PiiRedactor, ContentFilter};

let guardrails = Guardrails::new()
    .add(PiiRedactor::default())
    .add(ContentFilter::block_harmful());

let safe_input = guardrails.process_input(user_message)?;
let safe_output = guardrails.process_output(agent_response)?;

Guardrails integrados:

  • Redação de PII (e-mails, telefones, SSNs, cartões de crédito)
  • Filtragem de conteúdo (prejudicial, inadequado)
  • Validação de esquema JSON
  • Regras de validação personalizadas

🖼️ Geração Dinâmica de UI

O crate adk-ui permite que os agentes renderizem interfaces ricas:

use adk_ui::{UiToolset, UI_AGENT_PROMPT};

let agent = LlmAgentBuilder::new("ui_assistant")
    .instruction(UI_AGENT_PROMPT)
    .tools(UiToolset::all_tools())
    .build()?;

Componentes: 28 componentes UI incluindo cartões, tabelas, gráficos, formulários Modelos: 10 modelos pré-construídos para padrões comuns React Client: npm install @zavora-ai/adk-ui-react

Mudanças Disruptivas

Mudanças em RunnerConfig

A struct RunnerConfig agora inclui um campo run_config:

// Before (v0.1.x)
let runner = Runner::new(RunnerConfig {
    app_name: "my_app".to_string(),
    agent: agent.clone(),
    session_service: session_service.clone(),
    artifact_service: None,
    memory_service: None,
})?;

// After (v0.2.0)
let runner = Runner::new(RunnerConfig {
    app_name: "my_app".to_string(),
    agent: agent.clone(),
    session_service: session_service.clone(),
    artifact_service: None,
    memory_service: None,
    run_config: None,  // NEW: Optional RunConfig for execution settings
})?;

Atualizações de Dependência

  • sqlx atualizado de 0.7 para 0.8 (necessário para compatibilidade com SQLite)
  • Edição Rust 2024 (requer Rust 1.85+)

Guia de Migração

  1. Atualizar Cargo.toml:

    adk-rust = "0.2.0"
  2. Adicionar run_config: None a RunnerConfig:

    RunnerConfig {
        // ... existing fields ...
        run_config: None,
    }
  3. Atualizar sqlx se estiver usando sessões SQLite:

    sqlx = { version = "0.8", features = ["sqlite", "runtime-tokio"] }

Melhorias de Desempenho

  • Otimização de streaming: Alocações de memória reduzidas no streaming de eventos
  • Cache de sessão: Desempenho de pesquisa de sessão aprimorado
  • Execução de ferramentas: Execução paralela de ferramentas onde possível

Documentação

Toda a documentação foi atualizada para a v0.2.0:

A documentação agora está disponível em 9 idiomas: Inglês, Espanhol, Chinês, Japonês, Português, Alemão, Francês, Árabe, Hindi e Coreano.

Próximos Passos

Já estamos trabalhando na v0.3.0 com recursos planejados:

  • Integrações de nuvem (AWS Bedrock, Azure OpenAI, GCP Vertex AI)
  • Sistemas de memória aprimorados com mais backends de banco de dados vetoriais
  • Modelos de workflow e padrões de agentes pré-construídos
  • Ferramentas de perfil e otimização de desempenho

Comece Agora

# Create a new project
cargo new my_agent
cd my_agent

# Add ADK-Rust
echo 'adk-rust = "0.2.0"' >> Cargo.toml
echo 'tokio = { version = "1.40", features = ["full"] }' >> Cargo.toml

# Set your API key
export GOOGLE_API_KEY="your-api-key"

# Run an example
cargo run --example quickstart

Agradecimentos

Um enorme agradecimento a todos que contribuíram para este lançamento através de código, documentação, relatórios de bugs e feedback. ADK-Rust é construído pela comunidade, para a comunidade.

Links:

Boas construções! 🦀🤖

Pronto para experimentar ADK-Rust v0.5.0?

Comece com o framework Rust mais poderoso para construir agentes de IA.