Net

Loop Engineering这套方法论,我在团队里用了快三个月。最早没有这个词,就是被逼出来的。项目太紧,按以前一问一答的方式跟AI协作,效率太慢,开始试着设好目标和规则让它自己跑。

三个实践跑下来,效果远超预期。AI搜索的query理解准确率从78%提到91%,是Agent自己跑了几百条bad case优化出来的,人没改一条规则。多轮对话漂移的问题靠Agent自检修复,用户反馈的答非所问投诉降了六成。内容生成的风格一致性,Agent自己抽检自己,准确率追到93%。

下面把三个实践的完整过程写出来。

实践一,AI搜索的query改写质量自优化 我们有一个面向C端的AI搜索产品,用户输入自然语言问一个问题,Agent需要先理解他想搜什么,再调搜索引擎拿结果,最后生成回答。这中间的query改写环节是关键,能不能准确抓到用户意图决定了整个链路的回答质量。

上线头两个月,我们拉了一下数据。query改写之后的搜索结果相关性评分只有78分,差评主要是三个类型。15%是实体识别错误,用户搜怎么取消自动续费,改写后丢失了自动这个关键修饰词,搜出来的全是取消续费相关。还有大概7%是时效性误判,用户搜的是2026年新规,改写后没有带上时间约束,搜出了2022年的旧规则。剩下的来自同义词匹配失败。

以前怎么修。看bad case,人脑总结规则,加到改写prompt里,重新上线,再看数据。一个迭代至少两天。而且有个很头疼的问题,你修了一个类型可能误伤另外两个,修了实体识别让时效性变得更差,修了时效性让同义词覆盖率下降。三个维度在同一个改写prompt里互相挤占。

我让Agent自己跑了一个自优化环。抽了三百条真实用户query的bad case,每条标注了它属于哪种错误类型。给Agent一套改写工具和一套Eval工具。改写工具会输出改写后的query,Eval工具会拿改写后的query去调搜索引擎,返回top10结果的相关性评分,以及有没有匹配到正确的时间窗口。

条件是,总评分从78提到90以上,三个错误类型的分布不能有任何一类相比初始值劣化,最多跑25轮。

前面几轮很顺利。Agent先修了实体识别,在改写prompt里加了一条强制保留所有修饰词。跑完总评分涨了5个点,实体识别错误从15%降到7%。但第十轮出了一个意料之外的情况,同义词覆盖率突然从14%跌到了9%。因为实体识别的规则过于强势,把一些同义词变体也当作修饰词保留了,导致搜索引擎返回了完全不相干的结果。

Agent第十五轮做了一次精妙的平衡。把实体识别的保留规则加上了一个白名单限制,只对名词类修饰词做强制保留,动词和形容词交给同义词模块处理。这个改动让三个维度同时都回到了安全线以内,总评分上了91。

这十五轮跑下来,。按我们用的模型价格,API费用大概两千出头。对比一下,这三百个case如果让人来逐个分析调优然后上线验证,少说三个工作日。两千块钱换一个工程师三天的产出,这笔账怎么算都是值的。

实践二,多轮对话的话题漂移自纠正 Agent接了多轮对话之后会出现一种很难排查的问题。用户一开始问的是产品怎么买,五轮之后Agent在聊退换货政策,十轮之后突然扯到行业对比了。不是错了,是偏了。

我们追踪了大概两千条超过十轮的对话链路,发现约27%的会话在第六轮之后出现了明显的话题漂移,其中12%的用户在漂移发生后的三轮内退出了对话。这就是直接的用户流失。

按以前,这个问题几乎没法修。因为不是每一条对话都会漂移,你没办法硬编码规则去限制Agent的话题范围。而且漂移的原因很微妙,往往不是某一轮的回答有问题,而是三轮五轮之后注意力分布的渐变。

我在每轮Agent回答之后加了一个自检步骤。Agent需要计算当前轮次的回答和用户第一轮问题的语义向量距离,如果距离超过了一个阈值,就触发自纠。自纠不是简单地删掉历史对话重新开始,而是做上下文回溯。把最近N轮的对话内容做一个摘要,拿到用户原始意图,然后写一段引导prompt说接下来的回答请聚焦在xxx主题上,避免延展到yyy方向。

这里最难的细节在阈值怎么设。太敏感了,用户正常聊着突然被截断体验很差,太迟钝了,起不到纠偏效果。我让Agent自己去调。抽了五百条真实对话,标注了漂移点的位置,让Agent跑了一个自调参Loop。目标是在误触发率不超过5%的前提下把漂移纠正率做到70%以上。

跑了大概十轮,阈值收敛在0.43。误触发率4.7%,纠正率达到76%。上线之后用户答非所问的投诉降了六成。

这十轮跑下来按我们的模型价格,API费用大概两千多。对比一下,要是让人去标五百条对话的漂移点然后手动调阈值上线验证,光标注就得两天,加上调参验证又一天,三天起步。

实践三,内容生成Agent的跨会话一致性格控 这是C端产品里最容易被忽略但用户感知特别强烈的一个问题。 用户上午问它推荐一款适合徒步的背包,回答了一个很硬核的专业风格。下午再问推荐一个通勤背包,回答变成了生活化的电商口吻。同一个Agent隔了几个小时变了人设。

不是每一句话错了,是整体的一致性崩塌了。

我拉了一下过去三十天全部高评分会话的风格向量,发现同一类用户的对话在时间间隔超过四小时后,生成风格的余弦相似度平均只有0.67。降到0.6以下的会话,用户的次日留存率比正常会话低了21%。

做了一个风格的基线管理闭环。Agent每完成一轮回答,自动抽取这条回答的风格特征向量,跟该用户历史对话的风格基线做对比。如果差异超过一个阈值,回答字数偏好差超过50词,专业术语密度差超过15%,句式复杂度变化超过一个标准差,就标记为风格漂移。标记的case自动排入一个检视队列,Agent每天凌晨跑一次全量回顾,对高漂移的会话做原因分析,输出agent的系统prompt微调建议,然后拿这些建议去回测过去七天的会话数据,验证召回率和误判率。

这里的关键不是Agent自己做得好不好,而是评估的标准该设什么、让它自己试错的过程怎么设计停止条件。我设的条件是,自动建议采纳之后风格一致性评分提升且用户次日留存率不下降,跑满20轮或连续三轮建议被采纳视为收敛。

Agent自己跑了13轮,输出了六个建议场景。最有价值的一个建议让我印象深刻,Agent发现在用户提问涉及更换品类的时候style偏移最严重,建议在系统prompt里固定身份,变产品不变人设。这个建议把风格偏移率降了22%,留存率确实没降。

全量回顾的token消耗确实大,十三轮跑下来烧了按我们的模型价格,API费用大概四万多。但想一下,如果让人去读三十天的会话数据找风格漂移的规律,不是三天五天的事,光是把十五万条会话读完提炼出规律,一个人两周都未必做得完。风格一致性的问题核心是个海量数据里的模式识别问题,这种活天生适合让Agent去跑Loop。人工去做不是做不到,是做了也划不来。