Introduction Ă  ADK-Rust

Agent Development Kit (ADK) est un framework flexible et modulaire pour dĂ©velopper et dĂ©ployer des agents IA. Bien qu’optimisĂ© pour Gemini et l’écosystĂšme Google, ADK est indĂ©pendant du modĂšle, indĂ©pendant du dĂ©ploiement, et conçu pour ĂȘtre compatible avec d’autres frameworks. ADK a Ă©tĂ© conçu pour faire en sorte que le dĂ©veloppement d’agents ressemble davantage au dĂ©veloppement logiciel, afin de permettre aux dĂ©veloppeurs de crĂ©er, dĂ©ployer et orchestrer plus facilement des architectures agentiques allant de tĂąches simples Ă  des workflows complexes.

Note : ADK-Rust nécessite Rust 1.95.0 ou une version supérieure.

Installation

Ajoutez ADK-Rust Ă  votre projet :

cargo add adk-rust

Ou ajoutez-le Ă  votre Cargo.toml :

[dependencies]
adk-rust = "2.0.0"
tokio = { version = "1.40", features = ["full"] }

Exemple rapide

use adk_rust::prelude::*;
use std::sync::Arc;

#[tokio::main]
async fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
    let api_key = std::env::var("GOOGLE_API_KEY")?;
    let model = GeminiModel::new(&api_key, "gemini-2.5-flash")?;
    
    let agent = LlmAgentBuilder::new("assistant")
        .description("A helpful AI assistant")
        .model(Arc::new(model))
        .build()?;
    
    println!("Agent '{}' ready!", agent.name());
    Ok(())
}

Aperçu de l’architecture

ADK-Rust utilise une architecture en couches conçue pour la modularitĂ© et l’extensibilitĂ© :

Rendering architecture


Concepts de base

ADK-Rust repose sur plusieurs primitives clés qui travaillent ensemble pour créer de puissants agents IA :

Agents

L’unitĂ© de travail fondamentale conçue pour des tĂąches spĂ©cifiques. ADK-Rust fournit plusieurs types d’agents :

  • LlmAgent : utilise un Large Language Model pour le raisonnement et la prise de dĂ©cision. C’est le principal type d’agent pour la plupart des cas d’usage.
  • RealtimeAgent : agents avec support vocal utilisant OpenAI Realtime API ou Gemini Live API pour le streaming audio bidirectionnel.
  • GraphAgent : orchestration de workflows de style LangGraph avec gestion d’état, points de contrĂŽle et support human-in-the-loop.
  • CustomAgent : vous permet d’implĂ©menter une logique personnalisĂ©e avec un contrĂŽle total sur le comportement de l’agent.
  • Workflow Agents : agents dĂ©terministes qui suivent des chemins d’exĂ©cution prĂ©dĂ©finis :
    • SequentialAgent : exĂ©cute les sous-agents dans l’ordre
    • ParallelAgent : exĂ©cute les sous-agents simultanĂ©ment
    • LoopAgent : exĂ©cute les sous-agents de maniĂšre itĂ©rative jusqu’à ce qu’une condition soit remplie

Outils

Les outils donnent aux agents des capacitĂ©s au-delĂ  de la conversation, leur permettant d’interagir avec des APIs externes, de rechercher des informations ou d’effectuer des opĂ©rations personnalisĂ©es :

  • FunctionTool : Envelopper toute fonction Rust asynchrone comme un outil
  • GoogleSearchTool : CapacitĂ© de recherche web intĂ©grĂ©e
  • BrowserToolset : 46 outils WebDriver pour l’automatisation web (navigation, formulaires, captures d’écran, etc.)
  • ExitLoopTool : ContrĂŽle de la terminaison de la boucle d’exĂ©cution dans LoopAgent
  • McpToolset : Connecter un serveur MCP et exposer des outils, ressources, prompts, complĂ©tion, abonnements, Ă©licitation et tĂąches nĂ©gociĂ©es revus
  • McpServerManager : Ajouter, mettre Ă  jour, surveiller, redĂ©marrer, persister et agrĂ©ger un registre changeant de serveurs MCP locaux pendant l’exĂ©cution de l’application

Sessions

Les sessions gùrent le contexte d’une conversation unique, y compris :

  • ID de session : Identifiant unique de la conversation
  • ÉvĂ©nements : L’historique de la conversation (messages utilisateur, rĂ©ponses de l’agent, appels d’outils)
  • État : MĂ©moire de travail de la conversation avec des prĂ©fixes de portĂ©e (app:, user:, temp:)

Rappels

Code personnalisĂ© qui s’exĂ©cute Ă  des points spĂ©cifiques de l’exĂ©cution de l’agent :

  • before_agent / after_agent : Intercepter les invocations de l’agent
  • before_model / after_model : Intercepter les appels Ă  LLM
  • before_tool / after_tool : Intercepter les exĂ©cutions d’outils

Les rappels permettent la journalisation, les garde-fous, la mise en cache et la modification du comportement.

Artefacts

Stockage de données binaires pour les fichiers, images ou autre contenu non textuel :

  • Enregistrer et charger des artefacts avec versioning
  • PortĂ©e de l’espace de noms (au niveau de la session ou de l’utilisateur)
  • Backends de stockage branchables

ÉvĂ©nements

