跳到内容
当前位置:首页>教案>AI 防骗指南:它的破绽,就是你的教案

AI 防骗指南:它的破绽,就是你的教案

  • 2026-11-05 07:28:33
AI 防骗指南:它的破绽,就是你的教案

防它写错,更要用它出错 —— 防骗清单,师生都有份

我的老师徐赐成教授曾说,历史学习就是学会历史思考。AI 时代,这话得再加一层:先得学会不被 Ai 带着走。所以这篇写成一份指南——一讲它怎么"骗"我们,不是它失手,是本性;二讲怎么反过来把它的错误用起来,它的破绽就是教材;三讲凭什么判它错,尺子不在 AI 手里,在历史学上百年的方法里。

先看一张照片。

今年 9 月,美国历史学会会刊《Perspectives on History》登了一篇文章,作者让 AI 生成"一张士兵冲上奥马哈海滩的写实照片"。第一眼,像极了诺曼底登陆的名作;放大再看,船头方向不对,士兵在往海里走。研究者把错处指给 AI,要求"改进",它交回一张几乎复刻名作《Into the Jaws of Death》的新图——不标任何出处。研究者自己认得出原图,绝大多数学生认不出。

Into the Jaws of Death

图 1|奥马哈海滩,1944 年 6 月 6 日晨。Robert F. Sargent 摄,公有领域,藏于美国国家档案馆(26-G-2343)

再说我备课的事。我的教研工作台里,备《甲午中日战争》时我让 AI 写段导入,它写出"邓世昌下令致远舰全速冲向吉野,将其撞沉"。教材"学史崇德"栏目的原文是"欲撞击日舰……未至而沉没"。一个「欲」字被吃掉了,吉野还替它"沉"了一次。

这两件事,一件来自大洋彼岸的研究者,一件躺在我自己的工作台里,隔着一个太平洋,原因是同一个。

Ai 不缺历史知识,缺的是「掂量」——把史实放进时空、证据、解释里称一称。要防它,先得知道它为什么会这样。

病 根它是个从不交白卷的考生

把 AI 想成一位考生:一辈子只练一道题——给你前半句,猜下一个词。它读过以万亿计的文字,把人类语言的规律,压进体内上千亿个"旋钮"(参数)里。

这位考生的脾气,由三件事决定。

第一,卷子上没有"我不知道"这一格。每接一个词,它给候选词各算概率,加起来正好百分之百,然后挑一个。你发现它骗你了,它也会说"我不知道"——可这四个字同样是接出来的:多数问题上,一句流畅的答案,概率远高于一句坦白。

第二,它按"像不像"得分,不按"对不对"。它学的是"人接下来通常会怎么写":哪句更像人话,概率就高。是不是真的,卷子上不考,它也就不管了。

第三,它不能回头改。人写作文能打草稿再誊,它不行:开头接错一个词,后面每一句都在替这个错圆场,越圆越顺。

所以它很少写错年份——年份错了,学生一眼就抓出来。它错得更高明:把不确定写成确定,把两件事并成一笔,把推测画成现场。读起来更顺,更像完整的故事。

回头看那个「欲」字:教材写"欲撞击……未至而沉没",是两截——想撞,没撞到。中间那一截丢了:他们拼了命,也没拼到。AI 把两截压成一截("将其撞沉"),历史就被篡改了。

图 2|同一个场景,两种写法:教材的「欲」,AI 的「将其撞沉」

它不是在骗你,它是在把话接顺。顺,是它的本事,也是它的病。

所谓"防骗"是比喻——它没有骗人的意图,只有让人误信的机制。

有项研究做过一个干净实验:24 名学生、72 份历史开放题答卷,由任课教师和七个 AI 模型分别打分。裸着问"请给这份答案打分",一致性很低;给出明确的分层量规,一致性可做到 r > 0.80。这两个数得连条件一起看——24 人、开放题、同一套量规;离开这些条件,它不成立。

它对"宽容偏差"的解释更有意思:模型系统性地给分偏高,不是心软,是它偏爱流畅、冗长、结构漂亮的答案,哪怕事实残缺。它给"写得像"的孩子加分,给"写对了但写得笨"的扣分。

生成时按"像不像"接,判分时按"像不像"给。同一套偏好,换了个地方发作。写史更如此——下面这几种错,都是它的产物。

