GE 仓 Agent skills 规划

GE仓已有skill及效果

skill名称 作用 使用Agent(触发指令) 不用Agent
gitcode-issue 读取Issue详情、读取和回复评论 读取issue 168,并提交pr修复,耗时 ~30秒 打开浏览器 → 找到issue → 阅读/评论,耗时 3-5分钟
gitcode-pr 创建PR,自动按模板填pr描述 创建pr到develop分支,耗时 ~1分钟 git add/commit/push → 打开浏览器 → 创建PR → 填写描述,编写测试方法,勾选变更类型与核对清单,耗时 3~5分钟
gitcode-pipeline 触发ci,间隔60秒循环查询状态,自动下载失败任务日志,修改代码重新提交,重新触发ci直到通过 触发ci, pr 1234 或者 盯ci, pr 1234,对于编译失败或者llt执行失败的场景,可大幅减少人工操作 llt执行失败,需要找到日志链接,并等待下载完成,找到失败用例并人工复现修复
superpowers 需求开发(生成设计文档、编码、生成测试用例) 开发需求,要求…… → 按照提示进行后续流程,耗时 数小时-数天 分析需求 → 设计 → 编码 → ut/st → 调试 → 验证,耗时 数天-数周
ge-code-reviewer 遵循编码规范/军规/模块约束检视代码 检视pr 1437发布检视意见,耗时 2-5分钟 ,注意:Agent只能作为Commiter的辅助,不能完全替代 打开PR → 逐文件阅读diff → 对照规范检查 → 理解业务逻辑 → 写评论,耗时 5~30分钟
ge-dt-developer 编写UT/ST测试用例 为内存复用模块新增一个ut, 图结构relu-[0]concat...,耗时 ~5分钟 编写测试代码,耗时 ~30分钟
ge-dt-runner 编译和执行UT/ST用例,仅编译用例对应的cmake target,默认使用gtest-filter执行指定用例 执行新增加的用例,耗时 ~30秒-2分钟 bash tests/run_test.sh -u=ge_common,编译多个cmake target并执行所有用例,耗时 5-15分钟
api-doc-generator 对外API生成文档 xx接口生成文档,耗时 1-2分钟 阅读接口代码 → 理解参数和返回值 → 编写文档 → 格式化,耗时 10-20分钟
install-cann-toolkit 下载最新CANN Toolkit包并安装 更新toolkit包,耗时 ~10分钟 找下载链接并下载 → 等待下载完成,使用bash cann-*.run xxx安装,耗时 ~10分钟

耗时说明:因任务复杂度不同,实际耗时存在差异;表中耗时数据均为估计,仅为了让还没有体验的同学有一个直观的比较

待完善的skill

  • gitcode-pipeline — 如果静态检查或者SCA任务失败了,由于失败详情在openliing网站,目前agent无法获取具体失败信息,因此只能列出失败的链接,需要人工继续处理;工程上计划2026年7月底完成静态检查任务的调整,调整后预计AGENT也能读取到错误详情,完成任务闭环.

agent支持的流程

  • 需求开发:使用superpower完成从软件设计到编码再到验证完整流程,使用gitcode-pr提较pr,个人检视代码,gitcode-pipeline触发流水线,并定时获取结果,如果流水线失败,可获取对应失败任务日志,本地修改代码,再次提交pr监控流水线。
  • 问题单修改:使用或者不使用superpower修改代码,后续提交pr流程与上面一致。
  • 解决issue:使用gitcode-issue读取issue及评论,如果涉及修改代码或文档,与上述流程一致。
  • 执行测试用例或样例:使用ge-test在真实环境中执行用例

GE 仓 skills 路径

Agent辅助需求开发流程

图例:🤖 = Agent 执行 | 👤 = 个人检视 | 🧑‍💼 = COMMITTER/MDE 审查

                       👤 个人检视       👤   🧑‍💼       👤 个人检视      👤 个人检视  👤 个人检视  🧑‍💼 COMMITTER/MDE检视
                           │              │    │              │             │          │             │
                           ▼              ▼    ▼              ▼             ▼          ▼             ▼
