作业背景¶
“大人,时代变了”¶
过去几年,人工智能(Artificial Intelligence,AI)的能力突飞猛进:写代码、写文章、读文献、画图、做视频,样样都会做,速度快,效果也尚可。找工作,招聘要求里“熟练使用 AI 工具”越来越常见;做科研,用 AI 读文献、复现代码、改论文草稿越来越普及。对计算机系的学生来说,不碰 AI 是说不过去的。
目前 AI 的前沿应用,主要建立在大语言模型(Large Language Model,LLM)之上。LLM 的原理是对话补全:你发一段文字,它预测对话后续的内容,回复一段文字。但对话只是起点。在 Agent 的加持下,通过工具调用,它能做超出对话本身的事:你说“帮我把这个文件夹里的照片按时间整理好,再挑出有我的合影”,它会去读文件夹、识别照片内容,最后把整理好的照片和合影挑出来给你。这种以 LLM 为核心、能感知、能规划、能调用工具、能自己跑完多步任务的程序,就是 AI Agent。除了 LLM,语音识别与合成、文生图、文生视频等模型同样可以参与进来。这正是这次大作业要实现的东西。
为什么今年换了一个全新的作业¶
往年的大作业题目明确、规格清晰,重点考察把固定需求写成高质量 Rust 程序的能力,教学目的是锻炼学生独立完成一个完整项目。但在 AI 时代,写代码这件事,AI 已经能替你完成大半;作业如果还只考“写程序”,考的就是 AI 的强项。这门课要教的,已经扩展到怎么用 AI 写代码。所以今年设计了一个全新的作业。
相比往年的固定选题,今年的作业更贴近真实世界。真实世界的项目很少从明确题目开始,第一步往往是“不知道要做什么”:用户只有一个模糊的烦恼,需要有人把它变成具体、可实现的方案,再与 AI 协同,又快又好地实现出来。这正是 AI 时代程序员很需要的一项能力。
所以今年课程组第一次把大作业从“完成一个规定程序”改成“设计并实现你自己的 AI Agent”。我们希望你能:
- 从你自己或周围人的真实生活、学习、娱乐场景出发,解决自己或他们遇到的实际问题,或者做一些你和他们都会觉得有趣的东西,乐在其中;
- 完整走一遍从痛点发现、需求分析、方案设计、编码实现到展示答辩的流程;
- 把课上学的 Rust(所有权、并发、异步、工程化)真正用在一个系统上。
通用 Agent 很强,但做不好你的具体事¶
你可能会想:GPT、DeepSeek、Qwen、Kimi 这些模型已经这么强,配上通用 Agent 似乎什么都能做,为什么还要自己实现一个?区别在“通用”和“专用”。通用 Agent 什么都会一点,但不会专门为你的场景优化;专用 Agent 把大模型变成工作流里的一环,而不是用大模型去替代整个工作流。举几个具体的例子:
- 本地有一万张照片,程序先给它们建好人脸聚类和语义索引,你问一句“找出 2024 年暑假在清华拍的所有有树的照片”,几秒内它就给出结果。索引、检索是写死的代码在干,大模型只负责听懂你要的是什么。
- 银行流水和支付宝、微信的账单散在邮箱和各个 App 里,它自动下载、解析,按你定的规则分类成“餐饮”“交通”“游戏”,月底生成报表。你问一句“我上个月在游戏上花了多少钱?”,它直接给你数字,不用自己打开五个 App 一个个加。
- 你追的剧更新了,它自动提醒、下载、按剧集归档;看完一集,还能让它按你的口味总结这集讲了什么、埋了什么伏笔,顺带帮你磕一磕剧里的 CP。你只负责看,剩下的它包了,连下饭的电子榨菜都帮你备好。
你要做的,是用 Rust 语言给它接上数据、接上工具、定好规矩,把它变成只服务一个场景的专属工具。这就是本次大作业的核心:
找一个真实的、现有通用 Agent 解决不好的痛点,用 Rust 设计和实现一个高度场景定制化的 AI Agent。
这次作业具体要做什么¶
一句话版本:
从你的真实生活出发,找到一件“通用 Agent 做不好”的事,用 Rust 写一个专门为它定制的 Agent,并且至少在两个地方做出通用 Agent 做不到的定制。
具体来讲,有如下关键点:
- 场景必须真实、具体。“帮我看论文时自动爬 arXiv、提取创新点、跑官方代码验证、输出复现可信度报告”是一个好场景;“做一个学习助手”则太过模糊。
- 必须针对场景做定制。至少两项专门优化或定制逻辑(例如领域知识库、专用工具调用链、定制 Prompt 工程、设计结构化输出),让你的 Agent 在这个场景下明显强于通用 Agent,或者做到通用 Agent 做不到的事。
完整要求见作业要求。
为什么值得认真做¶
- 作业结束时,你会有一个真正能解决自己痛点、帮自己省时间的工具,或者围绕你感兴趣的事物做出的实用辅助功能,而不是写完就扔的练习题。很可能毕业了还在用。
- 怎么判断一个场景适不适合交给大模型、怎么设计 Prompt、怎么编排工具调用、怎么控制成本,这些都是现实中程序员需要考虑的地方。这门课让你完整走一遍。
- 从需求分析、架构设计、Rust 实现、UI 打磨,到写文档、做演示、接受互评和答辩,这是真实产品从 0 到 1 的全过程。
- 选题完全由你定。追剧的、打游戏的、搞科研的、管钱的,做什么都行,做自己感兴趣的东西。
自由选题,但不会让你一个人摸索¶
没有标准答案,是这份作业最自由的地方,也是最容易让人没有方向的地方。但你不用担心:
- 流程上,三阶段评审把整个作业拆分成选题确认、公开展示、分课堂展示三个节点:第一阶段老师和同学帮你反馈选题,第二阶段同学互相试用作品,第三阶段互相评分。
- 技术上,本课程鼓励使用 AI 辅助开发(见开发辅助工具),写代码、查资料、改 bug 都有 AI 帮忙;你和 AI 的协作记录本身就是提交物的一部分。
- 方法上,快速入门用一个 Ban-Pick 分析 Agent 的例子,把定选题、迭代设计文档、让 AI 实现、对话改进、收尾展示的完整流程走了一遍。没有头绪的话,可以一步步参考它的思路,设计自己的东西。
第一个建议
选题是整个作业里最重要、也最容易被低估的一步。可以认真想一想:你身边有没有反复出现、让你觉得“这破事怎么还要我自己干”的场景?想到一个就先记下来,哪怕不完美。后面的快速入门会告诉你怎么把它打磨成好选题。