iphone12man/email-prioritization-env
0
Smart Email Prioritization System
An OpenEnv-compatible reinforcement learning environment for real-world email triage. It models how an agent prioritizes emails, extracts deadlines, classifies categories, and drafts suggested replies.
Features
- Priority classification (
high,medium,low) - Deadline extraction (normalized datetime output)
- Email categorization (
work,college,personal,spam) - Reply suggestion generation
Task Levels
easy: priority onlymedium: deadline + categoryhard: priority + deadline + category + reply
Observation Space
Each observation contains:
episode_idtask_typecurrent_timeemails[], where each email includes:idsendersubjectbodytimestamp
Action Space
The agent outputs:
email_idprioritydeadline(ISO-8601 ornull)categorysuggested_reply
Actions are sent as:
{
"actions": [
{
"email_id": "e1",
"priority": "high",
"deadline": null,
"category": "work",
"suggested_reply": "I will handle this and update you soon."
}
]
}Reward Function
Reward is task-aware and deterministic:
- Component scoring:
- priority exact match
- deadline exact/same-date/incorrect scoring
- category exact match
- reply keyword and length checks
- Penalties:
- missing actions
- extra actions
- invalid values
- missing or hallucinated deadlines
- Final reward is normalized to
[0.0, 1.0].
Project Structure
email_env/
├── env/
│ ├── environment.py
│ ├── grader.py
├── inference.py
├── requirements.txt
├── Dockerfile
├── openenv.yaml
├── README.mdSetup (Docker)
docker build -t email-env .
docker run email-envInference Usage
python inference.pyNotes
- Uses OpenAI client with deterministic fallback logic when API is unavailable.
- Evaluation pipeline is deterministic for stable benchmark behavior.
