TRIGGERS 多场景同时命中时只读第一条,漏了后续路由

2026-06-13

症状

你看到什么?

用户说"审计五件套"来审计一个 Excel 文件。这是一个数据录入项目,TRIGGERS.md 有两条路由同时命中:

  • “审计五件套 / 跑审计” → 加载 audit-four-piece.md
  • “数据录入项目” → 加载 audit-four-piece-data.mdexcel-com-audit.mddata-cross-verify.md

但实际操作中只读了第一条(通用版),漏了数据版三条。用户提醒"我记得优化过你的记忆啊,为什么还做不到"——因为之前已经修过这个问题,但触发匹配逻辑没改彻底。

后果:跑完审计流程后,数据特有的坑(收支=明细交叉验证、实发=应发检查、Excel COM 修复模式)全部没做。

根因

到底为什么出问题?

  1. 匹配策略是"命中即停":扫到第一个匹配行就停下来加载了,没继续往下扫
  2. 没有 OR → AND 的思维转换:多条路由匹配同一任务时,取的文件应该是并集(AND),不是第一个命中(OR)
  3. TRIGGERS 表设计有盲区:通用路由和专用路由分开写,但加载逻辑没做合并
  4. 事后没自检:加载完文件后没问自己"用户说的是审计+Excel,我有没有读 Excel 相关的路由?"

修复

怎么做?

匹配策略改为"全量扫描 + AND 合并"

输入:用户消息关键词
匹配:扫描 TRIGGERS.md 全部行,收集所有匹配的路由
合并:取所有匹配路由的并集
加载:读全部匹配文件

例如用户说"审计这个 Excel":

匹配行1: "审计五件套" → audit-four-piece.md
匹配行2: "数据录入项目" → audit-four-piece-data.md, excel-com-audit.md, data-cross-verify.md
匹配行3: "操作 Excel" → excel-com-audit.md

合并结果 = {audit-four-piece.md, audit-four-piece-data.md, excel-com-audit.md, data-cross-verify.md}
→ 全量加载这 4 个文件

自检问题(加载完文件后问自己):

  1. 用户提到了哪些关键词?
  2. TRIGGERS.md 里有多少行匹配了这些关键词?
  3. 我有没有全部读?

怎么避免

下次怎么不踩?

  1. 扫全表不早停:触发匹配时遍历 TRIGGERS.md 全部行,收集所有匹配项
  2. AND 合并取并集:多条路由的文件列表取并集,去重后全读
  3. 自检三板斧
    • 用户说了什么关键词?
    • 还有什么场景也匹配这个关键词?(翻 TRIGGERS 全表确认)
    • 全量加载了吗?
  4. 用户纠正过的地方加红线:这个坑已经被纠正过了,TRIGGERS.md 里"审计五件套"行的文件列表已更新为全量