收到用户消息,检测 workflow_state == null,进入意图分类流程。
选择 Prompt:extract_intent,携带对话历史发给 LLM。
输出:{ "intent": "route_plan", "params": { "factory": "深圳坂田", "destination": "汉堡", "container_type": "40HQ", "count": 2 } }
解析 LLM 输出 → intent = route_plan
更新状态为 params_ready,保存参数到 session。
调用守卫条件评估:¬has_pickup ∧ ¬user_skipped → 走推荐路径。
查询附近提箱点(确定性代码,不调 LLM)。
查到推荐结果,更新状态为 awaiting_pickup_select。
选择 Prompt:pickup_recommend_reply,调 LLM 生成回复。
输出回复文本:"根据您的位置,为您推荐以下提箱点:A. 盐田港(12km)B. 龙岗物流园(8km)..."
检测到 workflow_state.step == awaiting_pickup_select,不走意图分类。
选择 Prompt:interpret_pickup_selection,携带推荐列表 + 用户回复,调 LLM。
输出:{ "action": "select", "selected_index": 1 }
解析结果为 action=select,选择项在推荐列表中已有库存确认。
调用路线算法(确定性代码),更新状态 done → idle。
选择 Prompt:reply,调 LLM 生成最终回复给用户。