AI 刷题提示评估:提示越少,越能看出真实能力
AI 刷题提示评估:提示越少,越能看出真实能力
一、刷题系统最容易把提示做成答案投喂
AI 辅助刷题系统通常会提供提示。用户卡住了,系统给一点方向,体验很好。但提示如果太直接,就会变成答案投喂。用户看似做出来了,实际只是顺着模型给的路线抄完。下一次换个题,还是不会。
提示评估要看“帮助程度”和“泄露程度”。好的提示应该缩小思考范围,但不替用户完成关键推理。比如动态规划题,可以提示“先定义状态表示前 i 个元素的最优值”,但不要直接给出转移方程。提示越少还能做出来,越能说明能力真的在长。
二、把提示分成概念、方向、关键步和答案
提示系统应该分层,而不是一次性给完整题解。
flowchart TD A[用户卡点] --> B{卡点类型} B -->|不知道概念| C[概念提示] B -->|不知道方向| D[思路提示] B -->|卡在证明| E[关键性质提示] B -->|实现错误| F[调试提示] C --> G[用户再次尝试] D --> G E --> G F --> G每层提示都要记录。系统要知道用户是在概念层解决,还是最后靠完整答案解决。两者代表完全不同的掌握程度。
三、用泄露分数评估提示质量
下面示例给提示定义一个简单结构。真实系统可以加入人工标注。
from dataclasses import dataclass @dataclass class Hint: level: str text: str reveals_transition: bool reveals_code: bool def leakage_score(hint: Hint) -> float: score = 0.1 if hint.reveals_transition: score += 0.4 if hint.reveals_code: score += 0.5 return min(score, 1.0)泄露分数不是为了惩罚提示,而是为了控制节奏。系统可以先给低泄露提示,用户仍然卡住时再逐步提高。
四、提示评估要看后续迁移
用户看完提示做出当前题,只能说明当前题完成了。真正要看的是后续相似题是否能独立完成。比如今天提示了单调栈的“等待更大值”模型,明天遇到每日温度或下一个更大元素时,是否能自己识别。
还要看错误类型变化。提示后如果用户仍然写错边界,说明提示没有覆盖真实卡点。系统不能只根据通过率判断提示有效。
最后,提示要支持回放。用户复盘时,能看到自己在哪一层提示后做出来。这个记录比单纯的 AC 更有学习价值。
提示还要和时间绑定。用户看提示后立刻提交通过,和看提示后自己思考十分钟再通过,学习含义不一样。系统可以记录提示到下一次有效提交之间的时间,用来判断提示是否只是直接泄露答案。
还要记录“拒绝提示”的行为。有些用户卡住但选择继续尝试,这说明题目处在可挑战区间。系统如果急着弹提示,反而打断学习。提示系统应该允许用户保持困难,而不是把困难全部抹平。
最后,提示质量要人工抽检。AI 生成的低层提示可能不小心暴露关键转移,或者给出错误方向。抽检样本应覆盖不同题型,尤其是贪心、图论和 DP 这种证明要求高的题。
提示也要区分“概念缺口”和“实现缺口”。同样是卡住,可能是不知道单调栈,也可能是知道思路但循环边界写错。概念缺口给类比和定义,实现缺口给调试方向。两者混用,会让用户更乱。
五、总结
AI 刷题提示评估要同时看帮助和泄露。提示应分成概念、方向、关键步、调试和答案层,并记录用户在哪一层完成。短期通过率不够,还要看相似题迁移和错误类型变化。刷题系统的目标不是让题更快过,而是让能力真的长出来。