L’unitĂ© de base de communication reprĂ©sentant les choses qui se produisent pendant une session :

  • Messages utilisateur
  • RĂ©ponses de l’agent
  • Appels d’outils et rĂ©sultats
  • Changements d’état

Les Ă©vĂ©nements constituent l’historique de la conversation et permettent la relecture et le dĂ©bogage.

ModĂšles

Le LLM sous-jacent qui alimente LlmAgents. ADK-Rust est optimisé pour Gemini mais prend en charge plusieurs fournisseurs via le trait Llm :

  • Gemini : Les modĂšles Gemini de Google (gemini-3-pro, gemini-3-flash, gemini-2.5-flash, gemini-2.5-pro)
  • OpenAI : gpt-5.1, gpt-5, gpt-5-mini, Azure OpenAI
  • Anthropic : claude-opus-4-6, claude-sonnet-4-6, claude-haiku-4-5
  • DeepSeek : deepseek-r1, deepseek-v3.1, deepseek-chat avec mode de rĂ©flexion
  • Groq : InfĂ©rence ultra-rapide avec llama-4-scout, llama-3.1-70b-versatile, mixtral-8x7b-32768
  • Ollama : InfĂ©rence locale avec qwen3.6:35b-a3b, qwen3.5, llama3.2:3b, deepseek-r1:14b
  • mistral.rs : InfĂ©rence locale haute performance avec accĂ©lĂ©ration matĂ©rielle

Tous les fournisseurs implĂ©mentent le mĂȘme trait pour un usage interchangeable :

pub trait Llm: Send + Sync {
    async fn generate(&self, request: LlmRequest) -> Result<LlmResponse>;
    async fn generate_stream(&self, request: LlmRequest) -> Result<LlmResponseStream>;
}

Exécuteur

Le moteur qui gĂšre le flux d’exĂ©cution, orchestre les interactions avec les agents et coordonne avec les services backend. Le Runner gĂšre :

  • Appel des agents et traitement des rĂ©ponses
  • ExĂ©cution des outils
  • Gestion des sessions et de l’état
  • Diffusion en continu des Ă©vĂ©nements

Indicateurs de fonctionnalités

ADK-Rust utilise des fonctionnalités Cargo pour la modularité. Quatre préréglages contrÎlent quels crates sont compilés :

# Minimal (default) — Gemini, agents, runner, sessions
adk-rust = "2.0.0"

# Standard — adds tools, memory, telemetry, server, auth, graph, eval, guardrail, plugins, artifacts, skills
adk-rust = { version = "2.0.0", features = ["standard"] }

# Enterprise — standard + realtime, browser, RAG, payments, AWP
adk-rust = { version = "2.0.0", features = ["enterprise"] }

# Full — enterprise + audio, code execution, sandbox
adk-rust = { version = "2.0.0", features = ["full"] }

# Equivalent explicit minimal selection
adk-rust = { version = "2.0.0", default-features = false, features = ["minimal"] }

# Custom: Pick what you need
adk-rust = { version = "2.0.0", default-features = false, features = ["agents", "gemini", "tools"] }

Fonctionnalités disponibles :

  • agents : ImplĂ©mentations d’agents (LlmAgent, CustomAgent, agents de workflow)
  • models : IntĂ©grations de modĂšles (Gemini)
  • openai : modĂšles OpenAI (GPT-5, GPT-5 Mini)
  • anthropic : modĂšles Anthropic (Claude 4.6, Claude 4.5)
  • deepseek : modĂšles DeepSeek (chat, reasoner)
  • groq : infĂ©rence ultra-rapide Groq
  • ollama : modĂšles Ollama locaux
  • tools : systĂšme d’outils et outils intĂ©grĂ©s
  • sessions : gestion des sessions
  • artifacts : stockage des artefacts
  • memory : systĂšme de mĂ©moire avec recherche sĂ©mantique et backend de graphe de connaissances bi-temporel (GraphMemoryService)
  • runner : runtime d’exĂ©cution des agents
  • server : serveur HTTP (REST + A2A)
  • telemetry : aides au traçage ; ajoutez telemetry-otlp uniquement lors de l’export OTLP
  • cli : lanceur CLI ; ajoutez cli-openai, cli-anthropic, ou une autre fonctionnalitĂ© de fournisseur CLI uniquement si nĂ©cessaire
  • mcp : intĂ©gration du Model Context Protocol pour adk-tool
  • record-payloads : activer la capture complĂšte des charges utiles de traçage
  • graph : workflows basĂ©s sur des graphes (prĂ©rĂ©glage standard)
  • realtime : voix + diffusion multimodale — OpenAI Realtime et Gemini Live, audio bidirectionnel, images vidĂ©o, dialogue affectif, outils cĂŽtĂ© serveur (prĂ©rĂ©glage entreprise)
  • browser : automatisation du navigateur (prĂ©rĂ©glage entreprise)
  • eval : Ă©valuation des agents (prĂ©rĂ©glage standard)
  • rag : pipeline RAG (prĂ©rĂ©glage entreprise)
  • code : exĂ©cution de code (prĂ©rĂ©glage complet)
  • sandbox : exĂ©cution en bac Ă  sable (prĂ©rĂ©glage complet)
  • audio : traitement audio (prĂ©rĂ©glage complet)

Autres langues

ADK est disponible en plusieurs langues :


Suivant : DĂ©marrage rapide →

Introduction Ă  ADK-Rust - Documentation ADK-Rust | ADK-Rust