目录

🖥️ 沐曦算力运维助手

第八届 CCF 开源创新大赛 · 沐曦「国产开源 GPU AI 创新生态赛」参赛作品 决赛主赛道:任务二(AI Skill / MCP 应用开发);Agent 仅作为 MCP 使用端与演示入口 战队:能工智人 · 决赛更新版 · 2026-07-23


C/D 前端协同仓说明(Web-YOLO 扩展):本仓库同时承载原 MCP 运维基线与 C/D 前端并行开发骨架。

  • C 线(运维页):总览 / 训练 / 作业 → 分支 codex/yolo-web-ops
  • D 线(视觉页):模型库 / 检测 / 证据 → 分支 codex/yolo-web-vision
  • 协同手册:docs/delivery/FRONTEND_COLLAB_CD.md
  • 契约冻结:docs/delivery/WEB_MCP_CONTRACT.md
  • 启动控制台:python -m agents.web_app.app(fixture 可独立演示)
    旧决赛 RC rc-code-20260722 证据边界保持隔离,Web-YOLO 使用独立分支与证据。

决赛版本边界(2026-07-23):统一 RC 为 master@28a6468,发布标签为 rc-code-20260722。PR #4(模型探针与只读门禁)、PR #5(30 请求基准)和 PR #6(输入边界硬化)均已合入;真实 C500/Linux 已完成 307 passed、0 skipped。默认策略为 read-only,submit_job 默认拒绝;决赛不演示真实写操作成功。

决赛文档入口

  • 决赛方案:材料工作区 决赛方案.md,记录任务二定位、答辩主线和交付门槛。
  • 项目推进记录:PR、测试、证据、材料和剩余任务的唯一台账。
  • 架构说明:MCP、Agent、GPU 数据源和安全边界。
  • 决赛技术报告:交付包/02_技术报告/能工智人_MetaX-Ops-Agent_技术报告_决赛更新版.docx/.pdf。
  • 决赛演示脚本:交付包/03_演示材料/演示脚本_4分钟_决赛更新版.md。
  • 决赛部署手册:交付包/03_演示材料/部署与用户使用手册_决赛更新版.md。
  • 真实公开证据:evidence/;平台私有回执:交付包外受控目录,不进入公开仓库。

一、项目简介

面向 沐曦(MetaX)国产 GPU 算力平台 的运维智能体:通过 MCP(Model Context Protocol)开放协议 把国产 GPU 监控、实例管控、作业调度、算力券查询等能力暴露给 LLM,用户用自然语言即可完成端到端运维。

核心价值:解决国产 GPU 运维工具链断层——监控与管控割裂、AI 运维能力缺失。用开放协议 + 国产 LLM + 国产 GPU 构建全栈自主可控的运维智能体。

任务二交付主线:

  • mcp_server/:7 个 MCP 工具与 MCP 客户端接入示例;主演示保持只读。
  • agents/:MCP 的使用端和演示入口,不作为独立赛道扩张范围。

二、功能说明

2.1 七个 MCP 工具

工具 功能 数据源
get_gpu_status GPU 实时利用率/显存/温度/功耗 本机 mx-smi 真实数据
list_containers 列出算力实例 模力方舟 OpenAPI 真实实例
submit_job 提交训练/推理作业 默认不暴露并由 MCP Server 再次拒绝;决赛不执行真实写操作
get_job 查询作业状态 退出码 + 日志关键词三重判定
get_job_logs 查询作业日志 真实日志文件
get_quota 算力券余额与配额 OpenAPI 任务并发 + 手填余额
diagnose_gpu 异常诊断 启发式规则跑在真实数据上

2.2 Agent 能力

  • 多轮对话与上下文管理:最多 5 轮工具调用循环,防死循环
  • 工具调用能力:LLM 自主决策串联多个 MCP 工具
  • 任务执行状态跟踪:作业状态精确判定(running/succeeded/failed)
  • 自然语言驱动:CLI + Web UI 双端入口

2.3 核心特性

