ZGent 设计之旅 #3
AI 时代的操作系统
王子博
2026 年 5 月 21 日
在中关村人工智能研究院·软件智能研究所,我们在思考并设计下一代 AI agent 的框架、人机界面与生态系统,项目代号为 ZGent。这篇文章是一系列文章中的第三篇,我将会在每篇文章中介绍我们的一个设计理念,以及相应的技术实现。
没有操作系统,也可以为计算机直接编写程序并运行,但这样有很大的局限性,例如每个程序都要自带复杂的代码来兼容各种硬件,不同程序之间难以对于如何使用硬盘、如何通信等问题有统一的约定,难以同时运行多个程序,也无法对程序进行任何约束,例如只允许访问硬盘上一部分文件。操作系统可以协调其上运行的各种应用程序,为它们提供公共基础设施,以及施加权限限制。
如今的各种 AI 工具也有类似的困难,各种 AI 工具之间难以互通,每个工具支持的付费方式和接口格式各不相同,在多用户共享和权限模型方面的设计就更混乱了。AI 时代的操作系统应该长什么样、应该解决什么问题?我们设想了一些故事:
团队自己部署一台 ZGent 服务器,管理员勾选安装了几个推荐 app:ZChat(普通对话)、ZDev(写代码)、ZSlide(做幻灯片)、ZResearch(科研)。于是这些 app 被自动安装到了管理员账号下,共享给了服务器上所有账号,并且自动配置了所有新账号的主屏上有这些 app 的图标。
管理员也为服务器配置了若干基础模型 API key 并共享给服务器上其他账号,其他账号运行 app 时可以选择要使用的模型,app 中所有调用 AI 的操作会用指定模型完成,并且用户只能这样选择使用模型,不能看到 API key 本身。
团队中加入了新成员小 W,管理员为小 W 创建账号后,小 W 就能使用团队配置好的各种模型和 app 了。
小 W 用 ZDev(写代码的 app)要求 agent 开发了一个网站,由于 ZGent 完全运行在云端,小 W 不需要在自己的电脑上安装配置环境,就可以得到公开可访问的网址。
开发这个网站过程中产生的各种文档和代码在小 W 的账号的存储区中,小 W 打开 ZSlide(做幻灯片的 app),授权访问存储区中的这些文件,就让 agent 做了一个介绍开发过程的幻灯片。
小 W 的朋友想了解小 W 是如何使用 ZGent 的,于是小 W 为相关会话创建了一个分享链接,朋友通过链接,不需要账号也能只读地查看这个会话,看到 ZGent 是如何使用的、小 W 和 agent 之间发生了什么对话。
小 W 需要为团队安排一次出行行程,要向每个人收集若干信息。小 W 想自己做一个 app 来完成这件事,于是先在自己的账号下安装了 ZFactory(开发新 app 的 app),然后在其中让 agent 制作了收集和查看相关信息的界面,以及把信息保存到小 W 的存储区的代码逻辑。小 W 通过点击弹窗中的允许按钮,同意了 agent 将自己的存储区中一个专门文件夹配置成允许任何人通过这个 app 读写。这个 app 的代码限制了每个人只能读写文件夹中一个记录自己的信息的文件,而权限规则不允许别人使用其他 app 读写这个文件夹,所以大家是无法互相看到和修改别人的信息的。小 W 检查没问题后,把这个新 app 安装到了自己的账号下,并分享给大家。
小 W 的同事们可以放心打开小 W 分享的 app,因为不经过自己授权,任何 app 都是无法读写自己账号的存储区里面的文件的。有的同事直接在界面上填写了个人信息,点击提交后会自动写进小 W 的存储区(因为小 W 之前允许了任何人通过这个 app 读写自己存储区中一个专门文件夹)。有的同事已经在存储区中保存了一部分需要的信息,懒得重新输入,于是授权 app 访问相关文件,在对话框里输入“帮我用存储区中的信息填上”。
基于这些故事,我们对 ZGent 的定位是基于云端的、AI 时代的、多用户的操作系统。ZGent 框架本身提供以下基础设施:
- 用户账号、身份验证
- 基础模型 API key 的管理和封装
- 每个用户可以随意安装运行 app,可以允许别人运行安装在自己账号下的 app
- 所有 app 都有 agent 对话功能
- 每个账号有存储区,其中每个文件夹和文件可以分别允许特定账号通过特定 app 访问
各种实际功能都是由 ZGent 上安装的 app 提供的,前面的故事中提到的 app 都是目前已经开发了的、预计会在配置新服务器时推荐直接安装的。这些“官方”app 与第三方 app 并没有什么区别,用的是相同的接口和安装方式。
每个 app 都是由传统代码写成的、有前端和后端的软件,里面会按代码逻辑调用 AI。开发者不需要关心用户身份验证或者不同模型厂商的 API 格式不同这类问题,只需要实现自己独特的 agentic loop。例如在普通的对话 app 中,只需要用户和 agent 来回对话。但在 ZSlide(做幻灯片的 app)中,就需要给 agent 提供额外的工具调用能力、解析渲染 agent 生成的幻灯片代码、截图给 agent 看效果等等。ZSlide 还支持拖动框选幻灯片上一个区域,“指着”这个区域给 agent 说要求,内部实现就是通过代码将区域以坐标的形式输入对话上下文。
最近几周没写博客了,并不是因为 ZGent 缺少令我激动的、想与大家分享的设计,而只是因为我也在忙着开发。软件智能研究所目前非常缺人,如果你对我们在做的事情有兴趣,有能力来推进这个项目的开发,请加入我们!