返回播客目录

GSE 2026-01. 欢迎来到未来

南京大学蒋炎岩生成式软件工程第一讲:从 Agent 课堂实操,讲到 Intention、Specification、Implementation 之间为什么仍然会失败

01:40:00 生成式软件工程vibe codingAI AgentDeepSeek V3 Flash软件工程Intention Specification Implementation人月神话南京大学
Agent 把“做完一件事”变成日用品之后,真正还活着的问题是 Intention、Specification、Implementation 之间的缺口,以及谁对长期结果负责

本文综合:这堂课的前半用装机、配置终端、读论文、修采集卡、填教务,说明许多从前很陡的学习曲线已经被 Agent 压平;后半用同一个 QR Excel specification 的对照,说明“做完”仍可走向可维护架构,或走向不可维护的 slop。两端连起来看,学生焦虑的根不是会不会手写代码。人和模型都在被短时 reward 训练成做题家:作业能交、测试能过、简历能填,但意图到实现的翻译仍然会失败。生成式软件工程要教的,是补上这个缺口,而不是和 Agent 比赛谁先做完。

TL;DR

两分钟读完

这不是工具清单,而是一堂用现场演示把学生焦虑接到软件工程缺口上的开课。

一句话

蒋炎岩主张:古法编程已经死了,Agent 在单任务上无人能敌,但软件工程暂时还没死,因为 Intention、Specification、Implementation 之间的缺口不会被更多 token 自动补上。

  1. 课程放在 PC、互联网、移动支付到 2022 年 ChatGPT 这条“昂贵能力变成日用品”的线上。学生有两套焦虑:AI 代做课后什么都没学会,或认真学完发现 AI 也会做。课堂展示一份看起来完美、却无 GitHub、无主页、无 preprint 的简历,评为零分(00:00:00–00:20:00)。
  2. 上课方式是 contents as code:讲义 Markdown 是 source of truth,幻灯片由更强模型扩写。课规包括禁止古法编程、token 自费(演示多用 DeepSeek V3 Flash)、希望按通过或不通过评价,最终看简历上能不能写出可打开的作品(00:12:00–00:29:44)。
  3. 普通人视角的实操:用自然语言从南大镜像站把 Linux 装到 U 盘并用模拟器验证;配置窗口管理器和终端;把邮件、发票、读论文和长视频做成可复用流程。课堂主张,会用与不会用 Agent 学习的效率可以差十倍到一百倍(00:29:44–00:48:34)。
  4. 现场 USB 采集卡断开后,Agent 用软件方式重连。浏览器自动化走过教务周历后,路径可以沉淀成脚本。作为 CS 专业人员的例子,统分流水线把 OCR 交给本地模型,把加法交给脚本,并保留人工核对(00:48:34–01:14:40)。
  5. QR Excel 把文件编成兼容旧版 Excel 公式的二维码动画。无监管生成也能“完成任务”,但出现硬编码 Base64 和不可维护代码。课堂对照的成功路径是先做对 Python 和 Excel 都友好的中间语言,再分别验证后生成(01:14:40–01:28:00)。
  6. 软件工程的缺口在三个空间之间。模型靠猜去补,因为后训练奖励尽快做完。产品已经 slop 之后再砸 token,被类比为《人月神话》里往失败项目加人。收束问题是:保研时为什么招你,而不是买一个 200 美元的 Claude Max(01:28:00–01:40:00)。

THE ARGUMENT

整期内容的一条主线

整堂课可以收成一条从能力日用品化到工程缺口的链:

STEP 01

昂贵能力变成日用品

从个人电脑、互联网、移动支付到大语言模型,从前稀缺的能力迅速变成日常用品。作业、考试和简历上的可见完成度同时贬值,学生陷入“没学会”和“学会了也没差别”两种焦虑(00:00:00–00:20:00)。

STEP 02

单任务完成变成廉价

有了可调用工具的 Agent loop 之后,装机、配环境、填网页、消化长视频都可以用自然语言交付。上限变成想象力和能不能感知模型边界,而不是先不先手写配置文件(00:29:44–01:05:10)。

STEP 03

做完不等于可维护

把同一条 QR Excel specification 丢给模型,可以跑很久并宣布完成,却走出硬编码和不可维护实现。教务系统多年加字段、加功能,被用作同一类失败的大型例子(01:14:40–01:28:00)。

STEP 04

人要补的是三个空间之间的缺口

