找回密码
 立即注册
首页 业界区 科技 Salesforce实践AI驱动下的4个工程启示

Salesforce实践AI驱动下的4个工程启示

背竽 6 小时前

image

引言:当软件测试达到极限

    在现代软件开发中,自动化测试是质量保障的基石,但它也带来了一个普遍的挑战:海量的测试失败案例。当系统规模达到一定程度时,诊断和修复这些失败案例本身就可能成为一个巨大的工程瓶瓶颈,拖慢整个开发节奏。

   Salesforce的工程团队对此深有体会。他们的测试生态系统规模惊人:每天运行约600万次测试,每月产生约15万次失败。在引入AI之前,处理这些失败是一个缓慢而痛苦的过程。最关键的痛点是,工程师平均需要大约七天才能解决一个测试失败。这不仅消耗了宝贵的开发时间,也增加了开发者的挫败感。为了打破这个瓶颈,Salesforce构建了一个AI驱动的“测试失败(TF)分诊代理”。本文将分享他们从这个过程中学到的四个最重要且出人意料的启示。

启示一:问题的规模本身,就是构建AI解决方案的最大动力

      Salesforce面临的挑战不仅仅是测试数量多,更在于其集成测试的极端复杂性。平台上有超过3万名工程师每天提交代码,任何一次变更都可能是导致集成失败的根源。这种复杂性直接影响了最终的用户体验。为了应对这一挑战,Salesforce设有一个专门的平台质量工程团队,他们是确保产品质量的**“最后一道防线”。他们的核心使命是进行跨产品的集成测试,确保所有独立开发的功能能够像一个统一的系统一样协同工作。否则,正如源文件中所描述,“客户有时会把这种情况形容为,这些产品感觉像是来自不同的公司。”*这种潜在的体验割裂,使得高效的集成测试成为必须。正是这种无法通过传统人力解决的巨大规模和业务关键的复杂性,才使得投资构建一个复杂的AI系统成为一个必然且合理的选择。

启示二:最高效的AI并非“万能”,而是“混合动力”

     与直觉相反,团队发现最强大的解决方案并非依赖单个、万能的大语言模型(LLM),而是一种更聪明、更务实的混合策略。Salesforce的实践证明,最高效的方案是一种巧妙结合了数据处理、语义搜索和LLM推理优势的“混合动力”架构。

image

这个多阶段流程如下:

1. 解析与嵌入:首先,系统要处理杂乱无章的错误日志和代码片段。专门的解析管道会清理和结构化这些数据。随后,系统会生成“上下文嵌入”,即将清理后的文本转化为能捕捉其深层含义的数学向量。

2. 语义搜索(使用FAISS):利用这些向量,系统通过FAISS(一个高效的相似性搜索库)在海量的历史失败案例数据库中进行语义搜索。它能以极快的速度找到与当前失败案例最相似、并且已经解决过的问题。这比传统的SQL数据库查询要快得多。

3. LLM推理:最后,LLM介入,对语义搜索返回的相关结果进行深度解读、提炼和总结。它不是凭空猜测,而是基于已有成功案例生成清晰、具体、可执行的修复建议。

    这种混合方法的最大优势在于精准和可靠。它有效地避免了LLM有时可能产生的**“模糊或不正确的建议”,从而帮助工程师“建立对AI工具的信任”**。AI的价值不仅在于自动化,更在于提供值得信赖的、能直接解决问题的方案。

Salesforce 构建了“测试失败分类智能代理”(Test Failure Triage Agent,简称 TF Triage Agent),这是一个 AI 驱动的系统,能在测试失败发生后的几秒钟内提供具体的修复建议。TF Triage Agent 的设计目标是将原本缓慢、人工的分类流程转变为一个快速、可靠的自动化工作流。

image

该架构的主要技术组件:

1. 使用 FAISS 进行语义搜索

Salesforce 使用 FAISS(Facebook AI Similarity Search)构建了一个历史测试失败及其解决方案的语义搜索索引。FAISS 是一个用于向量相似性搜索的库,能够实现极快的数据匹配。

每当发生新的测试失败时,系统会对该失败进行向量化,并在索引中搜索与之最相似的历史失败。这使得系统能够将新错误与曾经修复过的问题匹配,并推荐可能的解决方案。使用 FAISS 替代了传统的 SQL 数据库查询方式,后者在 Salesforce 的规模下速度太慢,无法满足实时查询需求。

2. 上下文嵌入与解析管道

