老师用 TraeCode 给自己写了个批改作业的小程序

我是个老师,平时改作文和数学作业特别耗时。一个班几十份作文,逐字逐句看错字、病句、离题没、写得好不好……一坐就是大半天,改完还得写评语。数学作业也差不多,答案对错、步骤有没有问题、书写规不规范,都得一份份看。

我就想:能不能让 AI 帮我先过一遍?我拍下学生作业的照片,AI 帮我识别错字、判断离题、分析思路、给个评级和建议,我再看一眼拍板。这样我能省下大把重复劳动的时间,把精力放在真正需要我介入的部分。

简单说,我想做一个拍照批改作业的小工具——能给老师用,也能给学生看反馈。

我是一名一线老师,不是程序员。代码我基本看不懂,以前也没正经写过小程序。之所以想试 TraeCode,是因为:

  1. 这个批改需求太刚需了,我自己天天都在受煎熬
  2. 找人开发不现实(贵、沟通累、改一次等一周),不如自己搞
  3. 听说现在 AI 写代码挺猛,老师也能上手,我就想试试看

说真的,一开始我是带着"试试看,不行就算了"的心态开始的。没想到最后真做出来了
第一次下手:先把需求讲清楚

我没急着让它写代码,先花了十分钟把要做的功能列清楚:

我要做一个微信小程序,给老师批改作业用。 功能:

  • 首页:输入题目,选学生,拍作业照(1-9张),点"开始批改"
  • 结果页:AI 给出批改结果,包括错字、病句、离题判断、优缺点、鼓励意见、综合评级
  • 评级我能手动调整(AI 给建议,最终拍板的是我)
  • 历史记录:能查之前批改过的
  • 数据先本地存,后面再考虑云同步

这里有个小窍门——我把"先做本地版,云同步以后再说"明确告诉它了。这点很关键,不然它可能一开始就把云开发、数据库全塞进来,代码太杂反而跑不起来。
TraeCode 直接给我搭好了项目:首页、结果页两个页面,utils/llm.js 封装 AI 调用,utils/config.js 放 API Key,第一次编译就能跑。

卡住的时候:它怎么帮我推进

做这种项目,卡点是必然的。我印象最深的有几次:

第一次卡壳:云开发死活配不通

一开始我想用微信云函数调 AI 模型。结果一上来就报 -601034(没云开发权限),后来报 -501000(环境不存在)。我连 AppID 和环境 ID 都搞混了,把 AppID 填到环境 ID 的位置,怎么弄都不对。

我把报错截图丢给 TraeCode,它一句话点醒我:

AppID 是小程序的身份证号,环境 ID 是云开发里数据库/云函数所在的位置,这俩不是一回事。

然后一步步指导我:注册小程序账号 → 拿 AppID → 在开发者工具里填 AppID → 开通云开发 → 复制环境 ID 填到 app.js。这才走通。
第二次卡壳:AI 模型一个接一个挂

我用的是硅基流动(SiliconFlow)的视觉大模型。一开始让我用 Qwen2.5-VL-72B-Instruct,结果报 403 模型被禁用;换 DeepSeek-VL2,也没有;换 glm-4v,模型名都不存在。

我一度怀疑是不是自己操作有问题。TraeCode 直接帮我测了一圈模型,最后告诉我:这几个模型在硅基流动上都被下架/禁用了,能用的就剩 Qwen3-VL-30B-A3B-InstructQwen3-VL-8B-Instruct。换上之后立马通。

这种时候特别庆幸用了 SOLO 模式——它不光给方案,还能帮你直接发请求测模型,省得我自己折腾半天。

第三次卡壳:图片太大,接口一直超时转圈

这个卡了好久。作文和数学批改都转圈不出结果,急死我了。TraeCode 让我打开开发者工具的 Console,看最后一行打印的是什么:

如果打印了 [LLM] 请求体大小: xxx bytes,说明请求已经发出去了,在等 API 回应; 如果没打印,那是卡在图片读取那一步。

按它说的查,请求确实发出去了,那就是 API 那边超时。原因是图片太大(一张就 5-10MB),base64 编码之后 API 处理不动。它帮我加了一道压缩:质量 20%、宽度 600px,一张图从几兆压到 30-50KB。改完之后,1 张图测试立马出结果。
哪一步开始让我觉得"原来这样用更顺"

有几个转折点让我印象特别深:

  1. 从云函数改成纯前端直调 AI:一开始我把 AI 调用放在云函数里,结果云函数的 prompt 字符串里嵌套了单引号,导致语法错误,上传一直失败。TraeCode 建议我直接砍掉云函数,前端调硅基流动 API。改完之后整个项目清爽了,少了一层云函数部署的麻烦。这是第一次让我感觉到"原来架构可以更简单"。

  2. “先把现象和操作步骤一起说”:我一开始报 bug 就说"不行"“转圈”。后来学会这样开头:“我做了 X,期望 Y,实际 Z,Console 最后打印的是 ……”。TraeCode 定位问题快了好几倍,不再瞎猜。

  3. 加新功能时一次只加一个:我后来想加数学批改、错题本、学生管理这些功能,都是一次提一个,跑通了再加下一个。一口气全说完,它给的代码一坨,调试起来特别累。

四、我最后做成了什么,想给后来的人留一句什么建议

最后做成的:

一个能日常用的微信小程序,叫"作业批改"。功能:

模块 能做什么
作文批改 拍作文照片(1-9 张),AI 识别错字、判断离题、检测病句、给出优缺点和鼓励意见、综合评级(甲乙丙丁)
数学批改 拍数学作业,AI 评答案对错、思路、过程、书写规范,给评级
学生管理 本地维护学生名单,批改时选学生
评级可调 AI 给的建议我可以手动改最终评级(最终拍板的是我,不是 AI)
历史记录 批改记录云存储 + 本地兜底,换手机也不丢
错题本 自动收集错题,按学生筛选,方便复习

现在我已经拿它在班里用了,作文和数学作业都靠它先过一遍,我再人工复核。效率上,原来一份作文 8-10 分钟,现在 AI 帮我缩到 3-4 分钟,剩下的时间我能多改几份、写得更细。

于是:我又继续让他帮我开发了数学题批改:

最后结果:

给大家留一句浅薄建议:

如果你跟我一样不是程序员,又有个自己特别想解决的需求,别被"我不会写代码"吓住。把需求想清楚(这是关键),剩下交给 TraeCode,遇到报错就把现象和 Console 日志贴给它,它会一步一步带你走出来。

但有一句实话也要说:第一版做出来 ≠ 立刻能用。我后面花了大量时间在调模型、压图片、修 bug 上。AI 写代码不是"一键生成",更像"有个搭档陪你 debug"——但这个搭档不会累、不会嫌你问题蠢,光这一点就够值了。

如果让我推荐给下一个人怎么开始,我会说:先花十分钟把需求写成一段话,要做什么、给谁用、先做什么后做什么,写清楚。这一步做好了,后面顺一大半。