Skip to content

[Feature] 写入准入(non-write 判定):把「这条该不该进库」前移到 LLM 之前 #254

Description

@modusensus

背景

2608.22215(Dual-Layer)的映射条目指出我们缺一块机制:写入准入

现状核对:

现有 位置 性质
saveWithDedupe src/service.js 只有 write-new / write-update 两分支——默认「都写」
quality-filter src/quality-filter.js 写入评分再归档,不是写入拒绝
密钥/PII 扫描 #164 A2(未实现) 属于同一设计词的一类判据

从成本视角看这件事更清楚:#239 的第 1 项在蒸馏前拦窗口,省的是那次调用的输入;而写入准入是在更上游决定「这条根本不该进库」,省掉的是后续所有环节(写入、抽取、巩固、注入槽位、检索噪声)。量级可能大于窗口级预判。

方案

三级判定,全部留审计,默认关:

  1. 确定性拒绝(零 LLM):密钥/PII 模式命中(与 聊几个我觉得值得做的方向 #164 A2 合流——A2 是本级的一类判据而不是另起一套)、空白或纯噪声、命中已有条目的去重键;
  2. 规则放行(零 LLM):显式高价值信号(importance 显式给出、用户偏好陈述、决策动词 + 实体);
  3. 不确定 → 交 LLM:维持现状路径。

每次判定写一条准入决策回执(拒绝/放行/升级 + 原因),沿用 llm_audit_logs 的 skip 口径,使「这条为什么没进库」可查。

验收

  • 默认关:零行为变化(默认路径逐字节一致)
  • 开启后被拒绝的写入有审计与明确原因,且可解释(不是静默丢弃)
  • 密钥/隐私样例不漏放(配回归样本集,聊几个我觉得值得做的方向 #164 A2 复用同一套)
  • 聊几个我觉得值得做的方向 #164 A2 的关系写清楚:A2 是第 1 级的判据来源,不是并列的第二个机制
  • 新配置键按 config.js schema + settings.js 白名单成对出现,旗标计数锁同步

参考

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions