跳转至

gh-aw 集成方案

本文档用于为 openwebui-extensions 仓库设计一套安全、渐进式的 GitHub Agentic Workflows (gh-aw) 接入方案。


1. 目标

  • 在不替换现有稳定 CI 的前提下,引入具备仓库理解能力的 AI 维护层。
  • gh-aw 用于更适合自然语言推理的任务,而不是机械脚本执行。
  • 保留当前发布、部署、发布插件和统计工作流作为执行骨架。
  • 为仓库维护引入可观测性、自动诊断和长期记忆能力。

2. 为什么这个仓库适合 gh-aw

本仓库已经有一套很强的确定性自动化:

  • /.github/workflows/release.yml
  • /.github/workflows/plugin-version-check.yml
  • /.github/workflows/deploy.yml
  • /.github/workflows/publish_plugin.yml
  • /.github/workflows/community-stats.yml

这些工作流擅长精确执行,但并不擅长理解仓库规范本身。

gh-aw 更适合以下任务:

  • 联合阅读代码、文档和 PR 描述后再做判断
  • 带语义地应用仓库规范
  • 生成结构化的 review 评论
  • 自动分析失败的工作流运行
  • 在多次运行之间保存维护经验和模式

这与当前仓库的真实需求高度匹配:

  • 双语文档同步
  • 插件代码、README 与 docs 一致性检查
  • 跨多个文件的发布前完整性核查
  • Issue 与 PR 的规模化维护

3. 非目标

第一阶段不建议让 gh-aw

  • 替换 release.yml
  • 替换 publish_plugin.yml
  • 替换 MkDocs 部署
  • 默认自动合并或自动推送代码
  • 一开始就拥有过宽的写权限

第一阶段应把它定位为 review、诊断和 preflight 层。


4. 接入原则

4.1 确定性执行继续由 YAML 工作流承担

现有 YAML workflow 继续负责:

  • 创建 release
  • 发布插件
  • 部署文档
  • 提取和比较版本号
  • 生成社区统计

4.2 Agentic workflow 只负责判断和总结

gh-aw workflow 优先承担:

  • 基于规范的语义审查
  • 发布前完整性检查
  • 文档漂移巡检
  • CI 失败原因分析
  • Issue 分流与回复草稿生成

4.3 默认只读

优先使用最小权限,并通过 safe outputs 进行受控评论或低风险输出。

4.4 逐步扩容

一次只上线一个 agentic workflow,验证质量后再扩大范围。


5. 建议的仓库结构

5.1 新增文件和目录

.github/
├── workflows/
│   ├── release.yml
│   ├── plugin-version-check.yml
│   ├── deploy.yml
│   ├── publish_plugin.yml
│   ├── community-stats.yml
│   ├── aw-pr-maintainer-review.md
│   ├── aw-pr-maintainer-review.lock.yml
│   ├── aw-release-preflight.md
│   ├── aw-release-preflight.lock.yml
│   ├── aw-ci-audit.md
│   ├── aw-ci-audit.lock.yml
│   ├── aw-docs-drift-review.md
│   └── aw-docs-drift-review.lock.yml
├── gh-aw/
│   ├── prompts/
│   │   ├── pr-review-policy.md
│   │   ├── release-preflight-policy.md
│   │   ├── ci-audit-policy.md
│   │   └── docs-drift-policy.md
│   ├── schemas/
│   │   └── review-output-example.json
│   └── README.md
└── copilot-instructions.md

5.2 命名规范

所有 agentic workflow 源文件统一使用 aw- 前缀:

  • aw-pr-maintainer-review.md
  • aw-release-preflight.md
  • aw-ci-audit.md
  • aw-docs-drift-review.md

这样做的原因:

  • 可以和现有手写 YAML 工作流明确区分
  • 便于在仓库中快速搜索和定位
  • 方便调试和发布时识别来源

5.3 为什么不直接替换 .yml

当前 .yml 文件承担的是生产执行逻辑。第一阶段 gh-aw 的角色应该是补充,而不是接管。


6. 建议优先建设的 workflow 组合

6.1 第一阶段:PR 维护者语义审查

文件: /.github/workflows/aw-pr-maintainer-review.md

作用:

  • 审查涉及插件、文档或开发规范的 PR
  • 对缺失的仓库标准更新给出评论
  • 作为 plugin-version-check.yml 之上的语义层

建议检查项:

  • 插件代码修改后是否更新版本号
  • 是否同时更新 README.mdREADME_CN.md
  • 是否同步更新 docs 镜像页
  • 是否需要更新根 README 的日期 badge
  • 插件代码是否遵守 i18n 与 helper 规范
  • PR 标题或正文是否符合 Conventional Commits 精神

建议权限:

permissions:
  contents: read
  pull-requests: write
  issues: write

建议工具:

  • 只读型 github: 工具
  • 只开放少量只读 bash: 命令
  • 第一阶段不开放 edit:
  • agentic-workflows: 可在后续成熟后再启用

6.2 第一阶段:发布前预检

文件: /.github/workflows/aw-release-preflight.md

作用:

  • 在 release 前或手动触发时执行
  • release.yml 打包和发布之前,先检查发布完整性

建议检查项:

  • 代码版本号和文档版本号是否一致
  • 双语 README 是否完整更新
  • docs 插件镜像页是否存在并匹配当前发布目标
  • release notes 来源文件是否齐全
  • commit message 与 release 草案是否连贯

输出方式:

  • 在 PR 或 issue 中写总结评论
  • 可附带 checklist artifact
  • 不直接执行正式发布

