采购流程端到端测试报告
时间: 2026-06-18 08:17 ~ 08:25 (Asia/Shanghai)
测试人: Agent
测试环境
- 服务: BossAgents (端口 3006)
- 仓库:
D:\openclaw\bossagents - 最新提交:
5e3c9dd(数字员工验证) + 本地未提交修改(ai-agent.js L1.5直通、intent-engine.js _extractParams重写) - 服务状态: ✅ 正常运行
测试1:ai-agent API → procurement_workflow 工具调用
请求: POST /api/ai-agent/chat → "采购10台伺服电机,预算90000,15天内交货"
结果: ✅ L3意图匹配 → {type: 'tool_call', tool_name: 'procurement_workflow', auto_execute: true}
请求: POST /api/ai-agent/execute → {toolName: 'procurement_workflow', params: {product:'伺服电机', quantity:10, budget:90000}}
结果: ✅ 工作流 proc_mqir6xlr_7wdv 创建,状态 running
分步状态:
| 步骤 | 描述 | 状态 |
|------|------|------|
| Step1 | 搜索供应商(SCSAI 42家) | ✅ 成功 |
| Step2 | 发询价邮件(2/3成功) | ✅ 成功 |
| Step3 | 收集报价(3份模板报价) | ✅ 成功 (wait_timeout=10s → 模板) |
| Step4 | LLM比价报告(1078 chars) | ✅ 成功 |
| Step5 | 推送比价报告到tuan_zhang1976@qq.com | ✅ 成功 |
confirm_key: proc_mqir7cri
确认测试:
| 确认方式 | 状态 | 结果 |
|---|---|---|
| boss_confirm_procurement 工具 | ✅ | PO-42067237 已发送,总金额 ¥82,800 |
| 重复确认 | ✅ | 返回"未找到对应的采购申请" |
| 工作流最终状态 | ✅ | completed, step6, PO number 记录 |
测试2:数字员工快捷路径 → POST /api/digital-staff/run
请求: {message: '采购20台电机测试', staffId: 'DS-PROC-001'}
结果: ✅ 返回 {type: 'confirm'} 包含 resumeId、question、options
确认交互:
- resumeId:
resume_1781742193720_fxc3ge - question: 产品/数量/预算/供应商列表确认
- options: [发送询价, 取消]
恢复测试: POST /api/digital-staff/resume
- 第一次(参数名不匹配:
resumeId+action→ 400 BadRequest) - 第二次(参数正确:
staffId+resumeId+choice='confirm'→ 连接关闭但执行成功) - 确认队列: 完成后 count=0,表明已成功处理
测试总结
✅ 通过的路径:
- Webchat输入框 → ai-agent/chat → L3 LLM → procurement_workflow 工具 → boss_confirm_procurement 确认 → PO生成(完整流程已验证)
- ai-agent/execute 直接调用 procurement_workflow → 同上(已验证)
- 数字员工 run → lite-scheduler → DS-PROC-001 worker → confirm交互 → resume 恢复(已验证)
- boss_confirm_procurement 确认工具(已验证:PO-42067237 ¥82,800)
未测试/待确认:
- 邮件回复确认 — 代码中未见 confirm_key 匹配逻辑,email-service.js 未集成 procurement 确认监听
- 超时自动批准 — ai-agent.js 未实现超时自动确认机制,
global._pendingProcurements永久保留 - Webchat前端自动渲染 — 需在浏览器中实际测试 auto_execute 流程的UI反馈
- 飞书端路径 — 未测试(依赖飞书轮询 + 卡片推送)
已知限制:
- 产品名乱码: 测试中显示
???? × 10(中文编码问题) - 供应商邮箱不全: 42家中仅3家有有效email
- 报价为模板数据: wait_timeout=10秒自动使用模板报价
- resume POST 需传递
staffId+resumeId+choice三个参数
BossAgents