能力 说明
🇨🇳 全栈国产链路 沐曦 C500 GPU + Gitee.AI 国产大模型 + MCP 开放协议 + 模力方舟算力平台;真实模型 ID 已验证为 deepseek-v4-flash
🔌 双通道算力 本机 mx-smi 真实 GPU 监控 + 模力方舟 OpenAPI 实例管控
🤖 Agent 编排 Agent 作为 MCP 使用端,通过 OpenAI 兼容 Gitee.AI 接口进行工具选择与多轮编排;决赛主演示保持只读
🖥️ 双端入口 CLI(Rich 美化)+ Web UI(深色科技风运维控制台)
🐳 部署路径 已提供 Dockerfile + docker-compose;最终设备映射、构建和健康检查仍需单独验收
🧪 可复现 统一 RC 在真实 C500/Linux 完成 307 passed、0 skipped;公开探针和基准证据可复验

三、使用的模型与算力环境

3.1 大模型

模型 用途 接入方式
DeepSeek-V4-Flash Agent 对话与工具调用决策 Gitee.AI OpenAI 兼容接口;服务端返回 ID 为 deepseek-v4-flash

说明:模型名称以服务端返回 ID 为准,不再使用 GLM-5.2 或 Qwen3.5-35B-A3B 作为决赛结论。真实单轮探针 run ID 为 c6a798248db346bf9cfa359635b6777d,公开证据 SHA-256 为 43d13b6a7d4927004f03b07994f5421413673dfc6d53858e0aa810c77c26bf5f。

3.2 算力环境

算力 用途 接入方式
沐曦曦云 C500(64GB,决赛实机) 本机 GPU 监控 兼容 mx-smi JSON 与 2.2.6 默认表格输出
模力方舟 Gitee.AI 沐曦资源包 实例管控 + 算力券 OpenAPI https://ai.gitee.com/api/v1/

3.3 依赖开源组件

组件 协议 用途
MCP Python SDK MIT MCP 协议实现
Gradio Apache-2.0 Web UI
FastAPI MIT 后端框架
asyncssh EPL-2.0 SSH 远程连接
httpx BSD-3-Clause HTTP 客户端
openai SDK Apache-2.0 LLM 调用
Rich MIT 终端美化

四、运行与部署方法

4.1 环境要求

  • Python ≥ 3.10
  • 本机有 mx-smi(沐曦 GPU 管理接口)→ 自动启用真实 GPU 监控
  • 无 mx-smi 时自动 mock 回退,零依赖可跑通

4.2 统一 RC 真机安全验证

git clone https://www.gitlink.org.cn/muluzhe/metax-gpu-ops-agent.git
cd metax-gpu-ops-agent
git switch --detach rc-code-20260722

python3 -m venv /data/venvs/metax-readonly
source /data/venvs/metax-readonly/bin/activate
python -m pip install -e .

master 真机只显式直调两个已验收的只读工具:

python - <<'PY'
import asyncio
from mcp_server.metax_client import MetaxClient
from mcp_server.server import call_tool

async def main():
    client = MetaxClient()
    print("mode_label:", client.mode_label)
    print("is_mock:", client.is_mock)
    print(await call_tool("get_gpu_status", {}, client))
    print(await call_tool("diagnose_gpu", {}, client))

asyncio.run(main())
PY

统一 RC 已合入默认只读策略并通过 C500/Linux 复验,可运行 Agent CLI/Web、MCP Server、E2E 或 smoke;真实环境中仍保持 tool_policy=read-only,不执行 submit_job。

4.3 配置说明

编辑 .env 填入凭据(无凭据可跑 mock 模式):

MOARK_TOKEN=REPLACE_WITH_MOARK_TOKEN                 # 算力实例管控
LLM_API_KEY=REPLACE_WITH_GITEE_AI_TOKEN              # Agent 对话
METAX_COUPON_BALANCE=REPLACE_WITH_COUPON_BALANCE     # 算力券展示

4.4 Docker 部署状态

Dockerfile 与 compose 文件目前只是候选部署草案,尚未完成沐曦设备映射、构建、启动和健康检查验收;不要在真实 C500 上把 docker compose up 当作已验证路径。统一 RC 修复并实测后再把命令写入最终快速启动。

4.5 测试验证

以下命令对应统一 RC master@28a6468 / rc-code-20260722。真实 C500 的 E2E 和 smoke 保持默认只读,不创建作业。

python3 -m pytest tests/ -q        # 全量离线单元测试
python3 -m ruff check .            # 代码规范
python3 scripts/validate_public_evidence.py  # 重新校验仓库内公开模型证据
python3 scripts/e2e_test.py        # 统一 RC;真实 C500 保持 read-only
python3 scripts/smoke_test.py      # 统一 RC;验证 submit_job 被拒绝

