昂贵能力变成日用品
从个人电脑、互联网、移动支付到大语言模型,从前稀缺的能力迅速变成日常用品。作业、考试和简历上的可见完成度同时贬值,学生陷入“没学会”和“学会了也没差别”两种焦虑(00:00:00–00:20:00)。
南京大学蒋炎岩生成式软件工程第一讲:从 Agent 课堂实操,讲到 Intention、Specification、Implementation 之间为什么仍然会失败
Agent 把“做完一件事”变成日用品之后,真正还活着的问题是 Intention、Specification、Implementation 之间的缺口,以及谁对长期结果负责
本文综合:这堂课的前半用装机、配置终端、读论文、修采集卡、填教务,说明许多从前很陡的学习曲线已经被 Agent 压平;后半用同一个 QR Excel specification 的对照,说明“做完”仍可走向可维护架构,或走向不可维护的 slop。两端连起来看,学生焦虑的根不是会不会手写代码。人和模型都在被短时 reward 训练成做题家:作业能交、测试能过、简历能填,但意图到实现的翻译仍然会失败。生成式软件工程要教的,是补上这个缺口,而不是和 Agent 比赛谁先做完。
TL;DR
这不是工具清单,而是一堂用现场演示把学生焦虑接到软件工程缺口上的开课。
蒋炎岩主张:古法编程已经死了,Agent 在单任务上无人能敌,但软件工程暂时还没死,因为 Intention、Specification、Implementation 之间的缺口不会被更多 token 自动补上。
THE ARGUMENT
整堂课可以收成一条从能力日用品化到工程缺口的链:
从个人电脑、互联网、移动支付到大语言模型,从前稀缺的能力迅速变成日常用品。作业、考试和简历上的可见完成度同时贬值,学生陷入“没学会”和“学会了也没差别”两种焦虑(00:00:00–00:20:00)。
有了可调用工具的 Agent loop 之后,装机、配环境、填网页、消化长视频都可以用自然语言交付。上限变成想象力和能不能感知模型边界,而不是先不先手写配置文件(00:29:44–01:05:10)。
把同一条 QR Excel specification 丢给模型,可以跑很久并宣布完成,却走出硬编码和不可维护实现。教务系统多年加字段、加功能,被用作同一类失败的大型例子(01:14:40–01:28:00)。
Intention、Specification、Implementation 之间会放大很小的需求偏差。生成式软件工程要阻止模型乱猜,又要利用它从 A 到 B 的能力;人需要设计验证、卡住坏方向,并对长期结果负责(01:28:00–01:40:00)。
DEEP DIVE
以下按官方章节和课堂推进顺序组织,并分开观察、主张和预测。专有名词以转写为准,公开引用前应回听音频。
蒋炎岩从 1975 年 Altair、ICQ/OICQ、移动支付二维码讲到 2022 年 ChatGPT,把历史写成“把昂贵能力变成日用品”。在这个交叉路口,他决定开一门以 vibe coding 为主的软件工程课,核心问题是怎样让软件不失败,并试着建立驾驭人工智能的能力。
在 Agent 能交作业之后,可检查的完成度不再能把人分开;缺的是能打开、能追问的作品。
这门课按案例松散组织。想挑战讲法的人来线下;只想获取知识的人被建议既不必到课也不必看直播,因为课后会把录像切回可维护材料。讲义 Markdown 是 source of truth,播放稿里添油加醋的部分由更强模型生成。
这门课把自己也当成软件:先约束模型做什么,再把现场表演沉淀回可维护的 source。
课不讲训练细节。大语言模型被说成学到的概率分布:在很长的上下文后面继续预测下一个 token。有了推理,并让模型输出调用程序的特殊 token 之后,结果回到 loop 里,Agent 就可以自己试。
这门课站在使用者一边:先承认模型是概率机器,再把可调用工具的 loop 当成已经能用、但还远未用尽的能力。
实操从“现在就开始用、随时问它”开始。Agent.md 让教学辅助 Agent 知道这门课;想象力被说成上限。第一个完整例子是课堂 U 盘系统:从 mirrors.nju.edu.cn 取 Fedora 镜像装到 U 盘,并用模拟器验证可以登录。
装机仙人被一句话取代,靠的不是不再需要知识,而是把验证写进交付条件。
第二条线是日常事务和学习输入。邮件 skill 按历史回信写草稿、归档发票;用系统提醒触发打印,课上收到“发票已打印”的通知。读书从《人月神话》和 Ousterhout 的软件设计讲起,但阅读过程已经变成和 Agent 对话。
个人 Agent 的价值不在单次问答,而在把输入、记忆和输出连成可加速的闭环。
课间后 USB 采集卡断开。一句 reconnect 之后,DeepSeek V3 Flash 用课堂称为“软件方式拔插”的 Linux 操作恢复视频。蒋据此说:空白 Agent 环境加上该模型的 API key,普通人立刻能做刚才那些事;但 Agent 还有插件和 skill 生态。
能力边界不在会不会点一次网页,而在能否把偶然走通的路径变成可复用的脚本和 skill。
如果只用 Agent 交操作系统作业,是小看了它。一般人容易提出 Agent 做不好的需求;CS 训练的是把需求编译成可复用的代码或 skill,并知道界限在哪里。例子是改完卷以后的统分。
专业判断首先是决定哪一步可以生成、哪一步必须确定执行、哪一步必须人看过。
软件工程段落从一个受控环境思想实验开始:数据能进不能出,不能跑不信任程序,只能远程截屏。课堂演示用 Excel 2019 之前就兼容的公式,把任意字符串编成带帧号的二维码动画;拍下每一帧就能把数据带出。
Agent 完成任务的能力和它交出可维护软件的能力,已经不是同一件事。
课堂对照的成功路径是少量 prompt 加上架构:先设计对 Python 和 Excel 都友好的中间语言,用 XOR、concat 一类原语分别验证计算和公式翻译,最后再生成。硬编码版本只是挪一下工作区,就要修很久。
生成式软件工程不是让模型多写一会,而是先决定在哪个空间里停下来验证。
教育体系把人训练成解决分钟级题目:考场上五分钟做不完的题通常不会出现。这和 Agent 的短时 reward 同类,而 Agent 有更多数据和更明确的反馈。若没有足够好奇去看清产品如何做出来,人在长程问题上会输给 Agent。
人目前还能回答“为什么招我”,是因为长期责任和品味还没有被短时 reward 训练出来;这不是稳定优势。
OPEN QUESTIONS
课堂自己留下了几处没有用证据收住的拉力,值得和演示分开看。
蒋把这条危险说了出来,但课堂没有给出对照:同一批学生按“先搭积木”和“先交付再复盘”分别学完之后,在新问题上的迁移能力有何差别。十倍到一百倍说的是消化已有材料的速度,不能直接当成对概念掌握的测量。
讲者承认从上而下改变体系很难,也承认分数仍然是走到简历那一步的门票。课规和学生真实激励因此是分开的。若本课按通过或不通过评价、又不能限制模型档位,项目质量差异可能更多反映 token 预算而不是工程判断。
U 盘安装里的模拟器验证、统分里不让模型做加法、QR Excel 的中间语言,都来自讲者已经知道正确路径。把这些成功直接外推到“空白环境和一句自然语言就够了”,会低估 specification 和验证是谁写的。模型档位、是否值守、是否先有架构,在课堂里被混在同一条“Agent 很强”的叙事中。
对照实验的模型次数和失败模式是课堂口述,转写里的名称和数字未经逐词核对。更关键的是因果:可维护结果出现在人已经把编译器式基础设施写进 prompt 之后。这能支持“今天还需要生成式软件工程”,还不能支持“模型没有能力找到好设计”,只能支持“默认采样找不到”。
这是明确的预测,没有时间表,也没有说明什么样的后训练会把“尽快做完”改成“先选可维护架构”。GPT-5.6 能说出保研问题的好答案却做不到,是课堂观察,不是对所有模型、所有任务的测量。把它当成稳定的人机分工,和讲者自己的危机感是冲突的。
SO WHAT
把课堂演示收成可以立刻做的动作,而不是再鼓励一次“拥抱 AI”。
CHAPTERS
时间点来自官方章节;正文主题在这些段落内部展开。
课程简介
实操 (1)
视频恢复—实操 (2)
实操 (3)
软件工程
一句话带走
古法编程已经死了;Agent 在单任务上无人能敌;软件工程暂时还没死。要接住的问题是:为什么招你,而不是买一个 200 美元的 Claude Max。
方法与限制:本页基于对中文课堂录音的 AI 自动语音识别(ASR)整理,不是人工逐词校对稿。转写模型为 doubao-seed-2-0-lite-260428,按约 20 分钟切片识别后再由编辑按主题重组。课堂为中文即兴讲授,夹杂现场演示、英文术语和幻灯片生成内容;专有名词(模型名、产品名、网站、命令)、数字、断句和说话人换行可能有误,例如转写中的 Pie、OpenClaw/OpenCloud、GM 5.3、GPT 5.6 so、Cloud Code 等均未对照音频逐词确认。官方章节时间戳用于时间轴;主题中的更细时间范围结合章节与切片边界估计。insight 是编辑综合,不是讲者原句。公开引用任何短句或术语前,应回到对应时间点听原始音频。
查看逐字稿