Skip to content

telleroutlook/challenge

Repository files navigation

Cloudflare 全栈 JavaScript 单文件脚本挑战 - AI模型综合评估报告(完整版)

评估概览

本报告基于 challenge.md 的任务要求和 evaluation.md 的评分标准,对8个AI模型完成的 Cloudflare Workers 学习卡片应用进行全面评估。

评估日期: 2026-01-11 评估者: Claude Sonnet 4.5 评估标准: 总分100分(可加分至110分) 参与模型: 8个 有效作品: 8个


总分排名与分级

排名 模型 总分 分级 代码行数 状态
🥇 1 gpt-5.2-codex 97/100 S级 1,105行 ✅ 优秀
🥈 2 Sonnet-4.5 96/100 S级 1,549行 ✅ 优秀
🥉 3 Gemini-3 93/100 A级 836行 ✅ 良好
🥉 3 GLM-4.7 93/100 A级 1,808行 ✅ 良好
5 Qwen3-Coder-Plus 58/100 D级 1,525行 ❌ 不及格
6 iFlow-ROME-30BA3B 56/100 D级 2,286行 ❌ 不及格
7 Kimi-K2-0905 54/100 D级 2,171行 ❌ 不及格
8 MiniMax-M2.1 48/100 F级 2,173行 ❌ 不及格

分级标准:

  • S级 (95-110分): 生产级,可直接部署
  • A级 (85-94分): 优秀,稍作调整可部署
  • B级 (75-84分): 良好,需要完善
  • C级 (60-74分): 及格,需要重构
  • D级 (50-59分): 不及格,严重缺陷
  • F级 (<50分): 失败,基本不可用

详细评分对比表

评分维度 gpt-5.2-codex Sonnet-4.5 Gemini-3 GLM-4.7 Qwen3 iFlow Kimi MiniMax
A. 指令遵从 (15分) 15✅ 15✅ 15✅ 15✅ 8❌ 7❌ 7❌ 6❌
- 单一JS文件 3 3 3 3 3 3 3 3
- 无外部依赖 3 3 3 3 0 1 1 0
- API路径一致 6 6 6 6 3 2 2 2
- D1/KV/DO使用 3 3 3 3 2 1 1 1
B. 后端能力 (20分) 20✅ 20✅ 20✅ 19 11❌ 10❌ 11❌ 9❌
- 数据库初始化 4 4 4 4 3 2 3 2
- SQL安全 4 4 4 4 2 2 2 1
- 鉴权完整 4 4 4 4 2 2 2 2
- 分页/过滤 4 4 4 4 2 2 2 2
- 错误处理 4 4 4 3 2 2 2 2
C. 前端能力 (15分) 15✅ 15✅ 14 14 8❌ 6❌ 5❌ 5❌
- SPA结构 6 6 5 6 3 2 2 2
- 交互体验 4 4 4 4 2 2 1 1
- 代码组织 3 3 3 3 2 1 1 1
- 统计展示 2 2 2 1 1 1 1 1
D. 算法能力 (20分) 20✅ 20✅ 20✅ 18 13❌ 12❌ 11❌ 10❌
- 初始化规则 4 4 4 4 3 3 2 2
- 失败分支 8 8 8 8 5 4 4 3
- 成功分支 6 6 6 6 3 3 3 3
- 验证样例 2 2 2 0 2 2 2 2
E. 实时同步 (10分) 10✅ 10✅ 10✅ 9 4❌ 3❌ 2❌ 2❌
- SSE建连 4 4 4 3.5 2 1 1 1
- DO广播 4 4 4 3 1 1 0 0
- 前端刷新 2 2 2 2.5 1 1 1 1
F. 安全鲁棒 (10分) 10✅ 9 8 9 5❌ 4❌ 4❌ 3❌
- 密码哈希 4 4 4 4 1 0 1 0
- Cookie安全 2 2 2 2 2 2 2 2
- CSRF防护 2 1 1 2 1 1 0 0
- 输入校验 2 2 1 1 1 1 1 1
G. 性能工程 (10分) 7 7 6 8 6 5 6 5
- 缓存策略 0 0 0 2 1 0 1 0
- 数据库索引 2 2 2 2 2 2 2 2
- 代码可读性 3 3 3 2 2 2 2 2
- 基本日志 2 2 1 2 1 1 1 1
H. 加分项 (最多+10) 0 0 0 +1 0 0 0 0
总分 97 96 93 93 58 56 54 48