4.6 真实 Gitee.AI 单轮探针

先在 Gitee.AI 控制台确认资源包实际可用模型 ID,再通过安全的进程环境变量提供 Token。为避免来源误标和旧凭据被意外计费,探针**不会自动加载 .env**。不要把 Token 写入命令行参数、Issue、PR 或日志。

export LLM_PROVIDER=gitee
export LLM_API_BASE=https://ai.gitee.com/v1
LLM_MODEL_VALUE="DeepSeek-V4-Flash"
export LLM_MODEL="$LLM_MODEL_VALUE"
# 通过平台秘密注入或交互式安全方式设置 LLM_API_KEY

python3 scripts/llm_probe.py
# 默认在系统临时目录生成带时间和随机后缀的唯一文件;摘要直接输出文件名与 SHA-256

探针只做固定提示词的单轮模型调用,不携带 MCP 工具,也不触发写操作。响应标记必须完全匹配、finish_reason=stop 且服务端必须返回模型 ID。单样本只能证明连通性和一次调用延迟;Token 用量缺失时不得用于 Token 性能结论。

4.7 工具执行安全模式

统一 RC 的 Agent、MCP Server 和 E2E 默认只暴露 6 个只读工具,未知工具一律 fail-closed;MCP Server 在工具列表和实际执行两个边界都会再次校验。submit_job 默认拒绝。该开关只是服务端开发期硬门禁,不等于完整用户级确认;dry-run、短时确认令牌、参数策略、幂等和不可抵赖审计属于后续增强,因此决赛主演示保持只读。


五、示例输入输出

示例 1:查询 GPU 状态

输入(自然语言):

看看现在 GPU 状态怎么样

输出(Agent 调用 get_gpu_status):

共 1 张 GPU:
- MetaX MX C500#0: 利用率 0.0% | 显存 0.81/64.0 GB | 温度 39°C | 功耗 58.6 W

示例 2:全面体检(Agent 串联 4 工具)

输入:

全面体检一下当前算力环境,出份报告

输出(Agent 自主调用 get_gpu_status + list_containers + get_quota + diagnose_gpu):

## 算力环境体检报告

### GPU 状态
| GPU | 利用率 | 显存 | 温度 | 功耗 |
|---|---|---|---|---|
| MX C500 #0 | 0% | 0.8/64 GB | 39°C | 58.6 W |

### 算力实例(模力方舟 OpenAPI)
- [running] 曦云 C500 ×1 (`<container-id-redacted>`)
- [stopped] 曦云 C500 ×1 (`<container-id-redacted>`)

### 算力券
余额 ¥1,850.00,已用 42.5h / 200h

### 告警
GPU 闲置,建议排查是否有作业待调度

示例 3:提交作业(历史/变更模式示例,默认只读会拒绝)

输入:

提交作业:名字 demo,镜像 maca-pytorch:3.2.1,命令 sleep 30 && echo hello,1 卡

输出:

✅ 作业已提交
  job_id: demo-1783157378
  状态: succeeded
  GPU: MetaX MX C500
  作业已完成,日志: /data/metax_jobs/demo-1783157378.log

完整演示视频见 docs/video/演示视频.mp4,或在线观看(百度网盘:CCF_demo.mp4,提取码 igdj)。

运行截图

mx-smi 原始输出 vs Web UI 解析对比(数据 100% 真实,来自沐曦 MX C500): mx-smi 输出 vs Web UI 对比

Agent 工具调用时序(LLM ↔ MCP 多轮编排,function calling 决策链): 工具调用时序图

作业提交效果(CLI 提交作业 → 容器启动 → 日志返回): 作业提交图


六、参考来源说明

本作品基于以下开源项目与协议开发,已在原有基础上进行功能扩展与场景改造:

参考来源 用途 改造内容
MCP Protocol 协议规范 实现 7 个面向国产 GPU 的运维工具
Gitee.AI 沐曦资源包 国产大模型算力 通过 OpenAI 兼容接口调用资源包目录中的国产模型
沐曦 MACA GPU 运行时 解析 mx-smi JSON;2.2.6 无 JSON 时回退默认表格
模力方舟 Gitee.AI 算力平台 对接 OpenAPI 实现实例管控
Gradio Web UI 深色科技风运维控制台定制
openai Python SDK LLM 客户端 适配 Gitee.AI 接口

