Démarrage rapide

CrĂ©ez votre premier agent d’IA en moins de 5 minutes.

Prérequis

  • Rust 1.95.0 ou version ultĂ©rieure (rustup update stable)
  • Une clĂ© OpenAI API pour cette prĂ©sentation

Étape 1 : CrĂ©er l’ossature d’un serveur OpenAI

cargo install cargo-adk
cargo adk new quickstart_agent --template api --provider openai
cd quickstart_agent

Cela crĂ©e un projet Rust complet avec un agent OpenAI, des sessions en mĂ©moire, le runtime ADK HTTP, des points de terminaison de diffusion en continu et l’interface de dĂ©veloppement intĂ©grĂ©e.

Autres modĂšles

# Agent with custom tools using #[tool] macro
cargo adk new my_agent --template tools

# RAG agent with Gemini embeddings and in-memory vector search
cargo adk new my_agent --template rag

# REST API server with the embedded runtime UI
cargo adk new my_agent --template api

# OpenAI GPT-5-mini agent
cargo adk new my_agent --template openai

# A2A protocol agent with builder API
cargo adk new my_agent --template a2a

# Use any provider with any template
cargo adk new my_agent --template tools --provider anthropic

# Add optional addons to any template
cargo adk new my_agent --template tools --addon docker --addon ci
ModÚleRésultat obtenu
basicAgent Gemini avec console interactive (par défaut)
toolsAgent avec outils personnalisés de macro #[tool] + génération de schémas schemars
ragPipeline RAG — embeddings Gemini, magasin de vecteurs en mĂ©moire, ingestion de documents
apiServeur Axum REST, contrĂŽle de santĂ©, points de terminaison de streaming et interface utilisateur d’exĂ©cution intĂ©grĂ©e
openaiAgent OpenAI GPT-5-mini avec console
a2aAgent de protocole A2A avec constructeur A2aServer et carte d’agent
graphFlux de travail basé sur un graphe avec points de contrÎle et reprise persistante
realtimeAgent de diffusion en continu de la voix et de l’audio en temps rĂ©el

Conseil : Utilisez l’option --addon pour composer des modĂšles avec des modules complĂ©mentaires facultatifs tels que docker, ci, telemetry, et bien d’autres. Consultez la page ModĂšles composables pour obtenir la liste complĂšte des 9 modules complĂ©mentaires et des 5 modĂšles d’entreprise.

Étape 2 : Ajoutez votre clĂ© API

cp .env.example .env
# Open .env and replace the OPENAI_API_KEY placeholder.

Le .gitignore généré exclut .env. Conservez la clé en local et ne la validez jamais dans le dépÎt.

Étape 3 : ExĂ©cutez l’agent

cargo run

Ouvrez http://127.0.0.1:8080/ui/. L’agent apparaĂźt automatiquement ; vous n’avez pas besoin de crĂ©er une session ni d’appeler un point de terminaison au prĂ©alable.

Étape 4 : Testez-le dans l’interface utilisateur d’exĂ©cution

Saisissez une invite telle que :

Explain what this agent can do in three concise Markdown bullets.

La rĂ©ponse s’affiche progressivement dans la conversation. Utilisez l’inspecteur Ă  droite pour examiner la topologie d’exĂ©cution, la chronologie ordonnĂ©e des Ă©vĂ©nements, les changements d’état, les artefacts, les sessions, les capacitĂ©s du protocole et la tĂ©lĂ©mĂ©trie sans quitter la page.

Saisie d’une invite, observation du transfert entre Ă©quipes et ouverture de l’inspecteur de tĂ©lĂ©mĂ©trie d’exĂ©cution ADK

Cet enregistrement utilise la dĂ©monstration d’équipe portable afin que le transfert animĂ© soit facile Ă  observer. Votre agent gĂ©nĂ©rĂ© utilise la mĂȘme interface utilisateur d’exĂ©cution avec une topologie Ă  un nƓud.

VĂ©rifiez sĂ©parĂ©ment l’exĂ©cution HTTP si vous souhaitez effectuer un test de bon fonctionnement :

curl -fsS http://127.0.0.1:8080/api/health

Vous disposez maintenant d’un exĂ©cutable unique qui exĂ©cute l’agent, gĂšre les sessions, diffuse les Ă©vĂ©nements et fournit sa propre interface de test. Aucune installation frontend distincte n’est requise.

Vous préférez un agent utilisable uniquement depuis un terminal ?

Utilisez plutĂŽt le modĂšle de console OpenAI :

cargo adk new quickstart_console --template openai
cd quickstart_console
cp .env.example .env   # replace the OPENAI_API_KEY placeholder
cargo run

Alternative sans configuration — adk::run()

Si vous souhaitez simplement exécuter rapidement un agent sans générer de structure, utilisez la commande en une ligne :

use adk_rust::run;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    dotenvy::dotenv().ok();
    // Minimal default: set GOOGLE_API_KEY. Add provider features for OpenAI/Anthropic.
    let response = run("You are a helpful assistant.", "Explain Rust in one sentence.").await?;
    println!("{response}");
    Ok(())
}

Cela gĂšre la dĂ©tection des fournisseurs compilĂ©s, la crĂ©ation de sessions, la construction de l’agent et son exĂ©cution en un seul appel. IdĂ©al pour les scripts, les prototypes et les expĂ©rimentations rapides.


Comprendre le code généré

Le API du scaffold construit un LlmAgent ordinaire via src/main.rs, puis l’intùgre au serveur standard. Le cñblage important est le suivant :

