AI驱动的软件优化的未来(以及它如何帮助你的团队)
Source: GitHub Blog
为持续效率提供论据
我们相信,一旦准备好大规模采用,持续效率将对开发者、企业和可持续发展产生显著的积极影响。
对开发者而言
数字可持续性和绿色软件本质上与“效率”相契合,而效率是软件工程的核心。许多开发者将受益于更高性能的软件、更好的代码标准化、变更质量保证等。
对企业而言
为可持续性而构建具有可衡量的商业价值,包括:
- 降低电力和资源消耗
- 提升效率
- 改善代码质量
- 提升用户体验
- 降低成本
尽管如此,可持续性很少出现在路线图、优先级列表或待办事项中。想象一个代码库能够持续自我改进的世界……

持续效率意味着对代码库进行轻松、增量、经过验证的改进,以提升效率。这是一种新兴实践,基于我们正在开发的一套工具和技术,并希望开发者社区能够进一步扩展。
它诞生于 持续 AI 与 绿色软件 的交叉点。
- Continuous AI – 为软件协作提供 AI 增强的自动化,探索在平台化开发和 CI/CD 工作流中使用大语言模型驱动的自动化。
- Green Software – 旨在更节能、降低环境影响的软件,从而实现更低成本、更高性能和更强韧性的应用。
(GitHub) Action(s) 中的持续效率
虽然持续效率是一个普遍适用的概念,但我们一直在特定的 GitHub 平台和基础设施 Agentic Workflows 上构建实现。它已公开且开源,当前处于“研究演示”阶段(实验原型、预发布,可能会更改且可能存在错误)。Agentic Workflows 是一个实验性框架,用于在 GitHub 仓库中探索主动、自动、事件驱动的代理行为,并安全地在 GitHub Actions 中运行。
我们在此领域的工作聚焦于两个方向:
实现规则和标准
借助现代大语言模型和代理工作流,我们可以直接用自然语言表达工程标准和代码质量指南,并在大规模上应用它们。
相较于传统 lint 和静态分析的关键优势:
- 声明式、意图驱动的规则编写 – 用自然语言描述意图;模型进行解释并实现。
- 语义通用性 – 单一高层规则可适用于多种代码模式、语言和架构。
- 智能修复 – 通过代理、平台集成的操作(例如打开 Pull Request、添加评论、建议编辑)来解决问题。
案例研究:代码库审查 – 绿色软件规则实现
我们与 resolve 项目合作,使用一套绿色软件规则扫描其代码库。代理提供了改进建议;其中一个已合并的 Pull Request 将正则表达式字面量从热点函数中抽离,带来了轻微的性能提升。该项目每月拥有超过 5 亿次 npm 下载,即使是 modest 的改进也能产生显著的规模效应。
案例研究:实现标准 – Web 可持续性指南 (WSG)
W3C WSG 为更可持续的 Web 产品提供指导。我们将 Web Development 部分转化为 20 条代理工作流,使 AI 能自动应用这些指南。
在多个 GitHub 与 Microsoft Web 项目上运行这些工作流,发现了诸如延迟加载、使用原生浏览器特性以及采用最新语言标准等改进机会。
异构性能提升
性能工程之所以困难,是因为软件本身是异构的——不同的语言、架构以及性能瓶颈(算法、缓存、网络等)各不相同。虽然专家工程师能够在这类复杂性中游刃有余,但业界仍需要可扩展的工具。
我们正在探索一种“通用代理”,它能够评估任意软件仓库并实现可验证的性能提升。这涉及一个半自动化工作流,代理将:
- 发现如何构建、基准测试并度量项目(“适配仓库”)。
- 研究相关性能工具并运行微基准测试。
- 在人工指导下提出针对性的代码更改。
早期结果各不相同,但一些试点表明,在规模化下受指导的自动化能够显著提升性能。
案例研究:Daily Perf Improver
Daily Perf Improver 是一个面向小型每日冲刺的三阶段工作流:
- 研究并规划改进。
- 推断构建和基准测试流程。
- 迭代提出可测量的优化。
在最近对 FSharp.Control.AsyncSeq 的一次试点中,该工作流产生了多个被接受的 Pull Request,包括一次重新发现的性能缺陷修复以及基于微基准的优化。
Daily Perf Improver Research Demonstrator
如何构建并运行代理工作流
GitHub 代理工作流让你可以使用自然语言(Markdown)编写自动化,而不是传统的 YAML 或脚本。你在 .md 文件中编写工作流,文件以对期望行为的描述开头,随后是平台能够解释并执行的结构化章节。