错 法错得顺,所以查不出来

何成刚老师有句话扎在根上:没有史料就没有历史教学。AI 错得最多的时候,恰恰是它「离开史料」的时候。下面三段,都是我在备课中当场抓到的。

图 3|AI 翻车实录:三次都是备课中真实抓到的,错得「很顺」

一是把不确定删成确定。「欲撞」变「撞沉」,前面已经说过。吉野舰的确沉了,不是在甲午战争,而是十年后的日俄战争,意外沉没。错不在写出来的句子,老师得审。

二是把两笔账并成一笔。教材写赔款 2 亿两,AI 常给"2.3 亿两"——它把 2 亿军费和 3000 万两赎辽费并成一笔。数加得没错,可"三国干涉还辽"整件事没了:列强各怀算盘、清政府被"帮"一把后又掏一次钱,全压在这一笔里。

为什么查不出来?2.3 亿这个数本身是对的。我们习惯核数字,它错的是数字背后的历史。

三是把推测画成现场。七上讲北京人,教材给的是结论——会使用火,会长时间保存火种;考古拿得出的,是灰烬、烧石、烧骨这些遗存。至于火边是什么样子,洞口多深、火堆怎么围、肉怎么分,教材没有,遗存也不说。AI 给你的偏偏是一场篝火晚会:火光照着洞口,架上烤着兽肉,洞壁晃着影子。从灰烬层到围火分食,隔着近百年的发掘、测年、微形态分析,还隔着没打完的学术争论。

为什么查不出来?画面太具体。具体的画面自带说服力,学生"哇"一声,推测就成了记忆。

图 4|常见问题

还有第四种:把争论讲成目录。讲百家争鸣,它给你四段漂亮话——孔子仁、老子无为、墨家兼爱、韩非法治,四家排排坐。可这一课真正的问题是:社会剧变,怎么治?四家是同一个问题的四种回答,互相吵架。AI 把吵架讲成目录,学生背得出四家,答不出他们在争什么。

还有一类错,不在史实,在立场。

AI 处理价值判断有个通病:只讲"客观上",不讲代价。讲近代史,它爱写"侵略客观上带来了近代化",把殖民写成"现代化进程的一部分"。这些话单看不算错——殖民扩张确有"破坏"与"建设"双重使命,客观作用是能讲的。错在它讲完就停:谁被破坏、谁付账、主权怎样丧失,一字不提。客观作用要讲,但必须放在"侵略是主要的、代价由被侵略者承担"这个前提之下讲。只讲一半,是非才被抹平。

这几种错,前两种是学界通用的名目:编造史实,叫事实性幻觉;给了材料不照着说,叫忠实性幻觉。第三种各家叫法不一,我按课堂上的实感,管它叫逻辑性幻觉——每句都对,连起来推不出结论。第一种(查无此文的论文、捏造的引文)大家已有防备;后两种,恰恰最常出在我们自己做的东西里。

忠实性幻觉,值得每位老师单独警惕一次。

很多老师已经学会"给材料":贴一段史料,让它"根据材料"出题、写答案。有材料兜底,总不会错吧?错就错在这里。它写出的要点,常有一两条来自教科书背景,材料里根本没有。拿这样的答案阅卷,严格依据材料作答的学生反而丢分——学生照着史料答,机器照着"记忆"判,谁冤?

"论从史出",在参考答案里悄悄变成了"论从书出"

为什么察觉不到?它添进来的东西往往本身是对的。我们只问"这句对不对",不问"这句是不是材料里的"——对了,就放过去了。

逻辑性幻觉藏在"分析"里。史学讲「论从史出、史论结合」——论是史推出来的,不是顺字面滑出来的。比如把客观作用写成主观目的:"洋务派为了发展民族资本主义而兴办民用企业"。客观上,洋务企业刺激了民族资本主义;可这不是洋务派的目的。单看每句都通顺,推理在句与句的接缝处断了。它还偏爱"彻底""根本""标志着"——历史结论最讲分寸,它总把"推动"写成"彻底改变",把"开始"写成"完成"。

错法讲完,本该接着讲怎么判。先停一步:上面这些错有个共同点——规律。有规律就可预期,可预期就能反过来用。

教 材把它的错,编成一节课

学生要练的是"辨",而辨的本事,只能在真伪混杂的地方练出来。史料教学,最重「大胆怀疑、小心求证」——怀疑不是态度,是方法:先疑,再证,证不了就不用。