错误日志和代码片段通常格式混乱、内容不一致。为了让这些数据适用于语义搜索,Salesforce 工程团队构建了数据解析管道,在数据处理前对其进行清洗和结构化。

清洗后的数据会被转换为“上下文嵌入”(contextual embeddings),这是能够捕捉代码片段和错误信息含义的数学表示。通过对错误堆栈和历史修复方案进行嵌入,系统能够有意义地比较它们,并为新失败识别最可能的解决方案。

3. 异步与解耦管道

团队将管道设计为异步运行,并与主要的 CI/CD 流程解耦。这意味着 AI 分类流程可以并行运行,不会拖慢代码集成或测试活动。

这一设计对于系统速度至关重要。开发人员无需等待 AI 系统完成处理,管道会独立处理失败并快速返回建议,从而保持整体延迟较低。

4. 大模型推理与语义搜索的混合架构

Salesforce 工程团队将语义搜索与大语言模型(LLM)推理相结合,以获得两者的优势。

语义搜索阶段负责找到最相关的历史案例,而 LLM 则对这些结果进行解释和精炼,生成清晰、具体的指导建议。这种方法确保开发人员收到的是精准的建议,而不是模糊或通用的答案。同时,它也有助于避免推测性输出,从而提升开发人员对 AI 工具的信任。

启示三:架构先行,异步设计是系统成功的关键

在构建AI系统时,人们往往过度关注模型本身,而忽略了支撑它的系统架构。Salesforce的经验表明,一个优秀的架构设计与AI模型本身同等重要。他们的关键决策是构建一个**“异步和解耦的流水线”**。这意味着AI分诊过程与核心的CI/CD(持续集成/持续交付)工作流是并行运行的,互不干扰。换言之,开发人员无需等待AI的分析结果,就可以继续提交代码或进行其他工作,AI在后台为他们准备解决方案。

这种设计的优势显而易见:它确保了AI系统能够在30秒以下的响应时间内返回建议,不会成为开发流程的新瓶颈。面对每天数百万次的测试量,异步架构能够平稳地扩展,确保系统在高峰期依然高效、稳定。正是这个架构决策,才使得AI分诊代理能够无缝地融入到Salesforce庞大而高速的工程体系中。

启示四:用AI来构建AI,开发周期从“数月”缩短到“数周”

这个项目中最令人惊讶的启示或许是:Salesforce的工程师使用了一款名为Cursor的AI编程工具来开发这个AI分诊智能体。这戏剧性地展示了AI在软件开发全流程中的潜力。

数据对比极其鲜明:在正常情况下,构建这样一个复杂的系统**“需要几个月的人工工作”。但在Cursor的帮助下,“团队仅用了四到六周就完成了项目”**。AI工具在以下几个方面提供了关键帮助:

image

智能发现和复用已有代码模式:当需要添加新功能时,Cursor能快速定位内部已有的成熟实现,避免了工程师“重新发明轮子”。

快速探索多种架构方案:在面临扩展性挑战时,能够快速探索由AI建议的多种架构方案,并迅速做出明智决策。

将精力聚焦于核心业务逻辑:通过自动处理繁琐的样板代码编写和旧代码库搜索,让工程师能将宝贵的时间投入到最复杂的“故障分诊逻辑”设计上。

这一点揭示了一种全新的软件开发模式:AI不仅是我们交付的产品,更是加速开发过程、提升工程效率的强大工具。用AI来构建AI,正在成为现实。


结论:超越自动化,构建信任

    通过构建和部署TF分诊智能体,Salesforce成功地将一个缓慢、手动的流程转变为一个快速、可靠的自动化工作流。最终,该项目将测试失败的解决时间加快了30%,显著提升了开发者的生产力。

Salesforce的成功经验提供了宝贵的启示:混合AI方法、异步架构以及利用AI工具加速开发是实现目标的关键技术策略。但同样重要的是他们的部署策略:通过增量上线和提供具体的数据来逐步建立工程师对工具的信任。这不仅关乎技术,更关乎如何构建工程师真正信赖并乐于使用的工具。

今天先到这儿,希望对AI,云原生,技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管理,信息安全,团队建设 有参考作用 , 您可能感兴趣的文章:
微服务架构设计
视频直播平台的系统架构演化
微服务与Docker介绍
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息系统架构设计演进
互联网电商搜索架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织与企业
企业创新文化与等级观念
组织目标与个人目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建设
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络系统规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变

如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:

_thumb_thumb_thumb_thumb_thumb_thumb

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册