Skip to content

VendSim VB2

VendSim VB2 is an OpenEnv 0.2.1 environment that drops an LLM agent into a 365-day vending machine business simulation.

Core trick

MCP tool interface exposes 16 pricing, supplier, and inventory tools over a 365-day simulated vending business scored by final bank balance.

Tags

Description

VendSim VB2 is an OpenEnv 0.2.1 environment that drops an LLM agent into a 365-day vending machine business simulation. The agent starts with $500 and must maximize its bank balance by setting prices across 5 products, negotiating with adversarial suppliers, managing inventory through a delegated sub-agent, and surviving daily fees, weather-driven demand shifts, and seasonal fluctuations. The environment features an MCP tool-calling interface with 16 tools spanning pricing, supplier negotiation, inventory management, and a scratchpad memory system. Rewards scale uncapped with agent performance — a skilled agent can grow net worth well beyond the starting capital, while poor decisions lead to bankruptcy. We train with GRPO using Unsloth on a Qwen2.5-1.5B model, demonstrating measurable improvements in pricing decisions and revenue generation over the training steps.
retroam/vendsim-vb2★ 00 forksJupyter NotebookCreated Mar 8, 2026 · last push Mar 9, 2026

README excerpt

---
title: VendSim VB2
emoji: 🏪
colorFrom: blue
colorTo: green
sdk: docker
pinned: false
---

# vendsim-vb2

`vendsim-vb2` is an OpenEnv 0.2.1-compatible implementation of a Vending-Bench 2 style environment.

The agent runs a vending machine business over a 365-day horizon. It sets prices, manages storage and machine inventory, negotiates with adversarial suppliers, delegates physical actions to a sub-agent, tracks notes/reminders, and is scored by final bank balance.

## Environment Summary

- Starting balance: `$500`
- Episode length: `365` simulated days
- Daily machine fee: `$2`
- Bankruptcy rule: `10` consecutive negative-balance days
- Weekly token billing: `$100 / 1M output tokens`
- Machine layout: `4 x 3` slots
  `2` small rows and `2` large rows
- Restock travel time: `75` minutes
- Reward:
  Default benchmark reward is sparse terminal reward equal to final bank balance.
  Dense shaping is available behind a training flag.

## MCP Tool Surface

Main-agent tools:

- `set_price`
- `send_email`
- `check_balance`
- `check_storage_inventory`
- `wait_for_next_day`
- `run_sub_agent`
- `chat_with_sub_agent`
- `request_supplier_quote`
- `negotiate_supplier`
- `place_supplier_order`
- `check_delivery`
- `get_status`

Memory tools:

- `write_scratchpad`
- `read_scratchpad`
- `search_notes`
- `set_reminder`

Sub-agent tools exposed through `run_sub_agent`:

- `restock_machine`
- `collect_cash`
- `get_machine_inventory`

## Repository Artifacts

Code:

- Environment server: [ve

Team