NegotiateEnv
NegotiateEnv is an OpenEnv-compatible RL environment for training LLM agents to negotiate B2B SaaS contracts.
Core trick
LLM buyer agent negotiates against a rule-based seller with hidden reservation price, trained by TRL LoRA on episode rewards.
Description
NegotiateEnv is an OpenEnv-compatible RL environment for training LLM agents to negotiate B2B SaaS contracts. Features 200 real scenarios, multi-objective optimization (price, contract length, annual caps), dynamic constraints, and reward shaping. Trained Qwen-1.5B using TRL+LoRA on 500 episodes, achieving 61% loss reduction in 56 seconds on H100.
README excerpt
# NegotiateEnv — OpenEnv Hackathon SF
> "We built an OpenEnv-compatible reinforcement learning benchmark where LLM agents learn to negotiate enterprise SaaS contracts under hidden vendor constraints and dynamic market conditions."
An OpenEnv-compatible RL environment where an LLM agent plays a **procurement manager** negotiating a B2B SaaS contract against a rule-based **Account Executive (AE)** opponent with a hidden reservation price.
---
## Why Negotiation?
Every current OpenEnv environment (Wordle, Sudoku, Blackjack) has fully visible state and frequent rewards. Negotiation breaks both assumptions:
| Property | Other Envs | NegotiateEnv |
|---|---|---|
| State visibility | Fully observable | `vendor_floor_price` is always hidden |
| Reward frequency | Every step | Only at deal close or walkaway |
| Opponent | None / fixed | Rule-based AE with 4 distinct strategies |
| Mid-episode change | None | Constraint drift injects at random turn |
This tests **hidden-information multi-turn reasoning** — a capability no current OpenEnv environment covers.
---
## Dataset
Scenarios are loaded from the HuggingFace dataset:
**[mayukareddy/SyntheticSaasDataset](https://huggingface.co/datasets/mayukareddy/SyntheticSaasDataset)**
```
File: saas_buyer_synthetic_200.xlsx (200 scenarios)
Columns: id, company_size, seat_count, saas_product, vendor,
list_price, competitor_price, Budget,
vendor_floor_price_hidden, contract_length_months, urgency
```
`vendor_floor_p