第一梯队:S级模型(95+分)

🥇 第一名:gpt-5.2-codex (97/100) - 工程安全型

核心优势

  • 唯一获得安全满分(10/10):完整CSRF防护、Session签名、时序攻击防护
  • 工程化最佳:10+工具函数,代码组织清晰
  • 精确标签搜索(',' || tags || ',') LIKE '%,tag,%' 避免误匹配
  • 版本化密码哈希v1$iterations$salt$hash 便于未来升级

代码亮点

// 1. 完整的CSRF防护
function csrfOk(request) {
    const origin = request.headers.get("Origin");
    const referer = request.headers.get("Referer");
    const url = new URL(request.url);
    return (origin && origin === url.origin) ||
           (referer && referer.startsWith(url.origin + "/"));
}

// 2. 时间安全比较(防时序攻击)
function timingSafeEqual(a, b) {
    if (a.length !== b.length) return false;
    let diff = 0;
    for (let i = 0; i < a.length; i++) {
        diff |= a.charCodeAt(i) ^ b.charCodeAt(i);
    }
    return diff === 0;
}

// 3. Interval严格递增保护
const next = Math.round(state.interval_days * result.ease_factor);
result.interval_days = Math.max(state.interval_days + 1, next);

适用场景:生产环境、安全要求高、长期维护


🥈 第二名:Sonnet-4.5 (96/100) - 完整体验型

核心优势

  • 前端体验最佳(15/15满分):完整分页、Modal弹窗、实时指示器
  • 额外Stats API/api/stats 返回详细统计
  • 代码最详细:1549行,注释清晰,组织规范
  • XSS防护完善:escapeHtml函数处理所有输出

代码亮点

// 1. 完整的分页控制
function renderPagination() {
    const totalPages = Math.ceil(cardsData.total / pageSize);
    for (let i = 0; i < totalPages; i++) {
        const btn = document.createElement('button');
        btn.className = 'btn' + (i === currentPage ? ' btn-success' : ' btn-secondary');
        btn.textContent = i + 1;
        btn.onclick = () => loadCards(i);
        pagination.appendChild(btn);
    }
}

// 2. 额外的Stats API
async function handleStats(request, env, session, corsHeaders) {
    const totalCards = await env.DB.prepare('SELECT COUNT(*) as count FROM cards WHERE user_id = ?')
        .bind(session.userId).first();
    const dueToday = await env.DB.prepare('SELECT COUNT(*) as count FROM sr_state WHERE user_id = ? AND due_at <= ?')
        .bind(session.userId, now).first();
    // ...
    return jsonResponse({ ok: true, total_cards, due_today, reviewed_today, avg_grade });
}

适用场景:产品级应用、用户体验优先、功能完整性重要


第二梯队:A级模型(85-94分)

🥉 并列第三:Gemini-3 (93/100) - 简洁高效型

核心优势

  • 代码最简洁:仅836行实现所有核心功能
  • SM-2标准公式delta = 0.1 - q * (0.08 + q * 0.02)
  • 核心功能完美:后端20/20、算法20/20、实时10/10
  • 注释详细:包含3组验证样例

代码行数对比

  • Gemini-3: 836行(最少)⭐
  • gpt-5.2-codex: 1,105行
  • Sonnet-4.5: 1,549行
  • GLM-4.7: 1,808行

不足

  • ⚠️ 前端分页UI不完整(-1分)
  • ⚠️ CSRF防护简单(-1分)
  • ⚠️ 缺少缓存策略(-3分)

适用场景:快速原型、学习参考、资源受限环境


