Comment les marques de beauté peuvent-elles démarrer le parcours agent à agent (A2A) ?
Perfect AI Beauty Agent est un agent IA développé par Perfect Corp. isolé par marque etprêt à être appelé. Dans une configuration Agent-to-Agent (A2A), votre agent agit comme hôte : il reçoit la demande de l'utilisateur, délègue les tâches beauté via une interface SKILL.md et renvoie le résultat. Votre agent conserve le contrôle complet de la conversation et Perfect AI Beauty Agent apporte l'intelligence beauté.
Pourquoi ne pas simplement utiliser un LLM générique ?
Pourquoi ne pas simplement utiliser un agent d'IA générique dans les flux Agent-to-Agent (A2A) ?
Remarque : ce guide couvre la phase 2 (interface Agent Skill) de notre AI Beauty Agent. Les détails peuvent être amenés à évoluer.
Architecture du flux Agent-to-Agent (A2A)
Le flux comporte deux volets :
- Côté client : utilisateur final → site/app de la marque → agent d'IA client charge SKILL.md → appelle Perfect AI Beauty Agent. L'entrée image (selfie / caméra live) est capturée via Perfect CameraKit ou la caméra native de l'appareil.
- Côté Perfect Corp : Perfect AI Agent oriente la requête via : LLM (OpenAI ou LLM de votre choix) pour la compréhension de l'intention → RAG pour la connaissance de la marque, les SKU et la logique de recommandation (provenant de la Console Perfect) → Catalogue de Services pour l'exécution.
brand_id.Aucune autre marque n'est mentionnée.
Intentions et fonctionnalités disponibles dans les systèmes Agent-to-Agent (A2A)
Chaque fonctionnalité est exposée comme une intention. Votre agent hôte enregistre ces intentions comme des outils. Le runtime de l'agent sélectionne et appelle l'intention appropriée en fonction de la demande de l'utilisateur.
| Intention | Exemple de déclencheur | Entrée requise | La réponse inclut |
|---|---|---|---|
| skin_analysis | « Analyse ma peau » / « Aidez-moi avec ma routine de soins » | brand_id + image (CameraKit) | Type de peau, scores de préoccupations, rapport complet, propositions de SKU |
| product_recommendation | « Recommandez un sérum pour les taches brunes » | brand_id + préoccupation ou analysis_id | Liste de SKU classés avec scores de correspondance et justifications |
| try_on | « Laissez-moi essayer ce rouge à lèvres » | brand_id + sku_id + mode | Jeton de session AR ou image d'essai virtuel rendue |
| beauty_consultation | « Quel fond de teint convient aux peaux grasses ? » | brand_id + prompt | Réponse en langage naturel fondée sur le RAG de la marque |
Requête et réponse Agent-to-Agent (A2A)
4.1 requête – champs d'entrée
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| intent | string | Oui | Capacité à invoquer : skin_analysis | product_recommendation | try_on | beauty_consultation |
| brand_id | string | Oui | Votre espace de nom de marque. Restreint toutes les données SKU, RAG et d'historique à cette marque. |
| prompt | string | Oui | Requête ou instruction en langage naturel de l'utilisateur. |
| image | base64 / URL | Conditionnel | Requis pour skin_analysis et try_on. Selfie ou image produit, capturé via Perfect CameraKit. |
| sku_id | string | Conditionnel | Requis pour try_on. SKU produit issu du catalogue de la marque. |
| mode | string | Non | Pour try_on : live_camera (défaut) ou photo. |
| context | object | Non | Tours de conversation précédents ou un analysis_id précédent pour chaîner les résultats. |
4.2 réponse – champs de sortie
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| message | string | Toujours | Réponse en langage naturel prête à être affichée à l'utilisateur final. |
| image | URL / base64 | Conditionnel | Retournée pour skin_analysis (rapport annoté) et try_on (résultat rendu). |
| data | object | Conditionnel | Charge utile structurée : scores de peau, liste de SKU avec scores de correspondance, répartition des préoccupations. |
| intent_handled | string | Toujours | Renvoi de l'intention exécutée. À utiliser pour les logs et le chaînage. |
| analysis_id | string | Conditionnel | Retourné par skin_analysis. À transmettre à product_recommendation pour un flux personnalisé chaîné. |
4.3 exemple : flux chaîné (analyse de peau → recommandation)
# Étape 1 — l'agent hôte envoie une requête d'analyse de peau{"intent": "skin_analysis", "brand_id": "acme-beauty", "prompt": "Help me with my skincare routine.", "image": "<base64 selfie from CameraKit>"}# Étape 1 — réponse de Perfect AI Beauty Agent{"intent_handled": "skin_analysis", "message": "Your skin type is Normal. Top concerns: Moisture (mild), Dark Circles (mild).", "image": "<annotated skin report URL>", "analysis_id": "ana_abc123", "data": {"skin_type": "Normal", "concern_scores": { "moisture": 68, "dark_circles": 72 }}}# Étape 2 — l'agent hôte enchaîne vers la recommandation{"intent": "product_recommendation", "brand_id": "acme-beauty", "analysis_id": "ana_abc123", "prompt": "Suggest serums for my top concerns."}# Étape 2 — réponse de Perfect AI Beauty Agent{"intent_handled": "product_recommendation", "message": "Based on your skin report, here are 2 serums for moisture and dark circles.", "data": {"recommendations": [{ "sku_id": "SERUM-VC01", "name": "Vitamin C Serum", "match_score": 0.94, "reason": "Targets dark circles and hyperpigmentation" }, { "sku_id": "SERUM-HA02", "name": "Hyaluronic Acid Serum", "match_score": 0.89, "reason": "Deep hydration for moisture-deficient skin" }]}}
SKILL.md — référence du manifeste
Déposez le dossier de compétence dans le répertoire des skills de votre agent. Votre agent lit SKILL.md au démarrage, enregistre les intentions comme outils appelables et sélectionne automatiquement la bonne en fonction de l'intention utilisateur.
Structure du dossier
perfect-ai-beauty-agent/
├── SKILL.md # manifeste — capacités, authentification, isolation des données
├── references/
│ ├── intent-schemas.md # définitions complètes des champs d'entrée/sortie
│ └── brand-onboarding.md # checklist de configuration de la marque
└── assets/
└── arch-overview.md # notes d'architecture A2AChamps clés du frontmatter
--- name: perfect-ai-beauty-agent description: > Invoke Perfect AI Beauty Agent for skin analysis (CameraKit), skincare product recommendations, virtual try-on, or beauty consultation. Brand-scoped: all data partitioned by brand_id. Trigger: skin analysis, skincare advice, product recommendation, virtual try-on, beauty consultation, skin score, CameraKit. license: Proprietary — contact api-support@perfectcorp.com metadata: author: Perfect Corp RD version: 0.1-draft ---
Configuration et onboarding pas à pas pour les systèmes Agent-to-Agent (A2A)
provisionner une clé d'API de marque
Connectez-vous à Perfect Console → Settings → Integrations → Agent Skill. Générez une clé d'API de marque. Notez votre brand_id, requis pour chaque appel API.
ajouter le skill à votre agent
Clonez ou téléchargez le dossier perfect-ai-beauty-agent/. Placez-le dans le répertoire des skills de votre agent. Votre agent détectera et enregistrera les intentions au démarrage.
configurer CameraKit (pour les intentions basées sur l'image)
Initialisez le SDK Perfect CameraKit dans votre application hôte. CameraKit gère la capture de selfie pour skin_analysis et le rendu AR en direct pour try_on. Les sessions sont limitées par jeton et éphémères.
importer les SKU et les looks via Perfect Console
Dans Perfect Console, importez les SKU maquillage, les produits de soin et les looks de votre marque. Ceux-ci alimentent le catalogue de SKU et sont automatiquement reliés aux intentions de recommandation et d'essai virtuel.
tester l'isolation par marque
Effectuez un appel de test avec votre brand_id. Vérifiez que seules les produits de votre marque apparaissent dans les recommandations. Confirmez qu'une requête avec un brand_id sans rapport renvoie un 403.
Codes d'erreur et mode de gestion
| Code | Nom | Quand il se produit / comment le gérer |
|---|---|---|
| 400 | Bad Request | Champ obligatoire manquant (intent, brand_id ou image si nécessaire). Vérifiez la charge utile de la requête. |
| 401 | Unauthorized | Clé d'API de marque invalide ou manquante. Vérifiez la clé dans Perfect Console. |
| 403 | Forbidden | Le brand_id de la requête ne correspond pas à la marque autorisée par la clé d'API. Accès inter-marques refusé. |
| 404 | SKU Not Found | Le sku_id est introuvable dans le catalogue de la marque. Vérifiez que le SKU est bien importé dans Perfect Console. |
| 415 | Unsupported Image | Format d'image non pris en charge ou résolution trop faible. Utilisez JPEG/PNG, min. 480×480 px. |
| 429 | Rate Limit Exceeded | Trop de requêtes. Mettez en œuvre un backoff exponentiel. Contactez le support pour augmenter le quota. |
| 503 | Service Unavailable | Session CameraKit ou modèle en aval temporairement indisponible. Réessayez avec backoff. |
Garantir l'isolation des données et la sécurité dans les flux Agent-to-Agent (A2A)
- brand_id est requis dans chaque requête. Tous les catalogues de SKU, corpus RAG, règles de recommandation et historiques utilisateur sont segmentés par
brand_idau niveau des données. - Les clés d'API sont limitées à une marque. Une clé émise pour la marque A ne peut pas accéder aux données de la marque B : les requêtes renvoient
403. - Les sessions CameraKit sont éphémères et limitées par jeton. Aucun flux vidéo ni aucune image ne sont conservés côté serveur après la fin de la session.
- user_id est un jeton opaque. Aucune donnée personnelle directement identifiable n'est requise ni stockée. Les marques peuvent choisir d'activer l'historique utilisateur persistant, désactivé par défaut.
- Les clés d'API peuvent être renouvelées à tout moment depuis Perfect Console. Les anciennes clés sont immédiatement révoquées lors de la rotation.
Version originale: 







