技术速递|使用 GitHub Agentic Workflows 自动化仓库任务

技术速递|使用 GitHub Agentic Workflows 自动化仓库任务
作者:Don Syme & Peli de Halleux
排版:Alan Wang
探索现已进入技术预览阶段的 GitHub Agentic Workflows。通过在 GitHub Actions 中使用编码智能体构建自动化流程,处理问题分流、文档编写、代码质量检查等任务。
在这里插入图片描述


想象一下,某天早晨你打开仓库时感到格外安心,因为你看到:

  • Issues 已完成分流并打好标签
  • CI 失败已被调查,并附有建议修复方案
  • 文档已根据最近的代码变更完成更新
  • 有两个改进测试的全新 Pull Request 正等待你审核

所有操作都清晰可见、可检查,并严格运行在你定义的边界之内

这就是由 GitHub Agentic Workflows 驱动的未来:自动化、基于意图的仓库工作流,运行在 GitHub Actions 中,以纯 Markdown 编写,并通过编码智能体执行。它们专为在 GitHub 上工作的开发者设计,无论是自动化单个仓库的个人开发者,还是在企业或开源规模下协作的团队。

在 GitHub Next,我们启动 GitHub Agentic Workflows,是为了探索一个简单的问题:在 AI 编码智能体时代,具备强约束机制的仓库自动化应该是什么样子?一个自然的起点是 GitHub Actions——GitHub 上可扩展仓库自动化的核心。通过将自动化编码智能体引入 Actions,我们能够在数百万仓库中启用它们,同时将“何时使用、在哪里使用”的决策权交到你手中。

GitHub Agentic Workflows 现已进入技术预览阶段。在本文中,我们将解释它是什么以及它如何工作。我们邀请你亲自测试,探索在仓库级 AI 自动化中,哪些场景最具价值。

在这里插入图片描述

AI 仓库自动化:以简驭繁的革命

GitHub Agentic Workflows 背后的理念非常简单:你用纯 Markdown 描述想要的结果,将其作为自动化工作流添加到仓库中,然后它通过 GitHub Actions 中的编码智能体执行。

这将编码智能体的能力带入仓库自动化的核心。Agentic 工作流以标准 GitHub Actions 工作流形式运行,并增加了沙箱、权限、控制与审查等防护机制。执行时,它们可以根据配置使用不同的编码智能体引擎,例如 Copilot CLI、Claude Code 或 OpenAI Codex。

使用 GitHub Agentic Workflows,使全新类别的仓库自动化与软件工程成为可能,并且自然融入开发团队现有的 GitHub 工作方式。这些场景大多难以或无法仅通过传统 YAML 工作流实现:

这只是展示 GitHub Agentic Workflows 能力的一部分仓库自动化示例。我们称之为 Continuous AI:将 AI 集成进软件开发生命周期(SDLC),以类似持续集成与持续部署(CI/CD)的方式增强自动化与协作。

GitHub Agentic Workflows 与 Continuous AI 的目标不是取代 CI/CD,而是增强它。它们不会替代构建、测试或发布流水线,其使用场景与确定性的 CI/CD 工作流大多不重叠。Agentic 工作流运行在 GitHub Actions 之上,因为那里提供了权限控制、日志记录、审计、沙箱执行以及丰富仓库上下文所需的基础设施。

在 GitHub Next 的实际使用中,我们几乎每天都在发现新的应用场景。GitHub 各团队也在使用 Agentic 工作流,几分钟内为自己创建定制工具,用智能替代琐事,或为人类在合适的时间、合适的位置提供合适的信息铺平道路。一个让团队与企业保持仓库健康、可导航与高质量的全新世界正在展开。

关于防护机制与控制

在安全与控制方面的设计是不可妥协的。GitHub Agentic Workflows 实现了纵深防御的安全架构,以防止意外行为与提示注入攻击。

默认情况下,工作流以只读权限运行。写操作需要通过 safe outputs 显式批准,这些输出映射到预先批准且可审查的 GitHub 操作,例如创建 Pull Request 或为 issue 添加评论。沙箱执行、工具白名单与网络隔离等机制,确保编码智能体在受控边界内运行。

这些防护机制,使持续运行智能体成为现实,而不仅仅是一次性实验。有关更多详细信息,请参阅我们的安全架构

另一种仓库自动化方式是直接在标准 GitHub Actions YAML 工作流中运行 Copilot 或 Claude 等编码智能体 CLI。这种方式往往授予智能体超出特定任务所需的权限。相比之下,GitHub Agentic Workflows 默认以只读方式运行,并通过 safe outputs 执行 GitHub 操作,从而提供更严格的约束、更清晰的审查点和更强的整体控制。

一个简单示例:每日仓库报告

让我们看看一个创建每日仓库状态报告的 Agentic 工作流示例。

在实际使用中,你通常会借助 AI 创建工作流。最简单的方式是使用一个交互式编码智能体。例如,使用你喜欢的编码智能体,你可以输入以下提示:

