LlmAgent
Raisonnement ciblé
Un modèle, des instructions, des outils, des rappels et une sortie en streaming : le petit centre utile de la plupart des systèmes.
ADK-Rust rassemble des agents typés, des outils, un état durable, des médias en temps réel et des protocoles ouverts dans un seul environnement d'exécution asynchrone, afin que vous puissiez passer d'un agent ciblé à un système que vous pouvez utiliser en toute confiance.
Commencer par l'unité de travail
Un agent est un composant asynchrone Rust. Il reçoit un contexte d'invocation, effectue des travaux avec des modèles ou des outils et émet des événements typés au fur et à mesure de sa progression. Les agents LLM, les workflows, les agents en temps réel, les agents de codage et les agents Rust personnalisés utilisent tous ce contrat partagé.
Ce qui rend ADK-Rust convaincant, c'est que l'agent fait toujours partie d'un système logiciel que vous pouvez comprendre et contrôler. Les appels de modèle, les entrées d'outils, les changements d'état, les approbations et les événements diffusés en continu ont des contrats Rust explicites. Le même environnement d'exécution peut prendre en charge un assistant ciblé, un flux de travail multi-agent durable, une expérience vocale en temps réel ou un agent qui fonctionne sur plusieurs services, tout en préservant les performances, la simultanéité, la portabilité et la discipline opérationnelle attendues par les équipes Rust.
Si vous connaissez LangGraph, Google ADK, OpenAI Agents SDK ou CrewAI, vous reconnaîtrez les outils, les transferts, les flux de travail, la mémoire, les garde-fous et le traçage. ADK-Rust intègre ces idées dans un environnement d'exécution natif Rust et les connecte aux médias en temps réel, à l'exécution de code, à RAG, aux artefacts et aux protocoles ouverts tels que MCP, A2A, ACP et AWP. La version 2 étend cette base avec des agents graphiques, temps réel, de codage et CodeAct ; schémas d'outils adaptés aux fournisseurs ; modèles de projets composables et construction d'adk cargo; des contrôles d’état et opérationnels plus stricts ; et une piste d'événements typée cohérente depuis le premier appel de modèle jusqu'à la production.
Comment lire l'architecture
Suivez le schéma de gauche à droite. Une surface de produit envoie une requête au Runner. Le Runner attache l'état de la session et le contexte d'appel, puis appelle l'agent sélectionné. Les modèles, les outils et l'état soutiennent le travail tandis que les événements typés reportent la progression et les résultats.
Runner, agents, événements saisis, boucles modèle/outil, sessions, rappels, transferts et annulations.
Les transports MCP, A2A, ACP, AWP, HTTP, SSE et en temps réel connectent des systèmes et des zones de confiance distincts.
Studio, l'interface utilisateur, Playground et le plan de contrôle consomment ADK-Rust ; ils ne fonctionnent pas à l'intérieur du Runner.
Surface du cadre
ADK-Rust rassemble le cycle de vie complet de l'agent dans un seul cadre : composez le comportement de l'agent, donnez-lui des outils, préservez le contexte, connectez-le à d'autres systèmes et exploitez-le en toute sécurité en production. Les groupes ci-dessous montrent comment ces capacités s'articulent.
Créez des agents LLM, de flux de travail, de graphiques, en temps réel et de codage ; équipez-les d'outils typés, MCP, RAG, de mémoire, de sessions et d'artefacts ; connectez-les via REST, A2A, ACP et AWP ; puis ajoutez l'autorisation, les garde-fous, la télémétrie et l'évaluation pour la production.
Composer capability
The main model-driven agent. Give it instructions, an LLM, tools, callbacks, and optional sub-agents; the Runner streams its work as typed events.
Agir capability
Turns a typed async Rust function into a model-callable tool and derives the argument schema from Rust types.
Rappelez-vous capability
Keep conversation events and application state together so a user can continue the same interaction over multiple turns.
Se connecter capability
Exposes familiar HTTP endpoints for clients that send a request and receive a structured response.
Fonctionner capability
Establishes who is calling the system through API keys, OAuth, OIDC, SSO, and application identity.
Construire capability
Generate working starting shapes for focused agents, tools, retrieval, APIs, workflows, realtime sessions, and custom logic.
Voyez comment ça marche
Le Runner résout la session, crée le contexte d'appel, exécute l'agent, diffuse le travail du modèle et des outils, applique les changements d'état, conserve les événements durables et renvoie la progression à l'appelant au fur et à mesure.
Cette même piste peut alimenter un terminal, une interface utilisateur Web, un client API, une évaluation ou une conversation en temps réel.
Suivre une vraie demande
Un client demande : « Pourquoi mon paiement a-t-il échoué ? » Le Runner ouvre la session appropriée, diffuse la sortie du modèle et l'activité de l'outil, enregistre les changements d'état et renvoie chaque événement utile à l'interface. L'utilisateur voit les progrès tandis que l'opérateur obtient un enregistrement complet de l'exécution.
Composer le comportement
Un routeur identifie le travail à effectuer. Les spécialistes manipulent les pièces qu’ils comprennent le mieux. Les flux de travail séquentiels et parallèles contrôlent l'ordre d'exécution, tandis que les points de contrôle graphiques conservent les preuves, les approbations et la progression attachées au même travail.
LlmAgent
Un modèle, des instructions, des outils, des rappels et une sortie en streaming : le petit centre utile de la plupart des systèmes.
Sequential · Parallel · Loop
Exprimez les conditions d'ordre, de concurrence, de répétition et de sortie directement dans le programme Rust.
GraphAgent
Branchez, point de contrôle, interrompez pour une personne et reprenez une fois le processus ou la conversation avancé.
CodingAgent · CodeActAgent
Laissez un agent inspecter, modifier et exécuter du code dans un espace de travail et une limite de sandbox que vous contrôlez.
RealtimeAgent
Transportez l'audio, les transcriptions, les images vidéo, les interruptions et les outils côté serveur au cours d'une seule session en direct.
CustomAgent
Implémentez le contrat d'agent pour un comportement spécifique au produit écrit directement dans Rust.
Le système autour de l'agent
Les agents utiles ont besoin d’outils, d’états, d’interfaces, de limites et de preuves. ADK-Rust expose chaque pièce via les interfaces composables Rust que vous possédez.
Un produit, plusieurs responsabilités
Dans un produit de support client, le modèle rédige la réponse, les outils inspectent la commande, la session contient le contexte client, l'autorisation contrôle les remboursements, un artefact stocke le reçu et la télémétrie enregistre le résultat. Chaque responsabilité reste visible dans le runtime.
Les modèles de frontière hébergés, les modèles de routage rapide, l'Ollama local et l'inférence native de mistral.rs se trouvent derrière un contrat Llm commun.
Gemini · OpenAI · Anthropic · OpenRouter · DeepSeek · Groq · Ollama · Bedrock · Azure AI · points de terminaison compatibles
Transformez une fonction Rust typée, un serveur MCP, une compétence, une session de navigateur, un agent de codage ou un processus sandbox en une fonctionnalité que le runtime peut inspecter et appeler.
#[tool] · FunctionTool · MCP · ACP · compétences · navigateur · code
Les sessions contiennent l’historique des événements. La mémoire récupère des connaissances utiles. Les artefacts préservent les fichiers. Les points de contrôle graphiques permettent de reprendre un long travail.
SQLite · PostgreSQL · Redis · MongoDB · Firestore · Neo4j · sessions chiffrées
ADK-Rust conserve l'audio, les transcriptions, les images vidéo, les appels d'outils, les interruptions et les changements de contexte dans une session appartenant à Rust.
OpenAI Realtime · Gemini Live · Vertex Live · LiveKit · WebRTC en option
Regroupez les documents, intégrez-les, recherchez des magasins de vecteurs, reclassez les résultats et isolez la mémoire par projet avant que le modèle ne réponde.
Pipelines RAG · mémoire sémantique · graphe de connaissances · cinq implémentations de magasins vectoriels
L'autorisation, les rappels, les garde-fous, les profils sandbox, l'annulation, la télémétrie et l'évaluation constituent la limite de l'exécution de la production.
RBAC · OAuth/OIDC · confirmation de l'outil · Garde-corps PII · OpenTelemetry · évaluation
Choisissez la limite
Commencez par l’endroit où la capacité s’exécute.
Conservez les sous-agents dans un seul environnement d'exécution ADK-Rust lorsqu'ils partagent le déploiement, l'état et la confiance. Introduisez un protocole lorsque la fonctionnalité, l'agent, l'espace de travail de codage ou le site Web possède son propre déploiement, processus, propriété ou limite de confiance.
Même processus Rust
Agent, sous-agent ou outil
Outils ou ressources externes
MCP
Agent déployé de manière indépendante
A2A
Processus de codage ou IDE
ACP
Site Web lisible par l'agent
AWP
Protocole de contexte de modèle
What is MCP?
Méthode standard permettant à un serveur externe de publier les outils qu'un agent peut appeler et les ressources qu'il peut lire.
Protocole d'agent à agent
What is A2A?
Un protocole réseau permettant de découvrir un agent distant, de lui envoyer du travail, de suivre sa progression et de recevoir des résultats au-delà d'une limite HTTP.
Protocole client agent
What is ACP?
Un protocole qui standardise les sessions entre les agents de codage et les clients qui les hébergent, notamment les éditeurs, les CLI et les systèmes d'orchestration.
Protocole Web agent
What is AWP?
Protocole Web par lequel un site publie qui il est, ce que les agents peuvent faire, quelles politiques s'appliquent et si ses services destinés aux agents sont sains.
Démarrage rapide pour les développeurs
Commencez par un petit projet Rust fonctionnel. Les étapes guidées ci-dessous expliquent ce que le générateur ajoute, comment compiler le projet localement et où l'étendre à mesure que votre produit se développe.
Ce que tu auras à la fin
Un agent Rust compilé avec un outil typé, une session Launcher interactive, une configuration de télémétrie, des points d'intégration de session et de garde-corps et une réponse de modèle réel dans le terminal. Le projet généré est une source Rust ordinaire que vous pouvez lire, modifier et étendre.
Avant de commencer
Deux choses sont requises sur votre machine
Rust 1.95 ou version ultérieure.
Installez avec rustup ou mettez à jour la chaîne d'outils stable.
Une clé modèle API.
Ce chemin utilise GOOGLE_API_KEY; un autre fournisseur peut être sélectionné ultérieurement.
cargo-adk ajoute les commandes cargo adk utilisées pour créer, inspecter, construire et déployer des projets d'agent.
cargo install cargo-adkCommencez avec un agent capable d'appeler des outils Rust typés. Ajoutez de l'observabilité, de l'état de session et des crochets de garde-corps pendant la génération du projet.
cargo adk new support-agent --template tools \
--addon telemetry --addon sessions --addon guardrailsL'exemple généré utilise Gemini par défaut. Copiez le fichier d'exemple sécurisé, puis placez votre clé dans le fichier .env non suivi.
cd support-agent
cp .env.example .env
# set GOOGLE_API_KEY in .envcargo adk build vérifie les dépendances générées, la combinaison de fonctionnalités, les types Rust et la version binaire sans rien déployer.
cargo adk buildLancez la console générée, saisissez un message et regardez le même runtime saisi qui pourra ensuite alimenter un API, un workflow ou un produit en temps réel.
cargo runInstaller une fois
$ cargo install cargo-adkGénérer le projet
$ cargo adk new support-agent \
+ --template tools \
+ --addon telemetry \
+ --addon sessions \
+ --addon guardrailsConfigurer le modèle
$ cd support-agent
cp .env.example .env
# Add GOOGLE_API_KEY to .envVérifiez, puis exécutez
$ cargo adk build
cargo run ADK-Rust — support-agent
Type a message to chat. Type 'exit' to quit.
You > Greet Ada casually.
[tool] greet({"name":"Ada","style":"casual"})
Hey Ada! What's up?
You > exit
Goodbye.Comprendre l'échafaudage
Le modèle fournit la forme de l'agent de travail. Chaque module complémentaire apporte les fonctionnalités de caisse, les importations, la configuration et un emplacement explicite pour terminer l'intégration.
Modèle
Génère un agent LLM avec une fonction #[tool] typée et le câblage de schéma nécessaire pour les appels d'outils de modèle.
Add-on
Permet l'intégration d'OpenTelemetry afin que le travail du modèle, des outils et de l'exécution puisse être tracé.
Add-on
Ajoute un câblage de service de session afin que l'état de conversation puisse survivre au-delà d'un seul appel modèle.
Add-on
Ajoute la fonctionnalité et des hooks clairs pour la validation des entrées, les contrôles de sortie et le filtrage du contenu.
Choisissez une forme de départ différente
Choisissez la forme qui correspond au premier travail utile. Les modèles génèrent une source Rust modifiable, des dépendances, une configuration du fournisseur et un point d'entrée exécutable.
llmModèle d'agentGénère un LlmAgentBuilder, une configuration de modèle Gemini, des instructions, un Launcher basé sur une session et un terminal interactif.
Choisissez ceci lorsque
Choisissez-le pour les assistants, l'extraction, la classification ou une boucle de modèle et d'outils ciblée.
Point de départ généré
Un agent LLM · console diffusée · configuration du fournisseur
cargo adk new my-agent --template llmtoolsModèle d'agentAjoute src/tools.rs avec une fonction #[tool] fonctionnelle, des arguments saisis, la génération de schéma JSON et l'enregistrement sur l'agent LLM.
Choisissez ceci lorsque
Choisissez-le lorsque l'agent doit calculer, récupérer des données, appeler une logique métier ou effectuer une action.
Point de départ généré
LlmAgent · Outil Greet · serde · schémas · adk-tool
cargo adk new my-agent --template toolsragModèle d'agentCrée un pipeline RAG avec le regroupement de documents, les intégrations Gemini, un magasin de vecteurs en mémoire, un exemple de document et RagTool.
Choisissez ceci lorsque
Choisissez-le pour la documentation produit, les politiques, les collections de recherche ou les réponses fondées sur du matériel privé.
Point de départ généré
RagPipeline · chunker · intégrations · recherche de vecteurs · RagTool
cargo adk new my-agent --template ragapiModèle d'agentGénère un serveur Axum avec des points de terminaison d’intégrité, de création de session et d’exécution en streaming autour d’un agent LLM.
Choisissez ceci lorsque
Choisissez-le lorsqu'une application Web, un client mobile, un service backend ou une plateforme d'automatisation appellera l'agent.
Point de départ généré
Axum · Itinéraires REST · Réponses SSE · Sessions en mémoire
cargo adk new my-agent --template apia2aAlias de modèleRésout le modèle a2a-server et combine un agent LLM avec des fonctionnalités de serveur et de session pour l'accès agent à agent.
Choisissez ceci lorsque
Choisissez-le lorsqu'un autre agent doit découvrir et appeler cet agent au-delà d'une limite de déploiement ou de propriété.
Point de départ généré
Serveur A2A · identité de l'agent · gestion des tâches · sessions
cargo adk new my-agent --template a2agraphModèle d'agentActive la fonctionnalité graphique et crée les importations et le point de départ de l'agent pour les nœuds, les tronçons, les points de contrôle, l'interruption et la reprise.
Choisissez ceci lorsque
Choisissez-le pour un travail de longue durée avec des branches, des étapes d'approbation, une récupération ou un état d'exécution durable.
Point de départ généré
Fonctionnalité graphique · Agent de workflow · Point de départ de la topologie
cargo adk new my-agent --template graphrealtimeModèle d'agentPermet une prise en charge en temps réel et crée un point de départ concis pour un agent vocal avec des importations en temps réel et la configuration du fournisseur.
Choisissez ceci lorsque
Choisissez-le pour une conversation naturelle, une interruption, une traduction en direct, des outils audio ou des images vidéo entrantes.
Point de départ généré
Fonctionnalité en temps réel · instructions vocales · point de départ du transport
cargo adk new my-agent --template realtimesequentialModèle de flux de travailGénère des agents de recherche et d'écriture à l'intérieur d'un SequentialAgent afin que chaque étape reçoive le travail produit par l'étape précédente.
Choisissez ceci lorsque
Choisissez-le lorsque le processus comporte des phases claires telles que la collecte, l'analyse, la rédaction, la révision et la publication.
Point de départ généré
Deux agents LLM · exécution ordonnée · piste d'appel partagée
cargo adk new my-agent --template sequentialparallelModèle de flux de travailGénère deux agents spécialisés dans un ParallelAgent et rassemble leur travail via un flux de travail parent.
Choisissez ceci lorsque
Choisissez-le lorsque plusieurs enquêtes peuvent commencer à partir de la même entrée et se terminer indépendamment.
Point de départ généré
Deux agents LLM · exécution simultanée · résultats agrégés
cargo adk new my-agent --template parallelloopModèle de flux de travailCrée un travailleur à l'intérieur de LoopAgent avec un signal d'achèvement explicite et une limite de sécurité de cinq itérations.
Choisissez ceci lorsque
Choisissez-le pour les processus de rédaction, de critique, de réparation, de validation ou de recherche qui s’améliorent grâce à des passages répétés.
Point de départ généré
Constructeur LoopAgent · agent ouvrier · instruction d'achèvement · itérations maximales
cargo adk new my-agent --template loopconditionalModèle de flux de travailGénère des agents techniques et généraux à l'intérieur d'un ConditionalAgent qui sélectionne un chemin à partir de la demande entrante.
Choisissez ceci lorsque
Choisissez-le lorsque les catégories de travail nécessitent des instructions, des outils, des modèles ou des spécialistes de domaine différents.
Point de départ généré
ConditionalAgent · deux itinéraires · Sélection basée sur LLM
cargo adk new my-agent --template conditionalcustomModèle d'agentCrée un type MyAgent avec les méthodes de trait Agent et une fonction d'exécution prête pour votre propre logique d'exécution et flux d'événements Rust.
Choisissez ceci lorsque
Choisissez-le pour une orchestration déterministe, des machines d'état existantes, des environnements d'exécution de domaine ou un comportement nécessitant un contrôle total de Rust.
Point de départ généré
Squelette de trait d'agent · InvocationContext · Point d'entrée EventStream
cargo adk new my-agent --template customLe registre CLI inclut également les informations spécifiques au fournisseur. openai modèle, cinq modèles d'entreprise, le basic et a2a alias et modules complémentaires de fonctionnalités composables.
cargo adk templatescargo adk addonsCompilez ce dont vous avez besoin
Choisissez d’abord un modèle pour la forme d’exécution du projet. Sélectionnez ensuite un niveau de fonctionnalités pour les capacités compilées dans le binaire.
Les niveaux de fonctionnalités contrôlent les dépendances, le temps de compilation, la surface binaire et le framework API disponible. Les bases de données persistantes, MCP, les gestionnaires de secrets cloud et les transports spécifiques en temps réel restent des choix explicites.
Agents · Gemini · Runner · séances
Un agent ciblé avec la plus petite surface par défaut.
Outils · mémoire · graphique · serveur · authentification · évaluation · télémétrie
La plupart des API, des systèmes de flux de travail et des produits d'agent interne.
Base en temps réel · navigateur · RAG · paiements · AWP
Des produits qui nécessitent une interaction et une interopérabilité plus riches.
Audio · exécution de code · bac à sable
Optez pour les capacités locales et d’exécution les plus avancées.
adk-rust = { version = "2.0.0", features = ["standard"] }Construire avec ADK-Rust
Votre première étape utile est une demande, un appel d'outil visible et une session que vous comprenez. Le démarrage rapide guidé construit ce chemin. À partir de là, ajoutez les flux de travail, l'état, les protocoles et les contrôles de fonctionnement dont votre produit a besoin.