Intention、Specification、Implementation 之间会放大很小的需求偏差。生成式软件工程要阻止模型乱猜,又要利用它从 A 到 B 的能力;人需要设计验证、卡住坏方向,并对长期结果负责(01:28:00–01:40:00)。

DEEP DIVE

内容提炼

以下按官方章节和课堂推进顺序组织,并分开观察、主张和预测。专有名词以转写为准,公开引用前应回听音频。

0100:00:00–00:20:00

交叉路口:能力日用品化、两套焦虑和零分简历

观察主张

蒋炎岩从 1975 年 Altair、ICQ/OICQ、移动支付二维码讲到 2022 年 ChatGPT,把历史写成“把昂贵能力变成日用品”。在这个交叉路口,他决定开一门以 vibe coding 为主的软件工程课,核心问题是怎样让软件不失败,并试着建立驾驭人工智能的能力。

  • 第一种焦虑:老师用模型出题、学生用模型做作业,闭环里只有学生没被训练;操作系统作业也可以丢给编码 Agent 直接实现。
  • 第二种焦虑:一直听课、交作业,毕业时发现学会的东西模型都会做。
  • 课堂展示一份 AI 处理过隐私的简历:看起来有 CCF 列表论文和在投记录,但没有 GitHub、个人主页或 preprint,被评为没有额外信息的零分简历。
  • 他希望这门课带回编码的乐趣,做出能让简历可区分的东西;对部分评审场景,他甚至把“有一篇发表论文”说成可能的减分项。

在 Agent 能交作业之后,可检查的完成度不再能把人分开;缺的是能打开、能追问的作品。

0200:12:00–00:29:44

课程形态:contents as code、禁止古法编程、token 自费

主张观察

这门课按案例松散组织。想挑战讲法的人来线下;只想获取知识的人被建议既不必到课也不必看直播,因为课后会把录像切回可维护材料。讲义 Markdown 是 source of truth,播放稿里添油加醋的部分由更强模型生成。

  • 幻灯片工作流包括 make slides skill、多个不同 personality 的 subagent,以及用另一个模型做盲评;课堂称图片全部生成。
  • 课后 review 即兴表演,把录像切片重新接回 code,目标是让课程可以被别人定制和维护。
  • 课规包括禁止古法编程、token 自费。演示除幻灯片外多用 DeepSeek V3 Flash;有付费 token 被说成上课前提,有困难可联系老师。
  • 他希望用通过或不通过评价,但教务反馈专业选修课通常不是这种形式。建议项目包括宿舍常开机器上的邮件管理系统;最终仍看简历上能写出哪些设计、实现和链接。

这门课把自己也当成软件:先约束模型做什么,再把现场表演沉淀回可维护的 source。

0300:20:00–00:29:44

使用者视角:next token、ReAct Agent,以及尚未释放的能力

观察预测

课不讲训练细节。大语言模型被说成学到的概率分布:在很长的上下文后面继续预测下一个 token。有了推理,并让模型输出调用程序的特殊 token 之后,结果回到 loop 里,Agent 就可以自己试。

  • 2023 年 GPT-4 用“闭眼向山扔石头、听哪些方向弹回”给五岁孩子解释扫描电镜,课堂称这个比方后来核对是对的。
  • GPT-4 时代用一条 prompt 给编译器找大量 bug 的工作,被说成在更强模型里变成一句话。
  • 去年操作系统课上 Agent 经常做不完就停;今年已经能用。终端里的 Sway、eza、fd 等配置被说成一句自然语言加便宜模型完成。
  • 蒋认为 next-token prediction 效率低,Diffusion 式语言模型和可回改的上下文仍在研究。他明确说不能预测哪条路线胜出,但可以预见世界会变得很不一样。

这门课站在使用者一边:先承认模型是概率机器,再把可调用工具的 loop 当成已经能用、但还远未用尽的能力。

0400:29:44–00:40:00

实操一:自然语言装机,人只带模型做它现在做不到的事

观察主张

实操从“现在就开始用、随时问它”开始。Agent.md 让教学辅助 Agent 知道这门课;想象力被说成上限。第一个完整例子是课堂 U 盘系统:从 mirrors.nju.edu.cn 取 Fedora 镜像装到 U 盘,并用模拟器验证可以登录。

  • 点睛之笔是用模拟器验证,而不是只看安装命令是否跑完;用户名、密码和 tiling window manager 也用自然语言交付。
  • 不会用快捷键时,让模型根据当前系统生成文档;课堂称终端和 Neovim 的配置文件一眼都没看。
  • 主张:今天更需要感知模型能做什么、能做到什么程度,然后带它做更大的、它还做不到的事。没有这个能力就被淘汰,是个人观点。
  • Agent 压平了终端配置这类陡峭学习曲线,还可以解释为什么这样改。伴随的危险是:先搞出来再复盘,得到的理解可能和更好的理解有差距,差距能否补上未知。

