hello
发布于 2026-09-29 / 1 阅读
0
0

engrams:在自己的云里跑 Claude Code / Codex 的开源软件工厂

本机上的 Claude Code、Codex、Cursor Agent 已经很能干活了:改文件、跑测试、开 PR。但一旦任务要挂着跑几小时、要按日程扫依赖、要被 Slack / Linear 事件叫醒,本机会话就不合适——电脑休眠、网络断、密钥散落在个人环境里,都是硬伤。

Cortex 开源的 engrams 想解决的就是这件事:把 coding agent(内置 Claude Code、Codex harness,也可接自定义 runtime)放到你自己的云里跑,每个会话进独立 microVM,闲时快照、有活再唤醒,并用仪表盘、CLI、Slack、Webhook 把重复劳动收成自动化。

官方介绍:Introducing engrams
仓库:github.com/cortexapps/engrams
文档:engramsfactory.com/docs

注意:GitHub 上还有不少叫 Engram / engram 的「Agent 记忆」项目,和本文说的 engrams 软件工厂不是一回事。本文只讲 Cortex 这套自托管编排平台。

它是什么、不是什么

是什么

  • 自托管的 coding agent 编排器:任务从仪表盘、CLI、Slack mention、定时任务、PR、Webhook 进来。
  • 每个 agent 会话跑在 Firecracker microVM(生产)里;空闲时把内存/磁盘做成内容寻址快照,下次 prompt 再恢复(同机约百毫秒级,跨机约 1~2 秒量级,官方文档数字)。
  • 会话镜像就是普通 OCI / Docker 镜像(约定带 /bin/sh);Claude Code、Codex 作为 harness 挂进去。
  • 密钥、transcript、工作区默认不出你的云账号;模型侧你自带 Anthropic / OpenAI key,或指向 OpenRouter 这类路由。

不是什么(官方 README 说得很直白)

  • 不是托管沙箱 SaaS(那是 E2B、Modal 一类)。
  • 不是给人写代码的云桌面 / Coder 替代品。
  • 不是容器编排器:生产隔离靠 KVM + Firecracker,没有「随便用 Docker 当生产隔离」的模式。
  • 不是模型厂商:不帮你供 token。
  • 还是 0.x:API 会变;许可证主体是 AGPL-3.0(harness SDK 等少数 crate 是 Apache-2.0)。

和「在本机聊 Agent」差在哪

维度 本机 Claude Code / Cursor Agent engrams
运行位置 你的笔记本 / 工位机 你的 GKE / EKS(或本机开发栈)
生命周期 终端关了、电脑睡了就断 闲时快照,下次 prompt 接着干
触发方式 人敲命令、开 Chat UI、CLI、Slack、日程、PR、Webhook
隔离 基本等于本机权限 每会话独立 VM + 出站代理白名单
适合 交互式改代码、探索 重复 SDLC:升级依赖、扫 CVE、按 Linear 交付、值班式修 CI

一句话:本机适合「我在跟它一起想」;engrams 适合「组织里有一批活,让 agent 在自有云里按规则干」。

本地先跑通(开发栈)

整栈可以先在一台机器上看效果(不是生产形态):

  • Apple Silicon:会话走 Apple Virtualization。
  • 有 /dev/kvm 的 Linux:走 Firecracker。
  • 其它环境:可能退化为无隔离的子进程,只适合摸 UI。

依赖大致是 Rust、Docker、just、Tilt、jq、bun 等(可用 Nix nix develop 一次拉齐)。仓库根目录:

just bootstrap     # 写本地 master key 到 .env(一次)
just pull-kernel   # 拉当前后端用的 guest kernel(一次)
just dev           # Tilt 拉起全栈

Tilt 状态页通常是 http://localhost:10350,仪表盘是 http://localhost:5173。再开一个终端:

just bake-demo-enable   # 构建并启用 demo 镜像,第一次会花一两分钟做 base snapshot

在仪表盘 Settings 里配模型:交互会话可接 Claude Code token;CLI / 自动化会话需要 org secret,例如 ANTHROPIC_API_KEY。然后构建 CLI 开会话:

