如何正确使用 AI

写给 ACM 实验室的大一新生。会开机、会打字、会复制粘贴就能读完,不用编程基础。

你可能已经用过 AI 了。中国青少年研究中心 2025 年的一份问卷里,用过 AI 的中小学生超过六成,其中七成以上拿它辅助写作业。你的学长里,也有人用它补题、查报错、写题解。

用过和会用是两回事。

同一道不会的题,会问的人两分钟拿到有用的东西,不会问的人来回十轮还在打转;同一段 AI 给的代码,有人跑一遍就知道哪里会溢出,有人直接提交,然后对着 WA 发呆。

这篇先讲怎么问 AI,再讲另一种用法(智能体)是什么样。

第一部分 先学会提问

1. 大模型是什么东西

你在输入框里敲"床前明月",它接出"光",然后拿这五个字接着猜下一个字。整段回答就是这么一个个词接出来的。

它做的事叫预测下一个词。

它怎么学会这件事的?拿海量文本做填空题,猜下一个词,猜错了调一遍内部参数,这样重复上万亿次。所以它手里握着的是文字之间的统计规律,并没有一份被验证过的知识清单。看起来什么都懂、在需要精确的地方翻车,都从这里来。

第一个后果:它给你的是一段很像人话的文字,跟"被核实过的事实"是两回事。

大部分时候两者重合,因为训练材料里"像人话"和"是对的"高度相关。问到冷门、细节、需要精确的地方,它就会一本正经地编,业内管这个叫幻觉。

ACM 场景里,幻觉长这样:

  • 编一个不存在的库函数:std::segment_tree、__gcd_ex
  • 编一个不存在的算法名、定理名、题号、题解链接
  • 给你一段语法完全正确的代码,复杂度是 O(n²)(数据一大就跑不完),而题目 n = 2×10⁵
  • 说这题用并查集,其实这题并查集做不了
  • 说"你的代码逻辑没有问题",这句话最贵

它写得越流畅,你越容易信。流畅和正确是两码事。

第二个后果:它不认识你。

新开一个对话,它对你是零了解:不知道你大一还是研三,会 C++ 还是 Python,卡在哪一步。你不说,它就按普通人猜,猜错了你还觉得它笨。

还有五件事你迟早会遇到:

  • 它一次能看到的字数有限。 你贴一份 800 行代码再聊二十轮,最早的内容会被挤出去。它说"你刚才不是说了吗",是真的看不见了。今年 2 月有个报道,一位大厂的 AI 安全研究员让智能体整理自己的邮箱,交代过没批准不要动手,它转头开始批量删邮件,三次喊停都没用,删掉两百多封,最后靠强行终止才停下。原因是那条"不许动"的指令被后来的内容挤出了上下文。对话式 AI 忘了顶多答歪,能动手的工具忘了,代价就是这么具体。
  • 同一个问题问两遍,答案可能不一样。 它是按概率选词的。上一轮说没问题、下一轮说有问题,都正常,以能跑通、能证明的为准。
  • 它的知识有截止时间,默认不联网。 它不一定知道昨天那场 CF 的题。稳妥的做法是把题面原文贴过去,别只给链接。
  • 同一个模型装在不同产品里,差别可能很大。 常见开关有三个:联网搜索,回答前先去搜一遍网页;深度思考,让它先把推理草稿写出来再给结论,做推导题有用;上传文件,把题面、代码、PDF 塞给它看。
  • 它按"词块"计数,业内叫 token。 中文大概一两个字算一个。你贴得越长,它记得越少、回答越慢;有的产品按用量收费,长代码和长文档是吃掉额度的主力。

总结:它是助教,不是枪手。

讲概念、看代码、给提示、陪你练,都是助教该干的;替你考试、替你比赛、替你交作业,不是。

它做不到什么:

  • 不保证正确,提交的代码是你在签字
  • 不替你形成直觉,赛场上看见题就知道往哪想,这个只能自己刷出来
  • 不稳定,产品会改版,今天的按钮明天未必还在,所以这篇讲方法,不讲操作步骤

2. 怎么问

2.1 "这道题怎么做"为什么最差