装机仙人被一句话取代,靠的不是不再需要知识,而是把验证写进交付条件。

0500:40:00–00:48:34

把邮件、书、论文和长视频收进同一套学习机器

观察主张

第二条线是日常事务和学习输入。邮件 skill 按历史回信写草稿、归档发票;用系统提醒触发打印,课上收到“发票已打印”的通知。读书从《人月神话》和 Ousterhout 的软件设计讲起,但阅读过程已经变成和 Agent 对话。

  • 读论文的方法是:把人类已有知识当作已知,把十二页里最少的新意剥出来,再拿原文和分层摘要继续问。
  • 做幻灯片时用多个 personality 讨论到收敛,课堂称为算力换智力。
  • 给一个 BV 号生成图文时间轴,在画面变化足够大时截图当 ground truth,再按自己的记忆去掉已经知道的部分,用几分钟看完约两小时视频。
  • 主张:会用和不会用 Agent 学习的人,效率可以差十倍到一百倍;若所有简历看起来一样,真正拉开差距的是你看不见的那种学习速度。更吓人的内容被留到下一课。

个人 Agent 的价值不在单次问答,而在把输入、记忆和输出连成可加速的闭环。

0600:48:34–01:05:10

现场修采集卡,并用浏览器把教务路径沉淀成脚本

观察主张

课间后 USB 采集卡断开。一句 reconnect 之后,DeepSeek V3 Flash 用课堂称为“软件方式拔插”的 Linux 操作恢复视频。蒋据此说:空白 Agent 环境加上该模型的 API key,普通人立刻能做刚才那些事;但 Agent 还有插件和 skill 生态。

  • 下一步被说成用插件把浏览器和电脑管起来。Chrome 被称作软件工程奇迹之一,代码量甚至远超内核;DevTools 让普通人也能带着登录状态去驱网页。
  • 现场让模型不要读课程仓库,只用任意 AI slop 填空的教学周历。便宜模型先不听指令,课堂称更强模型会遵循得更好;它最终找到可点击的路径。
  • 走过一次的 session 可以变成记忆和确定性脚本,也就是自动选课、抢课系统的雏形。
  • skill 可以像 Unix 管道一样组合。RSS、B 站、arXiv、Hacker News 一类信息源可以进处理系统,形成飞轮。个人 Agent 产品被说成还不是终极形态;自动记忆也可能记住不该记的东西。

能力边界不在会不会点一次网页,而在能否把偶然走通的路径变成可复用的脚本和 skill。

0701:05:10–01:14:40

CS 视角:统分流水线把识别、计算和责任分开

观察主张

如果只用 Agent 交操作系统作业,是小看了它。一般人容易提出 Agent 做不好的需求;CS 训练的是把需求编译成可复用的代码或 skill,并知道界限在哪里。例子是改完卷以后的统分。

  • 流程:俯视摄像头对固定位置拍照,回车后离线识别姓名、学号和小分;第二阶段反序播报,人工核对 OCR,总分由脚本计算而不是让大模型做加法。
  • 分数汇总到教务 Excel 模板后再抽样检查。课堂强调要对每一个学生负责,所以不信任 OCR,也不把算术交给会幻觉的模型。
  • 本地可用约 27B 的通义千问和 Ollama,目的是降低人和 Agent 同步的代价。
  • 他判断:把“一百四十张已改好的卷子帮我统分”直接交给最强模型,也到不了这么快收敛的方案。人和 AI 还需要共建;同时他赌有一天模型能感知这一切并给出更完整的方案。

专业判断首先是决定哪一步可以生成、哪一步必须确定执行、哪一步必须人看过。

0801:14:40–01:28:00

QR Excel:同一条需求可以做出动画,也可以做出 slop

观察主张

