Files
ln-bi/docs/asset-ai-vehicle-answer-plan.md
T
2026-09-23 18:05:10 +08:00

4.5 KiB
Raw Blame History

单车状态问答优化与验收计划

问题与目标

用户询问“沪A57850F 这辆车现在是什么状态”,现有结果展示单车总量、运营率,并出现把数量描述为状态的回答。本轮让回答先满足单车事实查询,再按需要展示证据。截图仅作为问题证据,不作为当前车辆数据源。

预期示例(以实际查询值为准):沪A57850F 当前运营状态为「租赁」,不属于库存。随后补充城市、部门、车型及必要异动信息。不得把台账归属城市说成实时定位,也不得把未标记异动推断为车辆无故障。

实施范围

  1. 区分单车事实问题与总量、占比、分布、趋势问题。单车状态查询优先返回状态,不因结果仅一行便把所有统计请求转成状态回答。
  2. 自然语言中的事实由授权查询结果提供,绑定可校验字段;缺失字段如实处理。保留权限校验和既有查询边界。
  3. 单车状态不展示无关总量、运营率和车队下钻建议。模型展示失败时仍有准确、简洁的默认答案。
  4. 连续追问保持目标车辆;明确切回全部资产时解除单车范围。保留原有统计能力。

分工

  • 主代理:范围与计划、集成检查、验收结果汇总。
  • 开发子代理:查询/结果/展示实现、必要回归测试。
  • 验收子代理:独立场景审查、执行验证、问题复核。

验收矩阵

场景 通过条件
指定租赁车辆状态 首先给出真实租赁状态,不出现“1台状态”或默认运营率
库存、异动、待交车车辆 使用各自真实字段,不混淆待运营与待交车
字段缺失 不虚构状态、归属、异常原因
无匹配或无权限 如实说明当前可见范围未找到,不泄露不可见车辆
多车结果 不擅自选首车作为唯一答案
明确询问运营率/数量 保留统计结果,即使筛选后仅一辆车
单车连续追问 沿用正确目标,并再次基于真实查询作答
回到全部资产 清除单车限制,恢复统计
模型失败 默认答案仍基于真实字段,保留必要失败提示
既有分布与复合分析 无统计口径、权限和结果渲染回归

验证证据要求

记录相关测试、TypeScript 检查和构建的实际执行结果。模拟模型测试、真实模型调用、浏览器验证分别标注,未执行项不得写成通过。本轮不包含生产部署。

实现决定

单车事实查询采用 responseMode=vehicle-status。服务端基于当前授权查询的真实字段直接生成状态结论及台账资料,跳过展示模型。无需扩大明细外发范围,也不依赖展示模型正确理解“状态”与“数量”的区别。

单车显式统计仍进入统计流程,但明确指定的车辆身份需要约束最终查询,避免模型遗漏车辆筛选后误答全量。否定、重置与复合问题须按各自范围处理,不能简单将出现的所有车牌都当成正向筛选。

开发前基线:npm test,285 项全部通过。

最终验收结果(2026-09-23)

  • 独立验收子代理执行 npm test:301/301 通过,较基线新增 16 项(独立路由验收 13 项、开发回归 3 项)。
  • npm run lint、npm run build、git diff --check 均退出成功;构建保留已有的大于 500KB 分块提示。
  • 独立路由验收确认租赁、异动、待交车、未知车辆、显式统计、继承、否定、重置及复合问题。测试使用合成车辆和模拟模型,通过实际 Hono 路由执行。
  • 验收中发现并修复:模型漏掉单车身份后误答全量;未知车辆查询扩大范围;状态和统计子项在旧去重逻辑中被合并。
  • 复合用例分别核对同车状态与 100% 运营率,以及单车状态与合成全公司 50% 运营率。数字仅为测试样本,不代表真实业务数据。
  • 未执行真实 DeepSeek、真实业务数据库或浏览器视觉验收;单车状态路径直接绑定后台事实,不需要展示模型调用。

已知边界:排除指定车辆后需要选择超过 100 台车辆时返回澄清;当前实现不新增批量排除协议。只回答当前台账事实,不推断实时位置与故障原因。本轮修改保留在工作区,未提交、推送或部署。

开发大脑结束复盘:执行 DB-C-003;本轮证据为项目内修复与本地测试,尚不足以形成跨任务可复用知识记录,无可沉淀候选,未触发知识仓写入。