四条原则 · 可迁移的部分

方法论

这套闭环不是从框架论文开始做的,而是从四条被实践检验过的原则推导出来的。 它们比任何具体实现都更可迁移。

四条落地原则

先流程后工具

引入 AI 前先完成流程梳理与标准化。跳过流程标准化直接买工具期待提效, 是多数 AI 项目失败的根因。这个场景在动手搭 Agent 前花了整整两个季度做编目 SOP 原子化。

先确定性后自动化

把复杂业务拆成清晰可控的步骤 —— 每个字段是一个原子技能, 职责单一、格式标准、模块解耦。确定性是自动化的前提,不是它的产物。

先试点后推广

规则生效走灰度(10% 流量),验证修正率真的下降再全量。 机制本身也一样:先在一个场景跑通闭环,再谈复制。

先能力后平台

不等自演进框架成熟。「字段级 diff → 聚合 → LLM 归纳 → 人工审核 → 入库生效」 这条土路能拿到 90% 的价值,一周可以做出第一版。

白盒优于黑盒

通用 Agent 缺乏企业级应用所需的确定性、可解释性与可审计性。这套闭环的每个环节都刻意保持白盒:

置信度检验:最容易被忽略的一步

diff 分析会输出置信度分箱,回答一个问题:AI 说自己没把握的时候,是不是真的容易错?

先跑这一项,再决定要不要投入规则提取 —— 否则整个闭环建立在一个不可信的信号上。

让模型少做选择题,剩下的用校验兜住

规则提取是这套闭环里唯一用到模型的环节,也是唯一可能凭空编造的环节。 处理办法分两层,都不指望模型自觉:

但 schema 只能挡住形状不对的参数,挡不住形状对而语义错的。 于是再加一层语义自测——规则本就强制附带样本证据,那些证据就是它自己的测试用例。

哪些能本地判,哪些只有上游能判

这条边界要划清楚,否则要么漏掉该拦的,要么编造一堆判不了的检查:

规则类型本地能判什么为什么
normalize拿证据样本回算,逐条比对 参数本身编码了一个可执行的变换,能当场跑
source_priority
fallback_source
只判一件事:出错的源不能当解药 换成哪个源更准,只有上游跑过才知道;但拿出错的源去补它自己出的错, 不需要跑就能断定无效——这是同义反复
prompt_constraint不判 效果完全在上游生成环节体现,本地无从验证

这条边界是真实模型跑出来逼出来的。一次评测里模型给出过这样一条兜底规则: 字段为空时,去某个数据源补——而那个源正是该字段一直漏抓的源。 schema 全过、能入库、会进审核队列,却不可能有效。

反过来说,「换哪个源更准」就必须留给上游。本地强行判定只会拦掉正确的规则, 比漏拦更糟——宁可放过,不可乱拒:审核人还能拦下一条坏规则, 但被系统悄悄拒掉的好规则不会有人知道。

判不了就不判,宁可少一半数据

拿到一批真实的双版本数据时(每个条目两行:AI 产出、人工修改后), 面对一个诱人的捷径:这批数据没有「修正原因」这一列, 但只要比对两个值,似乎就能推断出原因——空值补上的算漏抓, 值变短了算冗余,看着挺合理。

我们只推断了两类,其余如实标记为「判不了」,结果是65% 的数据用不了。

为什么不把那 65% 也推断出来:分析的全部价值就在于按原因归类。 AI 给了一个值、人工换成另一个——是抓错了源(该改采集策略), 还是编造了内容(该改生成约束)?这两者的解法相反。 猜错不是「少一条数据」,是把规则引向相反的方向, 而且因为它披着数据的外衣,事后极难发现。

少一半数据的代价是可见的、可补的;一批被污染的归因是隐性的、不可查的。 宁可少,不可脏。

按形态分类,还是按解法分类

同一批差异,有两种分法:

按形态分按解法分
类别值修改 / 空值补充 / 冗余删除 来源错误 / 格式不符 / 语义偏差 / 幻觉编造 / 漏抓补全
怎么得到比对两个值即可,可自动需要修改者当场说明
能推出下一步吗不能能,与规则类型一一对应

按形态分很省事,因为它不需要人填任何东西。代价是「值修改」 成了一个大筐——实测这一类占到近七成,而它内部既有「抓错源」也有「编造内容」, 两者要改的地方完全不同。

省掉的那一步,正是决定下一步该做什么的那一步。 这不是命名偏好之争,是分类维度选错了:分类的目的是决定行动, 按形态分恰好把决定行动的那个维度丢掉了。

先量再改:印象会过期

「提取成功率大概三分之一」这句话在待办里躺了一段时间。真去测量时, 成功率是 15/15——那次失败早已修掉,只是从没复测,印象就留下来了。 如果照着待办去调提示词,改的是一个没坏的东西。

所以把评测做成脚本,并且把失败分类,因为四类的改法完全不同:

失败类别含义该往哪改
调用失败网络或鉴权与提示词无关
空返回模型认为样本无共同模式样本量或聚合口径
schema 不过形状错:多余的键、白名单外的源提示词讲清格式
自测不过形状对但语义错,会改坏数据加校验,别指望提示词

混在一起只会得到一个「成功率」数字,看不出该动哪里。

还有一条容易忽略的要求:评测的判定必须与产品代码一致。 产品代码已经拦下了、评测却仍报「成功」,是最糟的情况——读数好看, 拦截效果无从得知。这一点用测试钉住,不靠人记得。

结构同构:一次攻坚,多处受益

「人工修正回收」这个问题在不同场景里结构完全同构:

场景人工动作diff 单元
元数据编目改字段值字段级:原值 → 新值 + 原因
视频智能切片候选切片留用/弃用/入出点微调切片级:AI 建议 → 人工终审 + 原因
任何 AI 初筛 + 人工终审的流程接受/修改/拒绝决策级 diff

规则提取管线(聚合 → 归纳 → 审核 → 灰度)对以上场景通用 —— 攻坚做一次,同构场景都受益。

一句提醒

人工修正日志就是「经验的代际沉淀」的载体。不埋点,经验就随着人走了 —— 而且并行期没埋点的数据,过去了就再也拿不回来。埋点永远是第一优先级。

← 回首页