Generate a workflow that creates a daily repo status report for a maintainer. Use the instructions at https://github.com/github/gh-aw/blob/main/create.md
编码智能体会与你互动,确认具体需求与意图,编写 Markdown 文件并验证其有效性。你可以在将其添加到仓库前进行审查、优化与验证。

这将会在 .github/workflows中创建两个文件:

  • daily-repo-status.md(Agentic 工作流)
  • daily-repo-status.lock.yml(对应的锁文件,由 GitHub Actions 执行)

daily-repo-status.md 内容如下:

--- on: schedule: daily permissions: contents: read issues: read pull-requests: read safe-outputs: create-issue: title-prefix:"[repo status] " labels:[report] tools: github:---# Daily Repo Status Report  Create a daily status report for maintainers. Include - Recent repository activity (issues, PRs, discussions, releases, code changes)- Progress tracking, goal reminders and highlights - Project status and recommendations - Actionable next steps for maintainers Keep it concise and link to the relevant issues/PRs.

该文件包含两部分:

  • 标记之间的 YAML 前置配置
  • 使用自然语言描述任务的 Markdown 指令

Markdown 描述的是意图,而触发方式、权限、工具和允许的输出则在前置配置中明确声明。

你也可以手动添加工作流:

  • 创建工作流:添加 daily-repo-status.md 文件,并包含前置配置和指令内容。
  • 创建锁文件
    • gh extension install github/gh-awgh
    • aw compile
  • 提交并推送文件:提交并推送文件到你的仓库
  • 添加所需的 secrets:例如编码智能体的 token 或 API key

添加后,工作流会自动运行,或可通过 GitHub Actions 手动触发。运行后,将创建类似以下的状态报告 issue:

在这里插入图片描述

你可以用 GitHub Agentic Workflows 构建什么

如果需要更多灵感,可以查看 Peli 的 Agent Factory,这是一个涵盖多种工作流的导览示例,包含可复用、可改编与可标准化的实践模式。

一个有用的思维模型是:如果仓库中的重复性工作可以用语言描述,那么它可能适合用 Agentic 工作流实现。

如果你正在寻找设计模式,可以查看:ChatOpsDailyOpsDataOpsIssueOpsProjectOpsMultiRepoOpsOrchestration

智能体辅助的仓库自动化应用场景,通常取决于具体的仓库情况和开发优先级。你的团队在软件开发方面的方法,可能与其他团队不同。发挥想象力,思考如何利用智能体式自动化来增强你的团队能力,更好地服务于你的仓库和目标,是非常值得的。

团队实践指南

Agentic 工作流带来了一种思维方式的转变。当你把重点放在目标和期望输出上,而不是追求完美提示词时,它们效果最佳。你需要清晰定义成功的样子,并允许工作流自行探索实现路径。一些边界是 Agentic 工作流默认内置的,另一些则由你显式定义。这意味着智能体可以进行探索和推理,但其结论始终会保持在安全、明确设定的范围之内。

你会发现,工作流可以从非常笼统(“改进软件”)到非常具体(“检查该教育软件的所有技术文档和错误信息是否以适合 10 岁及以上受众的风格撰写”)。具体程度由你的团队自行决定。

GitHub Agentic Workflows 在运行时使用编码智能体,因此会产生计费成本。在默认设置下使用 Copilot 时,每次工作流运行通常会产生两次高级请求:一次用于执行智能体任务,一次用于通过 safe outputs 进行防护检查。所使用的模型可以进行配置,以帮助管理成本。目前,Copilot 的自动化使用与某个用户账户关联。对于其他编码智能体,请参阅我们的文档了解详细信息。以下是一些帮助团队快速获得价值的建议:

  • 在启用创建 Pull Request 之前,先从低风险输出开始,例如评论、草稿或报告。
  • 在编码场景中,优先从目标导向的改进入手,例如常规重构、提升测试覆盖率或代码简化,而不是直接进行功能开发。
  • 在生成报告时,明确说明“好”的标准,包括格式、语气、所需链接以及何时结束。
  • Agentic 工作流会创建一个仅由智能体运行的子循环,使其在既定条件下具备一定自主性。但人必须始终处于仓库整体推进的大循环中,通过报告、issue 和 Pull Request 参与进展。在 GitHub Agentic Workflows 中,Pull Request 永远不会自动合并,必须由人工审查与批准。
  • 将工作流的 Markdown 文件视为代码对待:审查变更、保持精简,并有意识地演进。

Continuous AI 在与 CI/CD 配合使用时效果最佳。不要用 Agentic 工作流替代 GitHub Actions 的 YAML CI/CD 工作流。它的意义在于,将持续自动化扩展到那些更具主观性、重复性,而传统 CI/CD 难以表达的任务上。

与我们一起构建自动化的未来

GitHub Agentic Workflows 现已进入技术预览阶段,由 GitHub、Microsoft Research 与 Azure Core Upstream 合作推出。我们邀请你体验,并共同塑造仓库自动化的未来。

