ADK Studio

Environnement de développement visuel pour la création d'agents d'IA par glisser-déposer.

Aperçu

ADK Studio fournit une interface low-code pour la conception, le test et le déploiement d'agents d'IA construits avec adk-rust. Créez visuellement des workflows multi-agents complexes, puis compilez-les en code Rust de production.

Interface principale d'ADK Studio

Installation

# Installer depuis crates.io (binaire autonome)
cargo install adk-studio

# Ou compiler à partir des sources
cargo build --release -p adk-studio

Démarrage rapide

# Démarrer le serveur studio
adk-studio

# Ouvrir dans le navigateur
open http://localhost:3000

Options CLI

OptionDescriptionPar défaut
--port, -pPort du serveur3000
--host, -hAdresse de liaison127.0.0.1
--dir, -dRépertoire des projets~/.local/share/adk-studio/projects
--static, -sRemplacer le répertoire des fichiers statiques(intégré)
# Lier à toutes les interfaces pour un accès à distance
adk-studio --host 0.0.0.0 --port 8080

# Répertoire de projets personnalisé
adk-studio --dir ./my-projects

Tutoriel pas à pas

Suivez ce guide pour créer votre premier Agent d'IA dans ADK Studio.

Étape 1 : Créer un nouveau projet

Cliquez sur le bouton + Nouveau projet dans le coin supérieur droit.

Créer un nouveau projet

Saisissez un nom pour votre projet (par exemple, "Projet Démo") et cliquez sur Créer.

Étape 2 : Ajouter un Agent au Canevas

La barre latérale gauche contient la Palette d'Agents avec les types d'Agent disponibles :

  • LlmAgent - Agent d'IA unique alimenté par un modèle de langage
  • Sequential - Exécute les sous-Agents dans l'ordre
  • Parallel - Exécute les sous-Agents concurremment
  • Loop - Itère jusqu'à la condition de sortie
  • Router - Route vers les sous-Agents en fonction de l'entrée

Cliquez sur LlmAgent pour l'ajouter au canevas.

Agent sur le Canevas

Étape 3 : Configurer l'Agent

Lorsque vous sélectionnez un Agent, le Panneau de Propriétés apparaît sur le côté droit. Ici, vous pouvez configurer :

  • Name - Identifiant de l'Agent
  • Model - Fournisseur et modèle LLM (GeminiModel, OpenAIClient, AnthropicClient, etc.)
  • Instructions - Prompt système pour l'Agent

Panneau de Propriétés

Étape 4 : Ajouter des Outils à l'Agent

Faites défiler la barre latérale gauche pour trouver la Palette d'Outils :

  • FunctionTool - Fonction Rust personnalisée avec éditeur de code
  • MCP - Serveur Model Context Protocol
  • Browser - 46 actions d'automatisation WebDriver
  • Google Search - Recherche web basée sur le contexte
  • Load Artifact - Charger des fichiers dans le contexte

Cliquez sur un Tool pour l'ajouter à votre Agent.

Agent avec l'Outil Google Search

Étape 5 : Construire et Tester

Cliquez sur Build Project pour compiler votre Agent. Une fois compilé, utilisez le Panneau de Chat en bas pour tester votre Agent avec de vraies conversations.

Panneau de Chat

Le chat prend en charge :

  • Réponses en streaming SSE en direct
  • Animations d'exécution d'Agent
  • Panneau de trace d'événements pour le débogage

Étape 6 : Afficher le Code Généré

Cliquez sur View Code pour voir le code Rust prêt pour la production généré à partir de votre conception visuelle.

Vue du Code Généré

Vous pouvez copier ce code ou utiliser Compile pour générer un projet Rust complet.


Fonctionnalités

Types d'Agent

AgentDescription
LLM AgentAgent unique alimenté par un LLM
SequentialExécute les sous-agents dans l'ordre
ParallelExécute les sous-agents en parallèle
LoopItère jusqu'à la condition de sortie
RouterAchemine vers les sous-agents en fonction de l'entrée

Types d'Outils