需求输入 ────▶ 🤖软件设计 ────▶ 🤖需求SPEC ────▶ 🤖生成Plan ────▶ 🤖编码 ────▶ 🤖UT/ST ────▶ 🤖联调 ────▶ 🤖代码合入

流程说明

  • 需求SPEC:基于软件设计文档,生成详细的需求规格说明(SPEC),明确功能需求、接口定义、约束条件等
  • 生成Plan:将SPEC拆解为可执行的实施计划(Plan),包含任务分解、文件路径、代码结构、测试策略等
  • 联调:在真实 NPU 环境中执行端到端测试,验证功能正确性、性能指标和系统集成

需求输入

  • Issue:GitCode 上的问题单,包含问题描述、复现步骤、期望行为等
  • 需求文档:产品/架构团队提供的正式需求规格文档
  • 口头描述:开发者直接描述的功能需求或改进建议
  • 代码注释/TODO:代码库中遗留的 TODO 注释或待办事项

需求输入要素

给 Agent 输入需求时,建议包含以下要素:

  • [背景]:为什么要做这件事?解决什么问题?
  • [目标]:期望达到什么效果?
  • [范围]:涉及哪些模块/文件/接口?
  • [约束]:有什么限制条件?(性能、兼容性、不影响现有功能等)
  • [验收标准]:怎么算完成?

输入示例

❌ 差的输入

"优化一下内存管理"

✅ 好的输入

"背景:当前图编译阶段内存峰值过高(>8GB),导致大模型编译OOM。 目标:将内存峰值降低到4GB以内。 范围:compiler/graph/build/memory/ 目录下的内存分配逻辑。 约束:不能影响编译结果正确性,不能改变现有API。 验收:编译 ResNet50 模型内存峰值 < 4GB,且现有UT/ST全部通过。"

Agent辅助流程(详细流程图)

flowchart TB
    subgraph 入口节点
        A1[需求开发]
        A2[问题单修改]
        A3[Issue处理]
    end

    subgraph 判断
        B1{是否需要<br/>代码修改?}
        B2{是否需要<br/>设计阶段?}
    end

    subgraph 设计阶段
        C1[superpower<br/>软件设计<br/>需求规格]
    end

    subgraph 编码验证阶段
        D1[superpower<br/>编写代码]
        D2[ge-dt-developer<br/>执行ut/st<br/>ge-dt-runner<br/>执行ut/st]
        D3[ge-code-reviewer<br/>agent检视代码]
        D4[ge-tester<br/>本地验证]
    end

    subgraph PR流程
        E1[gitcode-pr<br/>创建PR]
        E2[个人代码检视]
        E3[gitcode-pipeline<br/>触发流水线]
        E4[gitcode-pipeline<br/>定时获取<br/>流水线结果]
    end

    subgraph 流水线结果处理
        F1{gitcode-pipeline<br/>流水线<br/>是否通过?}
        F2[gitcode-pipeline<br/>获取失败<br/>任务日志]
        F3[Agent本地修复]
    end

   subgraph 推送代码
        I1[gitcode-pr<br/>提交代码]
    end

    subgraph 完成
        H1[流程结束]
    end

    %% 入口到判断
    A1 --> B2
    A2 --> B1
    A3 --> B1

    %% 设计判断
    B2 -->|是| C1
    B2 -->|否| D1
    C1 --> D1

    %% 编码判断
    B1 -->|是| D1
    B1 -->|否| H1

    %% 编码到PR
    D1 --> D2
    D2 --> D3
    D3 --> D4
    D4 --> E1

    %% PR流程
    E1 --> E2
    E2 --> E3
    E3 --> E4
    E4 --> F1

    %% 流水线结果处理
    F1 -->|通过| H1
    F1 -->|失败| F2
    F2 --> F3
    F3 --> I1
    I1 --> E3