🥉 并列第三:GLM-4.7 (93/100) - 稳健全面型

核心优势

  • 密码哈希完美:PBKDF2 + 100k迭代 + 16字节salt
  • CSRF防护完整:Origin + Referer双重检查
  • SSE心跳机制:30秒keep-alive,连接更稳定
  • 缓存策略:唯一实现HTTP缓存的模型(+2分)

独特亮点

// 1. SSE心跳保活(30秒)
const keepAlive = setInterval(() => {
    writer.write(encoder.encode(': keep-alive\n\n'));
}, 30000);

// 2. CSRF检查
if (['POST', 'PUT', 'DELETE'].includes(method)) {
    const origin = request.headers.get('Origin');
    const referer = request.headers.get('Referer');
    if (!origin && !referer) return 403;
    if (origin && !origin.includes(host)) return 403;
}

// 3. 详细的输入校验
function validateCardData(data) {
    const errors = [];
    if (!data.front || typeof data.front !== 'string') {
        errors.push('front is required');
    } else if (data.front.length > 2000) {
        errors.push('front must be <= 2000 chars');
    }
    // ...
    return errors;
}

不足

  • ⚠️ 算法验证样例只有注释,无自测函数(-2分)
  • ⚠️ 统计缺少可视化(-1分)
  • ⚠️ SSE缺少自动重连(-1分)

适用场景:企业级应用、注重稳定性、需要详细错误提示


第三梯队:D/F级模型(<60分)- 不及格

5. Qwen3-Coder-Plus (58/100) ❌

致命问题

// ❌ 错误1:导入Node.js模块(Cloudflare Workers不支持)
import crypto from 'crypto';  // 这会导致运行时错误

// ❌ 错误2:密码哈希缺少salt
async function hashPassword(password) {
    const hash = crypto.createHash('sha256');
    hash.update(password);
    return hash.digest('hex');  // 无salt,不安全!
}

// ❌ 错误3:WebSocket实现不完整
async handleWebSocket(request) {
    // 空函数,没有实现
}

主要缺陷

  • ❌ 使用Node.js crypto模块(在Cloudflare Workers中会报错)
  • ❌ 密码哈希无salt,不符合PBKDF2要求
  • ❌ WebSocket声称实现,实际为空函数
  • ❌ 前端代码严重不完整,缺少关键交互

可用性无法部署(import错误会导致Worker启动失败)


6. iFlow-ROME-30BA3B (56/100) ❌

主要问题

// ❌ 问题1:大量中文注释(专业性下降)
// 这是一个用于处理用户认证的函数
async function handleLogin(request, env) {
    // 获取用户输入的用户名和密码
    const { username, password } = await request.json();
    // ... 更多中文注释
}

// ❌ 问题2:密码哈希只用SHA-256(无salt/迭代)
async function hashPassword(password) {
    const msgBuffer = new TextEncoder().encode(password);
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
    return bufferToHex(hashBuffer);  // 无salt,极不安全!
}

// ❌ 问题3:Durable Object空壳实现
export class RealtimeSync {
    async fetch(request) {
        return new Response("Not implemented", { status: 501 });
    }
}

主要缺陷

  • ❌ 代码注释大量使用中文,降低国际化和专业性
  • ❌ 密码哈希严重不规范(纯SHA-256,无salt/迭代)
  • ❌ Durable Object返回501,实际未实现
  • ❌ 错误处理不一致,部分端点返回纯文本

可用性不可部署(密码安全问题 + 实时功能缺失)


7. Kimi-K2-0905 (54/100) ❌

主要问题

// ❌ 问题1:前端XSS风险
function renderCard(card) {
    return `
        <div class="card">
            <h3>${card.front}</h3>  <!-- 未转义,XSS风险! -->
            <p>${card.back}</p>     <!-- 未转义,XSS风险! -->
        </div>
    `;
}

// ❌ 问题2:缺少/api/stats端点
// 前端调用了,但后端未实现
async function loadStats() {
    const res = await fetch('/api/stats');  // 404错误!
}

