SalaryNegotiationArena
SalaryNegotiationArena is an OpenEnv MCP environment where LLM agents learn salary negotiation by sparring with 5 AI hiring experts with hidden priorities and styles (analytical, aggressive, collaborative, bureaucratic,
Core trick
Exposes propose, counter, accept, reject, and walk-away as MCP tools so a GRPO-trained Qwen LoRA negotiates against simulated hiring personas.
Description
SalaryNegotiationArena is an OpenEnv MCP environment where LLM agents learn salary negotiation by sparring with 5 AI hiring experts with hidden priorities and styles (analytical, aggressive, collaborative, bureaucratic, visionary). It runs on a Docker-isolated FastAPI MCP server exposing negotiation tools: propose, counter, accept, reject, walk_away.
| Profile | Salary | Equity | Start | Priority
| Balanced | 0.4 | 0.3 | 0.3 | Mix
| Cash-heavy | 0.7 | 0.1 | 0.2 | Salary
| Equity-heavy | 0.2 | 0.6 | 0.2 | Equity
| Fast-start | 0.2 | 0.2 | 0.6 | ASAP
Training uses GRPO (TRL) on Qwen2.5 with LoRA. Curriculum learning, self-play, and persona drift improve robustness, increasing deal success while reducing negotiation turns.
README excerpt
--- title: SalaryNegotiationArena emoji: 🤝 colorFrom: blue colorTo: green sdk: gradio sdk_version: "4.20.0" app_file: app.py pinned: false license: mit --- # 🤝 SalaryNegotiationArena **OpenEnv Hackathon SF — Self-Improvement (Statement 4) + Snorkel AI** An RL environment where LLM agents learn to negotiate salary packages against 5 simulated hiring experts with hidden priorities that shift over time. Live App : https://huggingface.co/spaces/yashj2110/negotiation-arena-v2 Model : https://huggingface.co/yashj2110/salary-negotiation-qwen-1.5b Metrics: [Training Metrics Result](/TRAINING_RESULTS.md) ### Training Loss Curve & Baseline vs GRPO Comparison  ## Reward System: 3-Component Formula **Total Reward = 0.2 × Format + 0.5 × Negotiation + 0.3 × Deal Quality** | Component | Weight | What it measures | Score | |-----------|--------|-----------------|-------| | **Format** | 20% | Valid action type (propose, counter, accept, reject, walk_away) | 1.0 valid, 0.0 invalid | | **Negotiation** | 50% | Outcome quality — deal terms vs baseline ($140k, 2.5%, 90 days) | +1.0 above baseline, +0.5 at baseline, -1.0 no deal, +0.2 early close bonus, -0.1 per turn | | **Deal Quality** | 30% | Snorkel-weighted utility across 4 labeling profiles | +0.3 if utility ≥ 0.5, else 0.0 | ### Deal Quality: Snorkel-Weighted Labeling Profiles Each profile is a different "judge" evaluating the same deal with different priorities: | Profile | Salary We