Vercel Eve 接入自定义 AI Provider 相信很多朋友跟我一样手头都有不少 coding plan、token plan 相关的资源。真正使用 Agent 时也不一定会直接使用 Vercel AI Gateway接入第三方 Provider 是个很常见的需求。比如我自己一直在用开源的 Octafuse Gateway 管理我手头所有的 API 资源包括各种 Coding Plan/Token Plan。这样做的好处是模型供应商、key、路由和成本策略可以统一收口业务项目只需要接一个 OpenAI-Compatible 入口。所以这一篇不急着加 skills、subagents、sandbox。先处理一个更基础的问题如果不想只走 Vercel AI Gateway或者希望接入自己的 OpenAI-Compatible ProviderEve Agent 的模型配置应该怎么实现目标是默认仍然使用 Vercel AI Gateway当配置了自定义baseURL时切换到 OpenAI-Compatible Provider显式配置模型上下文窗口增加一个独立检查脚本在启动 Eve 之前先验证自定义 gateway把 coding plan 和 token plan 放进模型配置设计里。第一篇里我们直接让 Eve 使用 Vercel AI Gatewayexport default defineAgent({ model: process.env.EVE_GATEWAY_MODEL_ID ?? minimax/minimax-m3, modelContextWindowTokens: 200_000, });这对快速开始很友好。但现在我们要把模型入口从一个 Gateway 模型 ID改成一套可切换配置默认继续走 Vercel AI Gateway配置了自己的 OpenAI-Compatible gateway就切到自定义 Provider。核心习惯也很简单Agent 在开始变复杂之前先把模型入口、上下文窗口和失败边界显式化。本节样例结构样例结构如下example/02-custom-provider/ package.json tsconfig.json .env.example scripts/ check-custom-gateway.mjs agent/ agent.ts instructions.md channels/ eve.ts和第一篇相比只增加两件事agent/agent.ts支持 Vercel AI Gateway 和自定义 Provider 两条路径scripts/check-custom-gateway.mjs用来提前检查自定义 gateway。这一版仍然没有skillssubagentssandboxtoolsschedulesevals。先把 Provider 配置讲清楚再继续扩展 Agent 工作流。安装依赖自定义 OpenAI-Compatible Provider 使用ai-sdk/openai-compatible{ dependencies: { ai-sdk/openai-compatible: ^2.0.51, vercel/connect: 0.2.2, ai: 7.0.0-beta.178, eve: ^0.12.0, zod: 4.4.3 } }package.json里增加一个脚本{ scripts: { build: eve build, dev: eve dev, start: eve start, typecheck: tsc, check:gateway: node scripts/check-custom-gateway.mjs } }check:gateway不属于 Eve 的必需脚本但接入自定义 provider 时很有用它可以在启动eve dev之前先用最小请求检查 base URL、模型 ID、API key 和流式返回。设计环境变量.env.example分成两组。默认路径仍然是 Vercel AI GatewayEVE_GATEWAY_MODEL_IDminimax/minimax-m3 AI_GATEWAY_API_KEY自定义 OpenAI-Compatible Provider 使用另一组变量EVE_MODEL_BASE_URLhttps://api.example.com/v1 EVE_MODEL_API_KEYyour-api-key EVE_MODEL_IDyour-model-id EVE_MODEL_CONTEXT_WINDOW_TOKENS128000开关规则很直接只要EVE_MODEL_BASE_URL非空就使用自定义 Provider否则继续使用 Vercel AI Gateway。这样默认路径足够简单只配置 Vercel AI Gateway 就能跑需要自定义 provider 时也只改环境变量不改代码。改造agent/agent.ts完整代码如下import { createOpenAICompatible } from ai-sdk/openai-compatible; import { defineAgent } from eve; const defaultGatewayModelId minimax/minimax-m3; const customBaseURL process.env.EVE_MODEL_BASE_URL; const usesCustomGateway customBaseURL ! undefined customBaseURL.trim() ! ; function parseContextWindowTokens(value: string | undefined) { if (value undefined || value.trim() ) { return 128000; } const parsed Number(value); if (!Number.isInteger(parsed) || parsed 0) { throw new Error(EVE_MODEL_CONTEXT_WINDOW_TOKENS must be a positive integer.); }