// ❌ 问题3:算法验证示例缺失
// 完全没有Example注释或自测函数

主要缺陷

  • ❌ 前端大量使用${...}模板字符串,未做HTML转义(XSS高危)
  • /api/stats端点缺失,前端调用会404
  • ❌ SM-2算法缺少验证示例
  • ❌ SSE实现不完整,缺少错误处理

可用性有安全风险(XSS + API缺失)


8. MiniMax-M2.1 (48/100) ❌ - 最低分

致命问题

// ❌ 问题1:大量端点缺失
export default {
    async fetch(request, env, ctx) {
        const url = new URL(request.url);
        if (url.pathname === '/api/register') {
            // OK
        }
        // ... 缺少 /api/cards, /api/review/* 等多个端点
        return new Response('Not Found', { status: 404 });
    }
};

// ❌ 问题2:密码哈希完全不规范
function hashPassword(password) {
    return password + 'some_salt';  // 明文拼接,极度不安全!
}

// ❌ 问题3:Durable Object空壳
export class SessionDO {
    async queue() {}  // 空函数
    async alarm() {}  // 空函数
}

主要缺陷

  • ❌ 路由处理缺少多个关键端点(/api/cards CRUD、/api/review/*)
  • ❌ 密码哈希完全错误(明文+字符串,无加密)
  • ❌ Durable Object仅有空函数框架,无实际功能
  • ❌ 前端功能严重缺失,无法完成基本流程
  • ❌ 代码组织混乱,大量TODO注释

可用性基本不可用(功能缺失 + 安全崩溃)


横向对比分析

1. 安全性对比(最关键)

模型 密码哈希 Salt 迭代次数 CSRF防护 XSS防护 安全评级
gpt-5.2-codex PBKDF2+SHA-256 ✅ 16字节 100,000 ✅ Origin+Referer ✅ escapeHtml ⭐⭐⭐⭐⭐
Sonnet-4.5 PBKDF2+SHA-256 ✅ username 100,000 ⚠️ SameSite ✅ escapeHtml ⭐⭐⭐⭐
GLM-4.7 PBKDF2+SHA-256 ✅ 16字节 100,000 ✅ Origin+Referer ✅ escapeHtml ⭐⭐⭐⭐⭐
Gemini-3 PBKDF2+SHA-256 ✅ 16字节 100,000 ⚠️ SameSite ⚠️ 基本 ⭐⭐⭐⭐
Qwen3 SHA-256 ❌ 无 0 ❌ 无 ❌ 无
iFlow SHA-256 ❌ 无 0 ❌ 无 ⚠️ 部分
Kimi PBKDF2 ⚠️ 10,000 ❌ 无 ❌ 高危
MiniMax 明文拼接 ❌ 无 0 ❌ 无 ❌ 无

结论

  • 顶级安全:gpt-5.2-codex、GLM-4.7
  • 良好安全:Sonnet-4.5、Gemini-3
  • 严重不安全:Qwen3、iFlow、Kimi、MiniMax(不可部署)

2. 算法实现对比

模型 EF公式 Interval递增 失败分支 验证样例 评级
gpt-5.2-codex (grade-3)*0.1 ✅ +保护 ✅ 完美 ✅ 详细 ⭐⭐⭐⭐⭐
Sonnet-4.5 分级处理 ✅ 正确 ✅ 完美 ✅ 详细 ⭐⭐⭐⭐⭐
Gemini-3 SM-2标准 ✅ 正确 ✅ 完美 ✅ 详细 ⭐⭐⭐⭐⭐
GLM-4.7 SM-2标准 ✅ 正确 ✅ 完美 ⚠️ 仅注释 ⭐⭐⭐⭐
Qwen3 简化版 ⚠️ 不稳定 ⚠️ 部分 ✅ 有 ⭐⭐⭐
iFlow 简化版 ⚠️ 不稳定 ⚠️ 部分 ⚠️ 不清晰 ⭐⭐
Kimi 错误实现 ❌ 不递增 ❌ 错误 ❌ 无
MiniMax 未实现 ❌ 固定值 ❌ 错误 ❌ 无

EF公式对比

  • gpt-5.2-codex: delta = (grade - 3) * 0.1 (线性,简洁)
  • Gemini-3/GLM-4.7: delta = 0.1 - (5-grade) * (0.08 + (5-grade) * 0.02) (SM-2标准)
  • Sonnet-4.5: grade 3:-0.08, 4:+0.05, 5:+0.1 (分级处理)

3. 实时同步对比

模型 SSE实现 心跳 DO广播 前端自动刷新 评级
gpt-5.2-codex ✅ 完整 ✅ hello ✅ 完整 ✅ 完整 ⭐⭐⭐⭐⭐
Sonnet-4.5 ✅ 完整 ❌ 无 ✅ 完整 ✅ +指示器 ⭐⭐⭐⭐⭐
Gemini-3 ✅ 完整 ❌ 无 ✅ 完整 ✅ 完整 ⭐⭐⭐⭐⭐
GLM-4.7 ✅ 完整 ✅ 30s ✅ 完整 ✅ 完整 ⭐⭐⭐⭐⭐
Qwen3 ⚠️ 不完整 ❌ 无 ⚠️ 部分 ⚠️ 部分 ⭐⭐
iFlow ⚠️ 501错误 ❌ 无 ❌ 空壳 ❌ 无
Kimi ⚠️ 不完整 ❌ 无 ❌ 空壳 ⚠️ 部分
MiniMax ❌ 未实现 ❌ 无 ❌ 空壳 ❌ 无

结论:前4名模型实时同步都很完整,后4名严重不足。


4. 代码质量对比

模型 代码行数 简洁度 工具函数 注释质量 可维护性 评级
Gemini-3 836 ⭐⭐⭐⭐⭐ 3个 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 最简洁
gpt-5.2-codex 1,105 ⭐⭐⭐⭐ 10+个 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 最工程化
Sonnet-4.5 1,549 ⭐⭐⭐ 5个 ⭐⭐⭐⭐ ⭐⭐⭐⭐ 最详细
GLM-4.7 1,808 ⭐⭐⭐ 7个 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 最稳健
Qwen3 1,525 ⭐⭐ 3个 ⭐⭐ ⭐⭐ 有缺陷
iFlow 2,286 2个 最冗长
Kimi 2,171 2个 ⭐⭐ 混乱
MiniMax 2,173 1个 最差

代码行数悖论

  • 后4名代码最长(1525-2286行),但质量最差
  • 前4名代码适中(836-1808行),质量最高
  • 结论:代码行数与质量成反比(说明后4名有大量冗余/无效代码)

致命缺陷汇总

不合格模型的致命问题

模型 致命问题1 致命问题2 致命问题3 可部署性
Qwen3 Node.js模块 密码无salt WebSocket空壳 ❌ 无法启动
iFlow 密码纯SHA-256 DO返回501 大量中文注释 ❌ 不安全
Kimi XSS高危 /api/stats缺失 SSE不完整 ⚠️ 有风险
MiniMax 密码明文拼接 端点大量缺失 DO空壳 ❌ 基本不可用

不合格原因分类

  1. 安全问题(100%):所有不及格模型密码哈希都不合格
  2. 功能缺失(75%):3/4模型缺少关键API或前端功能
  3. 实时同步(75%):3/4模型DO未实际实现
  4. 代码质量(100%):所有不及格模型组织混乱

最佳实践总结

从顶级模型学习

1. 安全性(向gpt-5.2-codex学习)

// ✅ 完整CSRF防护
function csrfOk(request) {
    const origin = request.headers.get("Origin");
    const referer = request.headers.get("Referer");
    const url = new URL(request.url);
    return (origin && origin === url.origin) ||
           (referer && referer.startsWith(url.origin + "/"));
}

// ✅ 时间安全比较
function timingSafeEqual(a, b) {
    if (a.length !== b.length) return false;
    let diff = 0;
    for (let i = 0; i < a.length; i++) {
        diff |= a.charCodeAt(i) ^ b.charCodeAt(i);
    }
    return diff === 0;
}

// ✅ 版本化哈希
return `v1$${iterations}$${base64UrlEncode(salt)}$${hash}`;

2. 前端体验(向Sonnet-4.5学习)

// ✅ 完整分页
function renderPagination() {
    const totalPages = Math.ceil(total / pageSize);
    for (let i = 0; i < totalPages; i++) {
        const btn = document.createElement('button');
        btn.className = 'btn' + (i === currentPage ? ' active' : '');
        btn.onclick = () => loadCards(i);
        pagination.appendChild(btn);
    }
}

// ✅ XSS防护
function escapeHtml(text) {
    const div = document.createElement('div');
    div.textContent = text;
    return div.innerHTML;
}

3. 代码简洁(向Gemini-3学习)

// ✅ 简洁的SM-2算法
function calculateNextState(current, grade, now) {
    if (grade < 3) {
        return { lapses: lapses + 1, reps: 0, interval_days: 1, ease_factor: max(1.3, EF - 0.2) };
    } else {
        const delta = 0.1 - (5-grade) * (0.08 + (5-grade) * 0.02);
        return { reps: reps + 1, ease_factor: max(1.3, EF + delta), ... };
    }
}

4. 稳健性(向GLM-4.7学习)

// ✅ SSE心跳
const keepAlive = setInterval(() => {
    writer.write(encoder.encode(': keep-alive\n\n'));
}, 30000);

// ✅ 详细输入校验
function validateCardData(data) {
    const errors = [];
    if (!data.front || typeof data.front !== 'string') {
        errors.push('front is required');
    } else if (data.front.length > 2000) {
        errors.push('front must be <= 2000 chars');
    }
    return errors;
}

应避免的常见错误

从不及格模型吸取教训

// ❌ 错误1:使用Node.js模块(Qwen3)
import crypto from 'crypto';  // Cloudflare Workers不支持!

// ✅ 正确:使用Web Crypto API
const hash = await crypto.subtle.deriveBits({ name: 'PBKDF2', ... });

// ❌ 错误2:密码无salt(iFlow)
async function hashPassword(password) {
    return await crypto.subtle.digest('SHA-256', encoder.encode(password));
}

// ✅ 正确:PBKDF2 + salt
const salt = crypto.getRandomValues(new Uint8Array(16));
const hash = await crypto.subtle.deriveBits({ salt, iterations: 100000, ... });

// ❌ 错误3:XSS风险(Kimi)
element.innerHTML = `<h3>${card.front}</h3>`;  // 未转义!

// ✅ 正确:转义HTML
element.innerHTML = `<h3>${escapeHtml(card.front)}</h3>`;

// ❌ 错误4:空壳DO(MiniMax)
export class SessionDO {
    async queue() {}  // 什么都不做
}

// ✅ 正确:完整实现
export class RealtimeDO {
    async fetch(request) {
        if (request.headers.get('Accept') === 'text/event-stream') {
            return this.handleSSE(request);
        }
        // ... 完整的广播逻辑
    }
}

选型建议

根据场景选择模型

需求场景 推荐模型 理由
生产环境部署 gpt-5.2-codex 安全性最高(满分10/10)
企业级应用 GLM-4.7 稳健性强,错误提示详细
产品级体验 Sonnet-4.5 前端体验最佳,功能最完整
快速原型 Gemini-3 代码最简洁(836行)
学习参考 所有及格模型 各有特色,互补学习
不建议使用 不及格4模型 严重安全缺陷,不可部署

组合使用建议

最佳实践组合

  1. 安全模块:采用 gpt-5.2-codex 的CSRF + 时序攻击防护
  2. 前端模块:采用 Sonnet-4.5 的分页 + Modal弹窗
  3. 算法模块:采用 Gemini-3 的简洁SM-2实现
  4. 稳健性模块:采用 GLM-4.7 的SSE心跳 + 输入校验

总体结论

核心发现

  1. 两极分化严重

    • 前4名(97/96/93/93分)接近完美
    • 后4名(58/56/54/48分)严重不及格
    • 分差高达49分,说明AI模型能力差异巨大
  2. 安全性是分水岭

    • 前4名:PBKDF2 + 100k迭代 + salt ✅
    • 后4名:SHA-256/明文/无salt ❌
    • 密码安全是能否及格的关键指标
  3. 代码行数悖论

    • 最优模型:836-1808行
    • 最差模型:1525-2286行
    • 更多代码≠更高质量,反而说明冗余/无效代码多
  4. 实时同步区分度高

    • 前4名:完整SSE + DO广播 + 前端自动刷新
    • 后4名:空壳实现或501错误
    • DO实现是区分高手和新手的关键

最终推荐

🏆 综合第一名:gpt-5.2-codex (97分)

  • 理由:安全满分、工程化最佳、可直接生产部署
  • 适合:对安全要求高、需要长期维护的项目

🥈 综合第二名:Sonnet-4.5 (96分)

  • 理由:前端体验最佳、功能最完整、代码最详细
  • 适合:产品级应用、注重用户体验的项目

🥉 性价比之选:Gemini-3 (93分)

  • 理由:代码最简洁、核心功能完美、易于理解
  • 适合:快速原型、学习参考、资源受限环境

🌟 稳健之选:GLM-4.7 (93分)

  • 理由:SSE心跳、CSRF完整、错误提示详细
  • 适合:企业级应用、注重稳定性的项目

⚠️ 不建议使用:Qwen3/iFlow/Kimi/MiniMax

  • 理由:严重安全缺陷、功能不完整、无法部署
  • 结论:需要大幅重构才能使用

附录:详细评分记录

满分项统计

评分项 满分模型数 满分模型列表
A. 指令遵从 (15分) 4 gpt-5.2-codex, Sonnet-4.5, Gemini-3, GLM-4.7
B. 后端能力 (20分) 3 gpt-5.2-codex, Sonnet-4.5, Gemini-3
C. 前端能力 (15分) 2 gpt-5.2-codex, Sonnet-4.5
D. 算法能力 (20分) 3 gpt-5.2-codex, Sonnet-4.5, Gemini-3
E. 实时同步 (10分) 3 gpt-5.2-codex, Sonnet-4.5, Gemini-3
F. 安全鲁棒 (10分) 1 gpt-5.2-codex ⭐

结论:gpt-5.2-codex 是唯一获得安全满分的模型,这是其获得第一名的关键因素。


报告生成时间: 2026-01-11 评估工具: Claude Sonnet 4.5 + Explore Agent 评估标准版本: evaluation.md (v1.0) 总参与模型: 8个 及格模型: 4个(50%) 优秀模型: 2个(25%)


★ Insight ─────────────────────────────────────

本次评估揭示了AI模型在实际工程能力上的巨大差距:

  1. 安全意识是分水岭:密码哈希实现成为区分顶级模型和不及格模型的关键。前4名都正确实现了PBKDF2+100k迭代,后4名全部失败(SHA-256/明文/无salt)。这说明安全编码能力是AI模型工程水平的试金石

  2. 简洁≠简陋,冗长≠完整:Gemini-3用836行实现了93分的高质量代码,而后4名用1525-2286行却只得到48-58分。这印证了"代码质量与行数成反比"的工程真理——优秀的代码精炼高效,糟糕的代码冗余混乱。

  3. Durable Object成为技术难点:前4名都完整实现了SSE+DO广播,后4名都是空壳或501错误。这说明分布式实时系统是区分高阶能力的关键指标,也是AI模型训练中需要加强的领域。

  4. CSRF防护的稀缺性:8个模型中只有2个(gpt-5.2-codex、GLM-4.7)实现了完整的Origin+Referer校验,说明主动安全防护意识在AI模型训练数据中覆盖不足,这是未来需要改进的方向。

─────────────────────────────────────────────────

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors