跳转到内容

运行时与 agent 操作系统:AIOS、Rivet、Hermes Agent

"运行时"这层管的是进程、隔离、身份和调度,也就是第 1 课那张 OS 对照表最底下的几行。这三个项目各自选了一条路:agiresearch/AIOS 把 LLM 调用当系统调用来排队;Rivet 把每个 agent 做成一个按名寻址、能休眠的 Actor;Hermes Agent 把一个会自己写技能的常驻助手连同它的 SQLite 记忆一起交给你。对我们最要紧的判断在最后一节:真正缺的是 Rivet 那层身份与队列,不是任何一个完整内核。

星数、版本、日期由 Grok 于 2026 年 9 月 11 日经 GitHub API 与官方文档核实;每项末尾"我们的关系"是我的判断,引用集团裁决处已署名。

先记三样
  • 位置:内核类偏学术,不用;Actor 身份层偏商品,可借;Hermes 的记忆分层抄机制。
  • 抄与不抄:抄:Rivet 的按名寻址、空闲休眠、进程外队列;Hermes 的 SQLite 加 FTS5 与记忆配额。不抄:WASM 内核、AIOS 学术内核、Hermes 默认偏允许的姿态。
  • 一个数:Hermes 9 月 8 日一起误删事故。一条令:"复习线程按操作白名单,删除权限不给技能。"
  1. 一句话:Rutgers AGI Research 的“Agent 操作系统”内核,把 LLM、记忆、存储、工具当共享资源,给研究者和想自建 agent 内核的人用,不是现成助手。
  2. 解决什么:多个 agent 同时抢模型调用、上下文和工具时没有调度、隔离和权限边界,公平性和安全性全靠约定。
  3. 架构:Agent 应用(Cerebrum SDK)发出系统调用式请求,进入 AIOS Kernel(FastAPI 服务)里的 Scheduler、Context、Memory、Storage、Tool、Access 六个管理器,再到 LLM 与工具后端。应用逻辑在 SDK,资源仲裁在内核。
  4. 核心机制:应用与内核分层,agent 不直接打模型;LLM 调用当 syscall,用 FIFO 或轮转排队;Context Manager 给上下文窗口做快照与切换,模仿进程调度。
  5. 值得借鉴:给二十个常驻席位建一条共享推理队列(优先级加公平份额),而不是每个 tmux 会话各自打满供应商的每分钟额度。抄调度策略,不抄整套内核。
  6. 坑与失效:学术实现偏单机研究内核,耐久执行、多租户、崩溃恢复都弱。有第三方源码审读称部分宣传的记忆演化在主调度路径不可达(Grok 未独立复现)。最近一次代码推送停在 2026-07-20,节奏明显慢于工业项目。
  7. 状态:6,367 星;最新 Release v0.3.0(2026-01-22);最后 push 2026-07-20。维护偏学术间歇。
  8. 我们的关系:借鉴过,继续借鉴。 它是 7 月 30 日设计文档第 19.2 节的第一个上游,“操作系统”这个总框架和名字都从这来(见十一个上游参考)。今天该借的只剩调度那一招:路线图里的“额度路由”如果要升级,就抄它的排队策略。
  1. 一句话:把“一台给 agent 用的电脑”做成可嵌入现有后端的库:V8 isolate 加 WASM POSIX 内核,外加可按名寻址的 Rivet Actor 与可回放的 Workflow。给要在自己进程里跑有状态 agent、又不想为每个会话起一台虚拟机的后端团队。
  2. 解决什么:常驻 agent 要么绑死一台机器上的进程,要么为每个会话付一台沙箱的内存与冷启动;崩溃后步骤无法从记录点续跑。
  3. 架构:应用调用 agentOS(),每个实例是一个 Actor(身份、状态、队列、cron),Actor 内跑一个 isolate 里的 WASM 内核(进程表、虚拟文件系统、代理网络);需要耐久多步时,Workflow 用 ctx.step() 记结果并可回放。文件系统可挂内存、SQLite VFS、S3 或宿主机目录。
  4. 核心机制:一个 Actor 对应一个 agent、会话或用户,按名寻址;空闲休眠、有活再醒,状态可落 SQLite;Workflow 按步骤名回放,会话是短暂的,跨步数据走文件系统或 step 返回值。
  5. 值得借鉴:给每个常驻席位一个稳定身份加可休眠状态机(SQLite 一行或一库),跨七台 Mac 用名字找它,而不是找某块 tmux pane。站内信只投递到 Actor 队列,进程没了消息还在。
  6. 坑与失效:WASM 不是完整 Linux,动态代码生成、真 GPU、部分 POSIX 工具链会撞墙;公开 issue 出现过 WASM shell 读自己虚拟文件系统报 Permission denied。isolate 防的是内存串台,不是 Spectre 级侧信道,密钥必须留在宿主机由 host tool 代调。
  7. 状态:rivet-dev/agentos 4,616 星,v0.2.19(2026-09-02);rivet-dev/actors 6,123 星,v2.3.17(2026-09-10);rivet-dev/workflows 231 星,v1.0.0(2026-08-31)。三者近日都有 push。
  8. 我们的关系:观察,建议做一次 spike。 第 3 课把“席位绑死 tmux pane”列为失效模式,Rivet Actors 正是那一层的现货答案。不必上 WASM,只抄“按名寻址、空闲休眠、队列在进程外”三条,就能对照我们的载体契约。
  1. 一句话:Nous Research 的自托管学习型 agent,“用得越久越懂你”:CLI 加多平台 Gateway 加技能闭环,给想在自己机器上养一个会写技能、会记笔记的常驻助手的人。
  2. 解决什么:普通 coding agent 会话结束知识就丢;跨 Telegram、Discord、本机终端没有同一份记忆;复杂流程每次从零推理。
  3. 架构:入口(CLI、Gateway、ACP、API)进入 AIAgent 循环(组 prompt、调模型、分发工具、压缩与持久化),工具注册表里的终端可走本地、Docker 或 SSH;状态落 ~/.hermes/state.db(SQLite 加 FTS5 全文检索);人格与记忆是 SOUL.md、USER.md、MEMORY.md 三个文件;技能在 ~/.hermes/skills/。
  4. 核心机制:三层记忆,会话上下文、可编辑的 MEMORY、相对不可变的 SOUL;任务后自写技能,下次按 agentskills.io 规范渐进加载;一个 Gateway 进程对接多个聊天平台,同一套 agent。
  5. 值得借鉴:直接可抄的是 SQLite WAL 加 FTS5 做跨会话检索,再加“SOUL 只读、MEMORY 有配额、技能是文件”的分层。这和我们“SQLite 加文件加常驻 agent”几乎同构。后台复习线程必须按操作白名单,不能把整个 memory 工具(含删除)交给技能复习。
  6. 坑与失效:默认姿态偏允许,本机终端等于任意 shell;独立审计(issue #7826)报过无读拒绝列表、YOLO 模式关安全、技能持久化成注入面。2026-09-08 真实事故:技能复习分叉拿到了 memory 的删除权限,悄悄删掉了用户的长期权限规则。GitHub 上约 1.4 万未关 issue 加 2.8 万未关 PR,审查带宽被 AI 贡献淹没。默认安装不能当生产。
  7. 状态:244,394 星;最新 Release Hermes Agent v0.21.1(tag v2026.9.7,2026-09-07);当日仍在 push。极活跃,但 issue 与 PR 堆积严重。
  8. 我们的关系:借鉴而非引入,8 月 15 日你已定调(见 Penguin 与 Hermes)。9 月的新信息强化了两点:它的记忆分层值得抄,它的 9 月 8 日事故正是第 4 课讲的“记忆只能做投影、删除要走白名单”的反例教材。
项目身份归谁管崩了怎么办密钥在哪
AIOS内核的 Access 管理器弱,单机研究内核内核进程
RivetActor 名字,跨机可寻址Workflow 按步骤回放宿主机,isolate 看不到
Hermes AgentSOUL.md 加本机 GatewaySQLite 记忆在,流程重来本机环境,默认偏允许
我们(2026-09)actor 名加 tmux 会话名Task Plan 手工续跑各机 Keychain 加 settings.json env

Grok 的建议和我的判断一致:精读 rivet-dev/actors(连带 agentOS 的 Actor 封装),因为它补的是我们没有的那一层。Hermes Agent 只读三个文件:agent/conversation_loop.py、hermes_state.py、background_review.py,专门看记忆配额和“复习线程不得删除政策”怎么写。AIOS 读论文加调度器源码即可。