看到豆包手机,尝试在云服务器部署AI助手全权操作系统

在看到豆包手机的出现,觉得是一个很好的方向,特别是对于我这种懒人来说,一个能够在系统层面进行操作的AI还是很香的,于是我就想自己整一个类似的试试(当然是无法与正规军打了),但是也没什么手机可以给我尝试,我也不想直接在我的电脑上操作(万一整崩了就完了😀),我就买了一个hostwinds最便宜的服务器(服务器购买可以看如何搭建只属于你的个人网站-外国服务器版),想在服务器上面操作一下,虽然我学过计算机,但是对于操作系统还是一知半解,很多代码干脆让Gemini生成得了,我就动动嘴。

一、风险

既然我们把AI-OS定性为”操作系统“,那么我们就肯定会遇到:

  1. 权限过大,比如说AI在执行过程中产生什么不当操作,比如经典的 rm -rf 等把自己的部分重要文件给删了导致奔溃,又或者是未经允许把我们的一些文件给删了;
  2. 递归失控,这个很好理解,比如AI写了一个导致无限递归,无限循环的程序并且执行,有可能系统就卡死在那里了;
  3. 安全漏洞,AI没准把只属于我们的服务器端口暴露在公网,导致其他人也能对其发号施令,要是其他发个要API KEY的命令,没准真就执行了,到时我们的API被盗用,不得亏惨;

所以我们在了解这样的前提下再去做,当然应该是有办法避免以上的风险的,我们先做一个mvp再一步步优化。

二、目标

接下来这个项目叫它AI-OS,我们要实现的目标是一个应用层的AI操作系统:

  1. Shell 访问权
  2. 物理资源编排(Docker Socket实现)
  3. 自我修改
  4. 低级任务用低级大模型,高级任务用高级大模型
  5. 长期记忆

我让Gemini规划了蓝图,有一个报告,供大家下载查看,下面的操作都是基于该报告进行(下载:AI驱动的操作系统设计.pdf)。

三、实现

准备好如下

  • 我们准备好一个外国服务器(国内服务器也行,不过需要国内的AI),我是1 core 1 GB的,大家的服务器肯定更好,基本够用的;
  • 你要用的AI的 API KEY;
  • 能远程连接服务器的终端和文件操作软件,比如Xsehll+Xftp,这两官网免费下载使用,不要下盗版了。

1.我们先跟AI沟通我们需要的代码,这里我使用的是Gemini 3.0,使用以下提示词进行沟通。

角色设定: 你是一位精通容器化技术和 AI 代理架构的资深系统架构师。

任务1: 请为我构建一个名为 "Gemini-OS-Runtime" 的 Docker 环境配置,作为 AI 原生操作系统的物理躯体。
具体要求:
Dockerfile编写:* 使用 python:3.11-slim 作为基础镜像。* 安装必要的系统工具:git, curl, vim, procps, gcc (用于编译扩展)。* 创建工作目录 /app,这是 AI 的“C盘”。* 设置环境变量 GEMINI_API_KEY,但不要硬编码,使其能在运行时注入。

依赖管理 (requirements.txt):* 必须包含:google-genai (官方SDK), watchdog (文件监控), psutil (进程管理), docker (用于控制兄弟容器)。

Docker Compose配置:* 定义一个持久化存储卷 (Volume),将宿主机的 ./data 挂载到容器内的 /mnt/sysroot,作为 AI 的持久化硬盘。* 配置网络模式为 host,确保容器能顺畅访问 Gemini API 。* 启动命令 (Command) 指向 python bootloader.py,而不是直接运行内核。

任务2: 编写 AI 操作系统的引导程序 bootloader.py。这是一个不可变的“基岩层”代码。
逻辑要求:
1. 子进程管理: 使用 subprocess.Popen 启动 kernel.py。
2. 健康监控: 在无限循环中检查子进程的 Exit Code。
3. 自愈机制 (Self-Healing):
* 如果 kernel.py 返回 0,则正常结束。* 如果 kernel.py 返回 非0 (异常退出),读取 stderr 中的错误堆栈 。* 关键步骤: 将错误堆栈作为 Prompt 发送给 Gemini API,要求其“修复代码” 。* 将 Gemini 返回的修复代码覆盖写入 kernel.py,然后重启子进程。
4. 回滚机制: 如果连续崩溃超过 3 次,自动将 kernel.py 恢复为 kernel.py.bak (上一次已知完好版本)。

