论文
大语言模型 可以生成可观察性感知代码吗?
Can Large Language Models Generate Observability-Aware Code?
摘要
编码智能体 的最新进展使得日益复杂的软件系统的生成成为可能。虽然现有的评估主要关注功能正确性,但生产系统必须公开故障证据以支持可观察性。在本文中,我们对代理生成系统中的可观察性进行了系统研究。我们检查代理是否可以通过恢复 10 个开源存储库和 8 个工业存储库中的可观察性工件来重建源级诊断语义。我们还通过部署在 Kubernetes 上的 200 个生成的微服务系统(具有 13 个注入故障)来评估这些工件是否在运行时转化为有效的故障信号。我们的结果揭示了源级别的诊断语义与运行时的故障信号(即明确的、特定于故障的证据)之间存在一致的差距。在源级别,代理部分恢复了可观察性工件,但难以捕获关键的诊断语义。在运行时,尽管存在日志记录,生成的系统仅针对一小部分故障(最多 13.99%)公开故障信号,这表明生成的可观察性工件可能缺乏有效公开故障所需的特定于故障的语义。我们进一步引入了一种面向可观察性的技能,它可以作为改进诊断语义和故障信号暴露的指导,但收益仍然有限,这表明差距不容易解决。更广泛地说,我们的研究结果表明,当前主要关注功能正确性的评估可能会忽视可观察性作为实用软件质量的一个重要维度。