章节 01
导读 / 主楼:OpenEnv 邮件分类环境:训练 AI 智能体处理企业级多收件箱工作流
这是一个为 Scaler x Meta PyTorch Hackathon 构建的 OpenEnv 兼容强化学习环境,模拟企业邮件分类场景,支持多邮件决策、工具使用和奖励塑形,旨在挑战现代 LLM 智能体的推理和决策能力。
正文
这是一个为 Scaler x Meta PyTorch Hackathon 构建的 OpenEnv 兼容强化学习环境,模拟企业邮件分类场景,支持多邮件决策、工具使用和奖励塑形,旨在挑战现代 LLM 智能体的推理和决策能力。
章节 01
这是一个为 Scaler x Meta PyTorch Hackathon 构建的 OpenEnv 兼容强化学习环境,模拟企业邮件分类场景,支持多邮件决策、工具使用和奖励塑形,旨在挑战现代 LLM 智能体的推理和决策能力。
章节 02
邮件分类是企业运营中的核心工作流:接收新邮件、理解意图、评估紧急程度、路由到正确团队、决定合适的行动。这个流程被广泛应用于客服、计费、销售、安全和内部运营队列。
与简单的邮件分类不同,真实的邮件分类需要:
章节 03
这个环境专门设计用来挑战现代 LLM 智能体,引入了以下复杂因素:
多邮件决策:智能体需要处理一个包含多封邮件的收件箱,而不是对单封邮件做一次性分类。每封邮件的处理会影响后续邮件的优先级和时间成本。
模糊意图:同一封邮件可能包含多个意图线索,智能体需要判断主要意图。例如,一封既提到计费问题又提到登录问题的邮件,核心诉求是什么?
对抗性措辞:邮件中可能包含故意误导性的语言,如 "我觉得我被重复扣费了但不确定是不是银行的问题",智能体需要看穿表面措辞识别真实意图。
时间权衡:环境引入了基于步数的惩罚,鼓励智能体快速但准确地做出决策。拖延会降低总体奖励。
章节 04
环境采用 FastAPI 服务器提供 RESTful API,遵循 OpenEnv 风格的接口:
FastAPI Server
|
+--> /reset -> 加载确定性收件箱 episode
+--> /step -> 对一封邮件评分,推进到下一封
+--> /state -> 检查内部 episode 状态
+--> /tasks -> 任务元数据 + 数据集摘要
+--> /grader -> 确定性评分 API
+--> /episode_log -> 完整轨迹检查
+--> /baseline -> 启发式/OpenAI 基线分数
|
+--> EmailTriageEnvironment
|
+--> 合成数据集
+--> 奖励塑形
+--> episode 日志
+--> 工具模拟
章节 05
智能体在每个步骤收到的观察包含:
{
"current_email": {
"email_id": "em-001",
"subject": "Charged twice for order 88412",
"sender": "billing@shopnova.com",
"email_text": "I was charged twice for my order 88412...",
"difficulty": "easy"
},
"inbox_summary": [
"em-001: Charged twice for order 88412",
"em-002: Login issue on my account",
"em-003: Limited time offer on premium plans"
],
"remaining_emails": 3,
"history": ["reset(task_id=3)", "inbox_size=5"],
"step_count": 1,
"tool_result": {
"tool": "lookup_order",
"order_status": "shipping"
}
}
智能体不仅看到当前邮件,还能看到收件箱中其他邮件的摘要,这模拟了真实工作中需要快速扫描和优先排序的场景。
章节 06
智能体提交的行动包含多个维度:
{
"category": "billing", // 类别:spam, support, billing, sales, internal
"priority": "high", // 优先级:low, medium, high
"department": "finance", // 部门:support_team, sales_team, finance, ignore
"action": "reply", // 行动:reply, forward, archive, escalate
"use_tool": "check_payment", // 工具:lookup_order, check_payment, get_user_history
"tool_input": { // 工具输入
"account_id": "acct_123"
}
}
这种多维度的行动空间要求智能体进行复合决策,而不是简单的单标签分类。
章节 07
环境的奖励是密集的、确定性的,并且针对真实分类行为进行了塑形:
| 组件 | 效果 |
|---|---|
| 正确类别 | +0.3(困难任务),简单任务按比例缩放 |
| 相似类别 | 通过类别相似度矩阵给予部分分数 |
| 正确优先级 | +0.2(中等/困难任务) |
| 正确部门 | +0.3(困难任务) |
| 正确行动 | +0.2(困难任务) |
| 错误类别 | -0.2 |
| 紧急邮件错误优先级 | -0.4 |
| 垃圾邮件标记为重要 | -0.3 |
| 重要邮件标记为垃圾 | -0.5 |
| 时间成本 | -0.05 * step_count |
| 工具使用奖励 | 适当使用工具时给予小奖励 |
最终奖励被限制在 [0.0, 1.0] 范围内。这种奖励设计鼓励智能体既准确又高效,同时重视工具使用。
章节 08
环境提供三个难度级别的任务:
| 任务 | 名称 | 必需字段 |
|---|---|---|
| Task 1 | easy | 仅 category |
| Task 2 | medium | category + priority |
| Task 3 | hard | category + priority + department + action |
智能体可以从简单任务开始,逐步挑战更复杂的复合决策任务。