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Úle | Résultat obtenu |
|---|---|
basic | Agent Gemini avec console interactive (par défaut) |
tools | Agent avec outils personnalisés de macro #[tool] + génération de schémas schemars |
rag | Pipeline RAG â embeddings Gemini, magasin de vecteurs en mĂ©moire, ingestion de documents |
api | Serveur Axum REST, contrĂŽle de santĂ©, points de terminaison de streaming et interface utilisateur dâexĂ©cution intĂ©grĂ©e |
openai | Agent OpenAI GPT-5-mini avec console |
a2a | Agent de protocole A2A avec constructeur A2aServer et carte dâagent |
graph | Flux de travail basé sur un graphe avec points de contrÎle et reprise persistante |
realtime | Agent de diffusion en continu de la voix et de lâaudio en temps rĂ©el |
Conseil : Utilisez lâoption
--addonpour composer des modĂšles avec des modules complĂ©mentaires facultatifs tels quedocker,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.

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(())
}
| Partie | Fonction |
|---|---|
OpenAIClient | Crée le client de modÚle à partir de OPENAI_API_KEY |
LlmAgentBuilder | ModÚle de générateur : nom, description, instruction (invite systÚme), modÚle, outils |
InMemorySessionService | Stocke les sessions de dĂ©veloppement locales pour lâexĂ©cuteur et lâinterface utilisateur |
create_app | Monte 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
| Fournisseur | Exemples de modÚles | Indicateur de fonctionnalité |
|---|---|---|
| Gemini | gemini-3.7-flash, gemini-3.6-flash, gemini-3.1-pro-preview | (par défaut) |
| OpenAI | gpt-5.6-terra, gpt-5.6-sol, gpt-5.6-luna | openai |
| Anthropic | claude-sonnet-5, claude-opus-5, claude-fable-5 | anthropic |
| DeepSeek | deepseek-v4-flash, deepseek-v4-pro | deepseek |
| Groq | openai/gpt-oss-120b, openai/gpt-oss-20b | groq |
| Ollama | qwen3.6:35b-a3b, qwen3.5, llama3.2:3b | ollama |
Ătapes suivantes
- LlmAgent Configuration â toutes les options de configuration
- Outils de fonction â crĂ©er des outils personnalisĂ©s avec
#[tool] - Agents de workflow â pipelines sĂ©quentiels, parallĂšles et en boucle
- Sessions â gĂ©rer lâĂ©tat de la conversation
- Rappels â personnaliser le comportement de lâagent
Précédent : Introduction | Suivant : LlmAgent