[2026春季][T3-1-1] Foxxiaohuli - #179
Open
Foxxiaohuli wants to merge 2 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
T3-1-1 — nt-devskill
1. Skill 名称与赛题信息
nt-devskillT3-1-1新建队伍名1.7SKILL.md(914 行)remote-operator-mcp(1.0.0)skills/competition/nt-devskill/2. 适用任务范围与不适用范围
2.1 适用
2.2 不适用
reshape、transpose返回非连续 view):Skill 会在Step 0.8主动告知 view-only 性质并建议退回torch原生路径3. 安装与使用方式
3.1 安装
把本目录作为只读 Skill 包注册到 Agent(以 Qoder 为例):
3.1.1 配套 MCP:
remote-operator-mcp为了让 SKILL.md 中的
Step 0 → Step 3闭环能在远程 MetaX GPU 上实跑,本项目配套提供了一个独立 MCP Server(remote-operator-mcp/),提供upload_code / run_test / run_python / auto_bench / mx_smi / remote_ls / remote_cat / remote_md5 / remote_glob / remote_rm / download_file / ping共 12 个工具。Skill 与 MCP 解耦:Skill 不依赖任何特定 MCP 实现,但推荐搭配使用。安装步骤:
注册到常用 Agent(在 MCP 客户端配置中加一个 stdio server):
~/.qoder-cn/mcp.json(用户级)或.qoder/mcp.json(项目级){"mcpServers":{"remote-operator":{"command":"uv","args":["--directory","/abs/path/to/remote-operator-mcp","run","python","remote_operator_mcp.py"]}}}+ Add new MCP servercommand;Name:remote-operator;Command:uv --directory /abs/path/to/remote-operator-mcp run python remote_operator_mcp.py~/.claude.json或项目.mcp.json{"mcpServers":{"remote-operator":{"command":"uv","args":["--directory","/abs/path/to/remote-operator-mcp","run","python","remote_operator_mcp.py"]}}}command/argsstdio 配置settings.json→ Cline MCP Settings{"mcpServers":{"remote-operator":{"command":"uv","args":["--directory","/abs/path/to/remote-operator-mcp","run","python","remote_operator_mcp.py"]}}}~/.codex/config.toml或项目codex.toml[mcp_servers.remote-operator]command = "uv"args = ["--directory", "/abs/path/to/remote-operator-mcp", "run", "python", "remote_operator_mcp.py"]3.1.2 MCP 工具一览
pingpong,确认 MCP 可用upload_codedownload_filerun_testenv="default"自动注入 MetaX 环境变量;自动 tee 日志到logs/run_pythonauto_benchruns>1时给 median/min/max 聚合remote_lsremote_catlines截断)remote_md5remote_glob**)remote_rmmx_smi3.1.3 Skill + MCP 协同验证
在 Qoder 中验证两者已联通:
3.2 触发
在 Agent 中输入任意九齿算子需求即可自动触发,例如:
或显式触发:
3.3 工作流
Agent 会自动按以下步骤执行:
3.4 验证命令
4. 自测任务 / 自测案例的运行记录
5 个自测任务覆盖 5 个算子族(超出赛题"至少 4 个"的最低要求),完整记录见各
自测结果_*.md文件:copysign测试场地/ntops11自测结果_copysign_with_skill.mdnansum测试场地/ntops7自测结果_nansum_with_skill.mdaddcmul测试场地/ntops9自测结果_addcmul_diag_and_fix.mdscatter_add测试场地/ntops13自测结果_scatter_add_with_skill.mdpixel_unshuffle测试场地/ntops14自测结果_pixel_unshuffle_with_skill.md运行记录摘要:
F.pixel_unshuffle在 MetaX 上已返回 contiguous5. 自测结果:AI 智能体使用 Skill 前后的对比
5.1 正确性对比
5.2 A/B 对照(copysign,唯一做无 Skill 对照的算子)
< 0.05.3 Benchmark 结果
5.4 对照结论
ntl.where(< 0.0, ...)列为反例,直接绕过6. 配套 MCP:
remote-operator-mcp为了让
Step 0 → Step 3的闭环能在远程 MetaX GPU 上实跑,本项目在remote-operator-mcp/目录下附带一个独立 MCP Server(Python 3.12 + uv 管理;依赖mcp>=1.27.2与paramiko>=5.0.0)。Skill 与 MCP 解耦:Skill 不绑定任何特定 MCP 实现,但 SKILL.md 中所有"远程 GPU"路径默认以本 MCP 的工具命名为示例。6.1 12 个 MCP 工具
ping·upload_code·download_filerun_test·run_python·auto_benchremote_ls·remote_cat·remote_md5·remote_glob·remote_rmmx_smirun_test的env="default"会自动注入 MetaX 必需的环境变量(MACA_PATH/LD_LIBRARY_PATH等),Python 命令自动tee到logs/<script>_<timestamp>.log;auto_bench支持runs>1输出 median/min/max 聚合;remote_rm内置危险路径保护(禁止删remote_root//data//opt)。6.2 安装到常用 Agent
所有 Agent 均为 stdio 模式,
--directory必须填 MCP 目录的绝对路径;config.json必须在 MCP 目录下且含有效 SSH 凭据。~/.qoder-cn/mcp.json(用户级)或.qoder/mcp.json(项目级){"mcpServers":{"remote-operator":{"command":"uv","args":["--directory","/abs/path/to/remote-operator-mcp","run","python","remote_operator_mcp.py"]}}}+ Add new MCP servercommand;Nameremote-operator;Commanduv --directory /abs/path/to/remote-operator-mcp run python remote_operator_mcp.py~/.claude.json或项目.mcp.jsonsettings.json→ Cline MCP Settings{"mcpServers":{"remote-operator":{"command":"uv","args":["--directory","/abs/path/to/remote-operator-mcp","run","python","remote_operator_mcp.py"]}}}~/.codex/config.toml或项目codex.toml[mcp_servers.remote-operator]command = "uv"args = ["--directory","/abs/path/to/remote-operator-mcp","run","python","remote_operator_mcp.py"]6.3 使用示例(Qoder 内)
6.4 安全
config.json含 SSH 密码或密钥路径 → 必须列入.gitignore,不得提交公共仓库remote_rm默认只删文件,删目录需显式recursive=True;对remote_root//data//opt等路径直接拒绝run_test与run_python在 SSH session 内运行,与 MCP 客户端进程隔离7. 署名的 HONOR_CODE.md 和 REFERENCE.md
✅
HONOR_CODE.md:已在根目录签署,确认:REFERENCE.md披露✅
REFERENCE.md:已披露:8. Proposal 与最终赛题报告
新建队伍名_九齿skill创新挑战_T3-1-1_赛题报告.pdf董俊宏_九齿skill创新挑战_proposal.pdfPR_DESCRIPTION_TEMPLATE.md(本文件)测试场地/ntops11/自测结果_copysign_with_skill.md测试场地/ntops7/自测结果_nansum_with_skill.md测试场地/ntops9/自测结果_addcmul_diag_and_fix.md测试场地/ntops13/自测结果_scatter_add_with_skill.md测试场地/ntops14/自测结果_pixel_unshuffle_with_skill.md(Step 0.8 正面验证)测试场地/copysign_AB_汇总.mdremote-operator-mcp/README.md9. 合规清单
HONOR_CODE.md已签署REFERENCE.md已披露公开来源与 AI 辅助README.md已说明安装与使用(含多 Agent 安装指引)新建队伍名_九齿skill创新挑战_T3-1-1_赛题报告.pdf最终报告已完成 8 章自测结果模版.md完成(覆盖 elementwise / reduction / composition / scatter / layout-view 5 族)remote-operator-mcp/)已交付:README.md含 12 个工具说明 +config.example.json不含真实凭据 + 多 Agent 安装指引已覆盖remote_rm含危险路径保护;config.json未提交(已.gitignore)pytestoutput: