Vercel 发布 Eve:用于生产环境的 AI 智能体开源框架
Vercel 发布了 Eve,这是一个用于在生产环境中构建、部署和运行 AI 智能体的开源框架。该框架提供了一个基于文件系统的项目结构,将智能体组织到指令、工具、技能、子智能体、通信通道和计划任务的目录中,使开发者无需手动实现大量支撑基础设施即可定义智能体的行为。
Eve 围绕 文件系统优先架构 设计,其中每种能力都表示为一个文件。开发者通过单个配置文件来配置智能体,使用 Markdown 指令定义其行为,将工具添加为 TypeScript 文件,并将可复用的知识组织为技能。在构建时,框架会自动发现这些组件并将其暴露给智能体,无需额外的注册代码。

该框架包含多项面向生产的能力,包括持久化执行、沙盒化代码执行、人工审批工作流、子智能体、追踪和评估工具。每个对话都存储为一个持久化工作流,可以暂停、在故障或部署后存活,并从最后一个完成的步骤恢复。智能体生成的代码在隔离的沙盒内执行,这些沙盒可以在本地使用 Docker 或其他适配器运行,或在生产环境中使用 Vercel Sandbox 运行。
Eve 还内置了对通过 模型上下文协议 服务器或使用 OpenAPI 规范描述的 API 连接外部服务的支持。发布时,集成服务包括 Slack、GitHub、Snowflake、Salesforce、Notion 和 Linear 等,同时开发者可以通过自定义适配器添加其他提供商。同一个智能体可以部署到多个通信渠道,包括 Slack、Discord、Microsoft Teams、Telegram、GitHub 和 HTTP API,而无需更改核心实现。
该框架包含基于 OpenTelemetry 的可观测性功能。每次模型调用、工具调用和沙盒命令都会作为追踪记录,可以导出到现有的监控平台或通过 Vercel 的可观测性界面查看。开发者还可以定义评估套件,在部署前在本地或作为持续集成流水线的一部分验证智能体行为。
另一项能力是对子智能体的支持。开发者可以在单独的目录中定义具有自己的指令、工具和执行环境的专用智能体。父智能体可以将工作委托给这些子智能体,子智能体独立执行任务后将结果返回给主智能体。Eve 还支持通过基于 cron 的任务进行计划执行,使智能体能够自动执行重复性任务。
Vercel 表示,该框架已在内部用于运行超过一百个生产智能体,支持分析、客户支持、销售运营和内容审核等功能。该公司已公开发布 Eve 预览版,并附带一个命令行工具,用于搭建新的智能体项目并使用标准的 Vercel 工作流 进行部署。
https://www.infoq.com/news/2026/06/vercel-eve-agents/

Everything you need for production agents
Durability, sandboxing, human-in-the-loop, and evals are built into the framework. Focus on building your agent.
-
Durable Execution
Workflows survive crashes and restarts. Every step is checkpointed. Agents park when waiting, resume on the next message.
-
Sandboxed Compute
Agents run code in isolated sandboxes. File system access, bash execution, and code, all fully isolated.
-
Multi-Channel Delivery
One agent codebase deploys to web chat, Slack, API, cron, CLI, and custom apps.
-
Human-in-the-Loop
Tools that need confirmation trigger approval gates. Sessions park until resolved, then resume seamlessly.
-
Subagents
Delegate specialized work to child agents with their own prompts, tools, and sandbox.
-
Evaluations
Define test suites with scoring rubrics. Run evals on every deployment and on a schedule.
import { defineTool } from "eve/tools";
import { z } from "zod";
export default defineTool({
description: "Return mock weather data for a city.",
inputSchema: z.object({ city: z.string().min(1) }),
async execute({ city }) {
return { city, condition: "Sunny", temperatureF: 72 };
},
});
---
更多推荐



所有评论(0)