Domain-Specific Agentic AI for Personalized Korean Skincare Recommendations

glowe_/_weaviate · E-commerce · 2025 · source Agentic: yes · promotional bias: high · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Personalized Korean skincare recommendations

Glowe needed to recommend effective skincare routines from many products and reviews without relying on generic product embeddings or marketing copy that miss ingredient interactions, user skin context, and actual experienced effects.

Constraints:

Architecture

Glowe uses a skincare domain agent backed by Weaviate Agents and Elysia. The data layer contains 1,440 curated Korean skincare products and 94,500+ reviews. Reviews are processed by Gemma 3 12B to extract positive and negative effects, then products receive dual embeddings: a description vector for general search and a TF-IDF-weighted effect vector for personalized routine matching. Weaviate retrieves category-specific candidates concurrently; Gemini 2.5 Flash assembles routines, and Elysia powers agentic chat with custom tools such as Stack Agent, Product Agent, and Weaviate Query Agent.

Diagram confidence: explicit (topology described by the source).

flowchart LR
  product-and-review-corpus["Product and review corpus"] --> review-effect-extraction["Review effect extraction"]
  review-effect-extraction --> dual-embedding-index["Dual embedding index"]
  dual-embedding-index --> weaviate-retrieval["Weaviate retrieval"]
  weaviate-retrieval --> gemini-routine-assembler["Gemini routine assembler"]
  gemini-routine-assembler --> user-skincare-profile["User skincare profile"]
  user-skincare-profile --> elysia-agentic-chat["Elysia agentic chat"]
  elysia-agentic-chat --> weaviate-query-agent["Weaviate Query Agent"]
  weaviate-query-agent --> weaviate-retrieval["Weaviate retrieval"]
  elysia-agentic-chat --> stack-agent["Stack Agent"]
  elysia-agentic-chat --> product-agent["Product Agent"]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Product and review corpus Curated Korean skincare products and user reviews. Review effect extraction
Review effect extraction Gemma 3 12B pipeline extracting positive and negative experienced effects. Dual embedding index
Dual embedding index Weaviate named vectors for product descriptions and TF-IDF-weighted effects. Weaviate retrieval
Weaviate retrieval Vector search over product/effect vectors for selected routine categories. Gemini routine assembler, Weaviate Query Agent
Gemini routine assembler Gemini 2.5 Flash selects compatible products and generates routine metadata. User skincare profile
User skincare profile Skin type, concerns, goals, sensitivities, current routine, and chat context. Gemini routine assembler, Elysia agentic chat
Elysia agentic chat Decision-agent platform that routes user chat through custom tools. Weaviate Query Agent, Stack Agent, Product Agent
Weaviate Query Agent Tool that converts natural-language product queries into Weaviate searches and aggregations. Weaviate retrieval
Stack Agent Custom tool for skincare stack/routine interactions. Elysia agentic chat
Product Agent Custom tool for product-specific questions and alternatives. Elysia agentic chat

Data flow

Product reviews are passed through an LLM to extract real experienced effects. Those effects become TF-IDF-weighted effect vectors stored in Weaviate alongside description vectors. A user skin profile and routine goal determine product categories, Weaviate retrieves top products per category, Gemini 2.5 Flash selects compatible products and explains the routine, and Elysia routes chat requests to tools such as the Weaviate Query Agent.

“we ran every review through an LLM (Gemma 3 12B) to pull out the real effects, good and bad, that people experienced based on the review's text.”article, stated
“Weaviate uses these vectors to run a similarity search against your skin needs and goals.”article, stated

Why this architecture

The system separates product descriptions from effect evidence because generic embeddings bury skincare effects. A domain agent and query tools are used because skincare recommendations need profile memory, ingredient compatibility, safe alternatives, and conversational refinement over structured/vector product data.

“Generic fields might dominate the vector space, diluting the importance of specific skincare effects like "hydration," "glowing skin," or "acne reduction."”article, stated
“real solutions require more than just popular products! They require understanding your unique skin type, goals, conditions, and how different ingredients interact.”article, stated

Models used: Gemma 3 12B · Gemini 2.5 Flash · Weaviate Agents · Elysia · Weaviate Query Agent

Scale

Alternatives considered (roads not taken)

Embed the entire product object as one vector

Rejected because: Generic fields can dominate and hide effect-specific skincare signals.

“A common approach in product recommendation is to embed the entire product object (name, brand, description, ingredients) into a single vector. However, for skincare, this can be problematic.”article, stated

Use marketing-tailored product descriptions