任务3: 编写核心内核脚本 kernel.py 的骨架代码。
功能架构要求:
1. 初始化: 配置 google.genai 客户端,并启用 Context Caching (上下文缓存) 以实现记忆持久化。
2. 定义系统调用 (Tools): 请生成以下 Function Calling 的 JSON Schema 定义和对应的 Python 函数:* file_operation(path, operation, content): 对文件系统进行读写删操作。* exec_shell(command): 允许执行系统命令 (如 ls, pip install) 。* hot_patch_kernel(new_code): 最关键功能。接收新代码字符串,备份当前 kernel.py,写入新代码,然后通过 sys.exit(1) 故意崩溃,触发外部看门狗重启。
3. 主事件循环 (Main Event Loop):
* 观察 (Observe): 获取用户输入。
* 思考 (Think): 将历史消息和用户输入发送给 Gemini。
* 行动 (Act): 解析模型返回的 function_call 并在本地执行。* 反馈 (Feedback): 将工具执行结果 (stdout/stderr) 发回给 Gemini。

然后我们就可以获得AI提供的代码,我们分别创建Dockerfile(docker构建文件), bootloader.py(AI 操作系统的引导程序), docker-compose.yml(docker compose的配置文件), kernel.py(内核脚本),rag_engine.py(长期记忆引擎), requirements.txt(需求库).env(放入AI的API KEY,程序运行时自动注入,复制粘贴这句放进去:export GEMINI_API_KEY=”你的API KEY放这里”)如果想参考我的项目,可以直接到我的GitHub项目上查看https://github.com/dodjhsbsn/AI-OS

2.使用Xsehll+Xftp连接到服务器,输入以下内容安装Docker,我的服务器是Ubuntu系统,如果你的系统是其他系统可以查一下相关的命令。

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 安装 Docker Compose (新版 Docker 已集成,如果是旧版需单独安装)
sudo apt install docker-compose-plugin

3.安装完成后,在Xftp里面找个地方创建一个目录用来放我们刚刚第一步创建的项目文件,这边推荐在~/home目录下面创建一个项目文件夹,比如叫ai-os文件夹,然后项目文件在本地电脑创建好后直接拖拽进去就行,这边要注意的是.env文件是私密文件,会被隐藏起来,在xftp上没有显示,所以不要觉得是出bug了。

4.在Xshell里面,先用cd /home/你的项目文件夹名移动到你的项目文件夹里面,然后输入以下进行Docker项目的启动部署。

# 后台启动容器
sudo docker compose up -d

# 查看 AI 的“大脑活动”(日志)
sudo docker compose logs -f

5.如果没有报错就可以进入Docker容器进行操作了,输入以下进入容器。

# 查看启动的容器,找到我们的项目的NAMES
sudo docker ps

# 使用 attach 命令连接到正在运行的进程的标准输入/输出
sudo docker attach NAEMS

6.按上面输入完成后应该会看到类似的对话栏,如果是空白,你就再回车一下,当然大家如果不是用我的GitHub项目部署,而是自己用我上面的提示词跟AI再跑一遍的话可能效果跟我的略有不同。

7.同时测试了一下奔溃自我修复的情况,这边在重建并attach的时候故意缺失了chromadb库,它也能够自己安装并更新requirements.txt文件,不过其他更严重的情况还没有测试,感觉它还是不够健壮,有点飘飘欲坠的样子😔,只能一点点迭代更新了。

8.测试一下长期记忆功能,让它记住我的名字,然后我关闭该对话,并且在新对话框里面问我的名字,也能顺利搜索到我的名字,所以还算有一点用,但是还有些bug,对话开头的USER SHELL>>没有了,变空白了。

9.测试一下模型选用能力,我让它调用基本的命令查询当前目录,还有一个生成一个代码程序,目前都顺利做到,一个普通调用,一个是调用专家模型Expert Brain,也就是说还有点模型选用的能力。

三、缺陷

说实话以上的功能都多多少少有些毛病,这个大家可以自己去试一下,比如:

1.对话开头的USER SHELL>>在后面的修改中不见了,现在空白就是已经可以输入了,大家不要傻傻等。

2.智能程度还不高,一方面不能一直用高版本模型,怕token爆炸,一方面是响应速度也慢。

3.自我修复的能力还不足,这一点是非常关键的,现在就像是还得人牵着手一步步引导的婴儿,还不能完全自理。

4.其实我最终是想要有一个从头构建的AI-OS系统,而不是依附在现有系统的一个应用,这个得进一步研究看看。

下载:AI驱动的操作系统设计.pdf

Github项目:https://github.com/dodjhsbsn/AI-OS

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部