6.3 第二阶段:CI 失败自动审计

文件: /.github/workflows/aw-ci-audit.md

作用:

  • 分析 release.ymlpublish_plugin.ymlcommunity-stats.yml 等关键 workflow 的失败运行
  • 输出根因判断和下一步修复建议

适合 gh-aw 的原因:

  • 可以通过 gh aw mcp-server 使用 logsaudit 等能力
  • 原生支持对 workflow 执行痕迹进行事后分析

6.4 第二阶段:文档漂移巡检

文件: /.github/workflows/aw-docs-drift-review.md

作用:

  • 定期检查插件代码、插件目录 README、本地 docs 镜像和根索引之间是否发生漂移

建议检查项:

  • 是否缺少 README_CN.md
  • README 章节顺序是否偏离规范
  • 插件更新后 docs 页面是否缺失
  • 代码和文档中的版本号是否不一致

6.5 第三阶段:Issue 维护助手

候选文件: /.github/workflows/aw-issue-maintainer.md

作用:

  • 汇总长期未回复的 issue
  • 生成英文或双语回复草稿
  • 按插件归类重复问题

这个阶段建议在前面的 review 和 audit 流程稳定后再上线。


7. 与现有 workflow 的职责映射

当前 Workflow 是否保留 gh-aw 搭档 职责划分
/.github/workflows/release.yml 保留 aw-release-preflight.md release.yml 负责执行,gh-aw 负责判断是否已准备好
/.github/workflows/plugin-version-check.yml 保留 aw-pr-maintainer-review.md 硬性门禁 + 语义审查
/.github/workflows/deploy.yml 保留 初期不加 确定性构建和部署
/.github/workflows/publish_plugin.yml 保留 aw-ci-audit.md 确定性发布 + 失败诊断
/.github/workflows/community-stats.yml 保留 aw-ci-audit.md 确定性统计 + 异常诊断

8. 工具模型建议

8.1 第一阶段建议启用的内建工具

建议从窄权限工具集开始:

tools:
  github:
    toolsets: [default]
  bash:
    - echo
    - pwd
    - ls
    - cat
    - head
    - tail
    - grep
    - wc
    - git status
    - git diff

第一阶段不要开放完全不受限的 shell。

8.2 MCP 使用策略

后续可通过 gh aw mcp-server 引入:

  • workflow status
  • workflow compile
  • workflow logs
  • workflow audit
  • mcp-inspect

这对 aw-ci-audit.md 特别有价值。

8.3 Safe output 策略

第一阶段仅开放低风险 safe outputs:

  • 给 PR 写评论
  • 给 issue 写评论
  • 在明确需要时创建低风险维护 issue

一开始不要让 agent 自动提交代码修改。


9. Repo Memory 策略

gh-aw 的 repo memory 很适合本仓库,但必须加限制。

9.1 第一批适合保存的内容

  • 重复出现的 CI 失败模式
  • 常见文档同步遗漏
  • 高频 review 提醒项
  • 按插件聚类的 issue 模式

9.2 推荐配置思路

  • 只允许 .md.json
  • 限制 patch size
  • 按主题拆成多个 memory stream

建议的逻辑布局:

memory/review-notes/*.md
memory/ci-patterns/*.md
memory/issue-clusters/*.json

9.3 重要提醒

不要把 secret、token 或未公开敏感信息写入 repo memory。


10. 分阶段落地顺序

Phase 0: 准备阶段

  • 维护者本地安装 gh-aw
  • 添加一个简短的 /.github/gh-aw/README.md
  • 写清楚 workflow 命名规范和 review 预期

Phase 1: 只读语义审查

  • 上线 aw-pr-maintainer-review.md
  • 上线 aw-release-preflight.md
  • 输出先限制为总结和评论

Phase 2: 诊断与记忆

  • 上线 aw-ci-audit.md
  • 在需要的地方启用 agentic-workflows:
  • 为重复失败模式加入受限 repo-memory

Phase 3: 维护自动化

  • 增加文档漂移巡检
  • 增加 issue 维护 workflow
  • 只有在信号质量足够稳定后,再考虑有限度的代码修改建议

11. 维护者本地使用建议

11.1 安装 CLI

curl -sL https://raw.githubusercontent.com/github/gh-aw/main/install-gh-aw.sh | bash

11.2 常用命令

gh aw version
gh aw compile
gh aw status
gh aw run aw-pr-maintainer-review
gh aw logs
gh aw audit <run-id>

11.3 VS Code MCP 集成

后续可选增强项是把 gh aw mcp-server 加入本地 MCP 配置,这样编辑器内的 agent 会直接具备 workflow 自省能力。


12. 最小可行落地建议

建议第一步只做这两个 workflow:

  1. aw-pr-maintainer-review.md
  2. aw-release-preflight.md

这样可以以最低风险获得最高价值的增强。


13. 成功标准

如果接入有效,应该看到这些结果:

  • PR 评论更具体,更贴合仓库规范
  • 发布前能更早发现文档或版本同步遗漏
  • CI 失败后更快得到可执行的总结
  • 维护者花在重复性规范检查上的时间下降
  • 现有确定性 workflow 的核心行为保持稳定

14. 总结

openwebui-extensions 来说,gh-aw 最合适的定位是智能维护层。

  • 现有 YAML workflow 继续负责执行。
  • agentic workflow 负责语义审查和诊断。
  • 第一阶段默认只读。
  • 等输出质量稳定后再逐步放权。

这条路径和仓库现状是匹配的:规范密度高、双语维护复杂、插件生命周期长,而且已经具备成熟的 AI 工程上下文。