第八幕的 v1.0.2 是 10 月 19 日出的包。这一幕从 10 月 21 日讲起——上线第一周还没过完。

1. 又一条线上反馈:日期查错

10-21,新的线上反馈来了:用户问"14 号做了哪些事",查出来的结果不对。

排查归档后是两个叠加的问题:其一,搜索只有关键词 LIKE 匹配,没有日期过滤——"14 号"被当成普通关键词,查不对;其二,返回里的时间是毫秒大数(十几位的时间戳),模型要现场换算成日期,换算稍错,过滤就错。一句话:端侧会存时间,云侧不会"说"时间。

2. 修复九项,全链路

10-21 一天内九项修复落地:

  1. RouseDateParser:日期归一化服务——相对(“昨天”)、绝对(“10 月 14 日”)、星期,统一成 YYYY-MM-DD;
  2. searchAction 五条件组合过滤:query/status/goalId/scheduledDate/updatedDate,数据库升 v5、加 updated_at 索引;
  3. ActionManageImpl 升 v0.0.5:schema 扩参;
  4. 三份提示词升版:FC v9、分析 v10、聊天 v11——增加翻译字段(毫秒大数翻译成人话日期)、回显查询条件与 count、"完成记录"风格行;
  5. 导入旧备份自动归一化:老数据进来也统一格式。

同日搭了 DebugSelfTest 自测基建:四组用例,真机 20/20 通过。

3. 一个 d 的血案

修复上线前测试,怪事来了:平台模型明明输出了 updatedDate=2026-10-14,端侧插件收到的 updatedDate 却始终是空字符串;同一轮里 action、status、scheduledDate、query 全部正常到达。搜索因缺参退化成全量查询。

排查按排除法,从端侧一路走到平台:端侧装饰器 schema、类属性名、插件注册逐一核对,全清白;实验排除"测的是旧版本";hilog 证明链路健康,调用正常进出,唯独这个参数空;卸载重装对照,其余参数照常到达,排除缓存;平台日志实锤 FC 模型确实输出了 updatedDate——参数在平台内部"FC 输出 → 插件节点"的映射环节丢失。端侧代码、平台派发、发布链路、模型输出,四个方向全部无责。线索到这里断了。

实在找不到问题,把现场整理好,发到鸿蒙合作群求助。龚老师看了配置,指出:两个节点的参数名,有一个少了一个 d。

说实话,当时我并不觉得这是问题——这个差异我之前就看到过,但一直觉得"就是个变量名,不会影响数值传递",从头到尾没把它排进排查清单,多少有点对自己推理的自负。龚老师提出来的时候,我还在嘴硬,说"最后试"。也确实最后才试——打脸的是,也确实是这个问题:平台 FC schema 和循环节点里的参数名写的是 updateDate,少一个 d;平台按参数名做映射,名字对不上,参数静默丢弃。10-22 结案(Bug 23)。

教训压成一条铁律:

新增插件参数,四处名字逐字符对齐:FC 提示词参数名、平台 FC 节点 schema、平台插件节点参数名、端侧 InsightIntent schema。“参数存在"≠"名字一致”——平台按名映射,错一个字母就静默丢参,无任何报错。

第三幕写下两端合约时说:"任何一处对不上,合约就静默失败。“三个多月后,它以最小的粒度——一个字母——再次应验。第四幕说"报错信息常常和真实原因毫无关系”,这次更进一步:连报错都没有,参数就是安静地不见了。

这一案还有另一笔账要记:“觉得不会影响"不等于"验证过不影响”——差异早就看见了,自负替我把它排除在排查清单之外,是老师们的一双外眼把它捞了回来。这里要特别致谢一下鸿蒙合作群的老师们:耐心、负责。另外,onExecute 入参调试日志是端侧唯一的参数地面真值窗口,上线初期保留。

4. 闭环与瘦身

平台配置改齐,10-22 实测闭环。17:49:51 这轮是铁证:[调用] updatedDate=2026-10-14 + status=done → [返回] count=7,与历史锚点换算预测完全一致;四项矩阵全过(updatedDate+status→7、scheduledDate→1、status→25、无参→29)。

顺带做了一次返回瘦身:search 返回从 9 个字段减到 7 个,毫秒大数换成翻译字段,省约 30% token,聊天提示词 v11 就地修订 4 处。10-22,v1.0.3 出包:versionCode 1000003,release 包 674KB,删掉自测临时调试代码。

5. 上线第一周记完

从 10-16 第一条"崩溃"反馈,到 10-22 v1.0.3 出包:锁屏断轮定案、001003 代答码实测、数据导出导入落地、日期理解修复、一个 d 的血案结案——上线第一周,两个版本。

本章沉淀

  • 时间要为人服务:相对、绝对、星期统一归一,毫秒大数翻译成字段,模型不再现场换算
  • “觉得不会影响"≠"验证过不影响”:看见的差异要验证后再排除,自负不算排查
  • 线索断了就求助:把现场整理好发出去,一双外眼胜过十遍自信复盘
  • “参数存在"≠"名字一致”:四处逐字符对齐,一个字母的静默丢参没有任何报错
  • 返回瘦身省的是真金:9→7 字段、省约 30% token,翻译字段换掉毫秒大数
  • 九幕记完,记录还在继续

尾声

序里说:"唤醒工作台上线一段时间了。今天得空,把项目记录从头整理一遍。"整理到这里,九幕写完。项目还在往前走——新的想法池已经建起来,下一个版本会解决什么,等它发生的时候,记录自然会说话。

懿路向前 · AI辅助整理
2026-10-31

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