Cyrus Omar:实时编程与人与 AI 共享的计算公共空间

原标题Cyrus Omar on Live Programming and a Computational Commons for Humans and AI

通过 Hazel 演示,探讨即时反馈、结构化协作和精细权限如何帮助人类与 AI 智能体共同工作。

COCyrus Omar讲者
频道
Jane Street
发布
2026年9月11日
视频
1:05:45
阅读
10 分钟
幻灯片
9
原文
英语
在 YouTube 打开
往下滚动阅读时,视频会缩到右下角继续播放。字幕跟随阅读语言。
阅读语言共 2 种语言可读
由 AI 从英语原文翻译。打开“对照原文”可以逐段核对。
摘要

30 秒看懂

Cyrus Omar 演示研究性编程环境 Hazel,提出建立一个实时、以类型论为基础的计算公共空间。他讨论了不完整程序、增量执行、智能体反馈、协作编辑和安全性,并回答了规模、数据、采用和部署方面的问题。

  1. 1通过空洞编程表达式不完整时,Hazel 仍可提供结构化反馈。
  2. 2直接操作交互式表格和音乐控件与可执行代码相连。
  3. 3智能体群的反馈Omar 认为,增量工具能够减少智能体和人的等待时间。
  4. 4协作与安全结构化编辑、版本管理和有范围限制的能力,可以成为共享工作的基础。
  5. 5实时环境中的部署按内容寻址的版本可以继续保留,更新则可有意识地进行。

要点建议

  1. 即使程序的部分内容尚未完成,实时反馈仍能展示有用的值。
  2. 交互式图形和代码可以呈现同一计算过程的相互关联的视图。
  3. AI 智能体也能从及时反馈中受益,但相关集成方案仍在研究中。
  4. 结构化协作、版本管理和受限能力分别解决可信共享工作中的不同问题。
  5. 实时公共空间还需要支持大型外部数据集和审慎部署。
全文

按章节阅读整理后的全文

只看原始文稿
01

反馈循环为何重要

Omar 将编程反馈与弹钢琴时的即时反馈作比较,介绍程序不完整或存在错误时产生的信息断层。

Cyrus Omar 从一个简单问题开始:什么样的反馈循环才有用?钢琴家按下琴键后立刻听到声音,随即就能调整。编程中,从编辑代码到看到效果通常需要等待更长时间。

好的反馈要及时、具体,让人能够将行动与结果联系起来。如果钢琴要等很久才发出声音,学习和纠正演奏就会困难得多;编程工具也遵循同样的道理。

程序尚未完成,或包含语法及类型错误时,传统编辑器和编译器可能留下信息断层。依赖解析或类型检查成功的服务会消失,恰好发生在程序员正在编辑、可能最需要反馈的时候。

02

Hazel 中的实时编程

快速排序演示展示了空洞、探针、测试和递归执行。观众提问涉及类型、副作用和运行时限制。

Hazel 是共同设计的研究性编程环境和编程语言,旨在缩小这一断层。Omar 演示快速排序的实现,说明代码尚未完成时,编辑器如何持续提供信息。

他从递归函数开始:以列表第一个元素为基准,将其余元素分区,对各部分递归排序,再将结果与基准元素组合。在构造其余部分时,Hazel 允许他将表达式的某些部分留为空洞。

Hazel 中尚未完成的快速排序
幻灯片 1 / 9Hazel 中尚未完成的快速排序编辑器在未完成的表达式周围保留程序结构。

传统解析器可能在类型检查器看到表达式之前,就拒绝不完整的表达式。Hazel 则明确表示缺失或出错的部分,让程序其他部分保持有意义的结构,并继续获得编辑器支持。

探查未完成的计算
幻灯片 2 / 9探查未完成的计算即使函数尚未完成,探针也能显示中间值。

用户可以在表达式上放置探针,显示程序运行时该表达式取到的值。即使缺少一部分,结果也可以包含未完成计算的符号表示,而不是完全没有反馈。

演示暴露了一个错误:本应排好序的列表里出现了重复的 3。Omar 沿递归函数追踪数值,而不是等整个程序完成后,只凭最终输出调试。

