个人AI代码生成打破传统云基础设施
Kenton Varda 指出,个人AI代码生成技术正在从根本上破坏传统的云基础设施架构。当前的软件交付模式存在严重的滞后性:软件由开发者编写并发送给用户,而用户的功能请求往往死在 Jira 等项目管理工具中,无法得到及时响应。当开发者试图通过重写插件架构来满足需求时,这种努力通常需要数年才能完成,且最终往往无法落地。Varda 提出的核心论点是,如果用户自己的 AI 代理能够直接添加功能,那么核心应用程序代码可以保持干净,用户无需等待漫长的开发周期。这一观点通过一个具体的演示案例得以生动体现:当 AI(Claude)发现幻灯片应用缺少删除线功能时,它直接为应用添加了该功能;当被要求从 Google 文档构建演示文稿时,AI 不仅添加了文本居中和接受原始 SVG 的框,还生成了应用原本无法绘制的图表 SVG。这种由用户代理驱动的功能扩展,彻底改变了软件的使用方式,使应用能够即时适应用户需求,而无需依赖开发者的后续更新。
"Personal AI codegen breaks traditional cloud infrastructure."
传统功能请求与插件系统的困境
在当前的软件开发生态中,功能请求的死亡是常态。用户提出的需求往往陷入漫长的审批和排期流程,导致用户体验与产品演进脱节。Varda 描述了开发者在面对复杂需求时的典型反应:他们倾向于构建一个插件系统,以便让第三方或用户扩展功能。然而,这种插件系统重写陷阱往往导致项目陷入泥潭。重写插件架构需要耗费数年时间,且由于涉及核心架构的变更,风险极高,最终往往无法按时或按质完成。这种架构上的僵化使得软件无法快速响应个性化需求。Varda 强调,问题的根源不在于软件本身,而在于基础设施和架构设计的局限性。传统的云架构将应用程序视为一个黑盒,用户只能被动接受开发者提供的功能,而无法主动参与应用的构建和扩展。这种单向的交付模式不仅效率低下,也限制了软件的潜力。Varda 认为,必须打破这种僵局,让用户能够直接参与功能的实现,从而释放软件的真正价值。
用户自主添加功能的愿景
Varda 提出了一个颠覆性的愿景:如果用户能够直接添加自己的功能,软件将变得完全不同。这一愿景的核心在于赋予用户构建能力,而不仅仅是消费能力。通过让用户的 AI 代理直接操作应用界面或代码,用户可以即时获得所需的功能,无需等待开发者的更新。这种模式不仅提高了效率,还增强了用户的参与感和满意度。Varda 指出,当前的移动平台和云架构不支持这种模式,因为移动平台不允许运行未签名的代码,而云架构则将每个应用程序的单一受信任版本部署在开发者服务器上。这种限制使得用户无法在本地或边缘环境中运行自定义代码。Varda 认为,要实现对用户自主性的支持,需要一种新的架构,能够安全地运行用户生成的代码,同时保持应用的核心稳定性。这种架构需要解决代码隔离、安全性和共享机制等关键问题,从而为用户提供一个安全、灵活的开发环境。
网络作为逃逸舱与访问控制难题
Varda 将网络视为打破访问控制限制的逃逸舱。他指出,获取安装未签名软件的权限极其困难,甚至"在美国买枪比在自己的手机上安装未签名软件更容易"。这种严格的访问控制限制了用户的自主性,使得他们无法根据自己的需求定制软件。相比之下,Web 平台提供了更开放的机制,允许通过 iframe 和消息传递等方式实现代码隔离和功能扩展。Varda 强调,Web 是用户实现自主性的关键平台,因为它允许在沙箱环境中运行代码,同时保持与父窗口的安全通信。这种机制使得用户可以在不破坏应用核心安全性的前提下,添加自定义功能。Varda 还提到,他想知道 Claude 的训练数据中是否包含了"让文字抖动以强调语气"这样的知识,这反映了 AI 在理解用户意图和生成创意功能方面的潜力。通过利用 Web 的开放性,Varda 试图构建一个能够支持用户自主扩展应用的架构,从而打破传统软件的限制。
"It's almost easier to buy a gun in the United States than it is to get access to your own phone to install unsigned software."
Gadgets 架构与 Cloudflare Workers
Gadgets 是 Varda 提出的解决方案,它基于 Cloudflare Workers 构建,无需容器和数据库。每个 Gadget 是应用程序的单个实例,例如一个演示文稿或一个看板,共享功能由平台实现,从而确保应用程序本身不会出错访问控制。UI 运行在 null origin iframe 中,只能通过 postMessage 与父窗口通信,并通过 Cap'n Web RPC 会话与动态 Worker 沙箱中的服务器代码交互。这种架构设计确保了即使 vibecoded 代码存在 XSS 漏洞,也无法泄露任何敏感信息。整个演示在本地 workerd 上运行,因此会议网络的故障仅影响了一个需要模型的调用。Varda 强调,这种架构不仅简化了部署,还提高了安全性和灵活性。通过利用 Cloudflare 的边缘计算能力,Gadgets 能够在全球范围内快速响应用户需求,同时保持低延迟和高可用性。这种设计使得用户可以在任何地方、任何设备上运行自定义应用,而无需担心基础设施的复杂性。
Gadgets 作为办公套件而非部署目标
Varda 将 Gadgets 定位为办公套件而非部署目标,这意味着它旨在提供一套完整的应用工具,而不是让用户部署独立的应用程序。通过蓝图(Blueprints)和幻灯片构建器,用户可以快速创建和定制应用。Varda 指出,每个文档对应一个 Gadget,共享功能内置于平台中,从而简化了协作和管理。这种设计使得用户可以在不编写代码的情况下,通过 AI 代理添加功能。Varda 强调,这种模式不仅提高了效率,还降低了使用门槛。通过提供直观的界面和强大的 AI 支持,Gadgets 使得非技术人员也能轻松构建和扩展应用。这种定位使得 Gadgets 成为一个强大的工具,能够支持各种办公场景,从文档编辑到数据分析,无所不包。Varda 认为,这种模式将改变人们使用软件的方式,使得软件更加个性化和智能化。
蓝图、幻灯片构建器与平台共享
在 Gadgets 架构中,蓝图和幻灯片构建器是核心组件,它们使得用户能够快速创建和定制应用。Varda 演示了如何通过蓝图快速生成幻灯片,并通过平台内置的共享功能实现协作。每个文档对应一个 Gadget,这意味着每个用户都可以拥有自己的应用实例,而无需担心与其他用户的冲突。Varda 强调,这种设计不仅提高了安全性,还简化了管理。通过平台实现的共享功能,用户可以轻松邀请他人协作,而无需担心访问控制问题。这种模式使得协作变得更加高效和透明。Varda 还提到,这种架构允许用户通过 AI 代理添加功能,从而即时满足需求。通过提供直观的界面和强大的 AI 支持,Gadgets 使得用户能够轻松构建和扩展应用,而无需编写代码。这种设计使得 Gadgets 成为一个强大的工具,能够支持各种办公场景,从文档编辑到数据分析,无所不包。
Claude 动态添加功能演示
Varda 通过演示展示了Claude 如何动态添加功能以构建幻灯片。当 Claude 发现应用缺少删除线功能时,它直接为应用添加了该功能;当被要求从 Google 文档构建演示文稿时,AI 不仅添加了文本居中和接受原始 SVG 的框,还生成了应用原本无法绘制的图表 SVG。这一演示生动地体现了AI 在功能扩展方面的潜力。Varda 指出,这种模式不仅提高了效率,还增强了用户的参与感。通过让 AI 代理直接操作应用界面,用户可以即时获得所需的功能,无需等待开发者的更新。这种模式使得软件更加灵活和智能。Varda 强调,这种动态功能扩展是 Gadgets 架构的核心优势之一。通过利用 AI 的能力,Gadgets 能够即时适应用户需求,从而提供个性化的用户体验。这种模式将改变人们使用软件的方式,使得软件更加智能化和个性化。
XSS 漏洞的安全隔离机制
Varda 详细解释了为什么 XSS 漏洞在 Gadgets 架构中不构成威胁。由于 UI 运行在 null origin iframe 中,且只能通过 postMessage 与父窗口通信,因此即使 vibecoded 代码存在 XSS 漏洞,也无法泄露任何敏感信息。Varda 强调,这些漏洞无法泄露任何数据,因为代码被限制在沙箱环境中,无法访问父窗口的 DOM 或存储。这种设计确保了用户数据的安全性,即使代码存在缺陷,也不会导致数据泄露。Varda 指出,这种安全隔离机制是 Gadgets 架构的关键优势之一。通过利用 Web 的沙箱机制,Gadgets 能够在提供灵活性的同时,保持高度的安全性。这种设计使得用户可以在不担心安全问题的前提下,自由地扩展和应用功能。Varda 认为,这种安全模型将极大地促进用户自主性的发展,使得更多人能够参与到应用的构建和扩展中。
"If you have an XSS bug, it actually doesn't end up mattering because these can't leak anything."
无容器、无数据库与 workerd 运行
Gadgets 架构无需容器和数据库,直接在 workerd 上运行。Varda 指出,这种设计简化了部署和管理,提高了系统的稳定性和性能。通过利用 Cloudflare 的边缘计算能力,Gadgets 能够在全球范围内快速响应用户需求,同时保持低延迟和高可用性。Varda 强调,这种架构不仅降低了运营成本,还提高了安全性。通过限制代码的运行环境,Gadgets 能够有效防止恶意代码的执行。Varda 还提到,整个演示在本地 workerd 上运行,因此会议网络的故障仅影响了一个需要模型的调用。这种设计使得 Gadgets 能够在各种网络环境下稳定运行。Varda 认为,这种轻量级的架构是 Gadgets 成功的关键因素之一。通过消除对复杂基础设施的依赖,Gadgets 使得用户能够轻松构建和扩展应用,而无需担心基础设施的复杂性。
非开源状态的说明
最后,Varda 解释了Gadgets 目前尚未开源的原因。他指出,虽然 Gadgets 的架构和理念是开放的,但具体的实现和代码尚未公开。Varda 强调,这是因为 Gadgets 依赖于 Cloudflare 的基础设施和服务,而这些服务是闭源的。此外,Varda 还提到,开源需要大量的社区支持和维护,而目前 Gadgets 仍处于早期阶段,需要进一步的完善和测试。Varda 表示,未来可能会考虑开源部分组件,但目前的首要任务是确保系统的稳定性和安全性。Varda 认为,这种谨慎的态度是必要的,因为 Gadgets 的目标是提供一个安全、可靠的平台,支持用户自主扩展应用。通过保持对核心基础设施的控制,Cloudflare 能够确保 Gadgets 的质量和性能。Varda 相信,随着技术的成熟,开源将成为可能,从而进一步促进社区的参与和创新。
"The reason they're bad is entirely my fault. It's not the software's fault."
"I want to know where in Claude's training data it learned that you could make words wiggle to give them emphasis."