这句话把信息量全丢给了对方。它只能猜:

  • 猜你的水平,于是从你听都没听过的高级算法讲起
  • 猜你要什么,默认你要代码,于是甩你 80 行
  • 猜数据范围,于是给你一个 O(n²) 的"正确"答案
  • 猜你卡在哪,它连你是不会算法还是写挂了都不知道

猜错的代价由你承担。

2.2 四件套

这是全篇最该背下来的一段。

件套 你要交代什么 它解决什么问题
背景 我是谁、在干什么、做到哪一步 它不认识你
任务 要它做的具体动作:诊断、解释、给提示、出题 它不知道该干什么
约束 不许做什么,什么语言、什么风格 它会自由发挥
格式 输出长什么样:分点、表格、先思路后代码、只要一级提示 回答你没法用

写成一句话是这样:

我是大一,学 C++,会模拟、二分、简单 DP。这题我读懂了题意,但想不到方向。先别给代码,问我三个能引导我自己想的问题,一次问一个。题面在下面。

四件里最容易被跳过的是约束。 只说"帮我看看这题"和说"先别给代码,给我三个引导问题",拿到的东西完全不同。

2.3 两个例子

第一种,完全不会做:

差:这题怎么做?

好:我是大一,用 C++,学过模拟、二分、前缀和。这题读懂了题意,但完全想不到方向。请不要直接给代码,先问我三个问题引导我想,一次问一个。题面:……

第二种,会做但写挂了,用得最多:

差:我代码错哪了?然后贴 200 行。

好:C++,n ≤ 2×10⁵,题面在下面。样例过了,提交在第 3 个点 WA。我的思路是先按 x 排序,再扫一遍维护最小值。请只做两件事,一是判断我的复杂度够不够,二是指出代码里可能跟边界有关的行号,不要重写整份代码。

第二种问法信息量是第一种的十倍,多花的时间大概两分钟。

2.4 提问分五档

同一道不会的题,问法分五档:

档位 你要什么 典型问法 拿到什么
L1 答案 给我 AC 代码 题过了,人没长
L2 方向 这题用什么算法 知道知识点,还是不会推
L3 诊断 我想到用 X,卡在 Y,帮我看看断在哪 补上一个思维缺口
L4 提示 别给做法,先给一级提示 自己推出来,真会了
L5 训练 换个数据范围再考我一次 练出直觉

L1 不是绝对不能用。 卡了两小时毫无进展、这题又不在你当前训练目标里,看答案合理。但必须配一个动作:合上屏幕,自己重写一遍。写不出来,这次 AC 白拿。

L4 最值钱。 你说"别给做法,按难度给三级提示,先只给第一级",然后自己在"快想出来了"和"卡死了"之间找平衡。推出来了,知识归你;推不动,再要一级成本也很低。

L5 很多人想不到。 让它出题考你,让它当面试官追问你,你讲一遍做法让它挑毛病。你输出的越多,学到的越多。

2.5 五个能直接用的模板

模板 1 读题

把下面这段英文题面翻译成中文,保留所有数学符号和数据范围。然后输出三行:
① 输入是什么,范围多大
② 输出是什么,格式有什么要求
③ 一句话概括题目要求
最后单独列出所有容易漏掉的条件(多组数据、精度、特殊约定)。
题面:

模板 2 分级提示

这题我想了 40 分钟,别直接给做法和代码。
按难度给我三级提示,现在只给第一级,我说"继续"再给第二级。
第一级含糊一点,只要能把我的注意力挪到正确的方向。

模板 3 WA 排查(2.3 里那种情况的可复制版)

语言 C++,n ≤ 2×10⁵,样例过了,提交 WA 在第 3 个点。
我的思路:(一句话)
题面和代码在下面。请按顺序做三件事,不要重写代码:
① 判断复杂度够不够
② 列出所有跟边界有关的可疑行,标出行号并说明原因(空输入、n=1、最大值、多测清空、溢出)
③ 给我三组能构造出来的测试数据,我自己跑

模板 4 学新算法

