Wie beginnen Beauty-Marken die Agent-to-Agent-Reise?
Perfect AI Beauty Agent ist ein markenisolierter, sofort aufrufbarer AI-Agent, der von Perfect Corp entwickelt wurde. In einem Agent-to-Agent- (A2A-) Setup agiert Ihr Agent als Host – er erhält die Anfrage der Nutzer*innen, delegiert Beauty-Aufgaben über eine SKILL.md-Schnittstelle und gibt das Ergebnis zurück. Ihr Agent behält die vollständige Konversationskontrolle; Perfect AI Beauty Agent liefert die Beauty-Intelligence.
Warum nicht einfach ein generisches LLM verwenden?
Warum nicht einfach einen generischen AI-Agent in Agent-to-Agent- (A2A-) Workflows einsetzen?
Hinweis: Dieser Leitfaden behandelt Phase 2 (Agent Skill-Schnittstelle). Details können sich vor GA noch ändern.
Architektur des Agent-to-Agent- (A2A-) Flows
Der Flow hat zwei Seiten:
- Client-Seite – Endnutzer*in → Marken-Website/-App → Client-AI-Agent lädt SKILL.md → ruft Perfect AI Beauty Agent auf. Bildeingaben (Selfie / Live-Kamera) werden über Perfect CameraKit oder die native Kamera des Geräts erfasst.
- Perfect-Corp-Seite – Perfect AI Agent leitet weiter über: LLM (OpenAI oder LLM nach Wahl) zur Intent-Erkennung → RAG für Markenwissen, SKU und Empfehlungslogik (aus Perfect Console) → Services-Katalog zur Ausführung.
brand_id partitioniert.Es überschreiten keine Daten die Marken-Grenzen.
Intents & verfügbare Fähigkeiten in Agent-to-Agent- (A2A-) Systemen
Jede Fähigkeit wird als benannter Intent bereitgestellt. Ihr Host-Agent registriert diese als Tools. Die Agenten-Laufzeitumgebung wählt basierend auf der Anfrage der Nutzer*innen den richtigen Intent aus und ruft ihn auf.
| Intent | Trigger-Beispiel | Erforderliche Eingabe | Antwort enthält |
|---|---|---|---|
| skin_analysis | „Analysiere meine Haut" / „Hilfe bei meiner Hautpflege" | brand_id + Bild (CameraKit) | Hauttyp, Score der Hautprobleme, vollständiger Bericht, SKU-Auswahl |
| product_recommendation | „Empfehlen Sie ein Serum gegen dunkle Flecken" | brand_id + Anliegen oder analysis_id | Gerankte SKU-Liste mit Match-Scores und Begründungen |
| try_on | „Ich möchte diesen Lippenstift ausprobieren" | brand_id + sku_id + Modus | AR-Session-Token oder gerendertes Try-on-Bild |
| beauty_consultation | „Welche Foundation passt zu fettiger Haut?" | brand_id + Prompt | Antwort in natürlicher Sprache, basierend auf dem Brand-RAG |
Agent-to-Agent- (A2A-) Anfrage & Antwort
4.1 Anfrage – Eingabefelder
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| intent | string | Ja | Aufzurufende Fähigkeit: skin_analysis | product_recommendation | try_on | beauty_consultation |
| brand_id | string | Ja | Ihr Brand-Namespace. Begrenzt alle SKU-, RAG- und History-Daten auf diese Marke. |
| prompt | string | Ja | Natürliche Sprachabfrage oder Anweisung der Nutzer*innen. |
| image | base64 / URL | Bedingt | Erforderlich für skin_analysis und try_on. Selfie oder Produktbild, erfasst über Perfect CameraKit. |
| sku_id | string | Bedingt | Erforderlich für try_on. Produkt-SKU aus dem Katalog der Marke. |
| mode | string | Nein | Für try_on: live_camera (Standard) oder photo. |
| context | object | Nein | Vorherige Konversations-Turns oder eine vorherige analysis_id, um Ergebnisse zu verketten. |
4.2 Antwort – Ausgabefelder
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| message | string | Immer | Antwort in natürlicher Sprache, bereit zur Anzeige für Endnutzer*innen. |
| image | URL / base64 | Bedingt | Wird zurückgegeben für skin_analysis (annotierter Bericht) und try_on (gerendertes Ergebnis). |
| data | object | Bedingt | Strukturierter Payload – Haut-Scores, SKU-Liste mit Match-Scores, Aufschlüsselung der Hautprobleme. |
| intent_handled | string | Immer | Echo des ausgeführten Intents. Zur Protokollierung und Verkettung verwenden. |
| analysis_id | string | Bedingt | Wird von skin_analysis zurückgegeben. In product_recommendation für einen verketteten, personalisierten Flow übergeben. |
4.3 Beispiel: Verketteter Flow (Hautanalyse → Empfehlung)
# Schritt 1 – Host-Agent sendet Hautanalyse-Anfrage{"intent": "skin_analysis", "brand_id": "acme-beauty", "prompt": "Help me with my skincare routine.", "image": "<base64 selfie from CameraKit>"}# Schritt 1 – Antwort von 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 }}}# Schritt 2 – Host-Agent verkettet in Empfehlung{"intent": "product_recommendation", "brand_id": "acme-beauty", "analysis_id": "ana_abc123", "prompt": "Suggest serums for my top concerns."}# Schritt 2 – Antwort von 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 – Manifest-Referenz
Platzieren Sie den Skill-Ordner im Skills-Verzeichnis Ihres Agents. Ihr Agent liest SKILL.md beim Start, registriert die Intents als aufrufbare Tools und wählt basierend auf der Nutzer*innen-Intention automatisch den richtigen aus.
Ordnerstruktur
perfect-ai-beauty-agent/
├── SKILL.md # Manifest – Fähigkeiten, Auth, Datenisolation
├── references/
│ ├── intent-schemas.md # vollständige Definition der Eingabe-/Ausgabefelder
│ └── brand-onboarding.md # Checkliste für das Brand-Onboarding
└── assets/
└── arch-overview.md # A2A-Architektur-NotizenWichtige Frontmatter-Felder
--- 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 ---
Schritt-für-Schritt-Setup & Onboarding für Agent-to-Agent- (A2A-) Systeme
Brand-API-Schlüssel bereitstellen
Melden Sie sich in der Perfect Console an → Settings → Integrations → Agent Skill. Generieren Sie einen Brand-API-Schlüssel. Notieren Sie Ihre brand_id – erforderlich bei jedem API-Aufruf.
Skill zu Ihrem Agent hinzufügen
Klonen oder laden Sie den Ordner perfect-ai-beauty-agent/ herunter. Platzieren Sie ihn im Skills-Verzeichnis Ihres Agents. Ihr Agent entdeckt und registriert die Intents beim Start.
CameraKit konfigurieren (für bildbasierte Intents)
Initialisieren Sie das Perfect CameraKit SDK in Ihrer Host-App. CameraKit übernimmt die Selfie-Erfassung für skin_analysis und das Live-AR-Rendering für try_on. Sessions sind token-begrenzt und flüchtig.
SKUs und Looks über die Perfect Console importieren
Importieren Sie in der Perfect Console die Makeup-SKUs, Hautpflegeprodukte und Looks Ihrer Marke. Diese befüllen den SKU-Katalog und werden automatisch mit Empfehlungs- und Try-on-Intents verknüpft.
Marken-Isolation testen
Führen Sie einen Testaufruf mit Ihrer brand_id aus. Verifizieren Sie, dass in Empfehlungen nur Produkte Ihrer Marke erscheinen. Bestätigen Sie, dass eine Anfrage mit einer nicht zugehörigen brand_id einen 403 zurückgibt.
Fehlercodes & Umgang damit
| Code | Name | Wann er auftritt / wie damit umgehen |
|---|---|---|
| 400 | Bad Request | Erforderliches Feld fehlt (intent, brand_id oder image, wo erforderlich). Prüfen Sie den Request-Payload. |
| 401 | Unauthorized | Ungültiger oder fehlender Brand-API-Schlüssel. Verifizieren Sie den Schlüssel in der Perfect Console. |
| 403 | Forbidden | Die im Request angegebene brand_id stimmt nicht mit der autorisierten Marke des API-Schlüssels überein. Cross-Brand-Zugriff verweigert. |
| 404 | SKU Not Found | Die sku_id wurde im Katalog der Marke nicht gefunden. Verifizieren Sie, dass die SKU in der Perfect Console importiert wurde. |
| 415 | Unsupported Image | Bildformat nicht unterstützt oder Auflösung zu gering. Verwenden Sie JPEG/PNG, mindestens 480×480 px. |
| 429 | Rate Limit Exceeded | Zu viele Anfragen. Implementieren Sie Exponential Backoff. Kontaktieren Sie den Support, um das Kontingent zu erhöhen. |
| 503 | Service Unavailable | CameraKit-Session oder nachgelagertes Modell vorübergehend nicht verfügbar. Erneut versuchen mit Backoff. |
Sicherstellung von Datenisolation & Sicherheit in Agent-to-Agent- (A2A-) Workflows
- brand_id ist bei jeder Anfrage erforderlich. Alle SKU-Kataloge, RAG-Korpora, Empfehlungsregeln und Nutzer*innen-Historien werden auf Datenebene nach
brand_idpartitioniert. - API-Schlüssel sind markenspezifisch. Ein für Marke A ausgestellter Schlüssel kann nicht auf Daten von Marke B zugreifen – Anfragen liefern einen
403. - CameraKit-Sessions sind flüchtig und token-begrenzt. Nach Schließen der Session werden serverseitig keine Videoframes oder Bilder gespeichert.
- user_id ist ein undurchsichtiges Token. Es werden keine echten personenbezogenen Daten benötigt oder gespeichert. Marken können sich für persistente Nutzer*innen-Historien entscheiden – standardmäßig deaktiviert.
- API-Schlüssel können jederzeit rotiert werden über die Perfect Console. Alte Schlüssel werden bei der Rotation sofort widerrufen.
Autor: 







