Spaces:
Sleeping
title: Executive Inbox Environment (RL)
emoji: ⏱️
colorFrom: pink
colorTo: indigo
sdk: docker
pinned: false
app_port: 7860
base_path: /web
tags:
- openenv
Executive Inbox Environment — Native Architecture
A robust text-based OpenEnv environment built on top of the native PyTorch openenv.core.env_server.Environment class architecture. This environment simulates a stressful day in the life of an Executive Assistant or busy executive, forcing the Action space to parse emails, check calendars, reschedule personal conflicts around work emergencies, and reply via thread IDs.
Developed strictly to align with OpenEnv Statement 3.2 (Personalized Tasks & Email/Calendar Parsing).
Quick Start
You can test a programmatic AI policy (looping over actions to find the solution) by running the evaluator test:
uv run python examples/heuristic_policy.py
This loop runs 10 distinct episodes against our generative procedural combinatorics.
You can also run the deterministic single-step example:
uv run python examples/executive_inbox_example.py
Features for Deep Reinforcement Learning
The environment was ripped off the FastMCP architecture and rebuilt precisely to support Reinforcement Learning evaluations:
- Native Observations & Validations:
- We utilize
ExecutiveInboxAction(action_type=...)and ourstep()function returns a structuredExecutiveInboxObservation(output: Any, error: str, done: bool, reward: float).
- We utilize
- Procedural Complexity (No Memorizing):
- Built on
data_pools.py, we randomly sample combinations of "Crisis Emails", "Personal Conflicts", and "Noise Events" and drop them randomly into a 9-to-5 calendar layout every single episode. - All email IDs (e.g.
e_1x9w) and meeting IDs (c_00k4) are randomly generated onreset().
- Built on
- Double Overlaps:
- The environment purposefully seeds two separate conflicts occurring simultaneously at distinct times.
- For example: A VIP crisis at 10:00 AM overlaps a flight, and a server outage at 3:00 PM overlaps a doctor's appointment.
- Rich Constraints:
move_meetingenforces that the new meeting block cannot be placed on an occupied time block (like 2:00 PM), failing gracefully and penalizing the agent.
- Delegations Tools:
- Includes full implementations of
reply_to_emailanddelegate_meetingto fulfill the "Personalized Constraints" and "Delegation" feedback block from evaluators.
- Includes full implementations of
Reward & Shaping Mechanics
- Max Step count is set to 15 steps. Reaching the limit terminates the episode with
Done=TrueandReward=-1.0. - Every valid tool call returns a
-0.01negative penalty to enforce efficient operations (the heuristic optimal solver takes 6 steps to win). - Every Invalid Action (missing parameters, or hallucinating an
email_idthat does not exist in the current random layout) throws a-0.1invalid step penalty and increments the verificationstate.invalid_actions_taken. - Resolving Both Conflicts and sending Both Confirmatory Emails terminates the episode with
Done=Trueand awards+1.0.
Architecture
executive_inbox/
├── models.py # Pydantic schemas (ExecutiveInboxAction/Observation)
├── client.py # Model dump overrides for local testing
├── server/
│ ├── executive_inbox_environment.py # Native environment loop + validations
│ ├── data_pools.py # Combinatorial random pools of scenarios
│ └── app.py # OpenEnv FastAPI app
└── README.md