关于 vercel-eve
Vercel Eve 是一种以文件系统为核心的框架,用于构建可持久运行的后端 Agent,并以 agent 目录划定应用边界。它面向需要类型化能力、可配置执行层,以及明确工作流、安全和部署验证的开发者。
主要功能
- 01按生成的文件结构组织 Agent 行为
- 02定义类型化工具和外部连接
- 03分设技能、子 Agent、入口和计划任务
- 04配置沙箱与运行时层
- 05部署到 Vercel 或自托管 Node
- 06验证授权会话和持久工作流
适用场景
- 01构建带类型化操作和集成的后端 Agent
- 02组织 Agent 指令、能力和入口
- 03将 Agent 部署到 Vercel 或 Node 服务
- 04验证授权会话及工作流恢复
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ magnus919/ agent-skills --skill vercel-eve安装后在 Claude Code 中输入/vercel-eve确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdevals/evals.jsonreferences/deployment-and-self-hosting.mddevelopment-and-architecture.mdsource-index.md详细介绍
Vercel Eve
Eve 是一个以文件系统为先的持久化后端 Agent 框架。将 agent/ 目录视为应用边界,并将部署视为由可独立替换的 HTTP、工作流、沙箱、模型、凭据和可观测性层组合而成。
运行约定
- 从生成的项目结构开始。将 Agent 行为放在
agent/instructions.md中,将运行时选项放在agent/agent.ts中,并在相应目录下为每项类型化能力单独创建一个文件。 - 将权限控制放在模型提示词之外。使用类型化工具、连接、沙箱边界和路由身份验证,而不是在指令中放入凭据或策略。
- 将持久化会话视为工作流,而不是内存中的聊天。在依赖长时间运行或有副作用的任务之前,先定义持久化、幂等性、回调可达性和恢复机制。
- 在可自托管部署中,有意替换每项 Vercel 服务。Node 进程能够启动,并不代表工作流回调、持久化状态、计划任务、沙箱隔离、身份验证和遥测都能正常工作。
- 使用健康检查请求和经过身份验证的真实会话进行验证,并确保会话实际执行工作流路径。切勿仅凭 HTTP 200 就认定已满足生产就绪条件。
不适用场景
不要将此用于独立的 ai 包中的 ToolLoopAgent、WorkflowAgent 或 HarnessAgent API。不要将其用于没有 Eve Agent 的通用 Next.js 部署。对于供应商中立的工作流编排,请改用相关的工作流或 Agent 框架技能。
遇到此类请求时,请说明 Eve 不适用,并转向当前的 AI SDK 文档或 AI SDK 专用技能。不要根据此技能编写 AI SDK API 代码、模型配置或部署指南。
项目模型
| 需求 | 默认位置 |
|---|---|
| 始终运行的行为 | agent/instructions.md |
| 模型和运行时选项 | agent/agent.ts |
| 类型化操作 | agent/tools/*.ts |
| 按需执行的流程 | agent/skills/ |
| 范围更窄的子 Agent | agent/subagents/ |
| HTTP、Slack 或其他入口点 | agent/channels/ |
| 类型化外部集成 | agent/connections/ |
| 隔离计算 | agent/sandbox/ |
| OpenTelemetry 设置 | agent/instrumentation.ts |
| 周期性任务 | agent/schedules/ |
创建或重组 Agent 之前,请阅读开发与架构。
快速开始
npx eve@latest init my-agent
cd my-agent
npm run dev
使用生成的 README 和包脚本作为本地事实来源。最简运行时配置会选择一个模型:
import { defineAgent } from "eve";
export default defineAgent({
model: "anthropic/claude-opus-4.8",
});
在 Vercel 上,字符串模型 ID 会通过 AI Gateway 路由,并可使用项目 OIDC。在 Vercel 之外,可以配置 AI_GATEWAY_API_KEY,也可以使用 AI SDK Provider 对象和该 Provider 通常使用的凭据。不要假设 BYOK 意味着绕过 Gateway。
有意构建能力
工具
工具是连接模型推理与外部操作的类型化边界。为它定义范围精简的架构,并提供清晰说明,明确其授权和副作用边界。工具声明类型化输入、输出和副作用。它不持有凭据,也不授予权限:将集成凭据保留在连接中,并在产生效果之前于服务端执行授权检查。
import { defineTool } from "eve/tools";
import { z } from "zod";
export default defineTool({
description: "Look up a city’s current weather.",
inputSchema: z.object({ city: z.string().min(1) }),
async execute({ city }) {
return { city, condition: "Sunny" };
},
});
对于只应在相关时加载的较大流程,请使用技能。如果任务需要全新的历史记录、更精简的工具集或隔离的中间状态,请使用子 Agent。
凭据与执行
使用 agent/connections/ 进行类型化服务集成。使用 agent/sandbox/ 执行生成的代码或 Shell 操作。切勿将 Provider 密钥、OAuth 令牌或路由身份验证密钥放入指令、工具源代码、生成的产物或日志中。
有关沙箱设计和生命周期选项,请阅读开发与架构。有关自托管后端和路由,请阅读部署与自托管。
部署
Vercel
使用与 Git 连接的项目或 vercel deploy。Eve 会生成 Vercel Build Output,使用 Vercel Workflows 管理持久会话,并且通常会选择 Vercel Sandbox。在公开面向浏览器的路由之前,请替换脚手架生成的占位身份验证。
自托管 Node 服务
eve build
PORT=3000 eve start --host 0.0.0.0
此方式使用 .output/ 下的常规 Nitro Node 输出。在接收生产流量之前,请阅读部署和自托管,并明确验证持久化工作流存储、沙箱后端、模型凭据路径、身份验证、/eve/ 和 /.well-known/workflow/ 代理前缀、计划任务执行以及遥测。
将主机路径、反向代理产品配置、存储产品和计划任务实现视为目标特定的依据。如果未提供或检查目标拓扑,请指出所需的约定和缺失的依据,不要凭空编造配置。
安全性与可观测性
- 在任何生产环境浏览器请求之前,请将占位身份验证替换为真实的策略。在 Vercel 之外,不要依赖
vercelOidc()作为唯一的身份验证方式。 - 为沙箱配置满足需求的最低网络和凭据访问权限。沙箱无法保护有意注入其中的机密信息。
- Vercel Agent Runs 使用起来很方便,但应将 OpenTelemetry 视为可移植的运维依据路径。如果跟踪记录会包含敏感数据,请将
recordInputs或recordOutputs设为false。 - 对于个人、敏感或受监管的数据,请评估会保留哪些模型输入、工具参数、输出和跟踪记录,并在需要时披露数据收集情况。
验证关卡
- 构建已部署的构件。
- 确认健康检查端点:
GET /eve/v1/health。 - 启动一个经过身份验证的会话:
POST /eve/v1/session。 - 连接到会话流,并验证一轮实际交互已完成。
- 对于自托管部署,测试持久化工作流回调或恢复路径,而不只是无状态回复。
- 检查跟踪记录,确保其中不包含机密信息和敏感载荷,或已按预期进行脱敏。
完成标准
仅当所请求的 Agent 能力已实现、其路由和授权边界已明确,并且已通过证据测试相关的本地或已部署会话路径时,任务才算完成。验证与版本相关的行为时,请参阅源索引。