소스 정보
- 저장소
- opensourceways/agent-skills
- 최근 소스 활동
- 2026년 3월 16일 03:00
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 1
- 포크
- 11
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/opensourceways/agent-skills --skill github-action-diagnose명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | github-action-diagnose |
| description | 诊断昇腾(Ascend)NPU 集群上 GitHub Actions 执行失败的原因,定位基础设施故障与根因分析 |
| allowed-tools | Bash(gh run view:*), Bash(gh run list:*), Bash(gh api:*), Bash(kubectl get:*), Bash(kubectl describe:*), Bash(kubectl logs:*), Bash(kubectl config:*), Read, Grep |
诊断昇腾(Ascend)NPU 集群上 GitHub Actions 的执行失败。仅做故障定性和根因分析,不提供修复建议。 所有只读操作(gh CLI、kubectl 查询、日志读取)直接执行,无需用户确认。
本技能采用 5 步诊断流程:Step 0 输入识别 + 4 步诊断逻辑(生命周期分诊 → 物理节点溯源与环境故障定位 → 非环境问题判定 → 输出报告)。
分析用户提供的输入,自动识别类型:
/actions/runs/):提取 owner/repo 和 run_id,执行 gh run view <run_id> --repo <owner/repo> --log-failed 获取失败日志。gh run view <run_id> --log-failed。如果 --log-failed 信息不足,自动尝试 gh run view <run_id> --log 获取完整日志。
同时获取 run 的元信息:gh run view <run_id> --repo <owner/repo> --json jobs,name,status,conclusion,headBranch,event。
根据失败发生的步骤进行初步分类:
| 失败步骤 | 初步定性 | 说明 |
|---|---|---|
| Set up job | 环境问题 | Runner 无法拉起/调度失败 |
| Initialize containers | 环境问题 | 容器运行时异常/镜像拉取失败 |
| Checkout / Setup Environment | 环境问题 | 网络/挂载/权限故障 |
| Run steps(pytest/lint 等) | 需进一步分析 | Runner 已就绪,进入 Step 2-3 细分 |
如果失败在前三类步骤,直接标记为环境问题并进入 Step 2。 如果失败在 Run steps,需要同时执行 Step 2 和 Step 3 来区分环境故障与代码问题。
当判定为环境故障或怀疑硬件问题时,定位物理节点:
Set up job 日志或 gh api 获取 runner_name(即 Pod 名称)。runner_name 前缀或 Job Labels 识别节点池(如 a3-0)。kubectl get pods --all-namespaces --no-headers | grep <runner_name> 提取 namespace。kubectl get pod <runner_name> -n <namespace> -o custom-columns=NODE:.spec.nodeName --no-headersSuccessfully assigned <runner_name> to <node_name>。检查以下故障模式:
npu-smi info 报错、ERR99999、error code 507035、Device not found。Killed 信号、Bus error(SHM 不足)、No space left on device。Timeout,优先识别并检查 Master 节点。Master 节点识别方法:
RANK_TABLE_FILE 中 rank_id=0 对应的节点master_addr / MASTER_ADDR 环境变量指向的节点Unexpected Exit 或驱动报错如果 Step 2 未发现环境/硬件故障,检查以下非环境因素:
undefined variable "False"(应为小写 false)。AssertionError、Python Traceback 指向业务源码、测试用例失败。根据诊断结果选择输出模式:
严格按照以下格式输出:
# GitHub Action 故障诊断报告
## 1. 故障概览
- **任务名称**: [Job Name]
- **Run ID**: [Run ID]
- **故障定性**: 环境问题 / 硬件故障 / 集群调度异常
- **判定依据**: [驱动报错/调度异常/硬件死锁/OOM 等]
## 2. 详细诊断
- **失败步骤**: [Set up job / Initialize containers / Run steps 等]
- **报错原文**: [引用关键日志片段]
- **物理节点**: [Runner 名] -> [Pod] -> [物理机/节点池]
- **根因分析**: [深层原因说明]
采用自然语言简要反馈:
注意:两种情况均不输出修复建议或操作手册。