对齐Debug EML V4入站模型

This commit is contained in:
andy
2026-07-20 19:53:44 +07:00
parent 626e87abdb
commit 038fdc3c8d
17 changed files with 175 additions and 37 deletions

View File

@@ -17,13 +17,14 @@
再组装成 SuperAgent 可处理的邮件输入并调用 SuperAgent Open API。
该能力是平台调试能力,不属于 `workflows.reservation` 主业务流。第一版必须写入 SourceMessage
Inbox 作为来源事实,但不创建订单、不创建任务、不写 AI 任务结果通知接口,也不执行 OPERA。
Inbox 作为来源事实Debug 服务自身不直接创建订单、不直接创建任务、不写 AI 任务结果通知接口,也不执行 OPERA。
如果 SuperAgent 在 Debug 运行后通过正式回调 / MCP 写入业务结果,应按当前 M002 V4 主线落 V4 订单任务和任务卡。
## 2. 已确认决策
- Debug 页面上传的邮件文件格式为 `.eml`
- 第一版通过 SuperAgent Open API 调用 SuperAgent,不走 SuperAgent 调用本系统任务结果通知接口。
- 第一版只展示 SuperAgent 生成结果,不落业务订单和任务。
- 第一版通过 SuperAgent Open API 调用 SuperAgentDebug EML 服务自身不调用本系统任务结果通知接口。
- Debug EML 服务自身只展示 SuperAgent 生成结果,不直接落业务订单和任务;如果 SuperAgent 在运行过程中通过正式 `task-results` 或 MCP 写入业务结果,必须按当前 M002 V4 契约落库
- 上传邮件仍要写入 SourceMessage Inbox。
- Debug 上传来源必须和 AgentBus 来源区分,建议 `provider=DEBUG_EML_UPLOAD`
- AgentBus 实时收到邮件后自动推 SuperAgent 已由 M007 后端 V1 实现M004 仍只代表人工 Debug 上传链路,不代表生产实时自动处理链路。
@@ -74,10 +75,10 @@ Inbox 作为来源事实,但不创建订单、不创建任务、不写 AI 任
第一版不做以下能力:
- 不创建 Reservation 订单。
- 不创建 Reservation 任务。
- `workflow_reservation_*`
- 不调用 `POST /api/integrations/superagent/task-results`
- Debug EML 服务自身不创建 Reservation 订单。
- Debug EML 服务自身不创建 Reservation 任务。
- Debug EML 服务自身不直接`workflow_reservation_*` 业务模型表;如 SuperAgent 通过正式回调 / MCP 写入,按当前 M002 V4 契约落库
- Debug EML 服务自身不调用 `POST /api/integrations/superagent/task-results`
- 不做真实 OPERA / OHIP 接入。
- 不做邮件多封批量上传。
- 不做 ZIP、MSG、PDF、图片 OCR 或 Excel 解析。
@@ -120,7 +121,8 @@ Debug 页面上传 .eml
- SourceMessage Inbox 仍然只表达来源事实,不表达 AI 结论、订单归属或任务状态。
- Debug 上传链路不能伪装成 AgentBus必须在 `provider``schema_version` 或 debug run 中留下可追溯来源。
- SuperAgent 返回内容第一版只作为调试展示,不进入 M002 订单任务主流程
- Debug 服务返回的 SuperAgent raw answer / parsed JSON 只作为调试展示;业务入站仍必须由 SuperAgent 后续调用正式 `task-results` 或 MCP 写入工具触发
- V4 smoke 默认使用实时 AgentBus V4 Open API subject避免误走历史 Debug V2/V3 profile 并制造旧任务残留。
- M011 的 Excel 附件预处理只作为 SuperAgent 输入增强和 Debug 预览,不直接创建订单或任务;详细规则见 `docs/project/requirements/M011-booking-excel-pre-superagent-enrichment-v1.md`
## 6. 后端接口设计
@@ -288,7 +290,9 @@ POST /api/open/agent-sessions/{sessionId}/messages/stream
- 后端使用 `DEERFLOW_BASE_URL``DEERFLOW_OPEN_API_KEY` 调用 SuperAgent。
- 状态变更请求使用 CSRF double-submit`X-CSRF-Token``Cookie: csrf_token=<same-token>`;当前共享 Open API client 已自动生成临时随机 token 并同时写入 header / cookie。
- 创建 session 时使用 `SUPERAGENT_DEBUG_EML_EXTERNAL_SUBJECT_ID` 作为 `external_subject_id`
- 创建 session 时优先使用 `SUPERAGENT_DEBUG_EML_EXTERNAL_SUBJECT_ID` / 环境专属 `SUPERAGENT_{ENV}_DEBUG_EML_EXTERNAL_SUBJECT_ID` 覆盖值作为 `external_subject_id`
- 如未显式覆盖Debug EML 默认复用实时 AgentBus V4 subject`SUPERAGENT_{ENV}_AGENTBUS_EXTERNAL_SUBJECT_ID` / `SUPERAGENT_AGENTBUS_EXTERNAL_SUBJECT_ID` / `th-hotel-agentbus-source-message`。V4 smoke 不应默认使用历史 `th-hotel-debug-eml-upload` profile。
- 历史 V2/V3 Debug profile 如仍需排查旧页面问题,必须显式配置 `SUPERAGENT_{ENV}_DEBUG_EML_EXTERNAL_SUBJECT_ID=th-hotel-debug-eml-upload`,且不得用于 M002 V4 smoke。
- `idempotency_key` 使用 `debug_run_id` 派生,保证同一次 Debug 运行不会重复创建不可追溯请求。
- 发送消息时把 AgentBus Outlook-like payload 序列化为 JSON 文本,并附加中文指令,要求 SuperAgent 输出结构化 JSON 或 S10/S99 特殊结果。
- SSE 解析仍按项目现有经验,从后期 `values.messages[]` 中寻找 `type=ai``finish_reason=stop` 的最终回答。
@@ -456,7 +460,9 @@ ALIYUN_OSS_DEBUG_EML_PREFIX=debug/eml/
DEERFLOW_BASE_URL=
DEERFLOW_OPEN_API_KEY=
SUPERAGENT_DEBUG_EML_EXTERNAL_SUBJECT_ID=th-hotel-debug-eml-upload
# 默认可不配置Debug EML 会复用实时 AgentBus V4 subject。
# 如需历史 V2/V3 Debug profile才显式设置为 th-hotel-debug-eml-upload。
# SUPERAGENT_DEBUG_EML_EXTERNAL_SUBJECT_ID=th-hotel-debug-eml-upload
SUPERAGENT_DEBUG_EML_CONNECT_TIMEOUT=15s
SUPERAGENT_DEBUG_EML_READ_TIMEOUT=180s
```