你的软件应该自我构建

我最近得出一个结论:将构建软件的代理与其所构建的软件区分开来,既毫无意义, 也已显得过时。在未来,软件将自行构建自身——这意味着,代理已然融入其所构建软件的内在结构之中。 为了使这一理念更加严谨,我提出两个(我认为颇具新意)构想:
你的代理应当运行于其所编程语言的类型系统内部。
你的代理应当拥有(并且能够编辑)其所编程的语言。
我将满足上述两项特质的系统称为“自动语法模型”(Auto-Syntactic Model,简称ASM)。
传统上,模型与代理之间的区别在于:模型是一种单步函数,可将文本映射至另一段文本; 而代理则是一种具备工具使用能力、并嵌入在while循环中的模型。[1] 在ASM中,代理以一种名为L的编程语言编写代码,而L的语法则由其本地定义(例如, 使用Racket)。代理配备了一种修改工具,使其能够直接对L进行修改。 此外,代理并不以独立于L的语法和语义存在的实体; 当它对L进行修改时,实际上是在修改自身的框架。 这是因为代理是直接在自身语言的类型系统中实现的。
我认为,ASM能够解决当前最先进编程代理所面临的若干极其重要的问题。 接下来,我将逐一列举这些问题,并解释为何这些问题亟需第1条和/或第2条构想的支撑。 第1条构想的标题为:“你的代理很糟糕”。 随后,在下一节“PL至上”中,我将列举一些令人信服的案例,展示利用第1条和第2条构想所能实现的诸多酷炫功能。 之后,我还将探讨两条有趣的延伸方向。 首先,延伸方向1:AI安全,探讨这种全新的代理架构方法如何借助形式化方法, 催生出全新且极具趣味性的AI安全机制。 其次,延伸方向2:我的平庸原型,简要介绍了一个极为极简的原型——我在周末用Fable完成了它的编码。 最后,我将在结论部分作总结。
注:本内容仍在持续更新……
评论
?
参与讨论