Conversational AI Gifting Assistant for E-commerce Search
etsy · E-commerce · 2026 · source Agentic: yes · promotional bias: med · 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: E-commerce gift discovery
Etsy needed conversational product discovery for gifting across a marketplace with unique, handcrafted, vintage, and visually rich inventory. Fixed search filters and product schemas were insufficient because listings use unstructured noisy descriptions, important details live in images, and shoppers often know the recipient but not the exact product.
Constraints:
- Etsy serves millions of merchants and over 86 million buyers.
- Inventory lacks a fixed attribute schema for every item.
- Descriptions can be cluttered and noisy.
- Memory management can corrupt recipient profiles.
- The team wanted a fast beta launch with reliability, evaluation, and deployment discipline.
Architecture
Etsy built a LangChain v1 ReAct gifting assistant with retrieval tools for listing search and viewing, memory tools backed by PostgreSQL key-value storage for recipient profiles, dynamically loaded skills for retrieval and memory instructions, deterministic middleware checks for reliability, LangSmith-based batch and online evaluation, and YAML-driven deployment from an Etsy Agents monorepo.
Diagram confidence: explicit (topology described by the source).
flowchart LR shopper["Shopper"] --> gifting-react-agent["Gifting ReAct agent"] gifting-react-agent --> retrieval-tools["Retrieval tools"] gifting-react-agent --> recipient-memory-store["Recipient memory store"] gifting-react-agent --> skill-loader["Skill loader"] gifting-react-agent --> reliability-middleware["Reliability middleware"] gifting-react-agent --> langsmith-deployment["LangSmith deployment"] etsy-agents-cli["Etsy Agents CLI"] --> langsmith-deployment etsy-agents-cli --> distributed-eval-workers["Distributed eval workers"] distributed-eval-workers --> langsmith-deployment
Components
| Component | Role | Interacts with |
|---|---|---|
Shopper |
Provides gift intent and refines recommendations through conversation. | Gifting ReAct agent |
Gifting ReAct agent |
LangChain v1 agent that reasons, calls tools, manages recipient context, and returns recommendations. | Shopper, Retrieval tools, Recipient memory store, Skill loader, Reliability middleware, LangSmith deployment |
Retrieval tools |
Search and view Etsy listings for candidate gift recommendations. | Gifting ReAct agent |
Recipient memory store |
PostgreSQL key-value store for long-term recipient profile information. | Gifting ReAct agent |
Skill loader |
Loads instructions on how to use retrieval and memory tools. | Gifting ReAct agent |
Reliability middleware |
Deterministic checks around model outputs, listing IDs, and tool behavior. | Gifting ReAct agent |
LangSmith deployment |
Shared service for production agent requests and offline batch evaluation. | Gifting ReAct agent, Etsy Agents CLI, Distributed eval workers |
Etsy Agents CLI |
Wraps LangSmith APIs to streamline evaluation workflows for engineers and agents. | LangSmith deployment, Distributed eval workers |
Distributed eval workers |
Send batch requests for inventory-wide evaluation and load testing. | Etsy Agents CLI, LangSmith deployment |
Data flow
The shopper describes the recipient and gift intent. The ReAct agent alternates between reasoning and tool calls: it searches or views listings, reads and updates recipient memory, dynamically loads relevant skills, and returns a curated list of recommendations. Evaluation and load-testing workers can call the same LangSmith deployment service used for real-time traffic.
Why this architecture
Etsy chose a relatively thin LangChain ReAct harness to balance abstraction and control, adding complexity only where reliability, memory, evaluation, or deployment demanded it. The same deployment service handles online and offline calls to avoid drift.
Models used: LangChain v1 ReAct agent · LangGraph agent · LLM-based gifting assistant
Scale
- Etsy has millions of merchants and over 86 million buyers.“Etsy is a two-sided marketplace where millions of merchants sell handcrafted or vintage items to over 86 million buyers.”transcript, stated
- The beta launched to production in six weeks.“it took us six weeks from start to beta launch in production”transcript, stated
- The initial team was about three senior engineers and one designer.“We had a team of about three senior engineers and one designer.”transcript, stated
Alternatives considered (roads not taken)
Fixed-schema search filters
Rejected because: Etsy inventory is unique and lacks fixed attributes for each item.
Add more agent complexity up front
Rejected because: The team wanted simple architecture first and justified complexity only when needed.
Separate offline and online agent services
Rejected because: Using the same service for batch and real-time requests avoids offline/online drift.
Patterns
tool-use-orchestration (orchestration)
The ReAct agent loops through listing search/view tools, memory tools, and skills before returning recommendations.
agent-memory (memory)
Recipient preferences are stored in PostgreSQL as long-term memory.
eval-driven-development (evaluation)
Etsy evaluates both agent trajectories and final outcomes, with pass-K tests and LangSmith workflows.
Tradeoffs
Use LangChain v1 ReAct
Chose thin agent harness with observability and customization over bespoke framework or heavier architecture.
Rationale: It balanced abstraction and control for a fast production beta.
Use skills for tool instructions
Chose dynamic instruction loading over putting every retrieval/memory instruction in the base prompt.
Rationale: Skills let the model load only instructions needed for retrieval or memory use.
Gotchas (what bit them)
Models hallucinated listing IDs.
Root cause: The model could produce IDs not returned by retrieval tools.
Resolution: Use deterministic middleware checks and raise errors when outputs are invalid.
The model corrupted recipient memory fields.
Root cause: It stored profile facts under the wrong schema fields.
Resolution: Create broader, richer, more descriptive recipient memory schemas.
Streaming from the LangGraph self-deployment was not ready.
Root cause: The deployment was in a relatively new Kubernetes cluster and would require duplicated streaming protocol work.
Resolution: Defer full agentic streaming while still deploying the beta.
Evaluation
Etsy evaluates agent trajectory and final outcomes with unit/integration tests, pass-K tests, LangSmith-backed workflows, production examples, and load-testing batches.
Metrics: Trajectory pass rate · Final recommendation quality · Holdout and production examples · Load-test behavior · Purchase rates in limited release
Outcomes
- The agent reached beta production in six weeks.
- The limited release returned high-quality search results.
- The limited release showed relatively high purchase rates.
- The development effort shaped requirements for the agent platform.
The initial launch was delivered by about three senior engineers and one designer for a marketplace with millions of merchants and more than 86 million buyers.