PyPTO 算子开发快速入门:CANNBot 7 阶段编排工作流实战指南 📅 发布时间:2026/9/20 1:19:14 👁 浏览次数: PyPTO 算子开发快速入门CANNBot 7 阶段编排工作流实战指南【免费下载链接】pypto-gymPyPTO-Gym 是基于 PyPTO 编程框架构建的算子与模型样例仓库项目地址: https://gitcode.com/cann/pypto-gym本指南面向希望在 CANN 平台上使用 PyPTO 框架快速开发自定义算子的开发者。文章以 pypto-op-orchestrator 插件的 quickstart.md 为核心骨架结合该插件仓库内的编排器配置AGENTS.md、安装脚本init.sh、状态机实现state-transition-core.ts以及 7 个子智能体定义展开。读完本文你将掌握如何一键把 CANNBot 的 8 智能体算子开发团队接入 OpenCode / Claude Code / TRAE / Cursor / Copilot / CodeArts理解 Stage 1–7 状态机与门禁机制并能在custom/op/下拿到从需求规格到性能调优报告的完整算子交付物。一、PyPTO 算子开发模式是什么CANNBot PyPTO 算子开发模式适用于通过PyPTO 框架开发自定义算子。它的核心机制是7 阶段状态机驱动 8 智能体团队协作覆盖从需求理解到性能调优的完整开发流程并支持断点续跑与失败恢复。每个阶段完成门禁校验后才能进入下一阶段Stage 5 之后通过MEMORY.md协作账本记录 pass/fail 与推理过程。8 个智能体即编排者pypto-op-orchestrator主智能体加上 7 个子智能体planner / mathematician / architect / coder / verifier / debugger / optimizer每个子智能体的角色定义均位于插件仓库的 agents/ 目录下。与 PyPTO-Pro 开发的区别插件同时提供两条开发模式选择前请先明确差异对比维度PyPTO 算子开发本模式PyPTO-Pro 算子开发适用场景PyPTO 框架算子开发PyPTO-Pro 框架算子开发编程语言PythonPyPTO APIPythonPyPTO-Pro API开发内容PyPTO kernel golden testPyPTO-Pro kernel golden test阶段数7 阶段状态机驱动5 阶段工作流状态管理.orchestrator_state.json状态文件调度顺序隐式管理性能调优Stage 7 独立调优阶段Stage 5可比基线、优化循环与证据验收从源码看两个插件在仓库中是并列目录本插件为 pypto-op-orchestratorPro 版本为 pypto-pro-op-orchestrator各自维护独立的 agents 与 hooks。快速验证算子可行性、做原型和概念验证时官方推荐优先选择 PyPTO 算子开发模式。二、环境搭建前置条件开始之前请确认以下环境已就绪已安装CANN Toolkit建议 ≥ 9.0.0具体版本配套关系请查阅 CANN Release NotesAscend 官方文档。已安装PyPTO版本需与 CANN 配套通过 PyPI 安装时CANN 与 PyPTO 的版本对应关系可查阅 PyPI 安装文档CANN 9.1.0 版本推荐使用源码编译安装方式。已配置NPU 设备支持 Ascend 910/950 PR 等芯片。已安装OpenCode、Claude Code、TRAE、Cursor、Copilot、CodeArts等受支持的 AI 编程工具之一。OpenCode 安装推荐OpenCode 是官方推荐的首选接入工具。先克隆仓库再执行插件自带的init.sh一键安装git clone https://gitcode.com/cann/pypto-gym.git cd pypto-gym/cannbot-skills/plugins-official/pypto-op-orchestrator bash init.sh project opencode # 项目级默认 bash init.sh global opencode # 全局级init.sh的完整参数约定见脚本内的帮助输出bash init.sh --help核心用法是init.sh [level] [tool] [install_path]参数位置取值说明levelproject默认/global安装级别见下文项目级 vs 全局级toolopencode默认/claude/trae/cursor/copilot/codearts目标 AI 工具install_path任意路径仅项目级生效指定安装目录省略则安装到当前目录安装过程中脚本会依次执行 5 步列出待安装内容 → 建立 skills/agents 软链接 → 安装 AGENTS.md/CLAUDE.md 配置 → 配置工具发现机制 → 运行健康检查并生成cannbot-manifest.json。健康检查会校验skills/、agents/目录与配置文件是否就位全部通过后输出安装摘要与 Quick Start 提示。其他工具安装Claude Codegit clone https://gitcode.com/cann/pypto-gym.git cd pypto-gym/cannbot-skills/plugins-official/pypto-op-orchestrator bash init.sh project claude # 项目级 bash init.sh global claude # 全局级TRAEgit clone https://gitcode.com/cann/pypto-gym.git cd pypto-gym/cannbot-skills/plugins-official/pypto-op-orchestrator bash init.sh project trae # 项目级 bash init.sh global trae # 全局级安装后自动检测 TRAE 环境生成.trae/TRAE IDE、.marscode/TRAE Plugin或.traecli/TRAE CLI目录结构与 Claude/OpenCode 基本一致。从 init.sh 源码可见脚本通过扫描~/.trae-cn、~/.marscode、~/.traecli三个目录来判断 TRAE 变体若都未检测到会回退到 IDE 路径并给出警告。Cursorgit clone https://gitcode.com/cann/pypto-gym.git cd pypto-gym/cannbot-skills/plugins-official/pypto-op-orchestrator bash init.sh project cursor # 项目级 bash init.sh global cursor # 全局级安装后在项目根目录生成.cursor/目录结构与 Claude/OpenCode 基本一致。Copilotgit clone https://gitcode.com/cann/pypto-gym.git cd pypto-gym/cannbot-skills/plugins-official/pypto-op-orchestrator bash init.sh project copilot # 项目级 bash init.sh global copilot # 全局级安装后在项目根目录生成.github/目录项目级或~/.copilot/目录全局级AGENTS.md 自动注入 VS Code Copilot 上下文。CodeArtsgit clone https://gitcode.com/cann/pypto-gym.git cd pypto-gym/cannbot-skills/plugins-official/pypto-op-orchestrator bash init.sh project codearts # 项目级 bash init.sh global codearts # 全局级安装后在项目根目录生成.codeartsdoer/目录项目级或~/.codeartsdoer/目录全局级包含skills/、agents/和AGENTS.md。在其他目录执行init.sh支持通过完整路径调用无需先cd到插件目录。第三个参数指定目标项目路径省略则安装到当前目录# 安装到当前目录 bash /path/to/pypto-gym/cannbot-skills/plugins-official/pypto-op-orchestrator/init.sh project opencode # 安装到指定项目 bash /path/to/pypto-gym/cannbot-skills/plugins-official/pypto-op-orchestrator/init.sh project opencode /path/to/your_project_path值得一提的实现细节安装脚本针对 skills 使用了共享目录 白名单过滤机制——INCLUDED_SKILLS白名单如pypto-api-explore、pypto-docs-search、pypto-op-design、pypto-op-perf-tune等指向仓库 cannbot-skills/ops/ 下的共享技能目录以软链接方式接入agents 则取自插件本地的 agents/。这样多个插件可以复用同一份 skills且安装时只替换白名单内容、不影响用户已有的其他 skills/agents。文件冲突时脚本会先备份为.bak.时间戳全局模式下还会交互式询问 覆盖(O) / 合并(M) / 跳过(S)。验证安装# OpenCode opencode agent list # 应看到 pypto-op-planner / pypto-op-mathematician / pypto-op-architect / pypto-op-coder / pypto-op-verifier / pypto-op-debugger / pypto-op-optimizer # Claude Code ls .claude/ # 应看到 skills/ agents/ CLAUDE.md cannbot-manifest.json # TRAE ls .trae/ # TRAE IDE ls .marscode/ # TRAE Plugininit.sh 自动检测 ls .traecli/ # TRAE CLIinit.sh 自动检测 # 应看到 skills/ agents/ cannbot-manifest.json # AGENTS.md 位于项目根目录 # Cursor ls .cursor/ # 应看到 skills/ agents/ cannbot-manifest.json # AGENTS.md 位于项目根目录三、快速上手启动# OpenCode opencode # Claude Code claudeTRAE 用户TRAE 通过 IDE、VS Code 插件或 CLI 启动。init.sh 会自动检测 TRAE IDE~/.trae-cn、Plugin~/.marscode或 CLI~/.traecli并安装到对应目录。安装完成后在 IDE 中直接打开项目即可。Cursor 用户Cursor 通过 IDE 启动.cursor/目录中的配置会自动加载。安装完成后在 IDE 中直接打开项目即可。开发算子示例在交互界面中输入算子开发需求CANNBot 会自动启动 7 阶段流程。例如帮我开发一个 softmax 算子支持 float16 数据类型shape 主要是 [1,128]、[4,2048]、[32,4096]这个示例提示词也是安装脚本内置的SAMPLE_PROMPT见 init.sh 中SAMPLE_PROMPT变量安装完成后会直接显示在 Quick Start 提示中。核心工作流采用 7 阶段状态机驱动、8 智能体团队协作确保算子开发质量Stage 1: 需求规划与 API 可行性 → Stage 2: Golden 生成 → Stage 3: 设计与模块接口 → Stage 4: 独立检查与验证准备 → Stage 5: 按模块编码闭环 → Stage 6: 最终 E2E 验证 → Stage 7: 性能调优各阶段职责与产出如下Stage 1planner完成需求规划和 API 可行性产出SPEC.md、API_REPORT.md。退出标准是 API map 中不存在unsupported行或每行都有文档化的 workaround见 pypto-op-planner.md。Stage 2mathematician生成op_golden.py参考实现与GOLDEN_PERF_REPORT.md。Stage 3architect一次完成DESIGN.md和eval/module_interfaces.yaml。Stage 4verifier独立检查设计与接口多模块时准备测试文件。Stage 5coder、verifier、debugger按模块闭环逐模块完成编码→验证→修复产出modules/、集成op_impl.py、test_op.py与README.mdMEMORY.md从 Stage 5 开始写入。Stage 6verifier最终 E2E 精度验证与 layout 校验。Stage 7optimizer性能采集、分析与迭代调优verifier 回归确认精度无损生成op_tuning_report.md。每个阶段完成门禁校验后才能进入下一阶段支持断点续跑和失败恢复详见 AGENTS.md。门禁机制的源码级原理阶段推进并非靠口头约定而是由状态机 lint 门禁双重保障这在插件 hooks 中有完整实现状态机核心位于 state-transition-core.ts。它定义了OrchestratorStateschema v2.0包含current_stage、stage_status每阶段pending/in_progress/completed/failed、stage_retry_count、stage5_phases含phase_status与max_cycles_per_phase默认 10、artifact_hashes与rollback_history。插件入口 pypto-state-transition.ts 将state_transition暴露为唯一可写状态文件的工具并做三重约束仅主智能体pypto-op-orchestrator或build可调用opDir必须位于custom/之下在complete_stage/submit_design/complete_phase/submit_for_verify时同步触发 lint 门禁lint FAIL 会抛错且状态文件不变。状态文件通过先写临时文件再 rename的方式原子落盘complete_stage(1)会记录SPEC.md哈希Stage 3 起每次complete_stage都会校验 SPEC.md 未被修改freeze 机制如需合法修改规格必须rollback_to_stage(target_stage1)。Stage 5 内部的 Phase 状态机源码中的PhaseStatus为pending --start_phase-- in_progress in_progress / in_debug --submit_for_verify (lint PASS)-- awaiting_verify in_progress / in_debug / awaiting_verify --complete_phase (lint PASS)-- verified 任一态 --fail_phase-- in_debug 达到 max_cycles 时为 blocked产出物示例PyPTO 算子开发模式下CANNBot 会在custom/op/目录下生成以下文件custom/op/ ├── SPEC.md # 需求规格 ├── API_REPORT.md # API 可行性报告 ├── op_golden.py # Golden 参考实现 ├── GOLDEN_PERF_REPORT.md # Golden 基准性能报告 ├── DESIGN.md # 架构设计文档 ├── op_impl.py # 集成 PyPTO kernel 实现 ├── test_op.py # 端到端测试入口 ├── README.md # 实现说明 ├── MEMORY.md # 阶段协作记录Stage 5 ├── op_tuning_report.md # 性能调优报告Stage 7 ├── .orchestrator_state.json # 流程状态自动维护 ├── eval/ │ ├── module_interfaces.yaml # 模块接口契约 │ ├── test_inputs.py # 对抗测试输入 │ ├── adversarial_suite.json # 对抗测试套件 │ └── adversarial_runner.py # 对抗测试执行器 ├── modules/ # 模块文件L1 路径 └── history_version/ # 版本备份值得注意的是custom/op下的SPEC.md、API_REPORT.md、DESIGN.md、module_interfaces.yaml、op_golden.py由上游阶段产出*_impl.py只能由 coder 产出test_*.py与eval/*只能由 verifier 产出各智能体被严格约束不能越界写入详见各 agent 定义文件。四、可用技能与智能体技能Skill清单Skill用途触发阶段pypto-op-plan串行组织需求理解与 API 可行性探索Stage 1pypto-intent-understand需求意图理解与规格生成Stage 1pypto-api-exploreAPI 可行性探索与分析Stage 1pypto-golden-generateGolden 参考实现生成Stage 2pypto-op-design算子设计、模块划分及接口生成Stage 3pypto-op-develop算子代码实现Stage 5pypto-op-verify模块、E2E 与回归验证Stage 4–7pypto-general-debug通用错误定位与修复Stage 5pypto-precision-debug精度问题代码层排查Stage 5pypto-precision-compare精度中间结果对比分析Stage 5辅助pypto-op-perf-tune算子性能分析与自动调优Stage 7pypto-op-review设计与实现评审Stage 3–7pypto-docs-search算子 API 文档、参考实现与 golden 检索按需pypto-memory-templateMEMORY.md 协作账本模板Stage 5pypto-op-knowledge算子开发知识库按需pypto-op-monitor过程监控与状态追踪全阶段pypto-orchestration-manual编排策略与门禁定义全阶段智能体Agent清单Agent用途负责阶段pypto-op-planner需求规划与 API 可行性Stage 1pypto-op-mathematicianGolden 参考实现Stage 2pypto-op-architect架构、tiling 与 loop 设计Stage 3pypto-op-coderKernel 实现Stage 5pypto-op-verifier独立裁决与检查Stage 4–7pypto-op-debugger失败定位与补丁建议Stage 5pypto-op-optimizer性能采集与调优Stage 7角色边界verifier / debugger / coder 三方分工编排器的硬性规则要求三个子智能体严格隔离避免既当运动员又当裁判verifier 是唯一裁判judge-only只运行固定的检查并输出 PASS/FAIL 判定与failure_categoryprecision/structural/runtime/infra/other等绝不调查、绝不修复、绝不加载 debug 类技能也绝不把 golden 张量值泄露进报告_sanitize信息屏障。其职责细节见 pypto-op-verifier.md。debugger 只做调查接收一个具体失败文件 failure_category加载恰好一个匹配的 debug 子技能定位根因后在custom/op/MEMORY.md写补丁方案不直接写生产代码。见 pypto-op-debugger.md。coder 只写实现每次 dispatch 恰好产出一个 impl 文件写完后必须通过冒烟自检smoke_check_impl.py并做 Phase 自审含## Phase M_k self-review六个结构项 valid-shape 审计但不写测试、不调试、不优化。见 pypto-op-coder.md。失败的流转链路固定为verifier裁判→ debugger调查→ coder应用补丁→ verifier再次裁判。双账本状态存储从 AGENTS.md 可以确认系统存在两个互补的状态存储custom/op/MEMORY.md—— 人类可读的叙事账本。记录推理过程、设计意图、调试尝试、failure_category选择理由与复盘分析所有子代理都读写它。模板来自pypto-memory-template技能的templates/MEMORY.template.md。custom/op/.orchestrator_state.json—— 机器可读的进度账本。只存数字与状态Stage 状态、重试计数、Phase M_k 状态、artifact 哈希、回滚历史只有编排者能通过state_transition工具写入。两套存储刻意不重复信息JSON 只放数字和状态markdown 只放推理和判断日志。五、断点续跑与恢复CANNBot 通过custom/op/.orchestrator_state.json维护全局状态支持断点续跑与失败恢复场景使用方式中断后继续再次输入算子名自动从上次中断处续跑失败后重试输入继续开发 {算子名}从失败阶段恢复查看状态查看custom/op/.orchestrator_state.json状态机还支持回滚rollback_to_stage会把target_stage之后的所有阶段重置为pending、递增目标阶段的重试计数、在target 5时清空stage5_phases、丢弃目标之后阶段的 artifact 哈希并向 append-only 的rollback_history追加一条记录reason必填并进入审计日志。当某个 Phase 连续失败达到max_cycles_per_phase默认 10时阶段进入blocked状态编排者必须二选一上报用户或发起rollback_to_stage回到设计/架构阶段重新审视。六、常见问题Q: 如何查看帮助信息bash init.sh --helpQ: 项目级和全局安装如何选择项目级适合多项目开发每个项目可以有不同配置。配置写入项目目录下的.opencode/、.claude/、.cursor/等目录AGENTS.md 位于项目根目录。全局适合单一项目全局生效。配置写入~/.config/opencode、~/.claude、~/.cursor、~/.copilot、~/.codeartsdoer等用户级目录。Q: 如何更新cd pypto-gym/cannbot-skills/plugins-official/pypto-op-orchestrator bash init.sh project opencode重新执行init.sh即会按白名单刷新软链接与配置已存在文件会自动备份对于用户自定义过的全局配置文件脚本会交互式询问覆盖/合并/跳过。Q: PyPTO 和 PyPTO-Pro 如何选择场景推荐模式使用 PyPTO 框架开发算子PyPTO 算子开发使用 PyPTO-Pro API 开发算子PyPTO-Pro 算子开发快速验证算子可行性PyPTO 算子开发原型开发和概念验证PyPTO 算子开发总结PyPTO 算子开发模式通过 7 阶段状态机与 8 智能体团队实现端到端自动化需求规划→Golden 生成→架构设计→模块分解→编码闭环→E2E 验证→性能调优。使用 init.sh 脚本一键安装OpenCode 推荐支持项目级和全局级也支持 OpenCode / Claude Code / TRAE / Cursor / Copilot / CodeArts 六种工具。opencode/claude是核心交互指令在交互界面直接描述算子需求即可触发全流程。所有阶段通过门禁驱动lint 门禁作为state_transition的副作用自动运行未抛错即 PASS支持断点续跑与失败恢复回滚记录可审计。产出物包含完整的 SPEC、API 报告、Golden 参考、架构设计、模块契约、模块实现、E2E 测试、调优报告与流程状态文件Stage 5 以MEMORY.md为协作账本.orchestrator_state.json为机器可读进度二者互补、互不重复。【免费下载链接】pypto-gymPyPTO-Gym 是基于 PyPTO 编程框架构建的算子与模型样例仓库项目地址: https://gitcode.com/cann/pypto-gym创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考