软件工程段落从一个受控环境思想实验开始:数据能进不能出,不能跑不信任程序,只能远程截屏。课堂演示用 Excel 2019 之前就兼容的公式,把任意字符串编成带帧号的二维码动画;拍下每一帧就能把数据带出。

  • 这是合法公式,不是安装额外程序。课堂还提到用鼠标抖动当比特、把远程桌面做成虚拟网卡,用来说明 CS 学生知道需要哪些组件,就可以让 Agent 写出来。
  • 普通人侧被收成:学习、信息闭环、Computer Use / Browser Use,以及 everything is code。课堂提到和同学做的 Y5:自然语言打出真实物体。
  • 随后转向失败:产品是系统工程,前端后端交互运营任一环做不好就会直接失败。教务系统多年为校区等字段打补丁,被用作需求缺口放大的例子。
  • 对照实验:GPT-5.6 把需求扩大成对任意输入都要正确,违背“先做最简单、不会失败的东西”。Gemini 一次思考约 25 分钟、输出超过默认限制,无监管跑约 6 小时才结束;DeepSeek 用 Python 算好 Base64 贴进公式,输入变了编码不会变。两者最后都能交差,生成的都是不可维护代码。

Agent 完成任务的能力和它交出可维护软件的能力,已经不是同一件事。

0901:22:00–01:36:00

中间语言、三个空间,以及往 slop 上砸 token

主张观察

课堂对照的成功路径是少量 prompt 加上架构:先设计对 Python 和 Excel 都友好的中间语言,用 XOR、concat 一类原语分别验证计算和公式翻译,最后再生成。硬编码版本只是挪一下工作区,就要修很久。

  • 三个空间:Intention 是脑子里想要什么,例如做一个能把数据带出的 Excel,或做一个国民级应用;Specification 是功能、约束和界面要求;Implementation 是仍可彼此不同的具体实现。软件工程要补的是这些空间之间的缺口。
  • 今天模型用猜来补缺口。后训练在任务做完、测试通过时给奖励,于是倾向立即上手、尽快完成。这和人先熟悉实现空间、再补全规格的学习顺序不一样。
  • 《人月神话》的论断被平移过来:软件已经开始失败时,再加人只会更失败;AI 已经开始产生 slop 时,再砸 token 也会在失败物上继续修补,直到付不起为止。
  • 需求端的小变化会像杠杆一样在实现端放大。程序分析、自动测试等研究被放回这个大图里:它们重要,但只覆盖从代码检查是否满足 spec 或 intention 的局部。

生成式软件工程不是让模型多写一会,而是先决定在哪个空间里停下来验证。

1001:32:00–01:40:00

做题家训练还在,软件工程暂时没死,课也可能很快过时

主张预测

教育体系把人训练成解决分钟级题目:考场上五分钟做不完的题通常不会出现。这和 Agent 的短时 reward 同类,而 Agent 有更多数据和更明确的反馈。若没有足够好奇去看清产品如何做出来,人在长程问题上会输给 Agent。

  • 软件工程失败的定义没有变:Intention 到 Specification 到 Implementation 的翻译错了。要么做出来的不是想要的,要么实现不满足正确性或性能。
  • 课堂观察:面对 Excel 问题,当前各家模型都不会先去设计 DSL,尽管它们有足够智能把问题做干净。第一反应仍是做题家。工程品味被认为还没被训练出来,但也可能被训练出来。
  • 预测:这门课现在讲的内容,可能在三个月后或学期结束前就不再成立。GPT-5.6 给 QR 和教务系统的设计被评价为一定会失败。
  • 收束:古法编程已经死了;Agent 在单个任务上无人能敌;软件工程暂时还没有死。保研时要接住的问题是为什么招你,而不是买一个 200 美元的 Claude Max。课堂转述的好答案大意是:找到值得解决的问题,把未知拆成便宜实验,用证据让坏方向停下,并对长期结果负责;同时观察是,说出这个答案的模型自己做不到。

人目前还能回答“为什么招我”,是因为长期责任和品味还没有被短时 reward 训练出来;这不是稳定优势。

OPEN QUESTIONS

尚未解决的张力

课堂自己留下了几处没有用证据收住的拉力,值得和演示分开看。

先交付再理解,理解会不会永远落后

用 Agent 先把东西做出来,再回头复盘,学习效率可以高出很多VS这样得到的理解可能和更好的理解有差距,差距能否补上未知

蒋把这条危险说了出来,但课堂没有给出对照:同一批学生按“先搭积木”和“先交付再复盘”分别学完之后,在新问题上的迁移能力有何差别。十倍到一百倍说的是消化已有材料的速度,不能直接当成对概念掌握的测量。

