forkd配方库精选:8个即用模板——Postgres数据库、Playwright浏览器、CI并行pytest沙箱

发布时间:2026/10/1 8:43:10
forkd配方库精选:8个即用模板——Postgres数据库、Playwright浏览器、CI并行pytest沙箱 forkd配方库精选8个即用模板——Postgres数据库、Playwright浏览器、CI并行pytest沙箱【免费下载链接】forkd高性能Agent沙箱预热虚拟机可以在约 100 毫秒内派生出 100 个独立实例运行过程中约 150 毫秒“分叉”出一个新的运行环境。底层使用 KVM 隔离并利用快照写时复制降低资源开销。项目地址: https://gitcode.com/deeplethe/forkdforkd 是一款高性能 Agent 沙箱预热虚拟机可在约 100 毫秒内派生 100 个独立实例配方库recipes/提供了 8 个开箱即用的即用模板覆盖 Postgres 数据库沙箱、Playwright 浏览器农场、CI 并行 pytest 三大高频场景。每个模板都是一个自包含目录一条命令构建父镜像快照一次后任意时刻都能毫秒级分叉出预热好的运行环境。1. 30秒看懂forkd 配方库是什么配方库的核心理念只有一个冷启动只做一次。传统方式下每个测试要付一遍容器启动 initdb/import 依赖的账约 2~3 秒forkd 把这套成本搬到父镜像构建阶段付一次之后的每次分叉都通过快照 写时复制CoW继承预热状态固定开销降到 5~50 毫秒量级。所有配方遵循同一套三步流程详见 recipes/README.md# 1. 构建父镜像一次性几分钟 sudo bash recipes/name/build.sh # 2. 快照预热后的父虚拟机约 10 秒 sudo forkd snapshot --tag name --kernel ... --rootfs recipes/name/parent.ext4 --tap forkd-tap0 # 3. 分叉 N 个独立子实例开始干活 sudo -E forkd fork --tag name -n 100 --per-child-netns2. 按问题选模板8 个配方一张表模板适用场景相比冷启动的收益postgres-fixture每个测试一个隔离 Postgres 数据库initdb 只做一次~10 ms 拿到可查询的库冷启动 ~2 s约200×加速playwright-browserPlaywright 浏览器自动化农场预热 Chromium 分叉 ~10 ms冷启动 ~2 s约100~300×ci-parallel-pytestCI 并行 pytest 测试每 worker 固定成本 ~50 ms对比容器 ~3 snumpy/pandas/sklearn 导入零开销jupyter-kernelJupyter 内核 / 代码解释器完整 SciPy 栈预导入新内核 ~1 ms对比 ~2 se2b-codeinterpreterAI 代码执行 AgentE2B 兼容最轻量Agent 就绪父镜像~600 MBSDK 与 E2B 线协议兼容coding-agentSWE 风格编码 Agentgit / ruff / black / pytest 全套开发工具链预装python-numpy标准扇出基准 / 轻量 Python首页基准图测量的就是它最小 Python 模板nodejsJS/TS 负载、Jest、爬取最小真实运行时模板~250 MB快照最快3. 三大明星模板详解3.1 Postgres 数据库沙箱每个测试一个全新数据库recipes/postgres-fixture/ 从postgres:16构建父镜像initdb 已在构建时跑完postmaster 已在快照前启动。每个子分叉拿到的是自己独立的、立即可查询的 Postgres互相零干扰/dev/shm每子独立、页级 CoW 隔离。适用场景CI 中数百个触库集成测试——彻底告别共享可变测试库的妥协Schema 迁移测试父镜像停在上一版迁移分叉 N 个子库并行验证多租户 SaaS 开发环境一个预热父镜像 每租户一个子库实测数据Linux 6.14 / 20 vCPU / KVM分叉 100 个可查询的数据库总墙钟约 500 ms单库摊销 ~5 msrootfs 仅 ~500 MB。还支持把迁移 SQL 丢进docker-entrypoint-initdb.d/让所有子代自动继承同一份 schema。3.2 Playwright 浏览器农场预热 Chromium毫秒级开新标签recipes/playwright-browser/ 基于官方mcr.microsoft.com/playwright镜像父虚拟机中保持一个 headless Chromium 进程存活并随快照保存——每个子分叉通过 mmap CoW 直接继承已启动的浏览器。这正是 Anthropic computer-use、OpenAI 网页浏览工具等 Agent 的典型负载形态大量短生命周期、并行的浏览器会话。使用要点配方已内置避坑父虚拟机需 ≥ 2 GiB 内存--mem-size-mib 2048否则 Chromium OOM每子 cgroup 上限建议 ≥ 2560 MiB实测3 个子分叉墙钟 56 ms单个子实例执行page.title()返回 10~82 ms对比冷启动容器启动 ~300 ms Node 启动 ~400 ms chromium.launch()~1.2 s 首开页面 ~100 ms ≈ 2 s/浏览器forkd 侧为 ~10 ms每个浏览器实例快 100~300 倍。3.3 CI 并行 pytestworker 冷启动从 3 秒到 50 毫秒recipes/ci-parallel-pytest/ 解决 Python CI 的经典痛点每个新 worker 容器都要重新import numpy/pandas/scikit-learn1~2 秒纯开销。forkd 把这些导入放进预热父镜像快照worker 分叉即得每 worker 固定成本降到 ~50~100 ms。架构一句话父快照ci-pytest含 pytest 8.3 / numpy 2.0 / pandas 2.2 / sklearn 1.5 你的测试项目→ CoW 分叉 N 个 worker → 每个跑测试文件的一个切片真并行、真隔离每子独立 KVM netns。开发机实测4 worker 批量分叉 81 ms约 20 ms/worker对比全新容器 ~2~3 s。配套 demo.py 自动切分测试文件、输出扇出 vs 串行基线对比仓库内附完整 GitHub Actions 集成示例需自建 KVM runner。何时不用测试套件 30 个且串行 2 s 内跑完或托管 CI 无 KVM——这些场景pytest-xdist更简单。4. 其余五个模板速览jupyter-kernelscipy-notebook官方镜像 完整 SciPy 栈numpy/pandas/scipy/sklearn/matplotlib/seaborn/sympy预导入构建代码解释器、多用户内核的首选每内核 ~1 ms。e2b-codeinterpreter包装 E2B 官方code-interpreter模板forkd Python SDK 与其线协议兼容from e2b import Sandbox换成from forkd import Sandbox即可自托管~600 MB 最轻Agent 就绪镜像。coding-agentPython 3.12 git/gh/ruff/black/mypy/pytest/build-essential面向 SWE-bench 风格评测与 Devin/OpenHands 式编码 Agent 的隔离工作区。python-numpy首页基准图的官方基准模板python:3.12-slim numpy适合复现性能数据或轻量数值负载。nodejs~250 MB 最小 Node 22 运行时Jest 测试、Playwright 扇出、隔离执行用户 JS/TS 脚本的低成本选项。 需要浏览器 VSCode Jupyter MCP 全家桶时还有重量级选项 agent-workbench~5 GB适合小 N 场景。5. 快速上手从零到 100 个沙箱以 Postgres 配方为例完整链路只有四步sudo bash recipes/postgres-fixture/build.sh # 1. 构建父镜像~5 分钟一次性 sudo bash scripts/host-tap.sh # 2. 宿主机 tap 网络一次性 sudo -E forkd snapshot --tag pgfix \ --kernel ./vmlinux-6.1.141 \ --rootfs recipes/postgres-fixture/parent.ext4 \ --tap forkd-tap0 --boot-wait-secs 15 # 3. 快照~10 秒 sudo -E forkd fork --tag pgfix -n 100 --per-child-netns # 4. 分叉~500 ms然后用 Python SDK 直接查询子实例中的数据库每个with块就是一个全新子 VM退出即销毁from forkd import Sandbox import psycopg with Sandbox(tagpgfix) as sb: conn psycopg.connect(hostsb.guest_addr.split(:)[0], port5432, userforkd, dbnameforkd_test) # 这个 postgres 是这个子 VM 独占的SDK 细节见 sdk/python/模板的--dry-run模式允许在没有任何 LLM key 的情况下验证分叉链路。6. 总结把冷启动从每次变成一次forkd 配方库的本质是fork(2)的 KVM 虚拟化版预热一次分叉无数次。8 个模板覆盖了从 Postgres 测试夹具、Playwright 浏览器农场到 CI 并行 pytest 的完整光谱每个目录自包含、独立可跑recipes/README.md 有按问题选模板的完整决策表。如果你的负载形态是从预热父实例毫秒级派生 N 个硬件隔离子实例选一个模板、build.shsnapshotfork三连即可把每次几秒的冷启动税变成一次性的构建成本。【免费下载链接】forkd高性能Agent沙箱预热虚拟机可以在约 100 毫秒内派生出 100 个独立实例运行过程中约 150 毫秒“分叉”出一个新的运行环境。底层使用 KVM 隔离并利用快照写时复制降低资源开销。项目地址: https://gitcode.com/deeplethe/forkd创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考