我要学(算法名),我的基础是(已学内容)。
按这个顺序讲,每节配一个小例子:
① 它解决什么问题,先给一个不用它必超时的例子
② 核心思想一句话说清
③ 手推一个三到五个元素的完整过程
④ 新手最容易写错的三个地方
先只讲 ①②③,我说继续再往下。

模板 5 对拍

我要自己验证一个程序。给我三样东西,都用 C++:
① 随机数据生成器,参数是(数据范围,比如 n ≤ 8、保证连通、允许重边)
② 一份暴力写法,数据小的时候一定对
③ 对拍脚本,跑 1000 次,出错就把这组数据存成 hack.txt 并停下来
再告诉我这类题常见的坑在哪(比如退化成一条链、全是同一种数据、取到极值)。

2.6 几条省时间的习惯

  • 先自己想二十分钟,把判断写下来,再去问。 这条最反直觉,也最值钱。刚拿到题就问,你问不出好问题,也看不懂回答;先落笔写两句自己的思路,你才有得比,不然会不自觉地往它的说法上靠。
  • 一次只改一个地方。 回答不满意要换问法,一次改一处,你才知道是哪句话起了作用。同时改三处,下次还是抓瞎。
  • 客气话没用。 "求求你了""你一定可以",它一个字都听不进去。信息才有用。
  • 一个对话只聊一件事。 你在一个对话里从图论聊到高数再聊回代码,前面的内容会互相干扰,越聊越乱。换话题就新开一个。
  • 让它先复述你的需求。 加一句"先别回答,用一句话复述我的需求,我确认了你再往下"。它理解错了,你在这里就能拦住。

问之前再问自己三句话:题面贴了吗,报错原文贴了吗,我给的信息够一个陌生人复现问题吗。把 AI 当成刚进群的学长,他只看你这段话能不能定位问题。不能,就补。

3. 怎么判断它在骗你

3.1 三查

拿 AI 给的代码按这三条过一遍:

查什么 具体查什么
数据范围 数组开够了吗(n ≤ 2×10⁵ 结果开了 a[100005] 就是错的);答案要不要取模;int 装得下 10 万乘 10 万吗,装不下要换 long long;复杂度够不够,保守按 1 秒 10⁸ 次简单运算估
边界 n = 1、空输入、多组数据有没有清空数组、图论题里的重边自环不连通、退化成一条链的时候还活着吗
代码 编译过(警告也看一眼)、样例过、对拍过

新手 WA 一大半出在边界上。 对拍是最强的一招:写一份数据小的时候一定对的暴力,随机造数据,跟你的程序比几百组。生成器和对拍脚本直接跟 AI 要,模板在 2.5。

3.2 让它自证,或者换个 AI 问

对重要结论加一句:

你确定吗?给我一个能验证它的办法,或者写出反例长什么样。

能给出可验证路径的,大概率靠谱;开始绕圈子、改口、重复自己的话,八成在编。

另一个办法是把同一个问题扔给第二个 AI。两个都这么说,可信度上去;两个说法打架,其中至少一个在编,得自己动手裁决。

3.3 去原出处核对

凡是有出处的东西,去原出处看一眼。它说"这题是洛谷 P3372,用线段树",你就打开 P3372 看看题号和题目对不对得上。它给的题解链接、论文、库函数文档,同样处理。

查不了出处又必须用到的事实,就当它不存在。

3.4 一条判准

能跑一遍或者推一遍验证的,去验证;只能"感觉对"的,先存疑。

4. 四条红线

  1. 比赛现场禁用 AI。 ICPC、CCPC 的规则写得很清楚,牛客周赛的说明里也有一句"不得使用 AI 工具作答"。被抓到不是扣分的问题。训练赛和校内赛按你自己的赛事规定来,不确定就问学长。

  2. 隐私和密钥不往对话框里贴。 身份证号、学号、密码、验证码、各种账号的 Cookie 和 Token,还有别人的照片和聊天记录。上传文件之前看一眼文件名。

  3. 别让 AI 替你交差。 作业和论文按学校规范来,有的学校要求论文里 AI 生成内容不超过一定比例,四川大学是文科 20%、理工医科 15%。署你名字的东西责任是你的,AI 写错了挂的是你的科。

  4. 大一新生不要自己去搭开源智能体。 网上那些“教你部署”的教程看着很酷,但它要你自己处理这些:

    • 申请和保管 API Key,Key 就是钱,泄露了可能被刷爆
    • 处理权限和备份,它删错文件你救不回来
    • 盯账单,写错一个循环,费用可能一夜之间很难看

    这些工具能做的事,现成产品基本都能做。你现在需要的是用好 AI 帮你学算法,用不着运维一个 AI 系统。真想折腾,放到大二大三,等你有明确需求、有备份习惯,并且问过学长之后再说。