欢迎参与!在 Community 讨论区分享想法,或加入 GitHub Next Discord 的 #agentic-workflows 频道。我们期待看到你用 GitHub Agentic Workflows 构建的成果。祝自动化愉快!

立即在你的仓库中试用 GitHub Agentic Workflows!安装 gh-aw,添加一个入门工作流或使用 AI 创建一个,然后运行它。分享你的成果,以及你期待的下一步功能

Read more

Node.js 下载安装与环境配置全流程(保姆级详解)| 图文详解,快速上手

Node.js 下载安装与环境配置全流程(保姆级详解)| 图文详解,快速上手

前言 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。它采用事件驱动、非阻塞式 I/O 模型,使得其在处理高并发任务时具有极高的效率。得益于这样的设计,Node.js 在 Web 开发、实时应用、微服务架构等场景中被广泛使用。 除了高性能,Node.js 还配备了功能强大的包管理器 npm(Node Package Manager)。npm 提供了丰富的开源库和工具,开发者可以轻松地安装、管理和共享代码,使开发过程更加高效。 一、下载安装 Node.js 1.下载安装包: * 访问 Node.js 官方下载页面。 通常页面会显示两个版本: 1. 长期维护版本(推荐)

By Ne0inhk
深度解析个人AI助手OpenClaw:从消息处理到定时任务的全流程架构

深度解析个人AI助手OpenClaw:从消息处理到定时任务的全流程架构

在人工智能快速普及的当下,个人AI助手已经逐渐渗透到我们的工作和生活中,它们能够跨平台接收消息、智能处理需求、执行指定任务,成为提升效率的重要工具。OpenClaw作为一款功能强大的个人AI助手,凭借其灵活的渠道适配、完善的路由机制、强大的Agent能力以及可靠的定时任务系统,在众多AI助手中脱颖而出。很多开发者在使用OpenClaw时,都会好奇其背后的运行逻辑:当我们在WhatsApp、Discord等平台发送消息时,OpenClaw是如何捕捉到这些消息的,又是如何一步步处理并给出回复的;Web UI端的消息传递和外部渠道有何不同;Pi Agent如何调用大语言模型(LLM)和执行本地命令;定时任务从创建到结束的完整生命周期又包含哪些环节。今天,我们就结合OpenClaw的源代码,对这些核心功能模块进行全面且深入的解析,带你走进这款个人AI助手的底层架构,读懂每一个流程背后的技术实现。 OpenClaw的整体架构遵循“模块化设计、统一化管理”的理念,无论是消息处理、Agent执行还是定时任务,都有清晰的模块划分和明确的流程逻辑,这不仅保证了系统的稳定性和可扩展性,也让开发者能够快速

By Ne0inhk
什么是约定优于配置?自动配置的原理是什么?一文搞懂SpringBoot底层启动流程

什么是约定优于配置?自动配置的原理是什么?一文搞懂SpringBoot底层启动流程

👨‍💻程序员三明治:个人主页 🔥 个人专栏: 《设计模式精解》《重学数据结构》 🤞先做到 再看见! 目录 * 什么是自动配置类? * 自动配置原理 * 有没有自动配置的区别在哪? * Spring整合Mybatis * 在pom.xml文件中添加jar包的依赖 * 配置MyBatis文件 * 新建一个实体类的包和User实体类 * 编写实体类 * 新建Mapper接口包和UserMapper接口 * resouces下新建jdbc资源文件 jdbc-config.properties * resources下新建mybatis配置文件 mybatis.xml * resources下新建logj4j的日志配置文件log4j.properties * 新建User的映射mapper文件 * 在UserMapper接口中编写映射文件对应的方法 * 配置Spring文件 * resources下新

By Ne0inhk
Flutter 组件 graphql 的适配 鸿蒙Harmony 实战 - 驾驭标准化分布式图形协议、实现鸿蒙端实时订阅与高性能交互网关方案

Flutter 组件 graphql 的适配 鸿蒙Harmony 实战 - 驾驭标准化分布式图形协议、实现鸿蒙端实时订阅与高性能交互网关方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 graphql 的适配 鸿蒙Harmony 实战 - 驾驭标准化分布式图形协议、实现鸿蒙端实时订阅与高性能交互网关方案 前言 在鸿蒙(OpenHarmony)生态的万物互联、极繁交互中台、以及对数据获取灵活性有极致要求的现代应用研发中,“高效的数据检索协议”是应用响应速度的灵魂。面对复杂的社交网络关系查询、实时的行情推送、或是海量状态信息的聚合。如果仅仅依靠传统的 RESTful 接口,那么不仅会导致因为 Over-fetching(获取多余数据)导致的带宽浪费,更会因为频繁的 API 版本演进引入严重的跨端兼容性碎片化问题。 我们需要一种“按需检索、逻辑解耦”的交互艺术。 graphql 是一套专为 Flutter 设计的标准 GraphQL 客户端套件。它通过构建规范的规范化缓存(Normalized Cache)与极其灵活的连接链路(Links)

By Ne0inhk