openenv-emailops / README.md
Utkarsh430's picture
Update README.md
88f7703 verified
---
license: apache-2.0
title: OpenEnv EmailOps
sdk: docker
emoji: 💻
colorFrom: blue
colorTo: indigo
pinned: false
short_description: 'A complete, real-world OpenEnv simulation for email '
---
# OpenEnv - Email Triage & Operations (EmailOps)
This repository contains a real-world task simulation environment for AI agents built according to the **OpenEnv specification**. The environment simulates a mock email inbox where agents perform triage capabilities including moving emails, reading, replying, deleting, and flagging.
This is explicitly a **non-toy, real-world task design**, mirroring workflows that humans complete in corporate business operations or customer support roles.
## Architecture
* **Framework Support:** OpenEnv (Python 3.10+)
* **Typing Interface:** Pydantic (Strong contracts via `Observation`, `Action`, and `RewardInfo`)
* **Deployment:** Hugging Face Spaces Docker / Gradio UI
## Task Scenarios (Easy, Medium, Hard)
The environment supports deterministic tasks with partial progression signals:
1. **Easy (`easy`)**: Move the email with the subject "Invoice" to the "Finance" folder. (Score: 0.0 or 1.0)
2. **Medium (`medium`)**: Find the unread email from the boss, read it, and reply with "Will do.". (Partial reward given for reading the email).
3. **Hard (`hard`)**: Inbox Triage. Agent must delete all spam (from `spam@scam.com`), move Support emails to the 'Support' folder, and flag any email with 'Urgent' in the subject. Includes a severe penalty for deleting non-spam emails (e.g., boss emails).
## Action Space
The action space consists of strongly typed functions:
- `open_email(email_id)`
- `close_email()`
- `move_email(email_id, folder_name)`
- `reply(email_id, reply_body)`
- `delete_email(email_id)`
- `flag_email(email_id)`
- `submit()`
## Observation Space
The observation space exposes:
- **`inbox_summary`**: A view of the emails situated in the *current viewed folder* (list of ids, senders, subjects, unread status).
- **`current_folder`**: String representing currently focused folder.
- **`opened_email`**: The full content of an email, if currently open.
- **`last_action_status`**: Feedback from the previous step.
## Setup Instructions
### Local Development
```bash
pip install -r requirements.txt
```
### Running the Baseline Agent
You can test the environment against an OpenAI model (e.g., GPT-4o-mini).
```bash
export OPENAI_API_KEY="sk-..."
python inference.py --model gpt-4o-mini
```
The script will sequentially invoke the `easy`, `medium`, and `hard` tasks.
### Running with Docker / HF Spaces
This environment is containerized for Hugging Face Spaces using the Gradio interactive interface wrapper.
```bash
docker build -t openenv-emailops .
docker run -p 7860:7860 openenv-emailops
```
Go to `http://localhost:7860` in your browser.