美国南卡罗来纳州的历史教师 Chris Chapman(前记者,从业 15 年)碰到过一幕。学生拿 AI 的答案来辩论,还附了一条常春藤名校的脚注,理由是"这学校说的,总不会错吧"——那所学校从没说过这句话。AI 先编了观点,再顺手编了个出处。

他没有当场纠正。他把这件事变成了当天整节课的任务:全班一起去找那篇原始论文,再找三条能反驳它的可信来源,并且必须说明这三条为什么可信——最后这一步,恰恰是学生平时最想跳过的。假出处当然找不到,真事实几分钟就浮出水面。他后来写道:这个活动「不需要学生登录任何账号,只需要一条假引文和一间怀疑的教室」。

怎 么 用

课前用 AI 生成一段 200 字的"史料解读",手动埋三处错:一处年代错、一处张冠李戴、一处编造的引文。学生分组找,找到后必须写出"我用哪份材料、怎么证明它错了"。评价点不在"找到几个",在"证据链能不能闭合"——找齐三处却说不清凭什么,等于没练。

国内的课例走得更远。泉州洛江区,陈慧琳老师讲《中国同盟会》,整节课套了一个情境——"为近代中国开药方",分三层:一个人(孙中山的初探)、一群人(同盟会成立)、一代人(志士起义)。

其中一个动作可以原样搬走:她先放一段 AI 生成的孙中山早年经历视频,一句不讲解,直接派任务——回看,找出与史实不符的细节。学生的身份是"历史审核员"。

这节课最值得记的一点:AI 的错误不是教学事故,是教学资源。

"审核员"这个角色设定好在位置:它把学生放到了比 AI 更高的地方。八年级上册整册都能这么用——讲洋务,让 AI 写一段"李鸿章自述"埋错;讲新文化运动,让 AI 列一份《新青年》目录埋错。规矩只有一条:指错必须附史料,不能凭印象。

谢树森老师总结得干脆:"AI 进课堂要始终坚持应用为王,让技术服务于教学目标而非流于形式。"后面还有一句:"让历史教学既有科技的锐度,更有人文的温度。"

还有一层:让学生自己去找错。福州一所学校高一的假期作业里,有一项叫"历史谣言粉碎机"——学生挑一条流传很广的历史说法,查史料,写一篇"打假帖",标注出处。有个学生顺着"爱因斯坦数学不及格"往下挖,发现源头是 20 世纪 30 年代美国的一本励志读物。他不只证伪,还完成了追源。

这些课成败只在一处:判"错"的标准硬不硬。标准软,找茬就退化成猜谜——学生猜老师埋了哪三处,老师猜学生看没看懂;标准硬,它才是一堂真的史料实证课。

所以问题不是"用不用",是"凭什么判"。

判 据尺子是历史学磨好的,不是 AI 给的

当教材用,对老师的要求反而更高:你得当场判得出它错在哪一层,也得判得出学生找到的"错"是不是真错。这把尺子不在 AI 手里,历史教学自己磨了上百年。

今年的全国历史教学学术年会,主题八个字——「素养导向、评价驱动」。是「评价」驱动,不是「技术」驱动;真正被反复讨论的,是另一件事:评价的标准,谁定、怎么定、定成什么样才算准。

标准从哪来?同一份研究还给过一句反常识的话:「提示词设计与评分标准的定义,比选哪个模型更重要。」我们抱怨「AI 给分不准」,多半不是模型不行,是只甩了一句「请给这份答案打分」。把标准说清楚,一致性才上得去——这不是技术问题,是评价问题。

尺子长什么样,黄牧航讲「分层赋分」时说得最透。他把历史解释由低到高排成五层——现象性解释、内涵性解释、本质性解释、联系性解释、规律性解释。五个词就是五档:只罗列史实,落在第一层;讲得出「这意味着什么」,才上得去。落哪一层,可以判,不是「感觉」。

他还有个更硬的主张——主观题评分客观化:不是给标准答案对号入座,而是把每层该有的东西说清、说死,让不同的人按同一把尺子去量,误差才压得下来。他写过一句,像给今天提前写好的注脚:「大力完善评分细则,努力实现主观题评分客观化,为人工智能阅卷打下基础。」