实时输出中的快速排序错误
幻灯片 3 / 9实时输出中的快速排序错误可见的结果有助于定位实现中的错误。

中间结果帮助他定位各部分组合方式中的问题。通过检查分区和递归调用,他可以看到代码中看似微小的改动如何立即影响输出。

一位观众询问递归限制。Omar 解释说,实时环境必须处理可能无界的计算;实际运行时会施加限制,避免不终止的程序让编辑器卡住。

谈到副作用时,Omar 说 Hazel 受到 Haskell 处理效应方式的启发:可以先将 I/O 计算为一个值,等用户希望执行相应操作时再显式运行。编辑过程中反复求值时,这一区别十分重要。

测试关键字直接在编辑器中报告断言结果。探针则不同:它展示中间值,包括递归函数多次调用时的值,让程序员能够检查计算内部发生了什么。

进入选定样本会沿调用跳转到函数定义,并选中对应的调用。界面可以显示多个样本,也可以聚焦其中一个,使同一表达式的重复执行更易理解。

一位观众询问,将某部分替换为空洞后,是否能得到部分已知的值。Omar 演示了这一点:结果可以将已知的列表结构与符号空洞结合,在真正需要缺失信息之前继续求值。

另一个问题涉及程序不完整或不一致时的类型推断。Hazel 运用渐进类型和部分类型信息的思想:它可以展示约束所支持的信息,而不假装所有约束都已成功求解。

收集所有中间值有成本。Omar 讨论了限制某一点采集样本数量等控制方法,并将现有的插桩机制与即时编译器等未来可能的优化区分开来。

观众还问到,为什么某个分支没有运行,有些表达式却仍然高亮。Omar 解释了显示效果与所选位置可用样本之间的关系:未执行的分支没有对应的运行时样本。

Omar 继续追踪递归调用及其分区结果。展示连续的上下文,有助于看清每次递归调用接收和产生的内容,而不是将所有执行折叠成一个值。

他调整实现并测试结果。实时测试立即显示哪些案例通过;一个错误案例则表明还需要进一步修正。

03

交互式表格与音乐

图形控件和数据视图与可执行代码集成。直接操作会改变底层程序。

接下来的演示从数字列表转向更丰富的值。Hazel 可以在编程环境中将表格呈现为交互对象,把数据的可视化视图与底层程序连接起来。

交互式成绩表
幻灯片 4 / 9交互式成绩表表格是与程序相连的图形视图。

通过菜单给成绩表排序,会产生相应的程序变换。图形交互和文本代码是处理同一计算过程的两种相互关联的方式,而不是与计算脱节的独立可视化。

代码中的音乐控件
幻灯片 5 / 9代码中的音乐控件钢琴、旋钮和触控板让用户直接与数值交互。

一个音乐示例结合了类似钢琴的音符选择器、增益与声像控件以及交互式触控板。这些控件让用户直接操作程序中的值并听到结果,同时仍然嵌在可组合的编程语言中。

04

为智能体提供更快的反馈

Omar 探讨智能体群面临的工具瓶颈,介绍增量执行和早期结构化智能体实验。

同样的反馈问题也延伸到 AI 智能体。在一个智能体群中,多个智能体可能共同处理同一代码库,既需要彼此协调,也需要与人协调。缓慢的工具和冗长的输出同样会拖延它们获得反馈。

随着模型生成速度提高,重新编译、重新执行和重新建立上下文可能成为瓶颈。智能体还必须处理大量文本日志,找回后续行动所需的信息。

Omar 认为,实时增量环境既能帮助人,也能帮助智能体。即使智能体通常能生成语法正确的代码,它们仍需要及时了解改动的行为和含义。

程序发生变化时,增量执行会复用先前的工作。每次小改动之后,环境不必从头重跑每项测试,而可以追踪受影响的计算,只更新需要改变的部分。

团队一直在执行和类型检查两方面投入增量化工作,并对底层语义开展形式化研究。Omar 将快捷记忆化描述为降低重复计算成本的研究方向,而不是保证所有工作都会消失。