(cd cli && bun install && bun run build)
export ENGRAMS_URL=http://localhost:8787
export ENGRAMS_API_KEY=$(cat var/dev-api-key)

SID=$(cli/dist/engrams session create \
  --image localhost:5001/demo:warm-1 \
  --harness claude \
  --prompt "List /workspace and describe what you find.")
cli/dist/engrams session logs "$SID"

同一会话会出现在仪表盘里;闲置几分钟会快照停下,再用 engrams session prompt 续跑。

更细的步骤以仓库 Quick start 和 文档站 为准。

上云:GCP / AWS 生产形态(概览)

生产是 一个 K8s 集群、两套 Helm:

  1. 控制面:coordinator + orchestrator + Web(鉴权、任务、集成、调度)。
  2. Firecracker host fleet:挂在带嵌套虚拟化的 Intel 节点池上(GKE 常见 C3;EKS 常见 m8i / 8 代虚机或 *.metal)。

还有 Terraform quickstart:建集群、库、对象存储、密钥壳。细节见仓库:

上云前先认清两件硬约束:

  1. 嵌套虚拟化基本是 Intel-only,而且要在建节点池时打开;和部分自动扩缩 / 自动供应策略不兼容。
  2. 快照与 CPUID 绑定:更新一代 CPU 平台上 bake 的镜像,不一定能在更老的平台上恢复。跨云混跑要想好 bake 策略。

真正提效的地方:自动化,而不是多开几个 Chat

Cortex 自己内部用法里,UI / Slack 叫 agent 只是日常入口;亮点是自动化(支持 OpenRouter,可按任务挑模型控成本)。官方举例包括:

1. 依赖升级与 CVE

定时扫过期依赖和 CVE → 逐个升级、跑测试、修破损 → 每个变更单独开 PR → 再走 PR review 自动化。遇到测试盖不住的大版本 runtime 跳变,会升级给人而不是硬推。

2. 线上内存热点

每日查 Datadog 等 profiling 里最大的分配栈 → 落到对应服务开任务 → 改热点路径 → PR 里带前后数据,方便人审「值不值得合」。

3. Bug triage

运行时新错误进来:复现、归因,能修就修,不能修就开 issue;同一错误重复出现会并入已在飞的 run,避免重复开工。噪音告警可以直接说明「这是噪音」并写原因,而不是为了交差硬开 PR。

4. Linear + Slack 的端到端交付(实验向)

给 agent 一个 Linear 项目 + 一个 Slack 频道:领 issue、开 PR、在线程里答问题、每日状态更新;有人说 CI 红了,同一 agent 去查、修、回绿。单个 ticket 可再拉起跑在独立 microVM 里的 sub-agent。

对读者更可操作的理解是:engrams 把「agent 一次会话」产品化成 可触发、可审计、可快照恢复的流水线步骤——日程、Slack 线程、PR、Webhook 都能当触发器,每一步有持久记录。内置还有一批 connector;PR review、Slack 线程等自动化可以启用现成模板。

什么时候值得试

更值得

  • 团队已经用 Claude Code / Codex,想把重复 SDLC搬进自有云,而不是每人笔记本挂机。
  • 合规要求 transcript / 代码 / key 不出账号。
  • 需要 Slack / Linear / 定时任务驱动的「值班式」agent,而不是纯 IDE 对话。

先观望或只跑本地 demo

  • 没有(或不想维护)带嵌套虚拟化的 Intel 节点池。
  • 不能接受 AGPL 主体与 0.x API 变动。
  • 其实只需要「本机偶尔让 AI 改几行」——那继续用本机 Agent 更简单。

小结

engrams 解决的不是「再换一个会聊天的模型」,而是:在你自己的云里,用 microVM 隔离跑 Claude Code / Codex(或自定义 harness),并把日程、Slack、Linear、PR 等事件收成可恢复的自动化。本机 Agent 负责人机结对;engrams 负责组织级、可挂起再续的软件工厂流水线。

上手路径建议:先 just bootstrap && just pull-kernel && just dev 把 demo 会话跑通,确认模型和镜像流程,再按 GCP/AWS 文档评估节点池与 Helm。项目很新,跟文档和 GitHub Issues 对齐即可。

参考链接


评论