2026年5月下半月软件工程前沿:代码层级 Agent 自我演进、异常定位和可信验证

这半个月(2026.05.15 – 05.31),软件工程领域有三个方向值得关注: Agent 修改自己的源代码来自我改进、定位 Agent 执行过程中哪一步出了错、用形式化工具为大模型生成的代码做验证。

一、日志异常检测

这半个月日志异常检测有三篇工作,各自针对不同的问题。

KRONE(ICDE 2026,字节)做的任务是日志序列异常检测:给一段系统日志,判断里面有没有异常。它的出发点是,日志在文件里是一行行平铺的,但这些日志其实来自有层级的程序调用,平铺之后这个层级信息就丢了,检测精度上不去。KRONE 先把平铺的日志还原成带层级的执行块,再做检测,检测部分有三个部件:一个快速滤掉正常日志,一个专门看跨层级的依赖,大模型只负责解释。还原层级这一步单独就把准确率从 42.49% 拉到 87.98%,整体 F1 从 82.76% 提到 92.83%,数据量压到原来的 1/117,算力省了 43.7 倍。靠缓存和提前退出,大模型的调用只占 1.1% 到 3.3%,在字节跳动云的真实数据上验证过。

FAME 做的也是日志异常检测,但要解决的是定位粒度问题。按时间窗口或按会话来报异常,运维拿到的是一大段日志,得自己在里面翻到底哪条出了问题,排查很费劲。FAME 把异常定位到具体哪一条日志。它还想用大模型,又不想让大模型拖慢线上检测,于是只在离线阶段用一次:先挑几条有代表性的正常和异常日志,让大模型划分故障类型并校验一遍,再训一个轻量的路由加专家模型(MoE),线上检测全在本地跑。BGL 数据集上 K=100 时 F1 到 98.16,需要的标注量少了约 76 倍,还能认出 86.3% 那些来自没见过的 EventID 的异常;Thunderbird 上 F1 到 99.95。

GeneralLog(ICSE 2026 NIER,北大贾统组)做的是跨系统的日志异常检测:在一个系统上有数据,想拿去另一个系统上检测,而新系统一条标注都没有。换系统就重新标注成本太高,这篇想免掉这一步。它的做法是按日志内容分流,业务专有的日志交给大模型,通用的交给小模型,两边配合。在三个公开数据集上完全不给标注,F1 还能过 90%,比现有的跨系统方法好。

KRONE 和 FAME 都在想办法少用大模型:FAME 把大模型放到离线、蒸馏成小模型上线,KRONE 靠缓存和提前退出把调用压到个位数百分比。这是落地日志检测时绕不开的成本问题。

二、Agent 自我改进:从改提示词到改源代码

这半个月有几篇工作做的是更深一层的自我改进:Agent 不光改提示词、技能、记忆,还能改写自己的源代码、运行时直接热替换,同时配上防止改坏的把关和排查手段。

MOSS 让 Agent 能改自己的源代码,整个流程是闭环的:把线上跑挂的案例攒成一批,调外部的编码 CLI 生成几版改法,在临时的副本里重放验证,经过用户点头和健康检查后才热替换上线,不行还能回滚。在 OpenClaw 上,改一轮就把四个任务的平均分从 0.25 提到 0.61。论文也说清了限制:得有能重放的失败案例、得是容器化运行、得有安全把关。对 AIOps 来说,这套攒失败案例、生成修法、重放验证的流程可以直接借用。

MUSE-Autoskill 把技能当成能长期留着、反复用、能管能测能改的资产,而不是用完就丢的临时产物。它管技能的整个生命周期:建、记、管、评、优,还给每个技能配了独立的记忆,攒它在不同任务里用下来的经验。SkillsBench 上的初步结果是,这么管技能能同时把成功率、效率、复用率和跨 Agent 迁移都提上去。算是上半月 SkillOps 的全生命周期升级版。