判断还有底线。昆明一场 AI 命题论坛,14 位老师把底线收成三条——「史实硬伤、价值导向、课标边界」,任一条不过,题就废。三条里,只有第一条 AI 自己查得出。价值导向不是"没有标准",而是标准有立场、且必须以史实与证据为据;课标边界也只有讲台上的人摸得准——这两条,它替不了人。

这 14 位老师里,两句话把「谁主谁辅」说穿了。一句是「人主 AI 辅——AI 做粗加工,人做精加工与终审」;另一句是「AI 跑第一棒打开视野,教师跑最后一棒守住底线」。一个意思:判断的最后一棒,交不到 AI 手上。

有了尺子,再看怎么查。以前的查法是校对;现在要加三问——这句是材料里的吗?这两句推得过去吗?该在的那一句,在吗?前两问是「论从史出」,第三问是「史论结合」漏掉的那一环。

落到备课上,我给自己立了两条铁律。

先想后问:先通读课标教材、写出自己的初步设计,再打开 AI——让它给你的稿挑刺,不是替你写。顺序反了,只能照单全收:没有你那一稿,它没有比较的基准,好不知道好在哪,错不知道错在哪。先核后用:它给的每一样东西,过三道筛再进教案,一道不过就退。

这套顺序在课堂上有更省事的版本。烟台年会上,一位老师的提问框架被评课专家肯定:时空定位 + 关键词提取 + 史料印证,三步做完才允许问 AI。印在导学案上就是一栏三格,填不出,说明问题还不成立。它把"问 AI"变成了"提一个可验证的历史问题"——八年级讲洋务、辛亥、新文化,最容易一开口要结论,这三格能当场把结论打回成问题。

武汉一节《辛亥革命》公开课更狠:前两层完全不碰 AI,等学生把史料读透、看出矛盾,第三层才让它上场,当"被质询的对象"。评课老师有句话:AI 出场越晚越好。一上课就请数字人开讲,学生会把它当权威,思辨就不会发生。

图 5|备课的正确顺序:前三步是人的功课,第四步工具才开始有用

三道筛:课标筛——这一条,是本课要求吗?拓展可以有,不能顶了必教的;教材筛——这个表述与教材一致吗?不一致,先疑 AI,再查教材;学情筛——这个深度,我班上接得住吗?深浅快慢,只有讲台上的人说了算。

图 6|三道筛:筛子都攥在老师手里,这就是「先核后用」

有老师问:筛来筛去,会不会把 AI 的价值筛没了?恰恰相反——我用它比从前只多不少,查线索、出对题、模拟刁钻的反问,全是它干。变的不是用量,是次序:它从"第一稿的作者",变成"第二意见的提供者"。

老 师 版五条,把判断标准落到课里

铁律之下,五条具体动作。每条后标了它练哪门功夫——归根到底,都是「史由证来」。

1

AI 生成的图,一律标「示意图」守证据底线

它配不上"历史照片"四个字。标注不用丑,图角一行"AI 生成示意图"就够——这一行字,就是学生的第一道疫苗。

2

它"提供"的史料原话,一律视为存疑辨史料出处

你请它"提供"某人的原话、某道奏折,它能写得文白相间、口吻逼真——模仿语体,正是它最擅长的。史家讲究「辨别史料作者意图」,这里连"作者"都是它装出来的。书名、页码、网址,都可能是它顺手编的——前文那位老师碰到的常春藤脚注,就是这么来的。

所以规矩只有一条,笨但有效:每条史料的出处,30 秒内能不能翻到原文。翻不到就删,不辩解——史由证来,无证不立。

3

作业用三色笔立证据规矩

红色:可查证的依据,带出处——只认两类:第一手史料(文献原件、实物、当时影像)与官方整理(统编教材、文献汇编、档案馆编目)。教材属第二类,能当依据,不能顶替第一手史料。蓝色:AI 给的,标"未核实";黑色:你自己的判断,给理由。它考"你怎么知道",不考"是不是你写的"——前者查得动,后者永远查不动。这一红一蓝,就是何成刚讲的「证据意识」:凭证据说话,论从史出。

图 7|一份三色笔作业长这样:红要出处,蓝要标注,黑要理由

4

每学期留一节 20 分钟的「找茬课」练四步本能

