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:

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
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

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.

“it will reason about the results, and then either continue with the tool calling loop or return a curated list of listing recommendations.”transcript, stated
“And that same service can meet both real-time and batch requests. So this way there's no risk in offline versus online drift.”transcript, stated

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.

“we wanted to start as simple as possible and only add complexity when justified.”transcript, stated
“So we started with a LangChain v1 ReAct agent, which was a nice combination and balance of abstraction and control.”transcript, stated

Models used: LangChain v1 ReAct agent · LangGraph agent · LLM-based gifting assistant

Scale

Alternatives considered (roads not taken)

Fixed-schema search filters

Rejected because: Etsy inventory is unique and lacks fixed attributes for each item.

“Because our inventory is unique, we do not have a fixed attribute schema for each item.”transcript, stated

Add more agent complexity up front

Rejected because: The team wanted simple architecture first and justified complexity only when needed.

“we wanted to start as simple as possible and only add complexity when justified.”transcript, stated

Separate offline and online agent services

Rejected because: Using the same service for batch and real-time requests avoids offline/online drift.

“that same service can meet both real-time and batch requests. So this way there's no risk in offline versus online drift.”transcript, stated

Patterns

tool-use-orchestration (orchestration)

The ReAct agent loops through listing search/view tools, memory tools, and skills before returning recommendations.

“With respect to the tools, we had tools for retrieval, for example, searching and viewing listings, for memory, for example, finding and saving information about recipient profiles”transcript, stated

agent-memory (memory)

Recipient preferences are stored in PostgreSQL as long-term memory.

“For long-term memory of our recipients, we use the PostgreSQL key-value store.”transcript, stated

eval-driven-development (evaluation)

Etsy evaluates both agent trajectories and final outcomes, with pass-K tests and LangSmith workflows.

“The two parts of evaluation: one is the trajectory to a result, and then another part is evaluating the final outcome.”transcript, stated

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.

“we chose LangChain because it is best of class and first of class in the agentic space. It also provides for agent-native observability and evaluation.”transcript, stated

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.

“and then skills, so the model can dynamically load instructions on how to use tools for retrieval or memory.”transcript, stated

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.

“Another example of model unreliability was an issue with hallucination of listing IDs.”transcript, stated

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.

“we found that the model would sometimes corrupt our recipient memory. For example, it would store a t-shirt size under the interest field.”transcript, stated

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.

“However, our LangGraph self-deployment exists in a relatively new Kubernetes cluster. And we didn't want to have to re-implement”transcript, stated

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

“For the agent trajectory, in addition to standard integration and unit tests, we created pass-K tests.”transcript, stated
“to run it both on the holdout set and other production examples.”transcript, stated

Outcomes

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.

“we developed this agent and released it in beta in production. And what we found was that it returns high-quality search results with a relatively thin harness”transcript, stated
“It also results in relatively high purchase rates in our limited release.”transcript, stated