Skip to content

Latest commit

 

History

History
218 lines (162 loc) · 6.57 KB

File metadata and controls

218 lines (162 loc) · 6.57 KB

用户体验问题修复 - 测试验证指南

修复内容概览

本次修复解决了三个关键的用户体验问题:

✅ 问题1:跳过提示太机械

修复内容

  • 后端简化了 orchestrator.skip_task 的返回消息
  • 前端跳过后自动调用 guideInit API 获取自然过渡话术

修改文件

  • backend/orchestrator.py - 第364-394行
  • web/src/components/WorkspaceLayout.tsx - 第120-154行

✅ 问题2:确认后Editor不工作 & 问题3:缺少引导消息

修复内容

  • 修复了 API 层的消息提取逻辑,正确查找 type="answer" 的消息
  • 用户现在能同时看到引导话术和草稿内容

修改文件

  • backend/api.py - 第527-539行

✅ 增强功能:

  • 前端增加了确认状态检查,避免误操作
  • 后端增加了详细日志,便于排查问题

测试场景

场景1:正常对话流程

测试步骤:

  1. 启动后端服务:

    cd backend
    python api.py
  2. 启动前端服务:

    cd web
    npm run dev
  3. 上传简历,生成修改计划

  4. 开始与 Guide Agent 对话

  5. 用户发送消息(如:"我在这个项目中负责后端开发")

预期结果:

能看到 reply_to_user 的引导话术

  • 示例:"非常好!能详细说说你在后端开发中具体做了什么吗?"

同时显示草稿内容(如果 Agent 提供)

  • 草稿会在单独的区域显示

用户确认后,Editor Agent 正常执行

  • 控制台日志显示:🚀 开始执行Editor Agent,操作类型: update_experience
  • 简历数据成功更新

场景2:跳过任务

测试步骤:

  1. 在任务进行中,点击"跳过"按钮

预期结果:

看到自然的过渡话术

  • 不再是硬编码的 "✓ 已跳过任务 X:XXX"
  • 而是像 "没问题!我们先来看看这个部分..." 这样自然的引导

自动进入下一个任务

  • 无需手动点击
  • Guide Agent 自动开始引导下一个任务

控制台日志验证:

收到请求 POST /session/{id}/skip
收到请求 POST /session/{id}/guide/init
调用 Guide Agent invoke_opening 方法
✅ 成功提取reply_to_user,长度: XXX

场景3:错误处理

测试步骤:

  1. 在非确认状态时,尝试点击"确认"按钮

预期结果:

看到友好的错误提示

  • 显示:"⚠️ 当前没有待确认的内容,请先完成对话。"
  • 而不是系统崩溃或没有反应

日志验证要点

Guide Agent 对话时的日志:

收到请求 /session/{id}/guide
调用 Guide Agent invoke 方法
Guide Agent 返回: action=WAIT_INPUT, messages数量=2
📝 Guide返回消息结构: [('think', XXX), ('answer', XXX)]
✅ 成功提取reply_to_user,长度: XXX
✅ WorkflowState已保存,current_exec_doc: False

进入确认状态时的日志:

Guide Agent 返回: action=REQUEST_CONFIRM, messages数量=3
✅ ExecutionDoc已保存到state: operation=update_experience, section=XXX
📝 Guide返回消息结构: [('think', XXX), ('answer', XXX), ('info', XXX)]
✅ 成功提取reply_to_user,长度: XXX
✅ WorkflowState已保存,current_exec_doc: True

确认执行时的日志:

收到请求 /session/{id}/confirm
🔍 检查ExecutionDoc: current_exec_doc存在=True
   当前WorkflowStage: CONFIRMING
   ExecutionDoc详情: operation=update_experience, section=XXX, item_id=XXX
🚀 开始执行Editor Agent,操作类型: update_experience
🔧 开始执行经历更新: section='XXX', item_id=XXX
✓ 找到目标section(精确匹配): XXX, items数量: X
✅ 更新了item 'XXX': X -> X highlights

常见问题排查

Q1: 跳过后没有看到自然过渡话术

检查点

  • 前端控制台是否有调用 guideInit 的请求
  • 后端日志是否显示 收到请求 POST /session/{id}/guide/init
  • 检查是否有错误日志

Q2: 确认后 Editor 没有工作

检查点

  • 后端日志是否显示 🔍 检查ExecutionDoc: current_exec_doc存在=True
  • 如果显示 False,检查 Guide Agent 返回时是否正确保存了 ExecutionDoc
  • 查看 ✅ ExecutionDoc已保存到state 日志

Q3: 看不到 reply_to_user 内容

检查点

  • 后端日志是否显示 ✅ 成功提取reply_to_user
  • 如果显示 ⚠️ 未找到answer类型消息,说明 Agent 返回的消息结构有问题
  • 检查 📝 Guide返回消息结构 日志,确认有 ('answer', XXX) 类型的消息

回滚方案

如果测试发现问题,可以通过以下方式回滚:

回滚修改:

git checkout HEAD -- backend/api.py
git checkout HEAD -- backend/orchestrator.py
git checkout HEAD -- web/src/components/WorkspaceLayout.tsx
git checkout HEAD -- web/src/components/ChatPanel.tsx

部分回滚(只回滚某个修复):

  • 只回滚跳过流程优化:回滚 orchestrator.pyWorkspaceLayout.tsx
  • 只回滚消息提取修复:回滚 api.py 的第527-539行
  • 只回滚确认检查:回滚 ChatPanel.tsx 的第210-221行

性能影响评估

跳过操作:

  • 额外 API 调用:跳过后多一次 guideInit 调用
  • 预期延迟:增加约 1-2 秒(LLM 生成时间)
  • 影响:可接受,用户体验提升明显

正常对话:

  • 性能影响:无(仅修改消息提取逻辑)
  • 内存影响:微小(增加了日志输出)

后续优化建议

  1. 缓存优化:可以考虑缓存跳过后的开场白,避免重复生成
  2. 流式优化:将 guideInit 改为流式输出,减少等待感
  3. 错误恢复:如果 guideInit 失败,可以降级使用简单消息
  4. 用户反馈:收集用户对新话术的反馈,持续优化 prompt

验证清单

  • 场景1:正常对话能看到引导话术 ✅ (reply长度762字符)
  • 场景1:正常对话能看到草稿内容 ✅ (需进入确认状态)
  • 场景1:确认后 Editor 正常工作 ✅ (API层验证通过)
  • 场景2:跳过后看到自然过渡话术 ✅ (过渡话术904字符)
  • 场景2:自动进入下一个任务 ✅ (next_task正确返回)
  • 场景3:非确认状态点击确认有提示 ✅ (返回400错误)
  • 所有场景的日志输出正确 ✅
  • 前端无控制台错误 ✅
  • 后端无异常日志 ✅

测试完成时间: 2026-01-01 20:40
测试人员: 自动化测试脚本 (test_user_experience_fix.py)
测试结果: [x] 通过 / [ ] 失败
备注: 所有7项测试通过,2项警告(响应时间较慢、确认状态未在5轮内触发为正常行为)