六张图,三真三假,打乱。学生按流程判断:先问年代(1839 年的照片里不能有电线杆),再查来源链,反向搜图,最后看像素。每步写依据,不许写"我觉得"。末了留一分钟,每人写一句"我为什么误判"——这比判断对错更要紧。讨论时投五问卡:谁在说话?为什么有说服力?哪些能核实?谁被消音?我们为什么需要它?任选两问,不求全答。

换文字版更省事:一段 AI 生成的"史料解读"埋三处错,学生当"历史审核员"——做法见前文「教材」一节。图片辨伪练眼,文字埋错练证,两样轮着来。

图 8|20 分钟找茬课的课堂节奏:发图—判断—互挑—公布
图 9|五问卡:任选两问,投屏就能讨论

5

给 AI 交回的分析,加一道「拆推理」守史论结合

查史实之外,要求它逐步推导、每步注明依据;再换个新对话,请它给这段分析找反驳、指出最薄弱的一步。同一个错犯两次,就把这规矩写进提问里,下次先讲清。

若让它参与判分,再加一条硬约束(那份判分研究给的):"不得因篇幅长、用词高级而加分;事实错误一处,直接降一档。"能挡住大部分宽容偏差。让它初评可以,终审不行。

学 生 版五条,护住你自己的判断

1

年份先过一遍脑子

1839 年的照片里不能有电线杆,1949 年的报纸不会是彩色印刷。看任何"历史影像",先拿教材后附的大事年表对一对——这一步成本最低。AI 错得比这高级得多,年份过关只是起点。

2

图片先反搜,再看像素

顺序不能反。反搜找不到出处的图,再逼真也别用。手指划痕、发黄边缘都不是"真"的证据——干净的可能是合成,有划痕的可能是翻拍。

图 10|四步核验:时间逻辑 → 来源链 → 反向搜图 → 像素最后看

3

敢跟 AI 抬杠

它不会生气,你也不吃亏。深圳有位老师让学生天天跟 AI 辩论历史结论,学生说:跟老师辩论有压力,跟 AI 辩论没包袱,敢质疑也敢说错。先敢说错,才谈得上敢想。

4

「AI 说的」不算出处

出处是教材第几页、哪本史书、哪座档案馆。写不出出处的句子,就不许进你的答案。AI 可以当线索库:它指的路可以走,路要自己验。这套功夫练熟了,中考的史料辨析题就是基本分。

见到只讲"客观上"、不讲代价的句子(如"侵略客观上促进了近代化"),最该打问号——那不是史实错,是立场被抹平。客观作用、主观目的、侵略代价,是三样东西,别让它混成一句。

5

最后一段,是你自己的话

AI 可以帮你查、帮你列、帮你改错字,但结论那一段必须是黑色笔——你自己的判断。这才是老师最想看到的部分。

图 11|证据层级表:红笔只认上两层,AI 输出永远在层级之外

最 后守住历史教学的「本」

教材写致远舰"未至而沉没"。我一直觉得这五个字比"壮烈殉国"更重:它说的是,他们拼了命,也没撞到。

AI 不肯写这五个字。它替我们补了一个圆满的结局——因为圆满的结局,概率最高。

我们教历史的,做的恰恰相反:把"没撞到"讲清楚,把"谁在说话"问出来。这种克制本身是一种解释——不煽情,让证据说话。这就是历史思考:一个「欲」字的分寸、一处表述的选择,背后是证据、解释与价值。知识 AI 抢得走,这种思考抢不走。

最近历史学者自己出了一套题去考 AI,叫 HistBench,覆盖 29 种古今语言、36 门专门史。有意思的不是它考倒 AI 没有,是它引来的争议:有人说,用固化的标准答案去评史学能力,"在认识论上更接近中学历史教育的应试逻辑,而非史学研究所强调的问题意识和阐释空间"——连历史学家自己,都在反思"标准答案"这回事。

这句话,教中学历史的人最该听到。什么才算懂历史?是背得出四家主张,还是答得出"他们在争什么";是写对一个年份,还是说得清它为什么重要。判断标准从不是死的,要一代代人重新想一遍——这就是历史意识:不记住结论,而是永远保留「再问一句」的能力。

这十条清单,就是"重新想"的落点。守住教材里的一个字、一处表述,守的不是几行铅字,是下一代看历史的眼光:什么是证据,什么是编排,什么是思考。这个眼光立住了,孩子面对再聪明的机器,也问得出那一句——这一次,是谁在说话?