智能体还可以通过结构化动作语言与 Hazel 交互,不必只依靠 shell 命令和文本搜索。这些动作可以用智能体能直接使用的形式,提供代码及改动的语义信息。

AI 智能体的反馈循环
幻灯片 6 / 9AI 智能体的反馈循环幻灯片列出了上下文、编译、执行和日志处理的成本。

这些智能体集成仍处于早期实验阶段,Omar 说正式研究正在进行。其假设是,更简短、信息更丰富的反馈可以减少智能体检查自身进展所需的工作量和 token;他并未声称已有确定的基准测试结果。

05

审查、协作与安全

变更导览帮助人们审查智能体生成的工作。结构化编辑、版本管理和能力机制可以为协作提供基础。

人工审查是另一个反馈循环。AI 提高了提出改动的速度,审查者可能面对越来越多积压的拉取请求,需要理解的不只是差异,还有背后的推理和顺序。

Omar 介绍了一个用于叙事式变更导览的 VS Code 插件:结构化说明可以按有意义的顺序引导审查者浏览改动。它旨在帮助人们评估发生了什么,而不必只凭原始差异自行还原过程。

协作还需要一种能够支持同时编辑的表示方式。Omar 介绍了使用无冲突复制数据类型进行结构化协作编辑的研究,其中将代码移动作为一等操作,避免位置变动造成不必要的冲突。

协作式结构化编辑
幻灯片 7 / 9协作式结构化编辑图示展示了并发编辑及其同步过程。

版本管理是另一个问题。他借鉴 Unison,讨论根据内容识别定义并保留旧版本,让新版本与现有引用共存,并使更新能够审慎进行。

当智能体可以访问工具和共享资源时,安全尤为重要。Omar 主张采用细粒度对象能力:智能体应获得适合特定任务的能力,而不是不受限制地访问操作者所能使用的一切。

AI 智能体的能力机制
幻灯片 8 / 9AI 智能体的能力机制所提架构连接了任务专属能力、策略执行和安全执行环境。

所提架构将基线策略及证明与任务专属限制结合起来。他讨论了让其他智能体协助监督或限制访问的可能性,以及针对医疗数据等敏感场景的信息流策略。这是研究方向,并不意味着整个问题已经解决。

06

计算公共空间

这一愿景将人与智能体、数据和程序汇聚在实时环境中。图形界面有望扩大参与范围。

Omar 更宏大的愿景是一个实时计算公共空间,让人与智能体共同处理共享的数据、程序和说明。丰富的图形界面可以让非专业程序员也能有效参与。

实时计算公共空间
幻灯片 9 / 9实时计算公共空间设想中的工作空间结合了数据、地图、图表和代码。

他以一个环境数据工作空间说明这一构想:其中结合了文字、表格、地图、图表和可执行的数据变换。不同参与者可以使用合适的视图工作,同时底层计算保持关联,并随输入变化而更新。

07

关于规模与基础的提问

观众询问现有智能体工作流、证明和大型外部数据集。Omar 区分了研究假设与已经确立的结果。

一位观众质疑现有工具不足的说法:他们的组织已经借助 Git 运行数千个智能体。Omar 承认 Git 可以发挥作用,认为尚待回答的问题是,何时更细粒度的结构化协作会有用,特别是在并发工作时。

他区分了团队在基础研究上的成果,与证明这种方法能在大规模生产智能体群中奏效之间的差别。后者仍需要实证验证;这场演讲提出的是实验方向,而非已经证明可以取代现有工作流的方案。

讨论验证时,Omar 提到了形式化基础和证明工具方面的工作。证明可以确立指定模型的性质,但设计系统并让它在真实协作中实用,仍是重大的研究任务。

一位观众询问公共空间如何处理非常大的外部数据集。Omar 将概念模型比作电子表格,但指出行星尺度的数据不会真的全部存放在编辑器内存中。

外部数据接口可以将运行时连接到外部存储,并将过滤等操作下推到存储端,方式受到 Apache Spark 启发。Omar 提出针对大型数据集,未来可能通过即时编译接入 Spark,并欢迎进一步讨论。

