envd AI/ML 开发环境

用 Python 式清单构建可复现、可缓存并能跨本地与 Kubernetes 运行的容器开发环境。

Star 数
★ 2.2k
最近更新
16 天前
License
Apache-2.0
主语言
Go

30 秒速览

运行形态
命令行工具
可在哪里用
通用 · 跨平台
费用
免费,无需付费服务
上手难度
中 · 需要几步配置
开始前需要
Docker 20.10.0 或更高版本Python 和 pip,用于基于 pip 的安装用于文档中快速入门工作流的 GitShell / 命令行网络访问本地文件系统
典型场景
需要统一 Python、Conda、CUDA 和系统依赖的 AI/ML 团队,用 build.envd 代替分散的安装脚本。
不适合
  • 没有 Docker 20.10.0 或更高版本运行时的团队
  • 仍在使用 v0 语法、不愿迁移 build.envd 的项目
  • 需要完全离线、无法访问容器镜像仓库的环境

这个 Agent 能做什么,适合哪些场景?

envd 是面向 AI/ML 工作流的命令行开发环境工具,以 build.envd 文件声明基础环境、语言、软件包、Shell 和 Jupyter 等配置。它解析清单,通过 BuildKit 构建隔离的容器环境,并生成兼容 OCI 规范的镜像。开发者可以用 envd up 在本地启动环境,也可以切换 context,以相同操作方式在 Kubernetes 集群中运行。它支持远程构建,并利用 PyPI、APT 等缓存减少重复下载和构建时间。团队还能通过 include 从 Git 仓库导入可复用的 envd 函数;采用前需准备 Docker 20.10.0 或更高版本。

用户在 build.envd 中定义 build(),调用 base、install.conda、install.python、install.python_packages、shell、config.jupyter 等接口描述环境。envd up 解析该文件及其依赖,借助 BuildKit 构建容器镜像、创建工作目录并连接到隔离环境;--detach 可让环境在后台运行。envd envs ls 列出环境状态、容器 ID、镜像、SSH 目标以及 Jupyter 地址。envd context use local 和 envd context use cluster 分别选择本机与 Kubernetes 集群执行边界。远程构建可以在另一台机器上完成镜像构建并推送到容器注册表,include 则可从 Git 仓库加载团队共享函数。

  1. 需要统一 Python、Conda、CUDA 和系统依赖的 AI/ML 团队,用 build.envd 代替分散的安装脚本。
  2. 希望在隔离环境中训练、微调或提供模型服务的开发者,用 OCI 兼容镜像封装运行环境。
  3. 本地机器资源有限的工程师,把构建任务交给性能更高的远程机器,再将镜像推送到注册表。
  4. 同时使用个人工作站和 Kubernetes 集群的团队,通过切换 envd context 保持一致的启动体验。
  5. 频繁重建依赖环境的项目,利用 BuildKit 以及 PyPI、APT 缓存减少重复下载。
  6. 需要共享 TensorBoard 等标准环境组件的团队,通过 include 导入 Git 仓库中的 envd 函数。

如何安装或部署这个 Agent?

运行时要求为 Docker 20.10.0 或更高版本。使用 pip 安装或升级 envd:

pip install --upgrade envd

安装后执行引导:

envd bootstrap

如需配置 docker.io 镜像源,可执行:

envd bootstrap --dockerhub-mirror https://docker.mirrors.sjtug.sjtu.edu.cn

文档还说明可以直接下载二进制 release,但给定材料未提供具体下载命令。

如何使用这个 Agent?

克隆示例项目:

git clone https://github.com/tensorchord/envd-quick-start.git

示例 build.envd:

def build():
    base(dev=True)
    install.conda()
    install.python()
    # Configure the pip index if needed.
    # config.pip_index(url = "https://pypi.tuna.tsinghua.edu.cn/simple")
    install.python_packages(name = [
        "numpy",
    ])
    shell("fish")

构建并进入环境:

cd envd-quick-start && envd up

若要启用 Jupyter,在 build() 中加入:

config.jupyter()

后台启动并查看 Jupyter 地址:

envd up --detach
envd envs ls

在本地与集群之间切换:

envd context use local
envd up
envd context use cluster
envd up

这个 Agent 有哪些优点和局限?

优点
  • build.envd 使用 Python 风格接口,能直接声明 Conda、Python 包、Shell 和 Jupyter,无需再学习一种独立 DSL。
  • 输出兼容 OCI 镜像,可通过 Harbor、Docker Hub 等容器注册表分发。
  • 同一 CLI 可面向本地机器和 Kubernetes 集群,并支持远程构建。
  • BuildKit 与 PyPI、APT 缓存能够复用已下载的软件包,减少重复构建成本。
  • include 可从 Git 仓库导入团队函数,避免复制粘贴 Dockerfile 指令。
