英伟达给 Agent 上内核级枷锁,巴西老炮给它写 Markdown 日记:1.9 万星 OpenShell 与 1.3 万星 ai-memory

英伟达给 Agent 上内核级枷锁,巴西老炮给它写 Markdown 日记:1.9 万星 OpenShell 与 1.3 万星 ai-memory

这周 GitHub 周榜基本是 agent 基建专场:rea 一周涨了 8.8 万星,VoiceStudio 涨 1.2 万,Orca 涨 9.4 千。冲得最猛的那批,卖点都是”让 agent 多干活”。可真把 agent 放进自己机器上跑,最先卡住的往往是两件相反的事:它的手伸太长,和它的记性太短。

今天看两个加起来 3.2 万星的 Rust 项目。一个把边界写进内核,一个把记忆写成 markdown。之前写过 Conductor 给 Agent 上锁,那把锁在流程层;OpenShell 这把锁在更下面。

NVIDIA/OpenShell:18.9K 星,把策略写进内核

OpenShell 是英伟达今年 2 月开源的运行时,仓库现在是 18,898 星,Apache-2.0,Rust 写的。它要解决的问题很直白:agent 有用,是因为它能读文件、装包、调 API、拿凭据;危险也在这,一旦它拿到这些能力,就等于拿到了你机器上的全部权限。OpenShell 的做法是让它在策略划定的圈里干这些事。

整条链只有三个稳定部件。CLI、SDK、TUI 是你操作的那头;Gateway 是控制面,管 API、状态、策略下发、凭据记录和推理路由;Supervisor 跑在每个沙箱里,把 agent 当受限子进程拉起来,进程身份、文件访问、出网、运行时凭据都在它眼皮底下。它已经从网关反向连出去,客户端不用直接碰 pod,所以本机 Docker/Podman/VM 和 K8s 集群能用同一套命令。

执行分两层,这是它跟”包一层容器”最不一样的地方。第一层是内核级强制:文件、系统调用、每一条出网连接都要过策略,凭据不进 agent 进程,只注入到发往白名单端点的请求里。第二层是策略变更前的形式化验证:prover 会指出这次改动额外放开了哪台主机、哪个 API 方法,带凭据访问新主机这类改动就等着人工批准。

OpenShell 运行时架构:Gateway 控制面下发策略,沙箱内 Supervisor 拉起 Agent 子进程,内核策略逐条执行文件、syscall 与出网检查
OpenShell 运行时:策略从网关下发,在沙箱内核落地

上手就一行 curl -LsSf .../install.sh | sh,再 openshell sandbox create --name demo。但别指望它开箱就是个能干活的 agent:默认镜像是最小 Ubuntu,里面什么 agent 都没装,官方教程拿 OpenCode 配免费模型演示”新权限要审批”的流程。

实话几句。第一,它不是”更安全的 Docker”那种包装,你花在写策略和批权限上的时间,比装它多得多。第二,上 K8s 前先确认集群的 CNI 真能执行 NetworkPolicy,不然网络这层等于没锁。第三,版本还在 0.1.x:10 月 20 日发的 v0.1.5 把 supervisor 的审计日志从 .log 改成 .jsonl,采集规则得跟着改;K8s 那边沙箱模板的 label/annotation 也开始要 operator 白名单。做实验可以,直接托生产得自己盯 release。

akitaonrails/ai-memory:13.1K 星,给 agent 一本 markdown 日记

这个项目来自巴西老牌 Rails 开发者 Fabio Akita,5 月开源,现在 13,086 星,MIT,Rust,最新 v3.2.2(10 月 23 日)。痛点做 agent 的人都碰过:Claude Code 干到一半你关掉,换 Codex 打开同一个目录,得从头讲一遍架构、讲哪些路走不通、讲还差什么。

它的流程是四段:capture、consolidate、recall、handoff。agent 干活时,生命周期 hook 静默记录 prompt、工具调用和会话边界,写进去之前先过一层类型化的隐私边界;会话结束,这些观察编译成项目 wiki 里的 markdown 页;下一轮不管是哪个 agent、哪台机器,启动时拿一份有长度上限的简报,还能搜全文、搜实体、搜链接;交接是一条有归属、只能被领一次的记录。

覆盖面是它最实在的地方:Claude Code、Codex、Cursor、Gemini CLI、OpenCode、Grok、Devin、Kimi、Kiro、GitHub Copilot CLI,连 Hermes Agent 都在支持表里,二十多个 harness 共用一个记忆库。

几个设计选择挺对胃口。记忆的真身是 git 托管的 markdown wiki,数据库只是派生索引,随时能重建,grep、Obsidian、手改都行,没有向量库要养。默认路径零 LLM 调用,捕获、搜索、交接都不需要 API key。记忆按访问加权老化,冷页面压缩成事实、近重复合并、矛盾打标,全都不花 API;而且不硬删,restore-page 能拉回来,改写类功能默认关着,要手动开。

实话也有。它的收益跟”你是不是真在多 agent、多机器之间切”直接挂钩。你只用 Claude Code、只用一台笔记本,那它记录的东西基本在自带 memory 里也能凑合。团队共享一台服务器最香,代价是那台服务器、那份 git 备份和审计日志都得你自己运维。另外它写的是”这个仓库”的记忆,不是通用第二大脑,别指望它替你管笔记。

两个项目,两个相反的假设

OpenShell 假设 agent 一定会越界,所以先把边界钉死,再谈放权。ai-memory 假设 agent 一定会失忆,所以先把记忆搬到外面,再谈协作。两个都是单点工具,都不解决”agent 到底该干什么活”。

如果你正在给公司搭 agent 平台,顺序上我更倾向先定边界:谁能读哪些目录、能出哪个网段、凭据怎么给。这块想清楚了,记忆才有地方落。反过来先上记忆、后补边界,等于先把家底摊开再找门锁。

发表回复

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