
“没人陪我写作业”这句话乍一听像撒娇。但当它在去年某个中学生科创比赛的答辩现场被一个13岁女孩说出来时我意识到这是一个绝佳的产品痛点。她把这句话做成了一件获奖作品核心不是新技术而是把“AI陪伴”这件事想透了。这篇文章我就拆一拆这个作品的构思、技术选型和现场表现中学生能复现成年人也能从中看到一套完整的AI应用落地思路。1. 作品源起从一个小情绪到获奖项目1.1 为什么「没人陪我写作业」值得做一个AI作品大多数成年人听到“没人陪写作业”第一反应是“这孩子不够独立”。但站在13岁中学生的视角这句话的真实含义是遇到不会的题没人立刻解释做完题没人帮忙检查写累了没人说一句“差不多行了休息一下”。这是学习场景里实实在在的陪伴缺失不是矫情。做AI项目最怕选题太抽象。什么“智慧校园”“未来教育”听着大落到具体功能全是拼凑。而“没人陪我写作业”是高频、具体、有情绪的场景。它天然包含三类问题知识辅导、进度督促、情感支持。这三类问题恰好分别对应了大模型的语言能力、任务拆解能力和语气控制能力。也就是说这个选题不是硬蹭AI而是AI天生适合干这个。更重要的一点是这个痛点评委能听懂。很多中学生项目评委听完一脸茫然但这个作品讲解时评委的第一反应是“哦我孩子也需要这个”。共鸣感一来项目就已经赢了一半。1.2 这个作品到底长什么样公开答辩时展示的核心功能有四个。第一语音或文字输入“我今天有数学卷子、语文背诵、英语单词”AI自动生成任务清单并预估每项时长。第二针对单道题目AI不是直接给答案而是用苏格拉底式追问引导解题比如问“这个公式里的x代表什么”。第三完成一项任务后AI给出简短的鼓励语音并记录到“成就本”。第四如果超过设定时间没进度AI会用温和语气提醒而不是催命。这其实就是一个典型的AI Agent雏形理解意图、规划任务、执行调用、记忆状态、主动反馈。13岁的孩子当然不懂Agent形式化定义但她通过产品设计自然做到了这几点。我后面详细拆技术但大家可以先记住一个结论中学生做AI作品不需要去定义“什么是Agent”只需要让AI具备“记住、规划、执行、反馈”这四种行为。从交互形态看她做了一个极简的网页应用左侧是对话区右侧是任务打卡列表。没有复杂仪表盘没有花哨动画。她说“界面越像聊天软件妈妈越觉得我在玩手机但同学越觉得好用”这个观察非常精准。目标用户是中学生交互必须像日常聊天而不是像学习软件。1.3 项目拆分一个初中生能hold住的技术栈很多中学生一听“AI项目”就以为要训练大模型、调显卡、写PyTorch完全被吓住。这个作品实际用到的技术栈非常克制前端是HTML加简单JavaScript后端是Python的Flask模型调用的是现成大模型API语音识别用的是现成接口所有数据存在本地JSON文件里没有数据库。整套系统跑起来核心代码量不到600行。这个体量一个有一定自学基础的中学生完全可以在两三个月内搞定。关键是这个技术选型是在老师引导下刻意“做小”的。她本来想搞人形机器人陪写作业被劝住了。机器人涉及硬件成本、运动控制、多模态交互坑太深而且和“陪写作业”这个核心痛点关系不大。现在的方案所有算力都在云端本地只需要一个浏览器稳定性反而更高。被劝住的过程其实就是产品经理经常做的“需求收敛”。我见过太多参赛项目败在功能花哨但核心不稳。一件作品能把“陪写作业”这一个场景做到70分强过十个场景各做20分。2. 核心细节解析与实操要点2.1 大模型不是必需品但选对接口是关键这句话听起来反直觉但事实确实如此。这个作品的核心竞争力不在模型而在对话设计和记忆管理。市面上的大模型API随便挑一个主流厂家的入门款都能胜任“讲题、鼓励、提醒”这类轻量对话任务。真正决定体验的是上下文怎么组织、数据怎么存、语气怎么控制。她最初踩过一个大坑选了一个当时很便宜的API结果数学逻辑能力太弱连“一元一次方程移项”都反复讲错。后来换成了中档配置的模型成本虽然高一点但稳定性明显提升。这个教训很适用于中学生项目不要因为省钱选太弱的模型也不要盲目追最新最强配置够用就行。对学生来说AP类的额度通常很低挑一款在“数学推理”上口碑过关的入门级模型就是最优解。另外要提醒一点所有大模型API都需要联网项目演示一定要提前准备网络备用方案。这个作品到了现场彩排时场地Wi-Fi突然不稳定差点翻车。最后解决办法是手机热点加本地录音演示有惊无险。以后凡是做AI类参赛作品一定把“离线演示预案”当成必选项。2.2 把「陪写作业」拆成四种AI行为整个作品的底层其实是把“陪写作业”这个抽象动作拆成了四种可以编程的行为。第一种叫“任务拆解”。用户说“我有数学卷子、语文背诵、英语单词”AI需要把它变成结构化清单并为每个任务估算时长。这部分的实现方式是不直接让AI回复用户而是先在内部让AI输出一个约定好的JSON结构再渲染到页面上。这个设计非常妙它避免了大模型自由发挥导致的格式混乱。第二种叫“答疑引导”。当用户问一道题AI不能直接给答案。提示词里明确写着“只提问不解答通过连续追问帮助用户自己找到思路”。为了防止AI偷偷直接输出步骤还加了一个后置校验如果回答长度超过150个字且没有问号就判定为违规强制重新生成。这个校验逻辑简单但非常有效它保证了“引导”人设的一致性。第三种叫“进度鼓励”。每次完成一个任务AI从固定话术库里随机抽一句简短鼓励加上任务名称一起播报。这里的细节是话术必须短且不能出现“真聪明”这种定性表扬要说“这道题你用了两次移项思路很顺”这种描述性反馈。第四种叫“超时提醒”。如果系统发现用户在设定的番茄钟周期内没有任何操作会主动推送一条消息比如“你卡在数学卷子最后一道题大概十分钟了要不要先做英语单词换换脑子”。这个行为涉及一个简单的状态判断逻辑不复杂但有很强的关怀感是整场答辩最打动评委的亮点之一。2.3 提示词设计如何让AI像同学而不是搜索引擎提示词是这个作品的灵魂值得单独拿出来说。学生最初写的系统提示词是“你是一个耐心负责的老师”结果实测效果很糟糕AI的回应全是“首先我们需要仔细分析题目要求然后逐步建立解题思路”这种满分废话像极了不干正事的搜索引擎。后来经过反复调整最终沿用的提示词核心部分大概是这样的你是陪伴一个13岁初中生写作业的同学不是老师。 你的语气要像同龄人可以轻松、调侃但不能轻浮。 禁止直接给出答案只能通过提问引导。 每次回复不超过100个字如果用户在解题中优先追问下一步思路。 不要夸“你真聪明”要描述具体做得对的地方。 如果用户连续三次答错同一类题切换到“降低难度再引导”模式。这个提示词为什么有效因为它给出了角色、禁忌、长度限制、行为偏好、异常处理五类信息。中学生常常把提示词当成一种“魔法口令”其实提示词的本质是“给AI写产品需求文档”。把需求写清楚AI才不跑偏。还有一个容易被忽略的细节系统提示词里设置了一个“身份认同”字段告诉模型它的名字叫“小海”用户是它的好友“小樱”。测试发现给定具体名字之后模型的语气明显放松下来不再端着。这就是语言模型的社会化特质你给它一个有温度的身份它回应的文本也会更有温度。3. 实操过程与核心环节实现3.1 最小原型一次API调用的完整链路这个项目的起点不是界面不是数据库而是一个最简单的问答循环用户在命令行输入问题AI在命令行输出回答。整个原型只有不到30行Python逻辑是“拼接对话内容调用云端模型接口打印结果”。我当时给学生的建议是先不要碰前端先验证“大模型能不能当好一个讲题陪练”再考虑把它做成能给别人演示的产品。import json import requests # 以常见的开放接口风格为例实际以所选厂商文档为准 API_URL https://your-llm-endpoint/v1/chat/completions API_KEY your-key-here def ask_llm(messages): payload { model: your-model-name, messages: messages, temperature: 0.7 } headers { Content-Type: application/json, Authorization: fBearer {API_KEY} } resp requests.post(API_URL, jsonpayload, headersheaders) data resp.json() return data[choices][0][message][content] if __name__ __main__: history [] while True: user_input input(你: ) if user_input 退出: break history.append({role: user, content: user_input}) reply ask_llm(history) history.append({role: assistant, content: reply}) print(AI:, reply)这段代码包含了三个关键点。第一messages是一个列表用来模拟多轮对话上下文第二temperature调到0.7让回答带一点随机性不至于每次都一模一样第三API返回的格式是标准的OpenAI兼容风格现在绝大多数服务商都支持这种格式迁移成本很低。这个阶段最重要的一件事不是写好提示词而是亲身试出模型在“数学讲解”上的边界。比如让AI解一道二元一次方程组再故意问“为什么这里要代入而不是消元”观察模型能不能给出合理回答。只有亲自测试几十轮才能判断这个模型适不适合自己的场景。这一步必须由学生自己完成不能由老师代劳。AI产品的体验是一个非常主观的东西只有目标用户亲手试过才知道“像不像一个真人陪练”。3.2 让AI记得“昨晚作业写到哪了”本地记忆设计纯API调用是“每次都失忆”的关掉程序再打开它不知道你是谁也不知道你昨天写到哪道题。这个作品对记忆提出了两个要求一是跨天持续记忆二是区分“短期对话状态”和“长期用户档案”。短期状态很简单就是把当前这一轮对话的messages列表保存在内存里。长期档案则用JSON文件存储在本地结构大致是这样{ user_name: 小樱, preferred_subjects: [数学, 英语], difficulty_nodes: [ {subject: 数学, topic: 分式方程, status: 需巩固}, {subject: 英语, topic: 现在完成时, status: 掌握} ], tasks_today: [ {id: 1, content: 数学卷子最后三题, done: false} ], common_mistakes: [ {question: x/2 3 5, wrong_answer: x1, correct_step: 先移项再除} ] }每次对话结束后程序会做一次“记忆提取”让大模型从本轮对话中提炼出三个字段——完成的任务、卡住的知识点、值得记录的错误。然后这个结构化的摘要覆盖写入本地JSON。下一次对话开始时系统把JSON内容重新塞进系统提示词里AI就“想起来”了。这种“大模型对话时先读档对话结束再存档”的思路本质上就是一个非常原始的Agent记忆循环。难点不在于写代码而在于设计“哪些信息值得记住”。如果什么细节都存JSON文件会越来越大对话时塞进提示词的记忆文本会无限膨胀最终拖垮上下文窗口。所以记忆提取一定要通过结构化输出只留下“任务完成情况、错题知识点、用户偏好”三类信息。3.3 界面与交互低年级学生也能用的语音入口UI部分原本是想用现成的网页框架后来发现对中学生来说学习成本还是太高。于是改成了一个更取巧的方案后端用Flask提供API前端用原生HTML加JavaScript写了一个极简聊天界面左侧对话流右侧任务清单右下角一个“按住说话”按钮调语音识别接口转成文字再发给后端。整个交互不超过20个控件任何用户看一眼就会用。语音入口是整个产品体验的关键。中学生写作业时两只手通常握着笔腾不出手打字语音是最自然的交互方式。但语音识别在数学符号上非常拉胯一句“y等于x平方加二x加一”识别出来可能变成“外等于艾克斯平方加爱克斯加一”。这个问题的解决方法是显示区保留识别原文同时后端再做一道“关键词修正”把常见的同音词映射成数学符号后再送入大模型。这个细节虽然简单却让整个系统在数学科目上的可用性上了一个台阶。界面另一个被反复打磨的细节是“正在输入”的动画效果。一开始调用云端模型需要两三秒页面没有任何反馈用户会以为卡死了。后来加了一个简单的省略号跳动动画配合一行字“小海正在想怎么提示你而不是直接告诉你”体验立刻好了很多。AI应用的响应速度不够时一定要用界面反馈来兜底这属于最基础的交互常识但学生项目里很少有人注意。4. 常见问题与排查技巧实录4.1 大模型也会算错题怎么拦讲到数学题时大模型确实会一本正经地胡说八道。有一次测试AI把“(ab)的平方”展开成了“a方加b方”还振振有词地配了完整步骤。如果这个错误被评委现场抓到整个项目可信度会大打折扣。这个作品的应对方案是“三层防护”。第一层是提示词限制写清楚“如果你不确定答案请直接说‘这道题我需要想一想我们先看一个更简单的例子’”。第二层是通过记忆文件里的“错题本”模式用户提交答案后系统先不判定对错而是要求AI判断“用户的解题步骤是否合理”将判断依据明文输出。第三层是面对复杂题目时主动建议用户“把题目拍照发给老师”勇敢承认AI的边界。这个做法很实在。中学生AI项目不要试图证明“AI永远是对的”评委反而更欣赏“项目清楚知道AI的弱点并设计了应对机制”。与其隐瞒失误不如把失误变成你设计的亮点。4.2 上下文窗口塞爆了怎么办使用大模型API时如果是免费或低配额阶段通常上下文窗口有限。这个组件一开始把整本错题本都塞进系统提示词结果调用直接报“上下文长度超限”。当时学生有点慌我让她做一个实验把错题本内容截成50条、20条、10条三个版本分别测试回复质量。实验发现对“陪写作业”这种场景来说塞进去的错题超过15条之后AI不仅没有表现得更聪明反而开始注意力涣散回复开始混入不相关旧题的内容。后来设定的规则是记忆文件最多保留最近5道错题和3个长期薄弱知识点其他历史记录冷备到磁盘里不参与对话。这背后是一个直觉“AI的记忆不是硬盘更像是桌面。桌面上只能放正在做的任务做完了就归档。”中学生做AI项目不需要掌握复杂向量检索先学会做“记忆压缩和截断”问题就解决了一大半。4.3 未成年人项目的隐私与安全底线这个作品的用户群体是未成年人所以隐私安全不是加分项而是硬门槛。所有对话记录和任务数据默认只储存在本地不向任何第三方服务器发送。选用的云端API调用时只发送必要对话内容不开通“数据训练优化”选项避免未成年人的学习数据被拿去训练模型。尤其要注意的是界面里不能出现任何诱导未成年人输入“学校名称、真实姓名、家庭住址”的字段。用户昵称随机生成签到数据用“小海星数”替代真实头像和名字。我看了很多参赛作品功能很强但隐私卫生乱七八糟评委在这个问题上格外敏感因为一旦出事就不是技术问题而是伦理问题。家长和指导老师在这个项目里也要有角色边界。家长定期查看云端调用记录但不在孩子写作业时实时监看对话。这既保护孩子自主性也让作品在答辩时能自信地说“我们做了全面的未成年人保护设计”这句话的分量比任何技术指标都重。4.4 现场评审被问到“这算不算作弊”怎么答答辩现场几乎所有评委都会问一定类似问题如果这个AI陪练越来越强学生直接用AI把作业全做了怎么区分“陪写”和“代写”这个问题如果答不好前面的技术工作会瞬间失去光彩。作品给出的答案分了三层。第一层底层提示词硬性禁止直接输出答案整个系统的对话风格是“多问少答”评委可以当场拿一道题测试看AI是否遵守这个约束。第二层系统会在每周总结中统计“独立完成率”和“求助次数变化”如果发现独立完成率下降主动建议用户关掉辅助模式一段时间防止依赖。第三层也是最打动评委的一句“作弊的人不会搭一个AI来管着自己别抄答案真正想学的人才会。”这一句话讲完全场安静了两秒然后评委开始点头。产品设计可以模仿技术方案可以学习但这种对场景本质的思考才是获奖的关键所在。5. 从比赛到日常这套方法的复用价值5.1 同一套骨架还能做什么把“陪写作业”这个壳换掉底层的“任务拆解 对话引导 记忆反馈 主动提醒”骨架能迁移到非常多场景。比如“陪练口语”AI每天给定一个英文主题陪你聊五句话再根据发音和流利度反馈“陪练乐器”用户报告今天练了什么曲子AI给出分解练习建议甚至还能做“陪爸妈学手机”帮长辈把复杂操作拆成一步步指引。这个骨架在技术上的通用性非常强每个场景只需要换一套提示词和一套记忆字段。中学生如果想在这个基础上继续深入有三条路径。第一条是做深记忆系统引入向量数据库和语义检索让AI能精准回忆起很久以前某个知识点第二条是做多Agent协作一个Agent负责讲题一个Agent负责查资料一个Agent负责监督学习状态这属于AI Agent的进阶方向第三条是接入更多本地能力比如摄像头识别纸质作业自动把错题导入系统。对刚开始接触AI的中学生来说不需要一上来就挑战全部。把一个骨架吃透能把它迁移到三个不同场景这种“元技能”比任何单点工具知识都值钱。5.2 给中学生做AI项目的通用建议带过几轮中学生AI项目之后我越来越确信这个年龄段的孩子做AI最稀缺的不是编程能力而是把生活问题“转译”成AI问题的能力以及把一个想法克制落地的心性。第一选题一定要来自真实的“我”的痛点不是为了比赛而编造。13岁女孩的“没人陪我写作业”为什么能打动人因为它真实。评委和用户都厌烦那些从网上抄来的假需求。第二项目规模宁小勿大。400行能跑通的东西不要为了炫技写成4000行。多一个模块就多一个出bug的地方。比赛看的是完成度和深度不是代码量。第三AI项目迭代要用真实用户反馈驱动。这个作品发布了一版给班里同学试用反馈排前三的需求是“别老催我”“说话能不能别像我妈”“能不能在我想不出的时候提示一下”。这些反馈直接决定了最终产品形态。学生要学会把一个粗糙版本扔给真实用户然后认真听骂声。第四也是我反复强调的要学会“向下卷”。如果你学有余力比起学更多算法不如把一个接口的完整调用链吃透把提示词打磨到极致把记忆管理做成一个干净的数据结构。整个行业现在最缺的不是“知道注意力机制的人”而是“能把一个简单功能做得极其可靠的人”。一点真实体会这个项目做完之后那个13岁女孩跟我说了一句让我印象很深的话“我原本以为AI特别难作品做完发现难的不是AI是搞清楚我到底想要它干什么。”她说的这句话比我见过很多技术强的人总结更准确。AI入门最核心的关卡早就不是“会不会写代码”而是“会不会定义问题”。把一个模糊的情绪变成清晰的功能把一句话变成一个能跑的流程把一堆反馈收敛成一个稳定的版本这才是AI时代真正值得练习的能力。“没人陪我写作业”只是一个起点。她真正做出来的是一套属于自己的、把想法变成产品的思维方式。这条路一旦走通后面的可能性会比我们想象的宽得多。