use adk_rust::prelude::*;
use adk_rust::server::{ServerConfig, create_app};
use adk_rust::session::InMemorySessionService;
use std::sync::Arc;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    dotenvy::dotenv().ok();
    let api_key = std::env::var("OPENAI_API_KEY")?;

    let model = adk_rust::model::openai::OpenAIClient::new(
        adk_rust::model::openai::OpenAIConfig::new(&api_key, "gpt-5.6-terra"),
    )?;

    let agent: Arc<dyn Agent> = Arc::new(
        LlmAgentBuilder::new("quickstart_agent")
            .description("REST API agent")
            .instruction("You are a helpful assistant accessible via REST API.")
            .model(Arc::new(model))
            .build()?,
    );

    let config = ServerConfig::new(
        Arc::new(adk_rust::SingleAgentLoader::new(agent)),
        Arc::new(InMemorySessionService::new()),
    );
    let app = create_app(config);

    let listener = tokio::net::TcpListener::bind("127.0.0.1:8080").await?;
    axum::serve(listener, app).await?;
    Ok(())
}
PartieFonction
OpenAIClientCrée le client de modÚle à partir de OPENAI_API_KEY
LlmAgentBuilderModÚle de générateur : nom, description, instruction (invite systÚme), modÚle, outils
InMemorySessionServiceStocke les sessions de dĂ©veloppement locales pour l’exĂ©cuteur et l’interface utilisateur
create_appMonte le REST/SSE API et l’interface utilisateur d’exĂ©cution intĂ©grĂ©e dans un routeur Axum

Ajouter des outils personnalisés

La maniĂšre la plus rapide d’ajouter des outils consiste Ă  utiliser la macro #[tool]. Ajoutez adk-tool Ă  vos dĂ©pendances :

[dependencies]
adk-tool = "2.1.0"
schemars = "1"
serde = { version = "1", features = ["derive"] }

DĂ©finissez ensuite un outil — le commentaire de documentation devient la description, et la structure des arguments devient le schĂ©ma JSON :

use adk_tool::{tool, AdkError};
use schemars::JsonSchema;
use serde::Deserialize;
use serde_json::{json, Value};

#[derive(Deserialize, JsonSchema)]
struct WeatherArgs {
    /// The city to look up
    city: String,
}

/// Get the current weather for a city.
#[tool]
async fn get_weather(args: WeatherArgs) -> std::result::Result<Value, AdkError> {
    Ok(json!({ "temp": 22, "city": args.city, "condition": "sunny" }))
}

La macro génÚre une structure GetWeather qui implémente Tool. Ajoutez-la à votre agent :

let agent = LlmAgentBuilder::new("weather_agent")
    .instruction("Use the get_weather tool for weather questions.")
    .model(Arc::new(model))
    .tool(Arc::new(GetWeather))  // Generated by #[tool]
    .build()?;

Conseil : vous pouvez aussi créer un projet avec des outils déjà configurés : cargo adk new my-agent --template tools

Outils intégrés

ADK inclut Ă©galement des outils prĂȘts Ă  l’emploi :

// Google Search (handled server-side by Gemini)
.tool(Arc::new(GoogleSearchTool::new()))

// Exit a LoopAgent
.tool(Arc::new(ExitLoopTool::new()))

Exécuter en tant que serveur web

Créez un projet serveur lorsque vous souhaitez assurer le service de HTTP :

cargo adk new my-api --template api --provider openai
cd my-api
cp .env.example .env
cargo run

Ouvrez http://127.0.0.1:8080/ui/. Le modÚle de base par défaut utilise plutÎt le lanceur léger de la console.


Utiliser d’autres modùles

Activez les fournisseurs via des indicateurs de fonctionnalité. La compilation par défaut reste limitée à Gemini pour accélérer les installations ; ajoutez donc uniquement le fournisseur dont vous avez besoin :

[dependencies]
adk-rust = { version = "2.1.0", features = ["openai"] }

Vous pouvez également créer un projet avec un fournisseur : cargo adk new my-agent --provider openai

OpenAI

let api_key = std::env::var("OPENAI_API_KEY")?;
let model = OpenAIClient::new(OpenAIConfig::new(api_key, "gpt-5.6-terra"))?;

Anthropic

let api_key = std::env::var("ANTHROPIC_API_KEY")?;
let model = AnthropicClient::new(AnthropicConfig::new(api_key, "claude-sonnet-5"))?;

DeepSeek

let api_key = std::env::var("DEEPSEEK_API_KEY")?;
let model = DeepSeekClient::chat(api_key)?;         // standard
// let model = DeepSeekClient::reasoner(api_key)?;   // chain-of-thought

Groq

let api_key = std::env::var("GROQ_API_KEY")?;
let model = GroqClient::new(GroqConfig::gpt_oss_120b(api_key))?;

Ollama (local)

// Requires: ollama serve && ollama pull llama3.2
let model = OllamaModel::new(OllamaConfig::new("llama3.2"))?;

ModĂšles pris en charge

FournisseurExemples de modÚlesIndicateur de fonctionnalité
Geminigemini-3.7-flash, gemini-3.6-flash, gemini-3.1-pro-preview(par défaut)
OpenAIgpt-5.6-terra, gpt-5.6-sol, gpt-5.6-lunaopenai
Anthropicclaude-sonnet-5, claude-opus-5, claude-fable-5anthropic
DeepSeekdeepseek-v4-flash, deepseek-v4-prodeepseek
Groqopenai/gpt-oss-120b, openai/gpt-oss-20bgroq
Ollamaqwen3.6:35b-a3b, qwen3.5, llama3.2:3bollama

Étapes suivantes


Précédent : Introduction | Suivant : LlmAgent

Démarrage rapide - Documentation ADK-Rust | ADK-Rust