Rejected because: Glowe wanted effect evidence from actual user reviews.

“we're not just guessing or using marketing-tailored descriptions; we actually know what each product actually does based on real experiences.”article, stated

Return only static routine suggestions

Rejected because: The team wanted a conversational companion that can use tools, remember context, and answer follow-up questions.

“We wanted Glowe to do more than just routine generation and suggestions; we envisioned it as a smart companion that can talk to you in natural, conversational language.”article, stated

Patterns

multi-agent-orchestration (agent)

Elysia coordinates custom tools and specialized agents such as Stack Agent, Product Agent, and Weaviate Query Agent.

“we've added a bunch of custom tools targeting specific functionalities, like the Stack Agent and Product Agent.”article, stated

rag-retrieval (retrieval)

The Weaviate Query Agent grounds chat/recommendations in stored product and review data.

“The user simply provides a prompt/question in natural language, and the Query Agent takes care of all intervening steps to provide an answer.”article, stated

retrieval-ranking (retrieval)

TF-IDF-weighted effect vectors rank products by the strength of relevant skincare effects.

“The dual embedding strategy allows us to rank products by the strength of their relevant effects.”article, stated

structured-output-contract (orchestration)

The query agent translates natural language into structured Weaviate searches, filters, or aggregations.

“the query agent interprets your intent and translates it into precise searches (with the necessary filters) or aggregations across your Weaviate collections”article, stated

Tradeoffs

Use dual embeddings

Chose Description vector plus TF-IDF-weighted effect vector over Single product-object vector.

Rationale: The split preserves general search while allowing effect strength to drive skincare routine matching.

“We separate the concept of a product into two distinct embeddings, using named vectors in Weaviate”article, stated

Use Gemini for final routine assembly

Chose Gemini 2.5 Flash over a simple top-k merge over Returning category top matches directly.

Rationale: The final step must check compatibility, sensitivities, ingredient conflicts, and explanations across a full routine.

“Once we have the best product options, it's time to assemble your actual skincare stack using Gemini 2.5 Flash.”article, stated

Build an agentic chat layer

Chose Elysia with custom tools and Query Agent over Static product recommendation pages only.

Rationale: A conversation interface lets users ask follow-ups, retrieve alternatives, and adapt recommendations to their profile.

“Once logged into Glowe, you get access to an intelligent, agentic chat interface alongside your personalized skincare routine.”article, stated

Gotchas (what bit them)

Generic product embeddings dilute domain-specific effects.

Root cause: Brand/name/description fields dominate the vector and hide skincare outcomes users care about.

Resolution: Use named vectors and a separate TF-IDF-weighted effect embedding.

“important effects could get buried, and we'd lose the ability to prioritize products based on how strongly they're associated with specific outcomes”article, stated

Popular products are not enough for routine safety.

Root cause: Routines depend on ingredient interactions, timing, skin goals, and product conflicts.

Resolution: Use a skincare domain agent with rich domain prompts and compatibility checks.

“Gemini reviews your full profile and selects the single best product from each category, making sure they work well together, respect any sensitivities (like avoiding retinol), and avoid ingredient conflicts”article, stated

Recommendation chat needs tool recovery and context tracking.

Root cause: Users ask complex multi-stage questions and refine routines over time.

Resolution: Use Elysia decision-tree logic, user management, custom tools, and self-healing/correction loops.

“The aim is to enable the decision agent to identify potential misunderstandings or errors and attempt to recover, leading to more robust chat interactions.”article, stated

Evaluation

The source describes design rationale and data-driven retrieval but does not report quantitative offline/online evaluation. Evidence of quality is mainly architectural: review-derived effects, TF-IDF weighting, compatibility checks, and grounded query-agent retrieval.

Metrics: Product/review corpus size · Effect frequency and inverse document frequency · Similarity search relevance by skin needs/goals · Ingredient conflict avoidance · User profile/routine compatibility

“* TF (Term Frequency): How often an effect is mentioned for this product * IDF (Inverse Document Frequency): How rare this effect is across all products”article, stated
“* TF (Term Frequency): How often an effect is mentioned for this product * IDF (Inverse Document Frequency): How rare this effect is across all products”article, stated

Outcomes

The case is promotional and demo-oriented; concrete scale is the 1,440-product / 94,500-review dataset and the use of Weaviate Cloud/query agents rather than public production traffic metrics.

“By the end of this process, you'll have a complete morning and evening skincare routine, personalized down to the ingredient level, and built to work with your skin, not against it!”article, stated
“The final products are then displayed to the user through the Glowe chat interface.”article, stated