# 三辆及以上机动车事故立即转人工 ## 业务边界与原因 用户已明确要求:首次确定三辆及以上机动车参与事故的当轮立即返回0003,不继续采集人伤、非机动车/行人、时间及确认、在场情况,也不询问拍照能力。原始案例为“在高速上,三辆车子追尾了”,期望回复: ```text 0003收到,您描述的是三辆机动车追尾,属于需要人工处理的复杂事故,我将立即为您转接人工警员。请保持通话。 ``` 按项目prompt-debugging及prompt-engineer技能检查,根因是原提示词明确要求三车事故先完成必要采集和时间确认,并且优先中断列表只有人伤、主动人工等。分流段落又将三车人工和单/双车拍照并列后统称遵守拍照条件,导致模型可能把拍照能力询问用于三车事故。JSON采集提示词与本地Markdown相同,这属于决策规则与新业务边界冲突,而非仅仅遗漏关键词。 ## 修改 - 采集提示词靠前增加三辆及以上立即中断规则,使用当前form、用户历史及本轮输入;不等待并行提取器写入本轮表单。 - 表单已有vehicle_count>=3、没有新更正或冲突时直接采用,其他字段缺失不阻止人工分流。 - 同步修改状态表、每轮决策顺序、缺项采集适用条件和分流总前提,删除“先采集齐全再转人工”的旧数量条件。 - 拍照能力检查明确只适用于数量1或2且满足其他拍照条件的分支。 - 针对三辆机动车追尾采用用户指定话术;其他复杂事故按实际数量和经过组织同一结构,不编造追尾、人伤等事实。 - 非机动车/行人的既有分流策略独立保留;当前新规则针对机动车至少3辆。明确人伤仍优先使用人伤话术。 - 数量按最新明确更正解释;“可能三辆”仍未知,旁观车辆不计入。已知下限>=3即可立即转人工,但只给下限时不将下限冒充精确总数写入vehicle_count。 - 提取提示词明确人工转接时仍保留有证据的数量和经过,不把未采集的人伤、时间等填成默认值。 - 同步本仓库workflow/20261027的两个对应提示词;工作流节点、边、状态解析以及LangGraph分流代码不改。1002至0003本来就是合法转换。 ## 检查设计 - 新增direct与browser_addon两个完整API案例:新会话、继续办理、呼叫、原始三车描述;在首次三车表达当轮断言0003、指定话术、form数量3/经过追尾,未知字段不得填写,不允许继续询问。 - 新增9项真实模型语义检查:原始表达、四车、仅表单数量3且离场无法拍照、表单2本轮更正3、表单3本轮更正2、至少3辆但精确总数未知、疑似3辆、无关停放车辆、等待时间确认时新增第三辆。 - 继续运行原有50个API案例,保留原断言,复查单方数量推断、已填表单不重复问、正常单/双车、非机动车、时间确认及其他行为。 - 语义检查总计执行38项;历史相对时间无基准的1项按用户此前要求继续暂缓,单独列为排除项,不记通过,本次未修改该时间规则。 模型沿用配置中的deepseek-v4.1-flash,temperature=0,reasoning_effort=none。所有Python命令使用Conda py3.11;API评估使用memory存储,不接触当前持久会话。 ## 复现 ```bash conda run -n py3.11 python -m evals.prompt_compare --output-dir evals/results/customer-feedback/complex-reproduce-all conda run -n py3.11 python -m evals.prompt_probes --runtime --exclude-case missing_historical_time_anchor --output evals/results/customer-feedback/complex-reproduce-probes.json conda run -n py3.11 python -m pytest -q test/agent/test_workflow_prompts.py test/test_eval_runner.py test/agent/test_transitions.py ``` 运行API评估前设置AGENT_BACKEND=langgraph、LLM_PROVIDER=deepseek、AGENT_STORAGE=memory。完整模型回复、表单和每轮断言保存在被Git忽略的evals/results/customer-feedback目录。 ## 最终实测结果 | 检查 | 结果 | | --- | --- | | 全部API端到端案例 | 52/52 | | 全部本轮语义检查 | 38/38 | | agent及评估器离线测试 | 159通过 | | 原50份案例输入与断言SHA-256 | 全部保持不变 | | 暂缓的历史时间基准案例 | 1项排除,不记通过 | 两种客户端模式在首次收到“在高速上,三辆车子追尾了”时均立即0003,正文与用户指定话术完全相同。表单增量均为 `{"vehicle_count":3,"accident_cause":"追尾"}`,人伤、非机动车/行人、时间和现场字段仍未填写,没有追加任何采集或拍照问题。 最终API结果:`evals/results/customer-feedback/complex-verified-all/`;语义检查:`complex-verified-probes.json`;汇总:`complex-summary.json`;逐例审核页:`complex-review.html`,由项目skill-creator自带的审核页生成器产生。此前专项中“至少三辆”被提取成精确3的问题保留在中间结果;补强精确数量与下限的边界后,最终该检查通过,不删改其断言。 修改限于两份提示词、对应工作流输入、评估用例及文档,没有改变生产节点或状态转换代码。Markdown与JSON的对应提示词一致,`git diff --check`通过。单次样本通过不代表所有模型输出均无波动。