GSoC 2025 中期 - 用于 Jenkins 故障诊断的 AI 代理
您好,Jenkins 社区!
我是 Chirag Gupta,这是我 Google Summer of Code 2025 项目的期中更新:**“基于 ci.jenkins.io 数据的实际 Jenkins 用法领域的特定 LLM”**。该项目的愿景是通过人工智能加速 Jenkins 中通常复杂的构建失败诊断过程。
有关详细概述,请参阅项目页面。
我们刚刚通过期中评估,因此我想分享一下项目的进展更新。
转变:从微调到灵活的代理系统
最重要的发展之一是从最初微调一个或多个 LLM 的目标,转变为构建一个更具前瞻性和通用性的代理架构。
为什么改变?
-
灵活性和用户选择:单个微调模型会锁定用户。我们新的代理框架允许用户插入任何有能力的 LLM,从 OpenAI 和 Claude 等云服务到自托管模型。
-
面向未来:为 Jenkins 定制微调模型仍然是未来的目标,但它现在可以作为代理中的众多选项之一集成,而不是成为整个系统。
-
可扩展性:代理的能力现在由其工具定义,而不仅仅是其训练数据。这使得随着时间的推移添加新功能,例如与实时 Jenkins 实例交互,变得更加容易。
期中成就:一个功能原型
我们已经成功开发了一个功能齐全的原型,建立了这个新的核心架构。该原型证明了基于代理的诊断模型的可行性。
-
交互式 CLI:我们使用
Typer和Rich构建了一个用户友好的命令行界面。它通过诊断过程指导用户,处理文件 I/O,并以易于阅读的格式呈现最终报告。 -
多代理管道:核心逻辑运行在“责任链”模型上
-
一个**路由器代理**首先对故障类型进行分类。
-
然后一个**专家代理**使用一套工具进行深入调查。
-
一个可选的**批评代理**启用自我纠正循环,审查诊断质量并强制重试,如果报告有缺陷。
-
-
高级 RAG 工具:我们使用
LightRAG集成了复杂的检索增强生成 (RAG) 管道。此工具为代理提供外部知识,并提供混合堆栈,包括用于嵌入的本地sentence-transformers和用于高质量重排的Cohere。 -
健壮的日志记录和沙盒: CLI 具有双重日志记录系统,用于应用程序调试和详细的 AI 交互审计。为了安全和可重现性,每次诊断都在一个隔离的、带时间戳的目录中运行,确保用户的原始工作区文件永远不会被触碰。
下一步是什么?通往目标架构之路
下一阶段将侧重于将原型发展为我们在目标架构中设想的强大、集成式系统。
-
扩展 LLM 后端支持:我们将构建供应商无关的 LLM 适配器,以支持更广泛的后端。这将使用户能够根据成本、性能或隐私需求自由选择首选提供商,包括直接集成 **OpenAI、Anthropic (Claude) 和 Groq**。
-
RAG 用于 Jenkins 知识:从官方 Jenkins 文档、维基和社区讨论中构建一个全面的向量存储库,为代理提供深入的领域知识,并使用不同的嵌入模型来满足用户的需求。
-
全面的评估框架:使用“LLM 作为法官”等技术创建一个框架,以严格测试诊断质量并为社区提供有价值的见解。