市面上的大模型课程,要么讲怎么用,要么讲推理系统怎么跑。把这两件事用同一条主线串起来的课,极少。哈佛2026年秋季的CS2680「Modern AI Systems: Agents and System Optimizations」想做的,就是这件事。
课程自己的说法是:跟随一个agentic system,从agent loop一路向下穿透整个serving stack。学生在一个学期内完成从"agent的用户"到"agent运行时的作者"再到"推理引擎的运营者"的三级跳。
授课教师是Juncheng Yang,哈佛SEAS助理教授,MadSys研究组负责人,存储与缓存系统领域的知名学者,现转向AI系统研究。先修要求是CS61加至少一门研究生系统课,熟练Python和PyTorch。这是一门面向系统研究者的AI课,而不是面向AI研究者的系统课入门。
五个作业,五次逐层解剖
课程内容分两大部分。Part I讲LLM与agent:Claude Code的深度使用、multi-agent工程(有一讲题为"100x Engineer")、agent设计(context与工具、多agent协调、记忆与可靠性、评估、成本与性能、安全),以及Snowflake工程师主讲的企业级agent实战。Part II讲LLM系统:serving基础、speculative decoding、调度与prefix caching、剪枝与量化、GPU kernel、KV-cache优化与新架构、路由与负载均衡,另有Meta工程师主讲的AI基础设施讲座。每个大作业之后都安排学生分享会。
但真正的骨架是五个作业。它们不是五个独立题目,而是同一个系统的五次逐层解剖:学生先站在系统外面看它运行(A1),再打开它亲手重写核心循环(A2),然后在不许碰模型的前提下优化模型之外的一切(A3),接着把商业API整个换掉、自己运营推理引擎(A4),最后允许动所有层、但必须以严格的测量方法证明每个改动有效(A5)。五个作业全部个人完成,代码放进同一个私有GitHub仓库(教师和四位TF协作可见),权重分别为10%、10%、20%、20%、10%,合计占课程总成绩的70%。
几个贯穿全程的制度值得先交代:每次作业都要求提交Claude Code的session存档,作为write-up中过程性陈述的证据;每次作业都要求录一段演示或讲解视频;A3和A5的write-up以公开发表的博客文章形式交付。作业说明书只在发布当天早上上线,这也是为什么A4、A5的完整规格目前尚不可见。
A1:先学会看,什么都别改
第一个作业叫"Mads-Lens",预计4到6小时,权重10%。任务是给Claude Code本身做一个Web前端:用户在页面上输入请求,agent在指定目录上工作,页面实时展示它的全部活动。课程刻意把体量做小,且明确说明这是唯一一个不作为后续基准的作业。
作业分三部分。第一部分先在终端里跑通headless模式,学生会得到一个结构清晰的事件流:先是init事件,然后是assistant消息、工具调用、工具结果,最后是携带total_cost_usd、duration_ms、num_turns、session_id的结果事件。通过把session id传回--resume可以续接会话。作业要求先把一次完整运行保存成events.jsonl文件,因为第二部分的Web前端,本质上就是这个事件流的一个渲染器。
第二部分实现七个必备功能:
- 提交prompt并选择工作目录;
- 实时流式渲染轨迹,assistant文本和每次工具调用的名称与输入随事件到达而显示,而非运行结束后回放;
- 展示工具结果,长输出要折叠;
- 状态可见性,每个工具调用有pending/error状态,每次运行有进行中/完成/失败状态;
- 续接会话;
- 展示每次运行的数字,美元成本、耗时、轮次数;
- 把轨迹渲染成树,子agent的事件携带parent_tool_use_id指向派生它的那次工具调用。
规格里嵌着大量真实的工程判断:开发时建议用"回放模式",读保存好的events.jsonl而非真实运行,实现十秒级的编辑-测试循环;禁止使用agent框架、禁止自己重写agent循环,那是A2的事;若部署到公网,必须加随机access token,因为"这个页面实际上是一个远程控制器"。评分是70%七个功能(各10%,从演示视频中判定)、20% write-up、10%视觉设计。Write-up要求三条锚定到具体session时刻的观察,并明确警告"泛泛的赞美拿不到分";完全AI生成的write-up会被扣分。
这个作业表面轻松,实则完成了三件事:学会以程序化方式驱动一个agent、建立"agent运行等于可观测的事件流"的心智模型、并从用户视角亲眼看到token和美元是如何被消耗的,这为A3的成本优化埋下伏笔。
A2:拥有循环
第二个作业叫"Mads-Loop",预计10到12小时,权重10%。任务是从零实现一个名为madsLoop的最小coding-agent harness,并在SWE-bench Pro上测试。课程对agent的定义直接写在作业里:"agent就是一个处于循环中的模型;它提出工具调用,你的harness执行调用并把结果喂回去。"
具体约束相当严格:必须使用课程代理提供的qwen3.6-35b-a3b模型(OpenAI兼容API),API key只能放环境变量;命令行接口为python madsLoop.py -p "<问题描述>" [--log] <工作目录>,agent只能在工作目录内读、搜、改、执行命令,正确答案以未暂存的git修改形式存在;建议的工具集是bash、read_file、edit_file、done四件套;循环每轮把完整消息历史发给模型,直到模型不再发起工具调用。作业还规定了严格的JSONL日志schema,隐藏测试探测的是运行时而非模型,考的是harness的健壮性。
这个作业有两处教学设计尤为精彩。其一是规格书里明晃晃的警告:"DO NOT TRUST IT",讲义的第0、1部分描述的是"一个设计选择,不是答案",学生必须批判性地检验和修改它,write-up专门要求写明"你和讲义做得不一样的地方"。这直接把作业从"照图施工"变成了"提出假设、用真实任务检验、再修改"的工程研究循环。其二是mytest/自建任务:学生要自己写四个不属于任何基准的测试任务,其中两个必须设计成"初始解不出、但通过改进agent可以解出",另两个则保持无解。这实质上是让学生学会构造可证伪的评测,解不出时,能分清是agent的锅还是题目本身无解。
评分:40%来自在给定任务加隐藏的SWE-bench Pro任务上的解题率,对无解任务谎报PASS会倒扣分;40%来自一页纸write-up;20%来自三分钟代码讲解视频。运行环境在Docker容器中,改测试文件来作弊是无效的。
A3:榨干每个token
这是全课第一个"重"作业,也是竞争性最强的一个,预计10到15小时,权重20%。任务:模型仍是黑盒API,优化它周围的一切,在解题率不降的前提下压低成本和延迟。它不是书面作业,而是一场运行在专门基础设施上的公开赛。
基础设施的设计本身就值得一读:agent容器与任务容器完全隔离,两者都不通互联网,agent容器唯一的出口是一条通往课程API的egress代理;对任务容器的一切操作必须走sandbox API,禁止本地open()和subprocess。调度规则同样明确:同时最多5个任务打开;每个任务每次只能有一个正在评分的提交;单任务评分限时35分钟;总运行限时4小时。
成本结构是作业的核心变量。课程API提供三档模型,价格刻意拉开了两个数量级。这实际上把模型路由从一个听课概念变成了学生必须做出的真实决策:哪些子任务值得用最贵的档,哪些用最便宜的档就够。加上缓存输入的巨大价差,KV-cache与prefix复用的经济学也第一次变得可感知。
排行榜的规则相当精细:26个任务,三个指标(解题数、每解出一题的成本、每解出一题的耗时),采用skyline排名,解出至少7题的提交按三指标的支配关系分层排序,不足7题的排在所有达标提交之后。预算限制为每天30美元、每次提交10美元。计分公式为max(81 − rank, 50),条件是你至少有一次提交打败基线,官方基线是在10美元、4小时内解出16题。80分给排行榜,10分给write-up,10分给露脸出声的三分钟视频。
两个细节最能说明这门课的性格。其一,失败原因会按任务逐条展示,一切透明。其二,作业设有一个特别加分项:报告基础设施的安全漏洞最多可加3分,而利用漏洞作弊则整份提交作废;把安全研究也纳入了激励,同时堵死了投机。
A4:自建引擎
详细规格要到10月21日发布当天才上线,但方向已在课程页明确:拿掉商业API,自己用一个推理引擎部署7到8B的开源权重模型,运行你自己的agent。然后测量质量损失了多少、诊断损失来自哪里,并通过agent harness把性能补回来。这是全课最点题的作业:它把Part II所学的serving、量化、KV-cache、speculative decoding全部从"听课内容"变成"你必须亲手操作并获得反馈的杠杆",同时逼学生直面"小模型加好系统"与"前沿模型API"之间的真实差距,并用上层工程手段弥合它。
A5:全栈优化
规格同样未发布,但方法论要求已经写得很清楚,而且相当严格:profile整条执行路径,解释时间、token和算力分别花在了哪里;在改动任何东西之前先写下性能假设;然后跨所有层做优化,重跑同一workload,验证哪些改动真正起了作用。评分延续leaderboard模式(80分性能加20分写作),延迟作为新增指标加入排名。交付物是公开发表的博客。如果说A3训练的是"在固定质量下省钱",A5训练的就是系统研究最核心的习惯,假设驱动的测量,以及诚实的归因。
递进逻辑:约束的逐层释放
回头看这五个作业的设计,可以看到一条清晰的约束控制线:A1什么都不能改(只能看),A2只许改运行时(模型是定的),A3只许改模型之外的一切(三档模型任选但都是黑盒),A4必须换掉模型(自己serve),A5允许动一切(但必须先写假设)。每一层的自由度都在扩大,而每一层都继承了前一层的产出;A2建立的评测集成为后续所有作业的基准,A3的成本意识、A4的serving能力在A5汇合。配合session存档审计、反投机评分和对无解任务的诚实分析要求,这套作业序列教的不只是五项技能,而是一个完整的纵向系统观:知道钱花在哪,知道时间花在哪,并且能用证据说话。
热门跟贴