第二部分 进阶,认识智能体

这一部分当科普看,不用现在动手。

5. 智能体是什么

先说它跟你现在用的东西差在哪:

  • 对话式 AI: 打开网页或 App,问"这道题怎么做",它给你一段话,看完活还得自己干
  • 智能体: 你给一个目标,它自己拆步骤、自己动手,做完把结果交给你。比如说"把我这周比赛的记录整理成一张表",它会自己规划步骤、自己去查、自己生成文件

两者的关系有一个公式:Agent = Model + Harness。

  • Model 就是你前面熟悉的那个大模型,负责想:理解你的话、推理、做决定。
  • Harness 指模型外面那层外壳,负责做:调用工具、读写文件、执行命令、管理上下文、记住事情。2026 年 8 月 DeepSeek 开源的 DeepSeek Harness(简称 dsh)就在这个位置,它既不是模型,也不是打开就能聊的产品,是把模型变成能干活的那个壳。

这个公式解释了一件容易困惑的事:同一个模型,在网页里聊天就只是聊天,装进智能体产品里就能干活,差别在于外面这层壳给没给它接上手。不同智能体产品的区别也能这么看,用的模型可能一样,差别在手有多长、权限有多大、记不记得住你。

它能干的事可以归成四类:读写文件、跑任务和调工具、上网查资料、定时执行。第四类容易被忽略,对长期学习却有用,它把"你得记着去做的事"变成"到点自动发生的事"。

不管哪家产品,要认的概念就这几个:

  • 工作区。 它只能碰到你给它的东西,你上传的文件,你授权的目录。它说"我没看到这个文件",多半是你没给它,不是它笨。
  • 记忆。 这是它和临时聊天最大的区别。没有记忆,你每开一个新对话都得重复一遍"我是大一、我会 C++、别直接给我代码";有记忆,它记得你的水平、你的习惯、你上次卡在哪。国内大部分产品都有这个功能,入口叫法不一样,有叫"记忆"的,有叫"个人设定""自定义指令"的。
  • 技能和插件。 产品里常看到"技能""插件""工具"这类入口,作用是把"只会说"变成"能动手",比如读文档、画图、跑代码。
  • 定时任务。 安排"每天早上 7:00 出一道题",到点它自己跑完推给你。不是所有产品都有,你最看重它,就挑带它的。
  • 权限和审批。 看到"是否允许"的弹窗,读完再点。前面那个删邮件的例子就是这一条的反面,它能做的事情越多,你越要盯着。

6. 它能帮你做什么

先说结论:你现在不用装任何东西,国内现成产品打开就能用。

  • 聊天问答: DeepSeek、Kimi、通义千问,挑一个用熟就行。Kimi 读长文档强,通义千问做表格和文档强,DeepSeek 推理和代码强。
  • 写代码: 腾讯 CodeBuddy、字节 Trae、阿里 Qoder、百度文心快码,形态是编辑器插件或者独立编辑器,能直接改你的代码。
  • 出成品: 扣子空间、Manus 这类通用智能体,适合多步骤任务,简单问答用它反而浪费。

在算法学习里,智能体比对话式多出来的部分主要是“不用你盯着”。三个可以直接照抄的用法:

  • 赛后补题。 把没做出来的题面贴过去,让它按顺序做:每道题一句话说考点,再挑一道给你三条"该怎么想"的引导,不要给做法和代码。你自己想过之后再来找它。
  • 把一个专题学完。 让它带你走一遍:先说不会这个算法会遇到什么麻烦,再讲原理加手推小例子,再给精简模板,再出三道递进难度的题,最后批改你的答案,指出你思路上的习惯性问题。关键是自己敲一遍模板,真的做完那三道题。
  • 每天一道题。 如果产品支持定时任务,让它每天从你的薄弱知识点里挑一个出一道题,附两条思路线索,到点推给你。设之前先让它手动跑一次,确认没问题再定时,否则你每天早上收到的是垃圾。

