Fonctionnalités principales
Cet agent intelligent développé avec le Kit de Développement d'Agents (ADK) de Google fonctionne comme serveur Agent-vers-Agent (A2A). Sa caractéristique centrale est la génération dynamique de formulaires : lorsqu'une demande de remboursement manque d'informations essentielles, l'agent produit automatiquement un formulaire pour collecter les données manquantes avant traitement.
Configuration requise
- Python 3.12 ou supérieur
- Gestionnaire de paquets UV
- Clé API Google (accès aux modèles Gemini)
Mise en œuvre
1. Configuration initiale
# Configurer les variables d'environnement
echo "CLE_API_GOOGLE=votre_cle_ici" > variables.env
# Démarrer le serveur
uv run . --port 10010
2. Client de test
cd repertoire_client
uv run . --agent http://localhost:10010
3. Scénarios d'utilisation
# Demande incomplète
"Remboursement de 35€ pour transport"
# Demande complète
"Remboursement du déjeuner client du 15 mars 2024 (65€)"
# Demande partielle
"Frais de taxi hier (42€)"
Architecture technique
agent-remboursement/
├── demarrage.py # Point d'entrée
├── noyau_agent.py # Logique métier
├── executeur.py # Gestion des requêtes A2A
└── configuration.toml # Paramètres
Composants clés
| Fichier | Responsabilité |
|---|---|
| demarrage.py | Initialisation du serveur A2A |
| noyau_agent.py | - creer_formulaire() : Modèle de formulaire - envoyer_formulaire() : Formatage A2A - traiter_remboursement() : Validation finale |
| executeur.py | Gestion du cycle de vie des requêtes |
Flux de traitement
# Fichier variables.env
CLE_API_GOOGLE=your_key
HOTE=0.0.0.0
PORT=10100
Schéma de formulaire
{
"type": "formulaire",
"champs": {
"date": {
"type": "date",
"libelle": "Date",
"description": "Date de la dépense"
},
"montant": {
"type": "nombre",
"libelle": "Montant"
},
"motif": {
"type": "texte",
"libelle": "Motif"
}
},
"obligatoires": ["date", "montant", "motif"]
}
Sécurité
Ce prototype illustre le protocole A2A. En environnement de production :
- Valider strictement toutes les entrées externes
- Limiter les permissions des agents
- Gérer sécuritairement les accès API
- Considérer les agents externes comme non fiables