禁止古法编程,机试和 GPA 仍在奖励手写

本课禁止古法编程,希望撕开体系的一个口子,让简历上出现可展示项目VS保研机试、刷题和 GPA 仍要求学生在小黑屋里手写,并且还得去 overfitting 考试

讲者承认从上而下改变体系很难,也承认分数仍然是走到简历那一步的门票。课规和学生真实激励因此是分开的。若本课按通过或不通过评价、又不能限制模型档位,项目质量差异可能更多反映 token 预算而不是工程判断。

便宜模型适合上课,但演示成功依赖讲者的先验

DeepSeek V3 Flash 足够便宜、课上更快,除幻灯片外的演示都用它VS填教务时它不听指令;更强模型被说成遵循得更好

U 盘安装里的模拟器验证、统分里不让模型做加法、QR Excel 的中间语言,都来自讲者已经知道正确路径。把这些成功直接外推到“空白环境和一句自然语言就够了”,会低估 specification 和验证是谁写的。模型档位、是否值守、是否先有架构,在课堂里被混在同一条“Agent 很强”的叙事中。

完成任务已经很强,可维护架构却仍要人先想到

无监管的长时运行也能把 QR Excel 做完,说明 Agent 的任务完成能力很强VS做完的是硬编码 slop;成功版本来自先设计中间语言,而不是模型自发选择这条路

对照实验的模型次数和失败模式是课堂口述,转写里的名称和数字未经逐词核对。更关键的是因果:可维护结果出现在人已经把编译器式基础设施写进 prompt 之后。这能支持“今天还需要生成式软件工程”,还不能支持“模型没有能力找到好设计”,只能支持“默认采样找不到”。

人要对长期负责,但这个分工可能很快被训练掉

人目前还能做模型不愿做的事:不扩大需求、设计 DSL、用证据停下坏方向、对长期结果负责VS讲者同时确信,模型见过好设计,既然能解决细碎逻辑和数学,也可能学会品味;课可能在学期内过时

这是明确的预测,没有时间表,也没有说明什么样的后训练会把“尽快做完”改成“先选可维护架构”。GPT-5.6 能说出保研问题的好答案却做不到,是课堂观察,不是对所有模型、所有任务的测量。把它当成稳定的人机分工,和讲者自己的危机感是冲突的。

SO WHAT

可执行启示

把课堂演示收成可以立刻做的动作,而不是再鼓励一次“拥抱 AI”。

ST

这门课的学生

  • 今天就写一份 Agent.md,问它是谁、为什么知道这门课,并开始用它做本课项目;不要只用它交其他课的作业。
  • 自备付费 token。课堂建议的量级是 DeepSeek 充值约 100 元,并利用低价时段;若确实没有预算,按课堂说法联系老师,而不是停在免费额度里旁观。
  • 按建议做一个可长期跑着的作品,例如宿舍常开机器上的邮件管理服务:能收指定邮箱的信、能回复、能把设计、实现和链接写进简历。
  • 本课作业禁止古法编程交差。机试和 GPA 仍按原体系准备,不要把两套激励混成“这门课可以不练基本功,其他课也可以不练判断”。
CS

用 Agent 做项目的 CS 学生

  • 动手前先写清 Intention 和最小 Specification:什么算做完、什么故意不做、用什么证据验收。不要把“任意输入都要正确”这类扩大需求交给模型自己猜。
  • 把必须正确的步骤从生成模型里拆出去。识别可以交给 OCR,算术、编码和汇总用脚本;人至少抽查一次原始证据。
  • 对会改、会活下去的软件,先设计能在一种语言里执行、再翻译到目标平台的中间表示,并分别验证。不要在已经 slop 的仓库上靠继续加 token 修补。
  • 走过一次的浏览器或系统操作,立刻沉淀成脚本或 skill;把信息源接到可重复的处理流程上,而不是每次从聊天框从头来。
TE

带实验课或项目课的老师

  • 把讲义当作 source of truth,课后用录像把即兴部分切回可维护材料;不要让直播本身成为唯一版本。
  • 评分看 Intention 到 Specification 的选择、验证证据和失败复盘,而不是看谁用了更强模型、谁先把界面点亮。
  • 若必须演示便宜模型,把“值守、先验、验证”写进教案,避免学生以为空白环境和一句 prompt 就等于课堂结果。

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 是编辑综合,不是讲者原句。公开引用任何短句或术语前,应回到对应时间点听原始音频。

查看逐字稿