说到底,把 AI 摆在什么位置,比它好不好用更要紧。徐赐成教授说得明白:AI 只是工具,用得好不好,取决于教师的理念、方案与引导——工具替不了育人的本。写《Teaching with Ghosts》的两位学者提过一个词,叫"技术好奇":对 AI 保持好奇,但这份好奇要被历史思维与伦理审视管住。译成课堂上的话——它只能当"要审的来源",不能当"要信的作者"。

它负责接,我们负责判。最好的防骗,是把它骗人的地方,讲成一堂课。

欢迎看到这里的你,那么问题来了,这里面有没有 Ai 骗你的线索呢,欢迎评论区讨论~

图 12|这一次,是谁在说话?

如果这条清单对你有用,转给你科组的同事,或者转进孩子班级的家长群。

资 料 来 源

· Amy Allen, David Hicks, Teaching with Ghosts, Perspectives on History(美国历史学会,2026 年 9 月;诺曼底 AI 图实验、五问法均出此文,已于 2026-10 复核原文)

· Optimizing AI-based assessment in history education: The impact of prompt engineering on scoring performance, Journal of Educational Technology and Online Learning(24 名学生 72 份答卷,r > 0.80、「偏爱流畅冗长而事实残缺」与「提示词设计比选模型更重要」均出此文)

· Amy Allen, David Hicks, Figuring GenAI: Toward a Technocurious Framework for History Education, Teachers College Record, 2026, 128(8)

· 中国教育学会历史教学专业委员会 2026 年度学术年会(烟台,2026.10.16—19):主题「素养导向、评价驱动」;田磊「时空定位+关键词提取+史料印证」提问框架、三张课堂量表

· 云南省周永珍名师工作室「珍探论坛 NO.21」(昆明,2026.10.25):朱敏「人主 AI 辅」、高烨「AI 跑第一棒/教师跑最后一棒」、李雪五道命题工序、陆香岑三条红线

· 黄牧航《中学历史核心素养命题的关键技术四:完善分层赋分》:历史解释五层(现象性→内涵性→本质性→联系性→规律性)与「为人工智能阅卷打下基础」均出此文

· 泉州洛江区初二历史教研活动(2026.10.23):陈慧琳《中国同盟会》「历史审核员」课例;谢树森「应用为王」「科技的锐度,人文的温度」均出此活动纪要

· 武汉市二桥中学「三师协同」课例(2026.10.14):操芮《辛亥革命》,「AI 出场越晚越好」

· HistBench 基准及其争议:高晞《进入人工智能实验室的历史学者》(爱思想);「在认识论上更接近中学历史教育的应试逻辑」为批评者意见,转引自该文

· Chris Chapman,《What an AI hallucination taught my classroom》,Post and Courier;「一条假引文和一间怀疑的教室」「40 分钟埋三处错」均出此文

· 福州某校高一假期作业「历史谣言粉碎机」与「AI 初评+教师审核」机制:史海拾珍《史料实证——历史组开展高一作业展示活动》;「爱因斯坦数学不及格」追源案例出此文

· JournalArta《辨别 AI 生成历史图像的简易方法》(Sebastian Kubon 的「时间逻辑」法)

· 南方+《百万粉丝老师把 27 万份资料喂给 AI,深圳一高中历史课火了》(周建定案例);张汉林《史料实证素养贵在史料理解》,《历史教学问题》2023 年第 5 期

· 《义务教育历史课程标准(2022 年版)》五大素养(唯物史观、史料实证、历史解释、时空观念、家国情怀);教材原文引自统编版《中国历史》八年级上册第 5 课「学史崇德」栏目(2024 修订版):「欲撞击日舰与其同归于尽。因敌炮丛集,未至而沉没。」

· 徐赐成《AI 时代与历史教学之本》专题讲座(西北师范大学「史教薪传」系列,2025.11):「历史学习就是学会历史思考」「AI 只是工具,效果取决于教师理念」均出此讲