ToolDescription
FunctionFonction Rust personnalisée avec éditeur de code
MCPServeur Model Context Protocol
Browser46 actions d'automatisation WebDriver
Google SearchRecherche web contextualisée
Load ArtifactCharge des fichiers dans le contexte

Chat en Temps Réel

Testez les agents directement dans le studio :

  • Réponses en streaming SSE en direct
  • Animations d'exécution d'agent
  • Panneau de trace d'événements pour le débogage
  • Persistance de la mémoire de Session

Génération de Code

Convertissez les conceptions visuelles en code de production :

  1. Voir le Code - Prévisualisez le code Rust généré avec coloration syntaxique
  2. Compiler - Générez un projet Rust complet
  3. Construire - Compilez en exécutable avec sortie en temps réel
  4. Exécuter - Exécutez l'agent construit

Architecture

┌─────────────────────────────────────────────────────────────┐
│                     ADK Studio UI                           │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │   Palette   │  │   Canvas    │  │   Properties        │ │
│  │  - Agents   │  │  ReactFlow  │  │  - Name             │ │
│  │  - Tools    │  │  Workflow   │  │  - Model            │ │
│  │             │  │  Designer   │  │  - Instructions     │ │
│  └─────────────┘  └─────────────┘  └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼ HTTP/SSE
┌─────────────────────────────────────────────────────────────┐
│                    ADK Studio Server                        │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │   Routes    │  │   Codegen   │  │   Storage           │ │
│  │  /api/*     │  │  Rust code  │  │  Projects           │ │
│  │  /chat      │  │  generation │  │  File-based         │ │
│  └─────────────┘  └─────────────┘  └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼ Build
┌─────────────────────────────────────────────────────────────┐
│                   Generated Rust Project                    │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  Cargo.toml + src/main.rs                           │   │
│  │  Uses: adk-rust, adk-agent, adk-model, etc.        │   │
│  └─────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

Points de terminaison d'API

Projets

EndpointMethodDescription
/api/projectsGETLister tous les projets
/api/projectsPOSTCréer un nouveau projet
/api/projects/:idGETObtenir les détails du projet
/api/projects/:idPUTMettre à jour le projet
/api/projects/:idDELETESupprimer le projet

Génération de code

EndpointMethodDescription
/api/projects/:id/codegenPOSTGénérer du code Rust
/api/projects/:id/buildPOSTCompiler le projet
/api/projects/:id/runPOSTExécuter l'exécutable compilé

Discussion

EndpointMethodDescription
/api/chatPOSTEnvoyer un message (flux SSE)

Variables d'environnement

VariableDescriptionRequired
GOOGLE_API_KEYClé API GeminiOui (pour Gemini)
OPENAI_API_KEYClé API OpenAIOui (pour OpenAI)
ADK_DEV_MODEUtiliser les dépendances de l'espace de travail localNon
RUST_LOGNiveau de journalisationNon (par défaut : info)

Structure du code généré

my-project/
├── Cargo.toml
└── src/
    └── main.rs

Exemple de main.rs généré :

use adk_rust::prelude::*;
use adk_rust::Launcher;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    dotenvy::dotenv().ok();
    let api_key = std::env::var("GOOGLE_API_KEY")?;
    let model = GeminiModel::new(&api_key, "gemini-2.0-flash")?;

    let agent = LlmAgentBuilder::new("assistant")
        .description("Helpful AI assistant")
        .instruction("You are a helpful assistant.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

Modèles

Studio inclut des modèles pré-construits :

  • Assistant de base - Agent LLM simple
  • Agent de recherche - Agent avec recherche Google
  • Routeur de support - Routage multi-agent
  • Assistant de code - Agent avec outils de code

Bonnes pratiques

PracticeDescription
Commencer simplementCommencer avec un seul agent LLM, ajouter de la complexité
Tester souventUtiliser le panneau de discussion pour valider le comportement
Revoir le codeVérifier le code généré avant le déploiement
Versionner les projetsExporter et contrôler la version du JSON de projet
Utiliser les modèlesPartir de modèles pour les schémas courants

Précédent: ← Mémoire | Suivant: Directives de développement →