Martin Odersky 主题演讲:编程的终结?

查看原文 HN 讨论

文章摘要

这是 Scala 语言的设计者、洛桑联邦理工学院(EPFL)教授 Martin Odersky 在 Scala Days 2026(柏林)上的开场主题演讲,时长约 47 分钟,10 月 12 日由 Scala Days 官方频道上传。视频没有章节列表,字幕也没能抓取到,以下内容根据官方简介、Odersky 今年 7 月发表的相关博文《Tracked Capabilities for Safer Agents》(演讲讨论的正是这条研究路线)以及 HN 评论整理,其中具体技术细节来自博文,未必与演讲逐字对应。

演讲要回答的问题。 官方简介写道:编程智能体正在从根本上颠覆我们对软件开发的习惯和预期。我们是否正在见证(人类)编程的终结,软件构造将完全成为智能体的领地?很多人这么认为,但 Odersky 不这么想。他认为,即使系统的大部分代码由智能体编写和审查,人类留在回路中仍然至关重要;要做到这一点,编程语言和编程工作流可能都需要根本性的变革,这次演讲就是要开启”哪些创新可能有帮助”的讨论。HN 评论者对演讲的概括是:讲的是如何不逐行检查代码,就给智能体开发套上护栏,而 Odersky 给出的答案落在他最擅长的层面,也就是语言设计。

问题出在哪里。 按 Odersky 在博文中的描述,智能体的常见做法是:一个大模型,加一组工具(通过 MCP、技能或越来越常见的代码执行接入),让它自主追求目标;比起一次调用一个工具,让智能体写一小段程序去调用工具更省 token,也被认为更安全。但智能体可能不当使用工具:删除不该碰的数据、把隐私信息泄露出去、入侵受保护的系统。原因可能是藏在文档里的间接提示注入、幻觉、模型未对齐,或者只是普通的失误,而且工具调用通常是自动发生的,没有人来把关。他认为这是一种全新的威胁:没有工具,大模型只能输出文字和图片;没有大模型,就回到有代码审查、测试和验证的普通软件;两者结合,就是 AI 生成的计划在没有人事先审核的情况下调用有真实后果的工具。常见对策都不够:对齐可以被破解,还要在安全和有用之间取舍;沙箱需要细粒度权限,而不可信的智能体和忙碌的人类运维都没法保证配对;让人确认每个敏感操作,很快就会”确认疲劳”,监督形同虚设。

能力(capability)追踪进类型系统。 他的核心主张是:智能体的安全应该是基础设施的属性,而不是赌模型怎么表现,保证要在模型任何行为下都成立,哪怕模型主动作恶。工具是系统安全领域的老概念”对象能力”(1966 年 Dennis 和 Van Horn 提出):只有持有某个对象不可伪造的引用,才能对它施加操作,”没拿到钥匙就开不了门”。传统上能力只在运行时检查,他们的贡献是借助 Scala 近年发展的”捕获检查”(capture checking),在静态类型里追踪能力。这样就能表达运行时难以表达的约束:某个函数只能持有允许集合内的能力,极限情况下可以要求它是纯函数,不持有任何能力,因而什么都泄露不了、什么都影响不了。类型检查在代码运行前就能发现错误,没有运行时开销,对所有输入都成立,而且可以模块化组合。

一个例子。 博文举的例子是让智能体比较一组机密合同并写一份变更摘要:它必须输出摘要,却不能把内容泄露到别处,不能交给其他工具、不能发到网络上、也不能悄悄带进以后无关的回答里,合同里的文字也不能左右它的行为。做法是只给智能体四样工具:文档库的读权限、单个输出文件的写权限、一个 diff 工具和一个纯的摘要模型。机密文档会被包在一个 Classified 包装里,智能体拿不到解包所需的能力,只能通过类型为 T -> U 的纯函数变换其内容,而能产生副作用的函数写作 T => U,类型系统禁止在这里使用。于是无需人去读智能体写的代码,编译器就能保证它没有把机密内容偷运出去;违规的程序根本过不了类型检查,也就不会运行。传统能力是一道防线,一旦把联网能力交给智能体就收不回来;追踪式能力可以做到纵深防御,让访问机密数据的那一小段计算暂时”放下”它持有的所有能力。他们据此构建了名为 TACIT 的智能体框架,在 τ-bench 和 SWE-bench Lite 上用多个前沿模型测试,结果是在不损失日常任务效用的前提下完全阻止了泄露攻击,相关论文获得了首届 ACM AI 与智能体系统会议(CAIS 2026)的最佳论文奖。

为什么说人类仍在回路中。 这一思路解释了演讲标题里的问号:智能体可以大量写代码,但人类要编写接口、审查交给智能体的能力清单,偶尔还要调试智能体的代码。博文指出,可复用的基础设施(包装类型、安全的数据库和工具)需要一次性投入,而每次请求只需写一份”这个智能体拿到哪些能力”的环境声明,这部分写起来便宜,人在调用智能体之前也很容易审查。智能体生成的代码运行在一个通过语言导入开启、关闭了强制类型转换和反射等逃生口的 Scala 安全子集里,而它调用的工具可以用 Java、JavaScript/TypeScript 等 Scala 能编译到的平台上的任何语言编写。他们还在做 genscalator,一套给编程智能体用、替代不受限 bash 访问的强类型工具集。Odersky 的愿景是,让智能体系统的安全像今天的内存安全、类型安全一样,成为可以指出、证明和依赖的属性。

HN 评论精华

帖子只有 30 分、4 条评论,讨论很少,以下是全部有实质内容的观点。

stillpointlab 很喜欢这场演讲,但怀疑 Scala 里的能力追踪工作早于这波智能体浪潮,只是恰好适用,”像一个找到了自己问题的解决方案”。他欣赏 Odersky 的务实态度:不去评判智能体开发是好是坏,而是思考如何在自己所在的语言设计层面解决它带来的问题,相信这些想法的落地会推动语言和系统设计的演进。

clhodapp 的评价带点调侃又不乏亲切:听 Odersky 用他一贯的语调,讲他实验室最新做进 Scala 的语言特性恰好就是所有人的 AI 智能体一直缺的那件工具,竟然在这几年的疯狂变化之上架起了一座桥。

sporritt 提出两点质疑。其一,演讲里提到的 Hugging Face 被攻击、Medicare 等事件都是入侵,和写代码无关,似乎与演讲主题(不逐行检查代码就能约束智能体开发)并不相干。其二,能力的概念纸面上很酷,但智能体必须遵守的契约由谁来写?智能体会不会干脆给自己写最宽松的契约,然后自我表扬一番继续干活?他觉得这就像”乌龟一路往上(往下)叠”。

134u7 则留下一句没头没尾的评论,说”Odersky 的 akka.io 全面押注 AI”这件事应该被审查掉。需要说明的是,Akka 出自 Odersky 参与创办的 Lightbend(原 Typesafe),但并不是他本人的项目,这条评论也没有得到任何回应。