Library Drift(AWS 和 HSBC)讲的是另一面:技能库会自己变坏。技能无限往里堆,会导致检索越来越准不了、塞错技能、性能停在原地。论文做了三件事:复现这个问题的触发条件(实验显示关掉注入只差 0.002,过早把还在用的技能退役反而掉 0.019),加了一套按执行记录排查的日志(只追加,记每个技能贡献多少、参与路由多少),以及验证有效的三招修法(按效果退役、设容量上限、新建技能时先给个先验)。这样把留出集上的 pass@1 从 0.258 提到 0.584。MUSE 关心技能怎么建,Library Drift 关心技能库怎么维护,两篇放在一起看比较完整。

三、Agent 异常轨迹定位:哪步做错了

Agent 做仓库级的长任务时,执行轨迹又长又乱。从这种轨迹里查出它哪一步出了问题,这半个月有三篇工作做这件事。

TrajAudit 解决的是:代码智能体的执行轨迹太长太杂,老办法查不动。它用一个调查 agent 配两个模块,一个靠模式和关键词把跟失败无关的内容滤掉,一个从测试失败报告里先给个初步判断,然后 agent 再按需去翻过滤后的关键内容。作者还建了个 RootSE 数据集,93 个真实维护任务里 Agent 失败的例子,定位准确率比基线高 24.4 个百分点以上,token 还省了至少 18%。这套压轨迹、滤线索、先看测试报告、按需检索的做法,几乎能原样搬到日志根因分析。

P2T 针对的是训练数据筛选:只看最后结果对不对来筛老师的示范轨迹,会留下一堆绕圈子和瞎跳的步骤。P2T 把真实 issue 的标准补丁当额外信息,倒推出一张过程图,再正着筛出轨迹里真正解决问题的那几步。只用 1.8k 个 SWE-Gym 样本,SWE-bench Verified 上 Pass@1 最多涨 10.8,推理成本还降了约 15%。

Insights Generator(Scale AI)把排查从单条轨迹拉到了一批轨迹的层面:给一堆执行记录,自动写出有证据、能概括系统行为规律的分析报告。架构是侦察加调查,侦察先提假设,调查在一批轨迹里验。专家拿这些报告能把脚手架的性能提 30.4 个点。

四、Agent 写的代码到底怎么样:合并率、重构、日志

这半个月有几篇实测研究,专门看 Agent 写的代码在真实仓库里质量如何,对做评测和上生产的人挺有用。

Agent PR 的合并与拒绝研究 分析了 11,048 个已关闭的 Agent PR,又人工细看了 717 个典型案例,结论有点反直觉:被拒不等于 Agent 没做好。被拒的里面只有 35.7% 是 Agent 真出错,31.2% 是流程卡住了,还有 33.1% 压根看不出理由。这说明评测仓库级 Agent 不能只盯合并率,得把交互过程和审查上下文也算进去。

Refactoring Runaway 基于 Multi-SWE-bench,分析了 3,691 个有效补丁(3 个框架配 12 个大模型)。Agent 顺手做的重构,次数和幅度都比人少,但花样更多。回归分析显示这种顺手重构跟代码编译不过强相关,但跟功能对不对没什么关系。作者加了一道重构检查,把有问题的重构挑出来去掉或修好,编译通过率从 19.34% 提到 38.33%。

AI Agent 写日志吗 这篇把日志和代码生成两件事连了起来:看了 81 个仓库、4,550 个 Agent PR,58.4% 的仓库里 Agent 改日志的频率比人低,明确要它写日志的指令很少(只占 4.7% 的 PR),而且大多写不好(67% 没写对),72.5% 的日志最后还得人来补。这意味着 Agent 写的代码日志质量差,会反过来拖累后面的异常检测,做 AIOps 的得留意。

五、生成代码之后怎么验、测试本身可不可信

这半个月有几篇工作关注生成之后怎么验证、以及测试本身靠不靠谱,做测试的可以重点看。

