GitHub智能体工作流为CI/CD引入"持续AI"能力
微资讯
围绕智能体的热议大多集中在编写代码上,但如果你能让智能体监视GitHub仓库中的事件,并在例如创建新问题时自动运行设定的工作流,会如何?如果你只需要向智能体描述工作流,然后让它为你生成详细步骤,又会如何?这正是GitHub Next团队(同样孵化了GitHub Copilot的团队)提出的问题。
在接受The New Stack采访时,GitHub Next首席研究员Eddie Aftandilian(曾参与Copilot开发)指出,开发者可能希望在持续集成过程中执行许多任务,但这些任务无法通过纯粹的确定性算法实现。这并非要取代现有的CI/CD工具,而是通过团队所称的"持续AI"能力来增强它们。
"有一整类从未完成的任务,你总是希望有智能体监视仓库中的事件,也许按计划运行,或在创建问题时运行,然后基本上遵循一个步骤列表来审查或处理它,"Aftandilian解释道。
这个名为GitHub智能体工作流的新工具现已在GitHub上提供,它使用GitHub Actions提供沙盒环境和基础设施,在数百万个仓库中运行智能体。
最基本的用例是在每天结束时运行日常状态报告,总结最近的问题、拉取请求、讨论等。但它也可能意味着运行日常智能体,识别团队可能偏离最佳实践的地方并建议修复(然后可以手动或自动标记Copilot来修复它们)。
团队提供了更多示例,但正如所有这些项目一样,开发者肯定会找到更多创造性的使用方式:
持续分类:自动总结、标记和路由新问题。
持续文档:保持README和文档与代码变更同步。
持续代码简化:重复识别代码改进并为其开启拉取请求。
持续测试改进:评估测试覆盖率并添加高价值测试。
持续质量维护:主动调查CI失败并提出针对性修复。
持续报告:创建关于仓库健康、活动和趋势的定期报告。
虽然仍在预览阶段,智能体工作流已经支持三大编程智能体:Claude Code、OpenAI Codex和GitHub自己的Copilot。
设置这些工作流的一个有趣的第一步是微软研究员Peli de Halleux在同一采访中称为"智能体创作"的功能。这意味着你可以简单地用几句话描述智能体应该做什么,工具会生成完整的分步工作流并建议使用的工具和权限设置(默认设置为只读)。
"入门门槛基本上降到几乎为零,"de Halleux解释道。"智能体非常擅长提示,我们可以将调试和优化作为创作体验的一部分,因为智能体还可以读取它们的日志并推理过去所做的事情。"
该工具创建两个文件:描述智能体工作流的Markdown文件和用于GitHub Actions的YAML文件。Markdown文件包括指定使用哪些工具和MCP以及智能体具有哪些权限的前言,但大部分是工作流的英语描述。
权限是只读的,智能体永远不允许写入——它可以评论问题并参与讨论,但总是有验证阶段。写操作总是被推迟,在智能体完成任务后作为单独的作业运行。
"你希望这些智能体做的事情得到护栏保护、验证、再验证,这样你就能获得很多保证,并了解这些东西的稳定性。这对我们来说实际上非常非常重要,关乎我们使用这个的信心,"de Halleux解释道。
GitHub Actions已经包含自己的安全架构,但团队随后使用所谓的SafeOutputs子系统,一组受信任的组件,其输出通过确定性过滤器运行,以便可以在该级别执行策略。
此外,智能体工作流防火墙可以限制智能体访问的内容。
尽管如此,团队建议开发者从低风险输出开始,如评论、草稿和报告,然后再让智能体创建拉取请求。开始时,开发者应该让智能体专注于改进现有代码,而不是构建新功能。
随着时间推移,随着智能体的改进和开发者对如何使用这些智能体循环有更好的直觉,我们可能会看到更雄心勃勃的用例。
不过,团队非常明确的一点是:这不是现有CI/CD工作流的替代品。"这种方法将持续自动化扩展到传统CI/CD难以表达的更主观、重复的任务,"文档强调。但它可以减轻开发者的日常繁琐工作,理想情况下产生更好的代码。
Q&A
Q1:GitHub智能体工作流是什么?它有什么作用?
A:GitHub智能体工作流是GitHub推出的新工具,能够监视GitHub仓库中的事件,并在特定条件触发时自动运行工作流。它使用GitHub Actions提供沙盒环境,通过"持续AI"能力增强现有CI/CD工具,处理传统自动化难以完成的主观性、重复性任务。
Q2:如何设置智能体工作流?需要编程吗?
A:设置非常简单,你只需要用几句话描述智能体应该做什么,工具会自动生成完整的分步工作流。这被称为"智能体创作"功能,入门门槛几乎为零,无需复杂编程。工具会创建Markdown和YAML两个文件来定义工作流。
Q3:智能体工作流安全吗?会不会误操作代码?
A:安全性是设计重点,权限默认设置为只读,智能体不能直接写入代码。所有写操作都会被推迟并作为单独作业运行,且有验证阶段。GitHub还使用SafeOutputs子系统和智能体工作流防火墙来限制访问,建议从低风险输出如评论、草稿开始使用。