局限
  • 必须具备 Docker 20.10.0 或更高版本,容器运行时是明确的采用前提。
  • 本地与集群之间虽然保持相似操作方式,但 Kubernetes 集群配置和运行条件未在给定材料中完整展开。
  • v1.0 起默认语法和默认构建器发生变化;从 v0 升级时需处理语法及构建器迁移。
  • 远程构建和镜像分发依赖远程机器及容器注册表等外部基础设施。
  • 材料没有证明它原生集成 ChatGPT、Codex、Claude 或相应模型 API;仓库主题中的 codex 不能视为产品兼容性证据。

这个 Agent 与同类方案有什么区别?

与 Dockerfile v1 相比,envd 明确提供 PyPI 缓存能力,并用 Python 风格的 build.envd 声明开发环境。envd v1 还支持 moby 构建器;其对开发模式、CUDA、服务、自定义基础镜像和多语言安装的支持比表中所列的 envd v0 更完整。envd v0 和 v1 都支持开发模式与 CUDA,但 v0 对服务、自定义基础镜像和多语言安装仅标为有限支持,且不支持 moby 构建器。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
envd AI/ML 开发环境 当前 62 · 存在缺口 命令行工具免费 ★ 2.2k 16 天前 Go —
Cynative 安全代理框架 74 · 存在缺口 命令行工具免费 + 模型费 ★ 223 今天 Go OpenAI API · Claude API
Sico 数字员工平台 72 · 存在缺口 自托管服务免费 + 模型费 ★ 283 1 个月前 Python OpenAI API · Claude API
Archestra 71 · 存在缺口 自托管服务免费版 + 付费版 ★ 4.4k 今天 TypeScript Codex · Claude Code · OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
62/ 100 五分制 3.1 / 5
本评测基于 2026年8月14日 的源码;此后该项目发布了 2 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 8/29
可靠稳定 8/14
适用触发 16/18
规范维护 14/18
有效结果 12/13
证据核验 4/8
查看各维度的扣分理由
信任安全8 / 29 · 1.4/5

README明确展示容器隔离、主机目录挂载、端口暴露、SSH密钥安装、远程构建、镜像仓库及集群交互,许可证和贡献者列表也提供了来源归属,因此透明度和归属并非完全缺失。但示例环境显示以sudo运行,未见最小权限模型、危险操作确认、权限清单或回滚流程;遥测仅通过CI中的禁用变量间接显现,未说明收集内容、目的地或默认状态;敏感凭据、SSH密钥和仓库认证的处理保障也未展开。Go依赖有明确版本,但依赖面很大,CI还使用master、latest及非提交摘要固定的Actions,所给文件中没有漏洞扫描、锁定策略或供应链缓解说明。

可靠稳定8 / 14 · 2.9/5

产品定位、build.envd示例、envd up工作流及CI中的构建、单元测试和两类端到端测试相互一致,普通使用路径有较好的静态支持。Docker最低版本和主要Go依赖均有记录,但运行依赖Docker、BuildKit、包索引、Git仓库、镜像仓库及可选云端服务,离线或服务不可用时的行为未说明。用户侧失败诊断、错误分类和恢复建议很少,展示内容主要是成功日志,故失败消息仅获部分分。

适用触发16 / 18 · 4.4/5

材料清楚覆盖AI/ML开发者、团队复用、Python/R/Julia、本地、远程构建、Kubernetes、Jupyter、训练和服务等场景,受众与应用面描述充分。Docker 20.10+要求、v0/v1能力差异及部分权限提示界定了一些边界,但支持平台矩阵、资源要求、网络限制及不适用场景仍不完整。操作由明确的envd bootstrap、envd up、context use和清单函数触发,触发精度高;本地与集群上下文、OCI兼容、Linux CI及macOS构建为环境适配提供了较强证据。

规范维护14 / 18 · 3.9/5

README按概念、价值、安装、快速开始、Jupyter、语法迁移、文档、路线图和贡献组织,且包含可直接使用的命令与配置,信息架构和安装说明完整。envd、build.envd及命令命名稳定清楚,但v0到v1存在默认语法和构建器变化,只通过迁移提示缓解。示例丰富但没有实际FAQ;已知限制只零散出现在Docker要求、权限提示和v0/v1表中。Apache-2.0全文及TensorChord版权声明完整。标签触发的CHANGELOG生成流程表明存在版本记录机制,但未提供CHANGELOG内容或兼容承诺。贡献渠道、社区和署名明确,不过发布者未获企业注册验证,且材料没有明确的安全联系人、支持承诺或单一维护责任人。

有效结果12 / 13 · 4.6/5