08

采用与部署

最后的讨论涉及类型论、图形工具、语言采用和版本化部署。Omar 强调审慎更新和持续的人类工作流程。

有人问他的核心主张是否是所有代码都必须采用树形结构。Omar 回答,他更强烈的主张是以类型论作为本体的基础。与把每个事实都视为无类型的二元关系相比,积类型、和类型、函数及模块能更有效地表示不同种类的事物与关系。

他将自己的研究转化方式描述为:构建一个有吸引力、具备数学基础的系统,让其他人继续开发或从中汲取灵感。他提到图形化代码、实时编程和空洞方面更广泛的工作,作为思想可以跨社区传播的例子。

纯度有助于安全地在每次按键时求值。对于有副作用的语言,工具也可以接受执行这些副作用的后果,或者保守地识别看起来纯净的表达式;Omar 以 Chrome 开发者工具为后一种方式的例子。

另一位观众询问,随着代码变得图形化、智能体操作底层结构,人类还能理解多少。Omar 将设计归功于合作者,并指出 AI 让代码移植和库的构建更加容易,采用新语言的成本可能已经发生变化。

他的团队曾尝试将 Jupyter 笔记本等材料移植到 Hazel,用作数据分析案例。他认为计算机科学家有机会重新思考工具应该是什么样,而不必假定建立生态系统的成本永远不变。

最后一个问题是,当实时环境不断变化时,部署如何运作。Omar 认为更新更及时的气候数据和模型很有价值,但也承认软件用户需要稳定性,依赖不应在他们不知情时发生变化。

他再次提到 Unison 的方法:按内容寻址的旧版本仍可使用,是否将现有代码更新到新版本可以审慎决定。除了技术机制,良好的组织流程和沟通仍然重要。最后,他感谢了观众。

同频道的其他文章

1:48:29EN → 简体中文
JSJane Street· 2026年10月16日AI 如何改变编程:John Krazit 与 Ron Minsky 的对话Ron Minsky, John Krazit · Jane StreetJane Street 的 AI 工具负责人和 Signals and Threads 主持人探讨智能体基础设施、安全、代码审查,以及软件开发体验的变化。编程智能体Developer productivity评估+2
1:36:37EN → 简体中文
JSJane Street· 2026年9月23日Aaron Bauer:在 AI 时代教授软件工程Ron Minsky, Aaron Bauer · Jane Street当模型能够生成代码时,学习目标、主动练习和编辑器设计如何影响工程教育。AI in EducationSoftware engineeringEducation+2
1:25:00EN → 简体中文
JSJane Street· 2026年9月2日Eric Mannes:如何将杂乱的外部数据用于交易研究Ron, Eric Mannes · Jane Street从商品期货和 Excel 风险系统,到时点数据集和 AI,Eric Mannes 解释 Jane Street 数据工程背后的领域知识。Data quality & curation开发流程与测试Investing+2
7 张幻灯片1:16:29EN → 简体中文
JSJane Street· 2026年8月26日Grant Sanderson 与 Alok Puranik:从群论看位置编码Grant Sanderson, Alok Puranik · 3Blue1Brown从注意力机制的假设出发,他们推导矩阵指数,并将旋转、衰减和 Jordan 块与 RoPE、ALiBi 联系起来。Transformers & attentionMathematics机器学习基础+1
4:41EN → 简体中文
JSJane Street· 2026年7月6日走进 Jane Street 实习项目:工作、导师与学习Cody · Jane Street实习生和员工讲述协作式面试、从零学习金融,以及参与公司实际使用的项目的经历。CareersCompany CultureMachine Learning+1
1:34:29EN → 简体中文
JSJane Street· 2026年6月24日Jacob Baskin:构建 Superstore 与调度 HiveYaron Minsky, Jacob Baskin · Jane Street这位 Jane Street 工程师回顾分布式分析数据库背后的设计选择,以及为不断扩大的研究集群分配资源的挑战。基础设施与部署Software engineeringDecision Making+1