---
title: AI Cube 人工智能春季挑战赛 — 完整项目需求文档
author: 朱奕樟
date: 2026-03-20
summary: 面向先进制造学院大一大二同学的 AI Skills 开发竞赛完整方案，涵盖赛制设计、评测平台架构、30道测试用例、评分系统、运营方案和比赛规则。
canonical: https://blog.sysu-sam.com/@zhuyizhang/ai-cube-challenge-spec
---

# AI Cube 人工智能春季挑战赛 — 完整项目需求文档

> **版本**: v1.0 | **日期**: 2026-03-20 | **状态**: 可执行

---

## 目录

1. [项目背景与核心理念](#1-项目背景与核心理念)
2. [赛制设计](#2-赛制设计)
3. [评测环境与沙箱设计](#3-评测环境与沙箱设计)
4. [评测平台技术架构](#4-评测平台技术架构)
5. [测试用例详细设计](#5-测试用例详细设计)
6. [评分系统详细设计](#6-评分系统详细设计)
7. [排行榜与防作弊](#7-排行榜与防作弊)
8. [Workshop 与选手指南](#8-workshop-与选手指南)
9. [赛事运营与宣传](#9-赛事运营与宣传)
10. [比赛规则正式文档](#10-比赛规则正式文档)
11. [成本估算与部署](#11-成本估算与部署)
12. [待确定事项与决策清单](#12-待确定事项与决策清单)

---

## 1. 项目背景与核心理念

### 背景
- **赛事名称**: AI Cube 人工智能春季挑战赛
- **主办方**: 先进制造学院（学生社团/学院联合）
- **面向对象**: 大一、大二学生，预计 20-30 人
- **比赛形式**: 个人赛，周期 10 天
- **前置赛事**: 已举办过提示词比赛，本次升级为更实操的方向

### 核心理念
> **用 AI 做出来 > 自己从零写**
> 不考核编程底子，考核选手能否通过编写高质量的指令让 AI 完成任务。

### 比赛核心玩法
选手开发一个 Markdown 格式的技能文件（SKILL.md），让大语言模型在 Agent 环境中获得新的能力。所有选手的 Skill 在统一沙箱环境中、使用同一模型、跑同一套测试用例进行自动化评测。

---

## 2. 赛制设计

| 项目 | 说明 |
|------|------|
| 参赛形式 | 个人赛 |
| 交付物 | 一个 SKILL.md 文件（Markdown，≤50KB）+ 简短说明文档 |
| 开发工具 | 选手自行解决（Claude/ChatGPT/开源模型均可），组织方不提供 API 额度 |
| 提交规则 | 允许多次提交，以截止时间前最后一次为准 |
| 评审方式 | 统一沙箱环境 + 自动化评测 + 实时排行榜 |

### 评分权重

| 维度 | 权重 | 说明 |
|------|------|------|
| 任务完成率 | 50% | 二元评分（通过/不通过） |
| 输出质量 | 30% | 准确性、完整性、格式规范性（LLM-as-Judge） |
| 鲁棒性 | 20% | 边界情况、异常输入的处理能力 |

同分时以鲁棒性得分更高者优先。

---

## 3. 评测环境与沙箱设计

### 3.1 Docker 沙箱

**Dockerfile**:

```dockerfile
FROM ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

RUN apt-get update && apt-get install -y \
    python3.11 python3.11-venv python3-pip \
    curl git jq vim build-essential \
    && rm -rf /var/lib/apt/lists/*

RUN pip3 install --no-cache-dir \
    pandas matplotlib numpy scikit-learn \
    requests beautifulsoup4 openpyxl Pillow \
    chardet pyyaml jsonschema pytest rich typer

RUN useradd -m -s /bin/bash contestant && \
    mkdir -p /input /output /workspace && \
    chown -R contestant:contestant /input /output /workspace

VOLUME ["/input", "/output", "/workspace"]
USER contestant
WORKDIR /workspace
CMD ["/bin/bash"]
```

### 3.2 资源限制

```python
SANDBOX_CONFIG = {
    "cpu_count": 2,
    "cpu_period": 100000,
    "cpu_quota": 200000,         # 2 CPU
    "mem_limit": "2g",
    "memswap_limit": "2g",       # swap = 0
    "network_mode": "none",      # 无网络
    "cap_drop": ["ALL"],
    "security_opt": ["no-new-privileges:true"],
    "pids_limit": 128,
    "timeout": 600,              # 10 分钟
}
```

### 3.3 文件系统

```
/input/      只读 — 测试数据
/output/     读写 — 结果输出
/workspace/  读写 — 工作目录
```

### 3.4 安全隔离

| 层次 | 措施 |
|------|------|
| 网络 | `network_mode: none` — 完全断网 |
| 用户 | 非 root 运行 |
| Capability | `cap_drop: ALL` |
| 进程 | `pids_limit: 128` — 防 fork bomb |
| 内存 | 禁止 swap |
| 文件 | `/input` 只读挂载 |
| 超时 | 编排器 10min 强杀 |

---

## 4. 评测平台技术架构

### 4.1 整体架构

```
选手提交 SKILL.md
       │
       ▼
┌─────────────────┐
│   提交系统       │  GitHub PR（推荐）
└────────┬────────┘
         │ 触发 webhook
         ▼
┌─────────────────────────────────────────┐
│              评测编排器                   │
│           (judge_runner.py)             │
│  1. 读取 SKILL.md → 注入 System Prompt  │
│  2. 启动 Docker 沙箱容器               │
│  3. 调用 LLM API (function calling)    │
│  4. LLM 通过 tool call 操作沙箱        │
│  5. 收集输出 → 评分模块                │
└────────┬────────────────────────────────┘
         │
         ▼
┌─────────────────┐     ┌──────────────────┐
│  评分模块        │────▶│  排行榜           │
│  (scorer.py)    │     │  静态 HTML + JSON │
└─────────────────┘     └──────────────────┘
```

### 4.2 System Prompt 注入

```python
def build_system_prompt(skill_md: str, task: dict) -> str:
    return f"""
你是一名参加 AI 编程挑战赛的 AI 助手。

## 你的能力档案（SKILL.md）
{skill_md}

## 当前任务
{task["description"]}

## 可用工具
- execute_bash：执行 shell 命令
- write_file：写入文件
- read_file：读取文件
- execute_python：执行 Python 代码
- list_files：列出目录

## 工作目录
- /workspace：工作目录（读写）
- /input：输入数据（只读）
- /output：输出目录

## 重要规则
1. 将结果写入 /output/
2. 不要尝试访问网络
3. 专注完成任务
""".strip()
```

### 4.3 Tool 定义

| 工具名 | 功能 | 参数 |
|--------|------|------|
| `execute_bash` | 执行 shell 命令 | `command`, `working_dir`, `timeout` |
| `write_file` | 写文件 | `path`, `content` |
| `read_file` | 读文件 | `path`, `max_bytes` |
| `execute_python` | 执行 Python 代码 | `code`, `timeout` |
| `list_files` | 列目录 | `path` |

### 4.4 LLM Agent 循环

- 最多 20 轮 tool call
- 全局 10 分钟超时
- 无 tool call 时认为任务完成
- 记录 token 用量

### 4.5 提交系统（推荐 GitHub PR）

```
ai-cube-challenge/
├── submissions/
│   ├── alice/
│   │   └── SKILL.md
│   └── bob/
│       └── SKILL.md
├── tasks/
│   └── *.json
└── .github/workflows/judge.yml  ← 自动触发评测
```

### 4.6 目录结构

```
/opt/ai-cube/
├── sandbox/Dockerfile
├── judge/
│   ├── judge_runner.py     # 评测主流程
│   ├── llm_loop.py         # LLM agent 循环
│   ├── sandbox_tools.py    # tool 定义与执行
│   ├── scorer.py           # 评分模块
│   ├── queue_worker.py     # 队列守护进程
│   └── init_db.py          # 数据库初始化
├── leaderboard/
│   ├── index.html
│   └── leaderboard.json
├── tasks/*.json
├── data/judge.db
└── deploy.sh
```

---

## 5. 测试用例详细设计

### 5.1 总览

| 场景 | 类型 | 数量 | 难度 |
|------|------|------|------|
| A | 文件处理与转换 | 8 题 | ⭐ 入门 |
| B | 数据分析与可视化 | 8 题 | ⭐⭐ 进阶 |
| C | 代码生成与调试 | 8 题 | ⭐⭐ 进阶 |
| D | 复合工作流 | 6 题 | ⭐⭐⭐ 挑战 |
| **合计** | | **30 题** | |

---

### 场景 A：文件处理与转换（⭐ 入门，8 题）

#### A01 — 批量文件重命名

**任务**: `/input/photos/` 下 6 个图片文件名杂乱。按 `photo_001.jpg` 格式重命名，编号从 001 开始，按原文件名字母序排列，扩展名统一小写。

**输入**:
```
/input/photos/
├── DSC00123.JPEG
├── IMG_001.jpg
├── IMG_002.jpg
├── photo_2024_03.png
├── Screenshot_2024.PNG
└── vacation.jpg
```

**评分**: 文件数量正确(25%) + 文件名格式(25%) + 编号排序(25%) + 扩展名小写(25%)

**边界**: 大写扩展名、超过 9 个文件补零、空目录

---

#### A02 — CSV 转 JSON

**任务**: `/input/students.csv` → `/output/students.json`，数字字段转数值类型。

**输入**: 5 行学生数据（name, age, score, city）

**评分**: 合法 JSON(20%) + 记录数(20%) + 字段完整(30%) + 数值类型正确(30%)

**边界**: score 为整数形式(60.0)、CSV 空行、中文城市名

---

#### A03 — 日志文件解析与提取

**任务**: 解析 `/input/app.log`（20 行），提取 ERROR 行到 `errors.txt`，统计各级别次数到 `summary.txt`。

**输入**: INFO×8, DEBUG×5, ERROR×4, WARNING×3

**评分**: errors.txt 行数(25%) + 内容(25%) + summary 格式(25%) + 排序与计数(25%)

**边界**: 消息体含 ERROR 字样、次数相同排序

---

#### A04 — 多文件文本合并与去重

**任务**: 3 个词表文件合并、去重（大小写不敏感）、字母序、全小写输出。

**输入**: 21 词，去重后 15 词

**评分**: 行数(25%) + 全小写(25%) + 无重复(25%) + 字母序(25%)

**边界**: 文件末尾换行符、空文件

---

#### A05 — CSV 过滤与字段裁剪

**任务**: 读 employees.csv，筛 Engineering 且 salary > 15000，只保留 3 列，salary 降序。

**输入**: 10 行，符合条件 4 人

**评分**: 列数(25%) + 行数(25%) + 筛选(25%) + 排序(25%)

**边界**: salary 恰好等于 15000（严格大于）

---

#### A06 — JSON 转 XML

**任务**: books.json → books.xml，根元素 `<library>`，2 空格缩进，XML 声明行。

**输入**: 4 本书

**评分**: 合法 XML(25%) + 根元素与数量(25%) + 字段完整(25%) + 内容正确(25%)

**边界**: 特殊字符转义（&, <）、浮点位数宽松

---

#### A07 — 文本编码检测与转换

**任务**: 3 个不同编码文件（GBK/Latin-1/UTF-8）统一转 UTF-8，生成编码报告。

**评分**: 输出均为 UTF-8(30%) + 语义正确(30%) + 报告格式(20%) + 字母序(20%)

**边界**: GBK 用 UTF-8 打开报错、chardet 置信度低

---

#### A08 — 大文件分割与重组校验

**任务**: 1000 行 CSV 按 200 行分割为 5 个 chunk，每片含表头，生成 manifest.json。

**评分**: 分片数(20%) + 含表头(20%) + 行数与 id 范围(30%) + manifest(30%)

**边界**: 总行数非整除、文件编号补零

---

### 场景 B：数据分析与可视化（⭐⭐ 进阶，8 题）

#### B01 — 基础统计汇总

**任务**: 50 行销售数据，计算 mean/median/std/max/min，输出 summary_stats.csv，保留 2 位小数。

**评分**: 格式(20%) + 统计量种类(20%) + 数值误差≤0.01(40%) + 小数位(20%)

---

#### B02 — 分组聚合与排名

**任务**: 120 行区域销售，按 region+category 分组，计算 total_revenue/order_count，组内排名。

**评分**: 行数(20%) + 聚合值(30%) + 组内排名(30%) + 排序(20%)

---

#### B03 — 缺失值处理与插补

**任务**: 传感器数据，temperature 用同 sensor_id 中位数填充，humidity 线性插值。

**评分**: 无缺失(25%) + temperature 正确(30%) + humidity 正确(25%) + 报告(20%)

**边界**: 首末行缺失（边界外插值）

---

#### B04 — 时间序列趋势分析

**任务**: 365 天访客数据，计算 7 日/30 日滚动均值 + 周环比变化率。

**评分**: 列名(20%) + rolling_7d(25%) + rolling_30d(25%) + wow_change(30%)

**边界**: 窗口不足用 NaN、除零

---

#### B05 — 异常值检测与标记

**任务**: 200 行制造数据，IQR 方法检测异常，添加 is_anomaly + anomaly_fields 列，输出统计 JSON。

**评分**: 新增列格式(20%) + is_anomaly(30%) + anomaly_fields(20%) + JSON 统计(30%)

---

#### B06 — 相关性分析与热力图

**任务**: 100 行房产数据，Pearson 相关矩阵 + coolwarm 热力图（800×700px）。

**评分**: 矩阵维度(20%) + 对角线(15%) + 系数误差≤0.001(35%) + PNG 有效(15%) + 尺寸(15%)

---

#### B07 — 多图表综合可视化

**任务**: 季度报告数据，2×2 四格图（柱状图/折线图/饼图/散点图），1200×900px。

**评分**: PNG 有效+尺寸(20%) + 4 个子图(20%) + 标题(20%) + 折线数据点(20%) + 饼图分块(20%)

---

#### B08 — 数据透视表与多维分析

**任务**: 360 行电商数据，输出透视表(含 Total 行列) + 月度增长率 + Top-3 品类报告。

**评分**: 透视表维度(20%) + 数值(25%) + Total 计算(15%) + 增长率(20%) + Top-3(20%)

**边界**: 某月某品类无订单(填 0)、第 1 月增长率为 NaN

---

### 场景 C：代码生成与调试（⭐⭐ 进阶，8 题）

#### C01 — 三种排序算法对比

**任务**: 实现 BubbleSort/QuickSort/MergeSort，对 5000 整数(seed=42)计时，输出 FASTEST=。

**评分**: 三种可运行(30%) + 结果一致(30%) + 计时逻辑(20%) + FASTEST 格式(20%)

---

#### C02 — 修复 4 处 Bug 的数据清洗脚本

**任务**: buggy_cleaner.py 有 4 处 bug（fillna→dropna / 大小写 / 日期格式 / 列名），修复使其通过测试。

**评分**: 每个 Bug 各 20% + 可运行(20%)

---

#### C03 — 词频分析 CLI 工具

**任务**: 实现 wordfreq.py，支持 --top N / --exclude / --output，按频次降序+字母升序。

**评分**: argparse(20%) + 分词(20%) + 停用词(20%) + 排序规则(20%) + CSV 输出(20%)

---

#### C04 — BankAccount 单元测试套件

**任务**: 为 BankAccount 类编写 ≥10 个 test_ 方法，覆盖所有 ValueError 场景。

**评分**: 数量≥10(20%) + ValueError 覆盖(30%) + 正常流程(30%) + 全部通过(20%)

---

#### C05 — Nginx 日志正则解析

**任务**: 500 行日志，正则提取字段、状态码统计、错误导出 CSV、路径穿越攻击检测。

**评分**: 正则正确(30%) + 状态码(20%) + errors.csv(25%) + 攻击检测(25%)

**边界**: URL 编码 `%2e%2e`、格式异常行

---

#### C06 — LRU Cache 实现

**任务**: 不用 OrderedDict，手动双向链表+哈希表，通过 20 个测试用例。

**评分**: 20 测试通过(50%) + 手动实现(25%) + 逻辑正确(25%)

---

#### C07 — 优化低效数据处理代码

**任务**: O(n²) 嵌套循环 + apply lambda → 优化至 10 倍提速，输出不变。

**评分**: 记录数一致(40%) + 时间 < 2s(30%) + 消除 O(n²)(20%) + 注释(10%)

---

#### C08 — 四则运算表达式解析器

**任务**: 实现 evaluate() 支持 +-*/、括号嵌套、优先级，不用 eval()。

**评分**: 基础运算(25%) + 优先级(25%) + 括号(25%) + 异常处理(25%)

---

### 场景 D：复合工作流（⭐⭐⭐ 挑战，6 题）

#### D01 — 多班成绩聚合 → 统计 → 可视化报告

**输入**: 3 个班级 CSV + weights.json，含缺失值和负分
**输出**: 箱线图 + 雷达图 + 直方图 + report.txt
**评分**: 清洗(20%) + 加权总分(20%) + 三张图(30%) + 报告(30%)

---

#### D02 — Web 日志分析 → 异常检测 → 告警报告

**输入**: 10000 行 Nginx 日志 + alert_rules.json（暴力破解/大文件/错误率）
**输出**: alert_report.xlsx(3 Sheet) + alert_email.txt + timeline.png
**评分**: 日志解析(15%) + 三条告警(35%) + Excel(25%) + 时间图(15%) + 邮件(10%)

---

#### D03 — 电商数据清洗 → 特征工程 → 建模 → 报告

**输入**: 50000 行脏数据 + 商品表
**输出**: cleaned_data.csv + model_report.txt + feature_importance.png + cleaning_log.txt
**评分**: 清洗(25%) + 特征工程(25%) + 模型(20%) + 报告(20%) + 日志(10%)

---

#### D04 — 批量图片处理 → 元数据 → Excel 报告

**输入**: 50 张图片 + processing_rules.json（resize/watermark/convert/filter）
**输出**: processed/(45 张) + report.xlsx(3 Sheet) + thumbnail_grid.png
**评分**: resize(20%) + 水印(15%) + 过滤(15%) + Excel(25%) + 缩略图(25%)

---

#### D05 — 模拟股票回测 → 策略对比 → 性能报告

**输入**: 5 支股票 2 年日线 + strategy_config.json(MA_Cross + RSI) + 基准
**输出**: backtest_results.xlsx(3 Sheet) + strategy_comparison.png + drawdown.png + report.txt
**评分**: 信号生成(25%) + 资金管理(15%) + 性能指标(25%) + 图表(20%) + 报告(15%)

---

#### D06 — 结构化日志 + 配置 + 模板 → 多格式运维周报（终极挑战）

**输入**: 7 天 JSONL 日志 + CPU/内存 CSV + 延迟 CSV + report_config.yaml + email_template.txt + incident_log.csv
**7 步有依赖关系的任务**:
1. 解析 JSONL → 按服务/级别/小时聚合
2. 解析 metrics → 计算均值/峰值/异常
3. 关联 1+2 → SLA 达标
4. 解析故障 → MTTR
5. 生成 3 张图（热力图/趋势图/瀑布图）
6. 填充邮件模板
7. 生成 Excel(5 Sheet) + 文本报告(80 列对齐)

**评分**: 数据解析(15%) + SLA(15%) + 故障(10%) + 图表(20%) + 邮件(15%) + Excel(15%) + 文本(10%)

---

### 难度分布总览

```
A01 ████░░░░░░  入门    A05 ██████░░░░  初级
A02 ████░░░░░░  入门    A06 ██████░░░░  初级
A03 █████░░░░░  入门    A07 ███████░░░  中级
A04 █████░░░░░  入门    A08 ████████░░  中级

B01 █████░░░░░  初级    B05 ████████░░  中级
B02 ██████░░░░  初级    B06 ████████░░  中高
B03 ███████░░░  中级    B07 █████████░  高级
B04 ███████░░░  中级    B08 ██████████  高级

C01 █████░░░░░  初级    C05 ████████░░  中级
C02 ██████░░░░  初级    C06 █████████░  高级
C03 ███████░░░  中级    C07 █████████░  高级
C04 ███████░░░  中级    C08 ██████████  高级

D01 ████████░░  高级    D04 █████████░  高级
D02 █████████░  高级    D05 ██████████  挑战
D03 █████████░  高级    D06 ██████████  终极
```

---

## 6. 评分系统详细设计

### 6.1 任务完成率（50%）

**判定规则**:

| 任务类型 | 通过条件 |
|----------|----------|
| 文件输出类 | 文件存在 AND 内容匹配 |
| 数据分析类 | 数值在容差内 AND 图表存在 |
| 代码生成类 | 执行无异常 AND stdout 匹配 |
| 复合任务类 | 加权子步骤分 ≥ 60% |

**统一约定**:

| 约定 | 说明 |
|------|------|
| 数值误差 | 浮点比较用绝对误差，阈值见各用例 |
| 字符串匹配 | 文件名、列名大小写敏感 |
| 编码 | 所有输出文件 UTF-8 |
| 换行符 | LF 和 CRLF 均接受 |

### 6.2 输出质量（30%）— LLM-as-Judge

**1-5 分制**:

| 分数 | 含义 |
|------|------|
| 5 | 完全满足，超出预期 |
| 4 | 满足关键要求，少量瑕疵 |
| 3 | 基本满足，明显不足 |
| 2 | 部分完成，重要缺失 |
| 1 | 几乎不满足 |

**三维度评估**:
- **准确性**(Accuracy): 事实/计算/逻辑是否正确
- **完整性**(Completeness): 是否覆盖所有要求元素
- **格式规范**(Format): 输出格式是否符合规定

**防偏差策略**:
1. 多模型投票（2 个 LLM 各打分）
2. 一致性检验（分差 > 1 触发第 3 次仲裁）
3. temperature=0 减少随机性
4. 结果取中位数

**各任务类型权重**:

| 类型 | 准确性 | 完整性 | 格式 |
|------|--------|--------|------|
| 文件输出 | 30% | 40% | 30% |
| 数据分析 | 50% | 30% | 20% |
| 代码生成 | 50% | 30% | 20% |
| 复合任务 | 40% | 40% | 20% |

### 6.3 鲁棒性（20%）

**设计原则**:
1. 正交覆盖 — 每个边界用例只测一个边界
2. 梯度难度 — Easy(权重1) / Medium(权重2) / Hard(权重3)
3. 黑盒注入 — 通过沙箱环境参数修改，选手不可见

**典型边界用例**:

| 场景 | 用例 | 难度 |
|------|------|------|
| 文件 | 输入为空 | Easy |
| 文件 | 10MB 大文件 | Medium |
| 文件 | 含 emoji/CJK | Medium |
| 文件 | 输出目录只读 | Hard |
| 数据 | 全 NaN | Medium |
| 数据 | 仅一条数据 | Easy |
| 数据 | 含 Inf/-Inf | Hard |
| 代码 | 无输入参数 | Easy |
| 代码 | N=10^6 大输入 | Medium |
| 代码 | 路径含空格 | Medium |
| 复合 | 前置步骤失败 | Hard |
| 复合 | 中间步骤超时 | Hard |

**鲁棒性分 = Σ(通过用例权重) / Σ(所有用例权重)**

### 6.4 总分公式

```
Total = Completion × 0.50 + Quality × 0.30 + Robustness × 0.20
```

每项 [0.0, 1.0]，总分缩放到 [0, 100]。

**同分排名规则（按优先级）**:
1. 完成率更高
2. 质量分更高
3. 提交次数更少
4. 首次达到该分数的时间更早

---

## 7. 排行榜与防作弊

### 7.1 排行榜数据结构

```json
{
  "updated_at": "2026-03-25T21:00:00",
  "contestants": [
    {
      "rank": 1,
      "name": "Alice",
      "tasks_completed": 28,
      "total_score": 87.5,
      "completion": 92.0,
      "quality": 85.3,
      "robustness": 78.6,
      "submission_count": 5,
      "last_submission": "2026-03-25T20:30:00"
    }
  ]
}
```

### 7.2 排行榜页面

- 静态 HTML + JSON，每 30 秒自动刷新
- 深色主题，分数条形可视化
- 前三名特殊标记（金/银/铜）
- 可部署到 GitHub Pages（免费）

### 7.3 防作弊

| 措施 | 实现 |
|------|------|
| 相似度检测 | SequenceMatcher，阈值 0.85 标记 / 0.95 自动取消 |
| 提交频率限制 | 每小时 ≤5 次，每天 ≤20 次 |
| 异常模式检测 | 分数突变 >40 / 完美首提 / 间隔 <30s |
| 沙箱哈希 | 记录环境镜像哈希，保证可复现 |

---

## 8. Workshop 与选手指南

### 8.1 Workshop 大纲（90 分钟）

| 时段 | 时长 | 环节 |
|------|------|------|
| 0:00-0:10 | 10 min | 开场破冰 + 比赛介绍 |
| 0:10-0:35 | 25 min | AI 工具快速入门（LLM/Agent/Prompt Engineering） |
| 0:35-1:05 | 30 min | SKILL.md 编写入门（结构/技巧/示例） |
| 1:05-1:30 | 25 min | 现场动手练习 |
| 1:30-1:50 | 20 min | 作品展示 + 答疑 |

### 8.2 SKILL.md 标准模板

```markdown
# [Skill 名称]

## 角色（Role）
你是一位 [具体角色]，专长于 [领域]。

## 任务（Task）
[1-3 句话清晰描述]

## 输入（Input）
- `[参数名]`：[说明，类型，是否必填]

## 执行步骤（Steps）
1. [第一步：做什么]
2. [第二步]
3. [第三步]

## 错误处理（Error Handling）
- 如果 [情况 A]：[处理方式]
- 如果 [情况 B]：[处理方式]

## 输出格式（Output Format）
[具体模板或示例]

## 注意事项（Notes）
- [约束或偏好]
```

### 8.3 编写十大原则

1. **先定角色，再给任务**
2. **步骤原子化，一步一事**
3. **给输出"画像"（模板/示例）**
4. **显式处理异常情况**
5. **用数字列表，不用大段文字**
6. **避免模糊词（"尽量"→具体数字）**
7. **告诉 AI "不要做什么"**
8. **用 AI 检查你的 SKILL.md**
9. **版本迭代，不求一次完美**
10. **保持简洁，删掉废话**

### 8.4 示例 SKILL.md（文件批处理专家）

```markdown
# 文件批处理专家

## 角色
你是专业的文件批处理工程师，做事严谨，优先保证数据安全。

## 任务
对指定目录中的 .txt 文件执行批量处理：读取→清理→统计→保存→报告。

## 执行步骤

### 第一步：环境检查
1. 确认 source_dir 存在且可读
   - 不存在 → 立即停止，报告错误
2. 查找所有 .txt 文件（不递归子目录）
   - 无文件 → 报告警告，停止

### 第二步：逐文件处理
1. UTF-8 读取（失败则跳过，标记[失败]）
2. 删除空行，去除首尾空白
3. 统计：清理后行数、单词数、字符数
4. 保存到 output_dir/[原文件名]

### 第三步：生成报告
输出 Markdown 格式汇总报告。

## 错误处理
| 情况 | 处理 |
|------|------|
| 目录不存在 | 立即停止 |
| 无 .txt 文件 | 报告警告 |
| 单文件读取失败 | 跳过，继续其他 |
| 写入失败 | 跳过，继续其他 |

## 注意事项
- 不要修改原始文件
- 文件超过 100 个时每 10 个打印进度
```

### 8.5 面向选手的评分说明

**任务完成率**: AI 按你的 SKILL.md 工作，多少任务真正完成了？→ 步骤要具体

**输出质量**: 完成得漂不漂亮、准不准确？→ 给出具体输出模板

**鲁棒性**: 遇到奇怪情况会不会崩？→ 覆盖更多异常情况

| 想提高 | 重点优化 |
|--------|----------|
| 完成率 | 执行步骤更细更具体 |
| 输出质量 | 输出格式给出真实示例 |
| 鲁棒性 | 错误处理覆盖更多情况 |
| 全面提升 | 用 AI 审查你的 SKILL.md |

---

## 9. 赛事运营与宣传

### 9.1 完整时间线

| 阶段 | 时间 | 内容 |
|------|------|------|
| 宣传招募 | D-14 ~ D-9 | 海报+推文+班级群+辅导员转发 |
| Workshop | D-5 | 90 分钟，含现场练习 |
| 热身题 | D-3 | 选做不计分，降低陌生感 |
| 规则说明会 | D-2 | 30 分钟线上 |
| **开赛** | **Day 1** | 公布任务，开放提交 |
| 每日运营 | Day 1-9 | 排行榜播报 + 答疑 + Hint |
| 中期报告 | Day 5 | 亮点展示 + 激励 |
| **截止** | **Day 10 23:59** | 锁定提交 |
| 评审 | Day 11-12 | 内部评审 + 争议处理 |
| 公示 | Day 13 | 24h 申诉期 |
| **颁奖** | **Day 14** | 颁奖典礼 + 分享会 |

### 9.2 宣传文案（朋友圈版）

```
AI Cube 来了

上学期你用 AI 聊过天，
这学期——你能不能让 AI 帮你做一件真正有用的事？

「AI Cube 人工智能春季挑战赛」来了。
不比知识，比创意。不考代码，比你能用 AI 解决什么问题。

10 天 | 个人赛 | 面向大一大二
奖金 + 证书 + 综测加分

还有 Workshop，零基础也能玩明白。
```

### 9.3 奖项设置

| 奖项 | 名额 | 评选标准 |
|------|------|----------|
| 一等奖 | 1 | 综合第 1 |
| 二等奖 | 2 | 综合 2-3 |
| 三等奖 | 3 | 综合 4-6 |
| 最具创意奖 | 1 | 创意维度最高 |
| 最佳工程奖 | 1 | 技术最完整 |
| 最佳坚持奖 | 1 | 每天都有提交 |
| 参与奖 | 全员 | ≥1 次有效提交 |

### 9.4 三档预算方案

| 预算 | 一等奖 | 二等奖×2 | 三等奖×3 | 特别奖 |
|------|--------|----------|----------|--------|
| 500 元 | 200 元京东卡 | 各 50 元 | 各 20 元 | 咖啡券+书券 |
| 1000 元 | 400 元京东卡 | 各 100 元 | 各 50 元 | 100 元图书卡 |
| 2000 元 | 800 元+书 | 各 200 元 | 各 100 元 | 200 元+奖杯 |

### 9.5 比赛期间运营要点

- **每日排行榜** 21:00 发布，制造"今晚要上榜"动力
- **三级答疑**: 群内自助 → 群内提问(30min 响应) → Office Hour(每周二次)
- **Hint 发布**: Day 4 + Day 6，方向性提示，不是答案
- **中期激励**: Day 5 展示亮点思路（脱敏），Day 7 给沉默选手私信鼓励
- **最终冲刺**: Day 9 倒计时推送

### 9.6 风险预案

| 风险 | 应对 |
|------|------|
| 参赛不足 | 组委会点对点邀请+延期 3 天 |
| 技术困难 | 1对1 指导 + FAQ 持续更新 |
| 平台故障 | <1h 延迟发榜 / 1-4h 补偿时长 / >4h 延赛 1 天 |
| 争议申诉 | 公示后 24h 内申诉，48h 内答复 |

---

## 10. 比赛规则正式文档

### 第一章 总则

1. 本规则是赛事最终解释依据。
2. 面向先进制造学院大一、大二本科生。
3. 个人赛。

### 第二章 参赛资格

4. 本院在读大一/大二本科生，在规定时间内完成报名。
5. 组委会成员不参加评奖。
6. 每人只能一个账号。

### 第三章 比赛内容

7. 考察 Prompt 工程、AI 工具调用、流程编排能力。
8. 交付物: SKILL.md（≤50KB）+ 简短说明。
9. 比赛时间: 10 天（Day 1 09:00 ~ Day 10 23:59）。
10. 多次提交，以最高分记录为准。

### 第四章 评分标准

11. 满分 100: 任务完成(50%) + 输出质量(30%) + 鲁棒性(20%)。
12. 自动评测 + LLM-as-Judge + 人工评审。
13. 同分以最后达到该分数时间早者优先。

### 第五章 奖项

14. 一等奖×1 + 二等奖×2 + 三等奖×3 + 特别奖×3 + 参与奖全员。
15. 排名奖与特别奖可兼得（最多各一项）。

### 第六章 行为规范

16. **允许**: 查资料、用 AI 工具、讨论思路。
17. **禁止**: 抄袭、多账号、攻击平台、共谋、数据造假。
18. 使用开源代码须注明来源。

### 第七章 版权

19. 作品知识产权归参赛者。
20. 主办方可用于宣传展示（征得同意、注明作者）。

### 第八章 申诉

21. 成绩公示后 24 小时内提交申诉。
22. 48 小时内书面答复。
23. 涉及技术判断由指导老师裁决，为最终决定。

### 第九章 违规处理

| 情节 | 处罚 |
|------|------|
| 轻微 | 警告 + 整改 |
| 较重 | 取消资格 |
| 严重 | 取消资格 + 上报学院 |

---

## 11. 成本估算与部署

### 11.1 API 成本

```
总评测次数 = 30人 × 5次提交 × 30题 = 4,500 次
单次 Token = ~15,000

GPT-4o-mini: ~$18 全赛季（推荐）
Claude Haiku: ~$108
Claude Sonnet: ~$450
```

### 11.2 服务器成本

| 用途 | 配置 | 月费 |
|------|------|------|
| 评测服务器 | 4C 8G（腾讯云/阿里云）| ¥150/月 |
| 排行榜 | GitHub Pages / Vercel | 免费 |
| **合计** | | **¥150/月 + $20 API** |

### 11.3 部署方案

- 服务器: 腾讯云 4 核 8GB Ubuntu 22.04 + Docker
- 存储: 50GB 系统盘
- 部署: 一键 deploy.sh（安装 Docker + 构建沙箱 + 配置 Nginx + 启动 systemd 服务）

---

## 12. 待确定事项与决策清单

| # | 事项 | 建议 | 优先级 |
|---|------|------|--------|
| 1 | 评测模型选择 | GPT-4o-mini（$18 全赛季） | P0 |
| 2 | 提交平台 | GitHub PR + 自动触发 | P0 |
| 3 | 奖品预算 | 建议 1000 元档 | P1 |
| 4 | 证书方案 | 院级荣誉证书 + 电子版 | P1 |
| 5 | API 预算来源 | 学院拨款 / 社团经费 | P0 |
| 6 | 综测加分 | 需提前与教务确认 | P1 |
| 7 | Workshop 日期/地点 | 赛前 5 天 | P1 |
| 8 | 评测服务器 | 组委会现有资源 or 新购 | P0 |
| 9 | 指导老师 | 需确认 1-2 位技术顾问 | P1 |
| 10 | 具体测试数据生成 | 需固定 seed 的脚本 | P0 |

---

> **本文档可直接用于项目启动。所有代码片段均可作为开发起点，所有文案可直接使用或微调后发布。**