AI 会不会让我变菜

会,如果你把它当拐杖用。

《经济学人》今年 8 月报道过一项研究,针对两万多名中国中学生,成果发表在 CEPR 的讨论稿上。

  • 用上 AI 之后,作业分数平均涨 18%,写作业时间从 64 分钟降到 45 分钟
  • 同一批人闭卷考试的成绩,比不用 AI 的同学低 20%
  • 作业分越高的人,往往就是 AI 用得越深的人。作业分数第一次开始撒谎

今年 9 月发布的 PISA 2025(国际学生评估项目)给出了更细的区分。91 个国家和地区、76 万名 15 岁学生里:

  • 成绩最差的是两头,"几乎不用"和"每天都用";每月、每周用几次的人反而更好
  • 拿 AI 去替代本该自己做的事,比如总结本该自己读的课文、起草本该自己写的作业,这部分学生掉得最多
  • 报告里还有一句:接受过"怎么判断 AI 生成信息质量"训练的学生,结果明显更好

两道证据指向同一件事:怎么用它,比用不用它更要紧。当脚手架用,搭着你往上爬,爬上去就该拆;当拐杖用,替你走路,用久了腿会废。

所以这篇教程最后落在三件事上:

  1. 你能不能把问题说清楚
  2. 你能不能判断一个回答是真懂还是在编
  3. 你愿不愿意在拿到答案之后自己再动手走一遍

工具每年都在换,这三件事不会。

上手

今天就能做三件事:

  1. 把下面这段粘进你常用产品的记忆或个人设定入口,一次设置,长期有效。
  2. 找一道最近 WA 过的题,用 2.5 里的排查模板问一次,看它给的可疑行对不对,再自己去验证。
  3. 下次想题先自己写二十分钟,把想法记下来,再发给它。
我是大一新生,计算机专业,ACM 方向,主用 C++。
目前会:语法基础、模拟、二分、前缀和、简单 DP、DFS/BFS。
正在学:图论。还没学:线段树、网络流。
刷题平台:洛谷、Codeforces,目前在练难度分 900 到 1300 的题。

请这样跟我说话:
- 用中文,术语第一次出现时给英文原文
- 我说"不懂"的时候换个更简单的例子重讲
- 代码风格简单点,不用 lambda
- 涉及复杂度必须提醒我数据范围能不能过

默认不要做的事:
- 不要一上来就给完整 AC 代码,先给提示,一级一级来
- 我的代码只做诊断,不要整份重写,要改就说改哪一行、为什么
- 不要编题号、链接、库函数,不知道就说不知道

几个零碎问题

用中文问还是英文问? 中文够用。查冷门库函数、贴报错原文的时候,带上英文更准。

要不要付费? 先免费用熟。免费版的瓶颈不是模型不够强,是你还不会提问。等哪天你发现"它老胡说",再考虑花钱。

AI 给的代码能直接交到 OJ 上吗? 能提交,但先过 3.1 的三查。正式比赛禁用,训练赛和课程作业看规定。

要不要专门学"提示词工程"? 不用当学问背,记住四件套就够了。真正长本事的地方是:拿到一个烂回答,你知道该改哪一句。


速查卡

可以截图存手机。

项目 内容
提问四件套 背景 / 任务 / 约束 / 格式
问前三句话 题面贴了吗 / 报错原文贴了吗 / 够陌生人复现吗
五档提问 L1 答案、L2 方向、L3 诊断、L4 提示、L5 训练,日常多用 L3 到 L5
三查 数据范围 / 边界 / 跑通三件套(编译、样例、对拍)
自证话术 你确定吗?给我一个能验证的办法,或者反例长什么样
智能体 Agent = Model + Harness,能力是读写文件、跑任务、查资料、定时执行
红线 比赛禁用 AI / 隐私密钥不贴 / 不替交差 / 大一别自己搭