yuzhan2205/Shopping-companion
Shopping Companion Shopping Companion is a benchmark and training resource for long-horizon, preference-grounded e-commerce agents. It evaluates whether a tool-using agent can recover a user's preferences from cross-session conversation history and apply those preferences while searching and inspecting a large real-world product catalog. The benchmark contains two task types: Single-product recommendation: retrieve the relevant long-term preference and find one product that… See the full description on the dataset page: https://huggingface.co/datasets/yuzhan2205/Shopping-companion.
Shopping Companion
Shopping Companion is a benchmark and training resource for long-horizon, preference-grounded e-commerce agents. It evaluates whether a tool-using agent can recover a user's preferences from cross-session conversation history and apply those preferences while searching and inspecting a large real-world product catalog.
The benchmark contains two task types:
- Single-product recommendation: retrieve the relevant long-term preference and find one product that satisfies the request.
- Add-on deal recommendation: retrieve preferences for several products and construct a compatible bundle subject to voucher, merchant, and budget constraints.
The accompanying implementation is available at Jarvis33yu/Shopping-Companion.
Dataset contents
The repository provides two configurations with different schemas.
benchmark
Each shopping task is represented by two stage-level instances:
- Stage 1 (`stage_1`) retrieves relevant dialogue memories and identifies the user's purchase preferences.
- Stage 2 (`stage_2`) searches and inspects products, then produces a recommendation satisfying the request and recovered preferences.
The benchmark is evenly divided between single-product and add-on-deal tasks.
product_catalog
data/products.jsonl contains 1,298,797 products obtained through an authorized research collaboration with Lazada. The catalog spans broad product categories and provides the searchable content used by the benchmark's product_search and product_view tools. The uncompressed file is approximately 20 GB, so streaming is recommended when the full catalog does not need to be materialized locally.
File structure
data/
├── train.parquet # 1,600 stage-level training instances
├── test.parquet # 400 stage-level test instances
└── products.jsonl # 1,298,797-product catalogBenchmark schema
Each row in train.parquet or test.parquet contains:
data_source: dataset identifier (shopping_companion).agent_name: agent implementation identifier (tool_agent).prompt: ordered chat messages, each containingroleandcontent.ability: execution stage (stage_1orstage_2).reward_model: supervision metadata, includingground_truthandstyle.extra_info: task metadata such as the original question, task type, split, conversation and question identifiers, and tool initialization arguments.
The nested fields are stored natively in Parquet. reward_model.ground_truth is serialized JSON and should be parsed before accessing its task-specific annotations.
Product catalog schema
Each line of products.jsonl is a JSON object with:
id: product identifier.contents: concatenated searchable text used to build the retrieval index.product: structured product metadata, which may include the product name, seller, category, price, attributes, option variants, description, and review summaries. Fields are optional because catalog coverage varies by product.
Loading the data
Install the Hugging Face Datasets library:
pip install datasetsLoad the benchmark splits:
from datasets import load_dataset
benchmark = load_dataset(
"yuzhan2205/Shopping-companion",
"benchmark",
)
train_dataset = benchmark["train"]
test_dataset = benchmark["test"]Stream the product catalog without downloading the entire 20 GB file first:
from datasets import load_dataset
products = load_dataset(
"yuzhan2205/Shopping-companion",
"product_catalog",
split="train",
streaming=True,
)
first_product = next(iter(products))To reproduce the local BM25 product index used by the released code, download the catalog as data/products.jsonl and run:
bash run_product_preprocess.shSee the code repository for environment setup, tool servers, evaluation, and agentic-RL instructions.
Dataset construction
Shopping Companion was constructed from real-world products and long-horizon conversation histories. For each task, the pipeline samples target products and, where applicable, voucher constraints; generates a natural-language shopping instruction; synthesizes preference dialogues; injects preference evidence into long-term histories; and verifies that the instance is resolvable, searchable, and free of conflicting preferences. Each released task was double-checked by two e-commerce experts.
For reinforcement learning, every shopping task is converted into separate Stage 1 and Stage 2 examples, yielding 1,600 training instances and 400 test instances.
Intended use
The dataset is intended for research on:
- long-term preference memory for language-model agents;
- tool-using shopping and recommendation agents;
- multi-step product search and attribute verification;
- budget- and voucher-constrained bundle recommendation;
- process-level and outcome-level reinforcement-learning rewards.
The test split should be reserved for final evaluation. Systems should not treat the reference product as the only valid answer: alternative recommendations may also be correct when they satisfy the request, recovered preferences, product count, and budget constraints.
Limitations and responsible use
- The catalog is a snapshot and product availability, prices, descriptions, and seller information may no longer be current.
- Coverage reflects the source marketplace and may not generalize to every country, language, category, or shopping platform.
- Automatically generated dialogues may contain artifacts that differ from naturally occurring user interactions despite expert verification.
- Product recommendations can affect spending and safety. Deployed systems should communicate uncertainty, verify current information, avoid manipulative framing, and respect user budgets and constraints.
- This dataset is a research resource and must not be used to impersonate users, infer sensitive traits, or target individuals.
License
The dataset is released under the Creative Commons Attribution 4.0 International license. Please provide attribution when redistributing or building on this dataset. The associated source code is distributed separately under the Apache License 2.0.
Citation
If you use Shopping Companion, please cite:
@misc{yu2026shoppingcompanion,
title = {Shopping Companion: Benchmarking and Training LLM Agents for Long-Horizon Preference-Grounded E-Commerce Tasks},
author = {Yu, Zijian and Xiao, Kejun and Zhao, Huaipeng and Luo, Tao and Zeng, Xiaoyi},
year = {2026},
url = {https://github.com/Jarvis33yu/Shopping-Companion}
}Publication identifiers will be added after the paper is published.
