【测试人生】变更规则校验Agent研发的一些思路

在变更风险防控领域,规则校验和变更中观测一样,是必不可少的能力之一。面向配置类变更和SQL数据类变更,通过严格的静态规则校验可以拦截很多事故风险,保障配置或SQL发布后的安全。从变更风险防控平台的角度来说,一个规则校验系统(规则引擎),可以简单设计成多组变更场景到校验规则的映射,业务SRE角色可以编写较大业务域的通用规则,而业务研发可以编写特定业务域的专项规则,当一个变更发起时,多条规则就统一在这个系统里做执行,这样就能够实现通用的变更规则校验需求。

但是现在是2026年,是一个全民养虾的时代,以前花大力气编写的规则跟系统,不用Agent打平一遍,那怎么着都得out了。所以本文也基于这么个场景,在已有变更规则校验的标准业务流程基础上,怎么研发一个规则校验Agent,去讨论一些思路。

首先需要明确,如果做一个规则校验Agent,它相对于以往自己编写的规则,能有什么增量收益。笔者以为主要是两块,一块是研发提效,另一块是去挖掘更深层次的风险。研发提效会比较明显,传统的规则校验引擎要写代码或者匹配规则,扩展成本高,但LLM可以用简单的语义推理磨平这些研发成本。深层次风险挖掘这块,在把以前获取上下文的接口全部封装成MCP或Skill的基础上,Agent就可以自主获取不同来源的变更上下文,不断迭代做深层挖掘,这个是Agent固有的优势,传统的规则校验难以替代。

从上我们能够明显看到LLMAgent对规则校验研发带来的变革,但反过来折损点一是在于LLM输出的不确定性,二是推理时间导致的发布效率降低。对于简单的规则校验Agent,考虑「需求推理+变更上下文收集+风险点分析+结构化输出」几个步骤,一次规则校验的时间可能会达到1到2分钟。如果再做复杂一些,做深层次的风险挖掘,那么由校验开始到分析报告生成都可能有5分钟以上,这样即便分析出来的结论可能很棒,但时间损耗对于研发发布来讲可能就无法接受了。所以,Agent需要以一套「低侵入&高兼容」的模式切入到已有的规则校验流程当中,才能够给业务带来比较好的体验。

具体怎么做,从用户体验角度讲,Agent可以设计成Quick和Deep两种模式。Quick模式负责做基础且通用的规则校验,且支持开放给业务RD自行编写静态校验规则,以Instruction文本或其它方式接入到Agent当中,实际执行时会直接作用于规则校验流程,在变更前做拦截。对于Deep模式,可以自主闭源做复杂编排+异步执行,执行完毕后发通知,或者在小流量发布阶段做拦截,也都是可取的呈现方式。

Agent编排方面,需要并行部署多个垂直领域Agent,比如SQL校验Agent、配置变更Agent以及底层的代码分析Agent。关于上层是否要设置一个Dispatcher角色Agent,主要取决于是否有Chat的需要,如果没有的话则不是必须,通过既往工程代码控制Agent执行就可以。对于深度挖掘风险类的Agent编排,目前笔者还没有深入研究,有兴趣的读者可以深度实操下。

最后一个关键问题是,怎么优化Agent的效果。首先需要定指标,基础的主要是执行成功率(稳定性)、执行时长、风险拦截率和拦截准确率几块。从这些指标出发,我们可能考虑如下的优化策略:

  • 执行层面,可以整合业务实际发布校验的结果还有业务手工打标准确度的数据,将其提炼成评测集,如果有配套评测平台的话,就能够在迭代Agent期间,随时对Agent效果做评测,当然如果技术上能够实现在线RL的机制那当然更好。
  • 模型层面,如果执行延时的瓶颈在推理,可以调整模型选型或者精调来纠正模型的推理思路,不至于经常想歪,或者通过Prompt调优技巧,比如加Few-Shot或者Schema定义确保结构化输出稳定性。有一个点不确定是否有既往研究,就是应用到RAG的知识,如果给到模型精调一遍,是否能提升实际作业效果,有经验的读者也可以指正一下。
  • 编排层面,由于规则校验对发布效率有要求,建议不要做过于复杂的编排。在这个基础上,如果迭代了一段时间的话,需要有意识去梳理变更上下文数据需要获取多少,有什么依赖关系,尽量精简上下文数据的获取时间和数据量。
  • 平台层面,有些业务可能对于拦截准确率有比较高的要求,所以对于用户的Instruction或其他接入方式,可以提供标准模板,让业务编写定制化的风险降噪策略,显式干预Agent的执行效果。
版权声明
本文为博客HiKariのTechLab原创文章,转载请标明出处,谢谢~~~