已合并
docs: add Ascend for PyTorch Agent Skills README #170
ID_G3创建于 7月21日
docs: add Ascend for PyTorch Agent Skills README #170
已合并
共 1 个文件变更+175-0
| @@ -0,0 +1,175 @@ | |||
| 1 | +<h1 align="center">Ascend for PyTorch Agent Skills</h1> | ||
| 2 | + | ||
| 3 | +<div align="center"> | ||
| 4 | +<p><b><span style="font-size:24px;">开发与维护的一站式 Agent Skills</span></b></p> | ||
| 5 | +</div> | ||
| 6 | + | ||
| 7 | +## ℹ️ 简介 | ||
| 8 | + | ||
| 9 | +Ascend for PyTorch Agent Skills 是专为 Ascend for PyTorch 社区及其核心组件 TorchNPU 的开发者打造的一站式可复用技能集合。它将 TorchNPU 方案设计、代码开发、问题定位、知识问答等流程沉淀为结构化工作流,帮助 Agent 在合适的场景下稳定执行并输出可复核的结果。 | ||
| 10 | + | ||
| 11 | +本技能集面向以下社区角色: | ||
| 12 | + | ||
| 13 | +- **开发者**:借助知识问答、问题定位和结构化开发流程,快速完成日常 TorchNPU 开发与调试任务。 | ||
| 14 | +- **贡献者**:按照现有流程、检查清单和交付模板完成算子接入、测试、文档与问题修复,降低参与社区贡献的门槛。 | ||
| 15 | +- **维护者**:依托方案分析、PR 审核和工程质量检查能力推进社区维护,减少遗漏关键证据、验证步骤或交付物。 | ||
| 16 | + | ||
| 17 | +每个顶层技能包都是一个独立目录,至少包含一个 `SKILL.md`,复杂技能包还会包含子技能、脚本、模板、参考资料和示例。下方清单按 **12 个可直接选择的顶层技能包** 组织;套件内部的子技能由总入口按任务自动路由,新用户通常不需要逐个调用。 | ||
| 18 | + | ||
| 19 | +## ✨ 能力介绍 | ||
| 20 | + | ||
| 21 | +| 场景 | 能力 | | ||
| 22 | +|---|---| | ||
| 23 | +| 算子开发 | 覆盖 CANN/aclnn 算子接入或修改、UT 与 FakeTensor 测试、API 文档和兼容性基线。 | | ||
| 24 | +| 问题定位与修复 | 覆盖 API 一致性工单、PyTorch 上游 UT 失败、分布式/HCCL、图模式、内存和缺失算子等场景。 | | ||
| 25 | +| 工程质量 | 覆盖当前改动文件的 CI 静态检查与受控修复,以及基于 whl 构建和测试的回归提交二分。 | | ||
| 26 | +| 源码与变更分析 | 覆盖 PyTorch/TorchNPU 源码设计分析、上游 PR 影响评估和 torch-npu PR 审核。 | | ||
| 27 | + | ||
| 28 | +## 🧩 技能总览 | ||
| 29 | + | ||
| 30 | +| Skill | 适用场景 | 典型输入 | 主要产出 / 依赖 | | ||
| 31 | +|---|---|---|---| | ||
| 32 | +| [`api-consistency`](./api-consistency/SKILL.md) | 处理 A2/A3/A5 上的 TorchNPU API 一致性问题,自动区分 ATK 与 `torchrun`、`python`、`pytest`、`bash` 等非 ATK 复现路径,也支持批量工单。 | DTS/问题描述、完整复现命令、ATK xlsx 或运行日志、可选远端环境信息。 | 复现记录、证据分析和结单文档;按场景需要 ATK、Python xlsx 解析、SSH 和可用的 NPU 环境。 | | ||
| 33 | +| [`ci-static-errors-fix`](./ci-static-errors-fix/SKILL.md) | 检查并安全修复当前 Git 工作区改动文件中的 `lintrunner`、FLAKE8、空白、格式和 CODESPELL 问题。 | 含未提交改动的 PyTorch 风格仓库。 | 低风险修复、残留问题和验证摘要;依赖 `lintrunner`、`uv`,FLAKE8 修复会临时使用 `autopep8`。 | | ||
| 34 | +| [`com-auto-binary-pr`](./com-auto-binary-pr/SKILL.md) | 已知 good/bad 范围时,通过反复构建 whl 和运行测试定位引入问题的提交。 | 二分范围、测试命令、容器/构建配置,或 `binary_config.json`。 | `binary_result.json`、构建与测试记录、可疑提交;依赖可用的 TorchNPU 构建和测试环境。 | | ||
| 35 | +| [`core-requirement-analyze`](./core-requirement-analyze/SKILL.md) | 基于 PyTorch 或 TorchNPU 源码分析模块、机制、算子、commit 或 diff,形成可用于修改和扩展代码的中文材料。 | 目标模块、源码路径、commit/diff,可选已有分析材料和输出要求。 | 带源码路径、调用链、扩展点和影响范围的需求/设计与实现分析文档。 | | ||
| 36 | +| [`npu-graph-skill`](./npu-graph-skill/SKILL.md) | 处理 NPUGraph/ACLGraph 的知识问答、代码导航、报错诊断、日志分析、性能分析和 MCP 配置。 | 图模式问题、错误堆栈、`TORCH_NPU_LOGS`、图 dump、性能现象或概念问题。 | 自动路由到 5 个子技能并输出分析/诊断报告;部分诊断与性能任务需要 TorchNPU、OpPlugin、CANN/NPU 环境。 | | ||
| 37 | +| [`op-adaptation`](./op-adaptation/SKILL.md) | 将新 CANN/aclnn 算子接入 TorchNPU,或修改已有算子的接口、变体、反向和实现。 | Create:算子 `.md` + `_def.cpp`;Modify:算子名 + 修改说明。 | YAML、C++、Meta、Derivatives、测试、文档、兼容性基线、CHECKLIST 和集成摘要;依赖 OpPlugin/TorchNPU 构建环境,并组合使用 `op-test` 与 `op-apidoc`。 | | ||
| 38 | +| [`op-apidoc`](./op-apidoc/SKILL.md) | 为 TorchNPU 自定义算子生成或补齐中文 API 参考文档。 | 算子名、YAML `func:`、参数与约束,或 `op-adaptation` 生成的 CHECKLIST。 | API Markdown、导航索引和 Python docstring 更新。 | | ||
| 39 | +| [`op-test`](./op-test/SKILL.md) | 为 TorchNPU 自定义算子或原生算子适配生成 UT 和 FakeTensor 测试,并在条件允许时执行。 | 算子实现、签名、参数约束,或 `op-adaptation` 的 CHECKLIST。 | 测试文件、参数覆盖矩阵和执行报告;无 NPU 时仍可生成测试,但会跳过上板执行。 | | ||
| 40 | +| [`pytorch-pr-analysis`](./pytorch-pr-analysis/SKILL.md) | 分析指定时间段内合入 PyTorch `main` 的 PR,评估其对 torch-npu 的兼容性影响。 | 起止日期。 | PR 明细、图模式/分布式深度分析和 Excel 报告;依赖 `GITHUB_TOKEN`、`requests`、`openpyxl`,飞书与外部深度分析能力按任务选配。 | | ||
| 41 | +| [`torch-npu-issue-pipeline-core`](./torch-npu-issue-pipeline-core/SKILL.md) | 端到端处理 Core 组 PyTorch 上游 UT 在 NPU 上的失败,覆盖准备、复现、诊断、修复、验证和交付。 | 完整参数化用例名、`issue_id`;首次使用还需仓库、分支范围和 GitCode 配置。 | 修复代码、复现/根因/验证报告、合入描述和 PR/MR;依赖 NPU、CANN、PyTorch/TorchNPU/OpPlugin 仓库及交付权限。 | | ||
| 42 | +| [`torch-npu-issue-pipeline-distributed`](./torch-npu-issue-pipeline-distributed/SKILL.md) | 处理分布式、HCCL 或图模式相关的上游 PyTorch UT 失败,按复现 → 诊断 → 验证推进。 | 完整参数化用例名、错误日志和环境说明。 | 复现报告、根因分析、修复验证报告和 PR 描述材料;图模式问题会检查 Inductor/Triton 调试产物。 | | ||
| 43 | +| [`torch-npu-pr-review`](./torch-npu-pr-review/SKILL.md) | 审核 Ascend/pytorch 的单个或多个 GitCode PR,支持 issue 入口、关联 PR 发现和跨分支对比。 | GitCode issue/PR 链接,可选目标分支和访问 token。 | 原始采集数据、`summary.json`、`data_report.md` 和审核报告;采集脚本仅依赖 Python 标准库,token 为可选增强项。 | | ||
| 44 | + | ||
| 45 | +### 常见选择 | ||
| 46 | + | ||
| 47 | +- **接入或修改一个算子**:从 `op-adaptation` 开始,它会在流程中组合 `op-test` 和 `op-apidoc`。 | ||
| 48 | +- **只补测试或文档**:分别直接使用 `op-test` 或 `op-apidoc`。 | ||
| 49 | +- **处理 API 一致性问题**:使用 `api-consistency`;没有 ATK 时也可以提供可执行脚本和完整日志。 | ||
| 50 | +- **修复 PyTorch 上游 UT**:普通 Core 交付流程使用 `torch-npu-issue-pipeline-core`;分布式、HCCL 或专项图模式问题使用 `torch-npu-issue-pipeline-distributed`。 | ||
| 51 | +- **咨询或排查 NPUGraph/ACLGraph**:使用 `npu-graph-skill`,由总入口选择知识、诊断、日志或性能子技能。 | ||
| 52 | +- **分析上游变更**:批量评估某个时间段的 PyTorch PR 使用 `pytorch-pr-analysis`;审核具体 torch-npu PR 使用 `torch-npu-pr-review`。 | ||
| 53 | + | ||
| 54 | +## 🚀 快速入门 | ||
| 55 | + | ||
| 56 | +### 1. 选择技能 | ||
| 57 | + | ||
| 58 | +先根据上方表格选择最接近任务的顶层技能。描述比较明确时,可以直接用自然语言交代任务,Agent 会根据 `SKILL.md` 中的触发条件匹配;存在多个相近技能时,建议明确写出技能名。 | ||
| 59 | + | ||
| 60 | +### 2. 确保运行环境可用 | ||
| 61 | + | ||
| 62 | +请根据所选 Skill 的 README 准备运行环境和依赖。 | ||
| 63 | + | ||
| 64 | +### 3. 提供最小必要上下文 | ||
| 65 | + | ||
| 66 | +为了让 Agent 能够直接开始工作,建议至少提供: | ||
| 67 | + | ||
| 68 | +- **任务目标**:希望分析、修改、测试还是生成文档。 | ||
| 69 | +- **工作目录或仓库**:例如 TorchNPU、OpPlugin 或 PyTorch 源码路径。 | ||
| 70 | +- **问题输入**:算子资料、完整用例名、复现命令、日志、PR 链接或时间范围。 | ||
| 71 | +- **环境信息**:目标分支、Python/PyTorch/TorchNPU/CANN 版本,以及 NPU 是否可用。 | ||
| 72 | +- **交付要求**:仅分析,还是需要修改代码、运行验证或准备 PR 材料。 | ||
| 73 | + | ||
| 74 | +### 4. 用任务语言触发 | ||
| 75 | + | ||
| 76 | +```text | ||
| 77 | +请使用 op-adaptation,把 ./aclnn_input/DynamicQuant 下的 | ||
| 78 | +aclnnDynamicQuant.md 和 dynamic_quant_def.cpp 接入当前 OpPlugin 仓库, | ||
| 79 | +完成签名校验、测试、API 文档和集成摘要。 | ||
| 80 | +``` | ||
| 81 | + | ||
| 82 | +```text | ||
| 83 | +请使用 torch-npu-issue-pipeline-distributed 处理这个 HCCL 社区用例失败: | ||
| 84 | +case_name=<完整参数化用例名> | ||
| 85 | +错误日志=<粘贴完整日志> | ||
| 86 | +``` | ||
| 87 | + | ||
| 88 | +```text | ||
| 89 | +请使用 torch-npu-pr-review 审核以下 PR,并比较它们在不同目标分支的差异: | ||
| 90 | +<PR 链接 1> <目标分支> | ||
| 91 | +<PR 链接 2> <目标分支> | ||
| 92 | +``` | ||
| 93 | + | ||
| 94 | +## 📦 安装指南 | ||
| 95 | + | ||
| 96 | +### 方式一:使用 Skills 管理工具 | ||
| 97 | + | ||
| 98 | +本仓托管在 GitCode,请使用完整仓库 URL: | ||
| 99 | + | ||
| 100 | +```bash | ||
| 101 | +# 查看仓库中可安装的 skills | ||
| 102 | +npx skills add https://gitcode.com/Ascend/agent-skills --list | ||
| 103 | + | ||
| 104 | +# 安装一个技能包 | ||
| 105 | +npx skills add https://gitcode.com/Ascend/agent-skills --skill npu-graph-skill | ||
| 106 | + | ||
| 107 | +# 算子接入建议同时安装三个协作技能 | ||
| 108 | +npx skills add https://gitcode.com/Ascend/agent-skills \ | ||
| 109 | + --skill op-adaptation \ | ||
| 110 | + --skill op-test \ | ||
| 111 | + --skill op-apidoc | ||
| 112 | +``` | ||
| 113 | + | ||
| 114 | +如需指定 Agent,可按管理工具支持的名称增加 `-a <agent>`;在 CI/CD 中可结合 `-g -y` 使用非交互安装。 | ||
| 115 | + | ||
| 116 | +### 方式二:克隆后从本地安装 | ||
| 117 | + | ||
| 118 | +```bash | ||
| 119 | +git clone https://gitcode.com/Ascend/agent-skills.git | ||
| 120 | +cd agent-skills | ||
| 121 | + | ||
| 122 | +npx skills add ./official/PyTorch --list | ||
| 123 | +npx skills add ./official/PyTorch --skill ci-static-errors-fix | ||
| 124 | +``` | ||
| 125 | + | ||
| 126 | +### 方式三:手动复制 | ||
| 127 | + | ||
| 128 | +Skills 本质上是包含 `SKILL.md` 及配套资源的目录。也可以把所需的**整个顶层技能目录**复制到目标 Agent 的 skills 搜索路径,不要只复制 `SKILL.md`,否则脚本、模板、参考资料和子技能会缺失。 | ||
| 129 | + | ||
| 130 | +| Agent | 常见项目级目录 | | ||
| 131 | +|---|---| | ||
| 132 | +| OpenCode | `.opencode/skills/` | | ||
| 133 | +| Claude Code | `.claude/skills/` | | ||
| 134 | +| TRAE | `.trae/skills/` | | ||
| 135 | +| Cursor | `.cursor/skills/` | | ||
| 136 | + | ||
| 137 | +以 `op-adaptation` 为例: | ||
| 138 | + | ||
| 139 | +```bash | ||
| 140 | +cp -r official/PyTorch/op-adaptation .claude/skills/ | ||
| 141 | +cp -r official/PyTorch/op-test .claude/skills/ | ||
| 142 | +cp -r official/PyTorch/op-apidoc .claude/skills/ | ||
| 143 | +``` | ||
| 144 | + | ||
| 145 | +## 📘 使用说明 | ||
| 146 | + | ||
| 147 | +### 运行原则 | ||
| 148 | + | ||
| 149 | +- 先阅读并调用顶层 `SKILL.md`。复杂套件会自行加载阶段技能、工具和参考资料。 | ||
| 150 | +- 保留完整目录结构;`references/`、`scripts/`、`templates/`、`examples/` 往往是工作流的一部分。 | ||
| 151 | +- 优先提供原始、完整、可追溯的输入,例如完整命令、日志、diff 和报告文件,不要只提供截图中的局部结论。 | ||
| 152 | +- 代码修改后应按技能要求执行最小必要验证;没有 NPU 或依赖缺失时,应明确记录跳过项和阻塞原因。 | ||
| 153 | +- Token、密码和私有凭证只通过安全的环境变量或本地配置提供,不要写入提示词、日志、报告或 Git 仓库。 | ||
| 154 | +- 涉及提交、推送、创建 PR/MR 等外部变更时,先确认目标仓库、分支和交付范围。 | ||
| 155 | + | ||
| 156 | +## 📂 目录结构 | ||
| 157 | + | ||
| 158 | +```text | ||
| 159 | +official/PyTorch/ | ||
| 160 | +├── README.md | ||
| 161 | +├── api-consistency/ | ||
| 162 | +├── ci-static-errors-fix/ | ||
| 163 | +├── com-auto-binary-pr/ | ||
| 164 | +├── core-requirement-analyze/ | ||
| 165 | +├── npu-graph-skill/ | ||
| 166 | +├── op-adaptation/ | ||
| 167 | +├── op-apidoc/ | ||
| 168 | +├── op-test/ | ||
| 169 | +├── pytorch-pr-analysis/ | ||
| 170 | +├── torch-npu-issue-pipeline-core/ | ||
| 171 | +├── torch-npu-issue-pipeline-distributed/ | ||
| 172 | +└── torch-npu-pr-review/ | ||
| 173 | +``` | ||
| 174 | + | ||
| 175 | +具体触发条件、输入约束、执行步骤和输出格式,请以各技能目录中的 `SKILL.md` 为准。 | ||