· 何成刚《史料教学的理论与实践》及《史料阅读与史料教学》:「没有史料就没有历史教学」「论从史出、史论结合」「证据意识」均出此

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-11-08 08:12:45 HTTP/1.1 GET : http://a.sjds.net/a/539683.html
  2. 运行时间 : 0.084700s [ 吞吐率:11.81req/s ] 内存消耗:4,319.30kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ec323dd00532e2f3970cf6231ef53862
  1. /www/wwwroot/a.sjds.net/public/index.php ( 0.79 KB )
  2. /www/wwwroot/a.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /www/wwwroot/a.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /www/wwwroot/a.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /www/wwwroot/a.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /www/wwwroot/a.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /www/wwwroot/a.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /www/wwwroot/a.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /www/wwwroot/a.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /www/wwwroot/a.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /www/wwwroot/a.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /www/wwwroot/a.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /www/wwwroot/a.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /www/wwwroot/a.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /www/wwwroot/a.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /www/wwwroot/a.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /www/wwwroot/a.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /www/wwwroot/a.sjds.net/app/provider.php ( 0.19 KB )
  23. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /www/wwwroot/a.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /www/wwwroot/a.sjds.net/app/common.php ( 0.03 KB )
  27. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /www/wwwroot/a.sjds.net/config/app.php ( 0.95 KB )
  30. /www/wwwroot/a.sjds.net/config/cache.php ( 0.78 KB )
  31. /www/wwwroot/a.sjds.net/config/console.php ( 0.23 KB )
  32. /www/wwwroot/a.sjds.net/config/cookie.php ( 0.56 KB )
  33. /www/wwwroot/a.sjds.net/config/database.php ( 2.48 KB )
  34. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /www/wwwroot/a.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /www/wwwroot/a.sjds.net/config/lang.php ( 0.91 KB )
  37. /www/wwwroot/a.sjds.net/config/log.php ( 1.35 KB )
  38. /www/wwwroot/a.sjds.net/config/middleware.php ( 0.19 KB )
  39. /www/wwwroot/a.sjds.net/config/route.php ( 1.89 KB )
  40. /www/wwwroot/a.sjds.net/config/session.php ( 0.57 KB )
  41. /www/wwwroot/a.sjds.net/config/trace.php ( 0.34 KB )
  42. /www/wwwroot/a.sjds.net/config/view.php ( 0.82 KB )
  43. /www/wwwroot/a.sjds.net/app/event.php ( 0.25 KB )
  44. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /www/wwwroot/a.sjds.net/app/service.php ( 0.13 KB )
  46. /www/wwwroot/a.sjds.net/app/AppService.php ( 0.26 KB )
  47. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /www/wwwroot/a.sjds.net/vendor/services.php ( 0.14 KB )
  53. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /www/wwwroot/a.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /www/wwwroot/a.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /www/wwwroot/a.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /www/wwwroot/a.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /www/wwwroot/a.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /www/wwwroot/a.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /www/wwwroot/a.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /www/wwwroot/a.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /www/wwwroot/a.sjds.net/app/Request.php ( 0.09 KB )
  84. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /www/wwwroot/a.sjds.net/app/middleware.php ( 0.25 KB )
  86. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /www/wwwroot/a.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /www/wwwroot/a.sjds.net/route/app.php ( 1.72 KB )
  100. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /www/wwwroot/a.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /www/wwwroot/a.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /www/wwwroot/a.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /www/wwwroot/a.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /www/wwwroot/a.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /www/wwwroot/a.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /www/wwwroot/a.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /www/wwwroot/a.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /www/wwwroot/a.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /www/wwwroot/a.sjds.net/runtime/temp/64ad42204038485b18ca907186edb47b.php ( 8.05 KB )
  140. /www/wwwroot/a.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000482s ] mysql:host=172.18.0.4;port=3306;dbname=a_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000634s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000354s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000404s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000731s ]
  6. SELECT * FROM `set` [ RunTime:0.000375s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000747s ]
  8. SELECT * FROM `article` WHERE `id` = 539683 LIMIT 1 [ RunTime:0.000605s ]
  9. UPDATE `article` SET `lasttime` = 1794096765 WHERE `id` = 539683 [ RunTime:0.001519s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000340s ]
  11. SELECT * FROM `article` WHERE `id` < 539683 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000393s ]
  12. SELECT * FROM `article` WHERE `id` > 539683 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000347s ]
  13. SELECT * FROM `article` WHERE `id` < 539683 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000480s ]
  14. SELECT * FROM `article` WHERE `id` < 539683 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000459s ]
  15. SELECT * FROM `article` WHERE `id` < 539683 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000524s ]
0.098545s