pragyamandal/novamart-customer-service
0
NovaMart Customer Service Environment
An OpenEnv-compatible RL environment for training agents to resolve customer service issues under real policy constraints.
Overview
This environment simulates a customer service agent at NovaMart, a fictional electronics retailer. The novel mechanic is constraint negotiation — the agent must find the best possible resolution when the obvious answer is blocked by policy. Unlike existing environments, NovaMart features a ranked solution space where multiple valid resolutions exist with different quality scores. The agent must investigate, reason about policies, and navigate ambiguity to maximize customer satisfaction within the boundaries of what is actually allowed.
Environment Description
- Simulated company: NovaMart sells consumer electronics (phones, laptops, earbuds, smartwatches)
- 8 available tools:
lookup_order,check_policy,verify_defect,check_loyalty,process_refund,issue_store_credit,process_exchange,escalate_to_manager - 3 policy paths:
- Standard return — 30-day window, full refund, item must be unopened
- Defective item — 90-day window, full refund, defect must be verified
- Loyalty goodwill — 60-day window, store credit, silver or gold tier only
Tasks
Observation Space
Action Space
Reward Structure
- step_reward: Given at every step, not just at the end of the episode
- resolution_score: How close the agent's resolution is to the optimal outcome (0.0–1.0)
- tool_use_score: Whether the right tool was called with correct parameters
- communication_score: Quality of the customer-facing message
- penalty: Deductions for incorrect actions
- −0.3 for choosing the wrong resolution type
- −0.4 for promising a refund the customer is not eligible for
Setup and Usage
Run with Docker
docker build -t novamart-env .
docker run -p 7860:7860 novamart-envRun inference
cp .env.example .env
# Edit .env with your API credentials
python inference.py