原创声明:MCP 工具定义、Agent 编排逻辑、双通道算力接入、mx-smi 解析、深色 UI 均为团队原创开发,未直接复制已有项目。


七、架构设计

┌──────────────┐    自然语言     ┌──────────────┐    function call    ┌──────────────┐
│  用户        │ ────────────▶ │  Agent 层    │ ──────────────────▶ │  LLM         │
│  CLI / Web   │ ◀──────────── │  (编排+对话) │ ◀────────────────── │ Gitee.AI 模型 │
└──────────────┘    回复       └──────┬───────┘    工具调用决策      └──────────────┘
                                        │ tools/call (stdio)
                                        ▼
                              ┌──────────────────┐
                              │  MCP Server      │  7 个工具
                              │  能工智人   │
                              └────────┬─────────┘
                                        │
                    ┌───────────────────┴───────────────────┐
                    ▼                                       ▼
          ┌──────────────────┐                    ┌──────────────────┐
          │ 本机 mx-smi      │  GPU 监控          │ 模力方舟 OpenAPI │  实例管控
          │ (沐曦 C500)      │  利用率/显存/温度  │ ai.gitee.com     │  列实例/创建
          └──────────────────┘                    └──────────────────┘

详细架构说明见 docs/architecture.md。


八、项目结构

metax-gpu-ops-agent/
├── mcp_server/             MCP Server(任务二核心交付)
│   ├── metax_client.py     双通道算力客户端(本机mx-smi + 模力方舟OpenAPI)
│   └── server.py           7个MCP工具定义 + 人类可读输出
├── agents/                 Agent 层(MCP 使用端与演示入口)
│   ├── config.py           LLM配置 + 系统提示词
│   ├── llm.py              显式超时/重试的OpenAI兼容LLM客户端
│   ├── llm_evidence.py     严格脱敏的单轮模型证据schema
│   ├── tool_policy.py      默认只读、未知工具fail-closed安全策略
│   ├── agent.py            LLM↔MCP 多轮编排
│   ├── cli.py              CLI入口
│   └── web.py              深色科技风Web UI
├── tests/                  75 项离线单元测试
├── scripts/                单轮模型探针、只读e2e、冒烟/自检脚本
├── evidence/               真实环境脱敏证据与索引
├── docs/                   架构文档 + 开发记录 + 演示视频 + PPT + 历史性能草稿
│   ├── video/演示视频.mp4  演示视频(3分06秒)
│   └── screenshots/        运行截图(mx-smi vs Web UI、作业提交、工具调用时序图)
├── examples/               MCP客户端配置示例
├── Dockerfile / docker-compose.yml
├── pyproject.toml / .env.example
└── README.md

九、演示材料

  • 演示视频:docs/video/演示视频.mp4(3 分 06 秒,6 场景完整演示),在线观看(百度网盘:CCF_demo.mp4,提取码 igdj)
  • 运行截图:docs/screenshots/(mx-smi 输出 vs Web UI 对比、作业提交、工具调用时序图)
  • 架构文档:docs/architecture.md
  • 创意规划 PPT:docs/沐曦算力运维助手_演示PPT.pptx(任务三阶段一交付物)
  • 历史调用日志与性能草稿:docs/真实调用日志与性能报告.md(存在旧模型、显存和手工计时口径,已降级;不可作为当前决赛证据)
  • 开发记录:docs/开发记录.md(Issue 记录功能设计、技术难点、系统优化)
  • 项目推进记录:docs/项目推进记录.md(决赛阶段的任务、里程碑、风险、决策与每日进展单一事实源)
  • 真实环境证据:evidence/(脱敏环境指纹、安装测试、失败复现、修复验证与性能原始证据索引)

📄 License

本作品以 Apache-2.0 协议开源发布(见 LICENSE 文件与 pyproject.toml 声明),允许赛事组织方及社区按该许可使用。赛题参考仓库 ccf-ai-infra/GPUApps 使用 MulanPSL-2.0,本作品按通用规则采用主流的 Apache-2.0,如赛题后续明确要求 MulanPSL-2.0 将同步调整。

🙏 致谢

  • 出题方:沐曦股份(MetaX)
  • 算力平台:模力方舟 Gitee.AI
  • 大模型:Gitee.AI 沐曦资源包国产模型
  • 赛事平台:GitLink、CCF 开源发展技术委员会
关于

C/D frontend collab: MetaX Ops Agent baseline + Web-YOLO C/D framework

927.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号