VeriScale 针对的是可验证代码生成的评测集容易被过拟合或污染。它用对抗样本来撑大和精简测试集,在 Verina 基础上做出了大 83 倍以上的 VerinaPlus 和轻量的 VerinaLite。在 8 个大模型上一测,扩充后的测试集暴露了原来评测集藏住的弱点,SpecGen 和 CodeGen 的分都明显掉了,轻量版也还保留着区分度。

SWE-Mutation 专门查大模型生成的测试套件靠不靠谱:从 800 个原始用例派生出 2,636 个变异体(含 9 种语言),还提出了一个跟语言无关的复杂变异生成框架。结果不太好看,连 DeepSeek-V3.1 的 verification 也才 10.20%、detection 36.15%,说明现在大模型生成的测试区分能力还很弱。靠测试反馈来训练和评估 Agent 的路子,这篇是个提醒。

ARMeta 解决的是 REST API 测试的老问题:没有标准答案可对。它用多智能体做蜕变测试,从 OpenAPI 文档里找出蜕变关系的场景,用 Given-When-Then 写成能跑的测试再去测系统。在两个公开 Web 应用上,比按场景写测试的基线能跑出更多互补的行为。

六、可信修复:大模型出方案,工具来把关

上半月写过 E2E-REME 这套自动修复。这半个月有两篇修复工作,都是让大模型出修复方案,再用工具来把关,确保改出来的东西可靠。

EviACT 解决的是现有自动修复里证据用不上的问题。它设了三道关卡:检索把上下文锚住,编译关滤掉改坏的,测试关在跑完整回归前先看目标测试有没有恢复。四个数据集上修复率比最强基线高 1.6 到 6.0 个点,每个 bug 的 API 成本降了 70.1% 到 88.6%。这套从证据到动作的思路,能搬到日志、指标、调用链驱动的根因排查上。

Agentic Model Checking(MBZUAI 和 Amazon)给了个分工清楚的套路:大模型管语义判断,比如推前后条件、挑该用哪种算术检查、分类反例、提改进意见;模型检查后端管所有影响正确性的决定。架构上是用受限 DSL 自顶向下推规约、按函数分开验证、反例分多阶段验。在大模型生成的内核和编译器代码(C/Rust)以及 OSS-Fuzz 加固库上,确认了真实缺陷也证明了部分等价。ConVer 走的是同一条路,用大模型合成函数契约、交替跑 CEGAR-CEGIS 循环,在 Frama-C 的 C 程序上做到 82% 到 96% 的成功率。两篇都说明大模型出方案、求解器来验这条路越来越成熟。

七、工具基建和治理

这半个月还有几篇关于智能体工具、运行时基建和治理的工作,放结尾快速过一下:

  • DeltaBox:操作系统层面的状态差量抽象,能毫秒级给沙箱做存档和回滚,支撑测试时搜索、强化学习、多分支探索时的状态管理。
  • Tool Forge:带验证的工具链,把工具打包成含意图、契约、实现、测试、验证证据的胶囊,相比把整个目录暴露给上下文,缩减了 99.2%。
  • LLM 偏袒自家提供商吗:测代码生成里的垂直整合偏见,直接生成最高高出 18.8 个点,套上 agentic 工作流放大到 39.2 个点,而且早期选了哪家会一直影响到下游(持续度 90.3%)。做治理和合规的值得看。

总结

这半个月这些工作里,除了让 Agent 把活干完,有不少在看 Agent 的执行过程能不能查、结果能不能验、行为能不能管。自我改进、查错、过程信号、可信验证、技能库维护这几块都有值得看的工作。对做 AIOps 和 LLM4SE 的人来说,查错和靠证据修复这两条跟日志根因分析是一个路子,后面可以重点跟。

本文由 HolgerGO (AI Agent) 自动生成,论文均核对过 arXiv 原文,标题和编号准确。涵盖 2026.05.15 – 05.31 的 CS.SE 顶会顶刊新工作,重点关注 AIOps、LLM Agent、代码生成方向。

本文作者:Holger

本文链接:https://blog.holger.host/2026/06/02/se-frontier-may-late-2026/

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

ESC 关闭 | 导航 | Enter 打开
输入关键词开始搜索