输出是可进入的容器开发环境、OCI镜像、Jupyter端点及可复用构建清单,README给出了具体、可操作的结果形态,因此输出可用性高。相对于手写Dockerfile,声明式多语言环境、缓存、远程构建、团队函数复用及本地/集群上下文具有明确增量价值。缓存可减少重复下载,但速度、资源消耗和维护成本的优势主要由项目自述,且庞大依赖、Docker引导、镜像传输和集群基础设施会产生额外成本,所以成本收益未获满分。

证据核验4 / 8 · 2.5/5

多数核心能力都关联到具体命令、build.envd片段、终端输出、依赖清单或CI任务,具有中等可追溯性;README、go.mod和CI在Go实现、容器构建、测试及外部依赖方面能够交叉印证。不过没有执行结果或独立验证,CI徽章和示例日志也不能在本次静态审查中证明当前修订通过。关于更快、更高效、无缝和可复现性的表述多为宣传性结论,未明确区分已证事实、推断和基准结果。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • envd可挂载主机目录、安装SSH密钥、暴露端口、推送镜像并操作远程或Kubernetes环境;在使用不受信任的build.envd或include仓库前应进行人工审查并限制凭据和主机路径。
  • CI中出现ENVD_ANALYTICS禁用开关,但所给用户文档没有说明遥测的默认状态、数据字段、接收方或保留策略。
  • 依赖及CI Action数量较多,且存在master、latest和标签固定;采用前应另行核查依赖来源、摘要固定和已知漏洞。
  • 未见一等的预览、确认或回滚流程;对镜像发布、集群部署、挂载和缓存修改应使用外部变更控制及恢复措施。
  • 本评估仅依据给定文件进行静态审查,未执行构建、测试或安全扫描,也未验证示例输出。
证据充分度:低 评估于 2026年8月14日 审查版本 c5e6fd54eb11 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v1.3.6
    发布说明摘录
    Changelog Bug Fix 🛠 * 9d575b354ce17a02ef9698b6ff0d5d14296c5734: fix: prevent TOCTOU in requirements file reads (#2119) (@kemingy) Documentation 🖊️ * 64bfe688f2a55173366a3eccb877622991dae41d: docs: updated CHANGELOG.md (#2117) (@github-actions[bot]) Others: * 968bc49d577e6c3c5bbb9e6587542c9ddfe66dad: chore(deps): bump the all-dependencies group across 1 directory with 2 updates (#2118) (@dependabot[bot])
    在 GitHub 查看 ↗
  2. v1.3.5
    发布说明摘录
    Changelog Bug Fix 🛠 * 4ca4fdd262d266e446484522a117033765d54f43: fix: always create the compdef before r-w-o zshrc (#2084) (@kemingy) * f576c92c1e6dcb9b00b60995534aeb2a83b0b407: fix: restrict install.python_packages paths to the build context (#2112) (@kemingy) Documentation 🖊️ * 376d0713fdc27abe63e23af59f047169fb51ecc6: docs: add AGENTS.md with repo layout and development guide (#2115) (@kemingy) * e8254329e9f338c221cc0d1c54b2a3032349c05e: docs: updated CHANGELOG.md (#2077) (@github-actions[bot]) Others: …
    在 GitHub 查看 ↗
  3. v1.3.4
    发布说明摘录
    Changelog Exciting New Features 🎉 * c49ed2cb7fdeaa5d966ca36181b7ce27bc6fdf6a: feat: add the build.envd file to this repo (#2082) (@kemingy) * 3cac99fd121961eae2ce0bb634a026891b8e77df: feat: get the latest github release tag for codex (#2081) (@kemingy) * d7379df920a3305191f834e1539f3b4bfd9f084f: feat: support --cap for envd up (#2078) (@kemingy) Others: * 38015c99198dc8490301c9662c1bdce7d650e4df: chore(deps): bump pypa/cibuildwheel from 3.3.0 to 3.3.1 in the all-actions group (#2079) (@dependabot[bot])
    在 GitHub 查看 ↗

常见问题

运行 envd 的最低要求是什么?
需要 Docker 20.10.0 或更高版本。若采用 pip 安装,还需要可用的 Python 与 pip;文档也提供二进制 release 作为替代安装方式。
它只能在本地运行吗?
不是。envd 提供 local 与 cluster context,后者用于 Kubernetes;还支持在远程机器上构建并把镜像推送到注册表。
生成的环境能否分享给其他人?
可以。envd 生成兼容 OCI 规范的环境镜像,可通过 Harbor 或 Docker Hub 等容器注册表分发。
是否原生支持 ChatGPT、Codex 或 Claude?
给定材料没有记录这些产品或其 API 的原生适配。envd 的已证实职责是构建和运行开发环境,而不是调用特定模型提供商。
从旧版本升级有什么风险?
从 envd v1.0 开始,v1 成为 build.envd 的默认语法,moby-worker 成为默认构建器,因此仍使用 v0 配置的项目需要参考升级说明并验证兼容性。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents