用途
本技能用于在代码仓库中编写、审查、安装和调试 GitHub Agentic Workflows(GH-AW)。它适用于需要以 Markdown 加 frontmatter 方式定义由智能体驱动的工作流,并通过 gh aw 命令编译、验证与执行的场景。若任务仅涉及标准的确定性 GitHub Actions YAML、不包含智能体式 Markdown 工作流,则本技能不适用。
主要能力
- 识别仓库状态:检查 .github/workflows/、.github/agents/、已有 .lock.yml 文件以及 gh aw 使用情况;可运行 node skills/github-agentic-workflows/scripts/find-gh-aw-targets.mjs .;在做出对编译器敏感的决定前运行 gh aw version。
- 任务模式区分:仓库初始化、新建工作流编写、工作流修订、从其它仓库安装工作流、安全审查、故障调试。
- 工作流编写与修订:以 .github/workflows/<workflow-name>.md 作为唯一来源;使用 assets/workflow.template.md 作为基础形态;选择最小可行触发面与仓库角色范围;除确有需要外保持 permissions: read-only;优先使用 safe-outputs: 处理评论、议题、标签、PR、智能体分配与编排;工具与工具集保持最小化;默认 engine: copilot;按最小权限配置 network:。
- 仓库前置条件与认证:使用 gh aw init 进行持久化设置;通过 gh aw secrets bootstrap 或 gh aw secrets set 配置引擎密钥;Copilot 引擎使用 COPILOT_GITHUB_TOKEN,且应使用细粒度 PAT;跨仓库读写、Projects 访问、远程 GitHub 工具模式或高级安全输出时使用 GitHub App 或自定义令牌。
- 验证、编译与执行:使用 gh aw fix --write 修复废弃字段,gh aw validate --strict 验证,gh aw compile 编译并提交 .md 源文件与生成的 .lock.yml,gh aw run <workflow> --dry-run 验证远程派发,gh aw trial ./.github/workflows/<workflow>.md 执行本地工作流源,gh aw run <workflow> 直接执行,gh aw status、gh aw logs、gh aw audit、gh aw health 用于事后审查。
- 运行与改进:简化或拆分工作流、抽取共享组件;对规模化创建议题、评论或 PR 的工作流采用分阶段 safe outputs;通过 gh aw update 或 gh aw upgrade 维护版本。
使用方式
按六步流程操作:识别仓库状态、选择工作模式、编写或修订工作流源、配置仓库前置条件与认证、验证编译与执行、专业地运维与改进。过程中按需读取 references/authoring.md、references/examples.md、references/security-and-operations.md、references/troubleshooting.md。编译时注意:frontmatter、导入等编译期配置变更后需重新编译;若仅在 GitHub.com 上直接编辑 Markdown 正文,则无需仅为正文变更而重新编译。本地编译、验证或试用产生的 .github/aw/ 文件(如 actions-lock.json 或日志)除有意保留外,应在提交前移除。
适用场景
包括定时报告、议题或 PR 分诊、编排、智能体交接等模式的实现;需要安全输出、网络策略、认证、锁定、威胁检测或运行可观测性的工作流;以及编译、安装、认证、安全输出或工具访问失败时的排错。对于动态输入集合上的周期性工作,建议采用可复用 GH-AW worker 加确定性 YAML 包装器进行发现与矩阵扇出;从矩阵调用可复用 worker 时,须设置显式并发组,避免并行分支被取消。
限制与注意事项
- 不要依赖 ${{ steps.<id>.outputs.* }} 占位符到达智能体可见的 Markdown 正文;若提示词依赖运行时值,应在确定性设置步骤中写入本地文件并让智能体读取该文件。
- gh aw trial 不会自动将逻辑仓库或源仓库的密钥复制到临时或可复用宿主仓库,需确认宿主仓库已具备所需引擎密钥。
- 若确定性包装器调用可复用 worker,调用方工作流的权限需至少与嵌套 worker 请求的 actions、contents、pull-requests 范围一样宽,否则可能在智能体执行前失败。
- 若编译器拒绝旧示例中看似有效的引擎字段或工具条目,应以已安装 schema 为准。资料提到,在 gh aw v0.58.3 中,Copilot 不支持 engine.max-turns,bash 必须为 true、false 或允许列表,edit: / web-fetch: 接受裸键而不接受布尔值。
- 若 URL 被脱敏为 (redacted) 或工具无法访问所需服务,应有意收紧并扩展 network.allowed,而不是关闭防火墙。
- 若 Copilot 推理在已配置令牌下失败,需确认 PAT 所有者确实拥有 Copilot 许可证与推理访问权限。
- 公共仓库工作流若缺失外部贡献者内容,应先确认是否由 GitHub 锁定模式阻断,再改动工作流逻辑。
- 关于收费、价格、平台支持范围等具体信息,资料暂未提供。
错误处理要点
gh extension install github/gh-aw 失败时使用 references/troubleshooting.md 中的独立安装路径;编译失败时先修复 frontmatter 语法、废弃字段、导入或权限不匹配;编译器行为与所读文档不一致时以已安装的 gh aw 版本为准;gh aw trial 将 .github/workflows/<name>.md 判为无效仓库规格时改用显式本地路径 ./.github/workflows/<name>.md;可复用 worker 单独成功但包装器启动失败时先检查调用方工作流权限继承;矩阵调用被大量取消时先检查被调用工作流的并发组;试用运行在激活步骤报 Validate COPILOT_GITHUB_TOKEN secret 时用 gh secret list -R <host-repo> 检查宿主仓库;gh aw trial --force-delete-host-repo-before 失败时确认宿主仓库管理员权限及令牌含 delete_repo 范围;safe outputs 无动作时确认分阶段模式是否为有意为之,且提示词明确指示无写操作时调用 noop;gh aw mcp inspect 在已编译的定时工作流上因模糊调度解析报错时,先视为检查路径限制,重新 gh aw compile 并优先基于已安装工作流或运行日志调试。