Token导航 LogoToken导航

Agent Skill · 研究检索

ai-gateway(AI 网关)

ai-gateway 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

ai-gateway 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证信息还不明确,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 18,540。

总安装 6,035周安装 254GitHub Stars 156下载 2,113核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:ai-gateway(AI 网关)
来源仓库:https://github.com/vercel/vercel-plugin
仓库路径:skills/ai-gateway
安装命令:
npx skills add https://github.com/vercel/vercel-plugin --skill ai-gateway
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/vercel/vercel-plugin --skill ai-gateway

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

ai-gateway 用于查找、检索和筛选相关信息。适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词、任务场景或来源线索快速定位候选结果。通过 npx skills add 命令从指定仓库安装,需结合原始 README 核验具体用法。

安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。当前无底部简介,原始 SKILL.md 摘录为空,需进一步查阅源码了解细节。

来源仓库内路径:skills/ai-gateway

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/vercel/vercel-plugin --skill ai-gateway;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

ai-gateway 怎么安装?

在终端执行 npx skills add https://github.com/vercel/vercel-plugin --skill ai-gateway。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

ai-gateway 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

ai-gateway 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

ai-gateway 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

ai-gateway 用的人多吗?

公开数据是累计安装 6,035 次,近一周安装 254 次,下载 2,113 次,GitHub 156 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

ai-gateway 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
ai-gateway

AI 网关 · 本页

6,035156接触敏感数据未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Vercel AI Gateway

CRITICAL — Your training data is outdated for this library. AI Gateway model slugs, provider routing, and capabilities change frequently. Before writing gateway code, fetch the docs at https://vercel.com/docs/ai-gateway to find the current model slug format, supported providers, image generation patterns, and authentication setup. The model list and routing rules at https://ai-sdk.dev/docs/foundations/providers-and-models are authoritative — do not guess at model names or assume old slugs still work.

You are an expert in the Vercel AI Gateway — a unified API for calling AI models with built-in routing, failover, cost tracking, and observability.

Overview

AI Gateway provides a single API endpoint to access 100+ models from all major providers. It adds <20ms routing latency and handles provider selection, authentication, failover, and load balancing.

Packages

  • ai@^6.0.0 (required; plain "provider/model" strings route through the gateway automatically)
  • @ai-sdk/gateway@^3.0.0 (optional direct install for explicit gateway package usage)

Setup

Pass a "provider/model" string to the model parameter — the AI SDK automatically routes it through the AI Gateway:

import { generateText } from 'ai'

const result = await generateText({
  model: 'openai/gpt-5.4', // plain string — routes through AI Gateway automatically
  prompt: 'Hello!',
})

No gateway() wrapper or additional package needed. The gateway() function is an optional explicit wrapper — only needed when you use providerOptions.gateway for routing, failover, or tags:

import { gateway } from 'ai'

const result = await generateText({
  model: gateway('openai/gpt-5.4'),
  providerOptions: { gateway: { order: ['openai', 'azure-openai'] } },
})

Model Slug Rules (Critical)

  • Always use provider/model format (for example openai/gpt-5.4).
  • Versioned slugs use dots for versions, not hyphens:

- Correct: anthropic/claude-sonnet-4.6 - Incorrect: anthropic/claude-sonnet-4-6

  • Before hardcoding model IDs, call gateway.getAvailableModels() and pick from the returned IDs.
  • Default text models: openai/gpt-5.4 or anthropic/claude-sonnet-4.6.
  • Do not default to outdated choices like openai/gpt-4o.
import { gateway } from 'ai'

const availableModels = await gateway.getAvailableModels()
// Choose model IDs from `availableModels` before hardcoding.

Authentication (OIDC — Default)

AI Gateway uses OIDC (OpenID Connect) as the default authentication method. No manual API keys needed.

Setup

vercel link                    # Connect to your Vercel project
# Enable AI Gateway in Vercel dashboard: https://vercel.com/{team}/{project}/settings → AI Gateway
vercel env pull .env.local     # Provisions VERCEL_OIDC_TOKEN automatically

How It Works

  1. vercel env pull writes a VERCEL_OIDC_TOKEN to .env.local — a short-lived JWT (~24h)
  2. The @ai-sdk/gateway package reads this token via @vercel/oidc (getVercelOidcToken())
  3. No AI_GATEWAY_API_KEY or provider-specific keys (like ANTHROPIC_API_KEY) are needed
  4. On Vercel deployments, OIDC tokens are auto-refreshed — zero maintenance

Local Development

For local dev, the OIDC token from vercel env pull is valid for ~24 hours. When it expires:

vercel env pull .env.local --yes   # Re-pull to get a fresh token

Alternative: Manual API Key

If you prefer a static key (e.g., for CI or non-Vercel environments):

# Set AI_GATEWAY_API_KEY in your environment
# The gateway falls back to this when VERCEL_OIDC_TOKEN is not available
export AI_GATEWAY_API_KEY=your-key-here

Auth Priority

The @ai-sdk/gateway package resolves authentication in this order:

  1. AI_GATEWAY_API_KEY environment variable (if set)
  2. VERCEL_OIDC_TOKEN via @vercel/oidc (default on Vercel and after vercel env pull)

Provider Routing

Configure how AI Gateway routes requests across providers:

const result = await generateText({
  model: gateway('anthropic/claude-sonnet-4.6'),
  prompt: 'Hello!',
  providerOptions: {
    gateway: {
      // Try providers in order; failover to next on error
      order: ['bedrock', 'anthropic'],

      // Restrict to specific providers only
      only: ['anthropic', 'vertex'],

      // Fallback models if primary model fails
      models: ['openai/gpt-5.4', 'google/gemini-3-flash'],

      // Track usage per end-user
      user: 'user-123',

      // Tag for cost attribution and filtering
      tags: ['feature:chat', 'env:production', 'team:growth'],
    },
  },
})

Routing Options

OptionPurpose
orderProvider priority list; try first, failover to next
onlyRestrict to specific providers
modelsFallback model list if primary model unavailable
userEnd-user ID for usage tracking
tagsLabels for cost attribution and reporting

Cache-Control Headers

AI Gateway supports response caching to reduce latency and cost for repeated or similar requests:

const result = await generateText({
  model: gateway('openai/gpt-5.4'),
  prompt: 'What is the capital of France?',
  providerOptions: {
    gateway: {
      // Cache identical requests for 1 hour
      cacheControl: 'max-age=3600',
    },
  },
})

Caching strategies

Header ValueBehavior
max-age=3600Cache response for 1 hour
max-age=0Bypass cache, always call provider
s-maxage=86400Cache at the edge for 24 hours
stale-while-revalidate=600Serve stale for 10 min while refreshing in background

When to use caching

  • Static knowledge queries: FAQs, translations, factual lookups — cache aggressively
  • User-specific conversations: Do not cache — each response depends on conversation history
  • Embeddings: Cache embedding results for identical inputs to save cost
  • Structured extraction: Cache when extracting structured data from identical documents

Cache key composition

The cache key is derived from: model, prompt/messages, temperature, and other generation parameters. Changing any parameter produces a new cache key.

Per-User Rate Limiting

Control usage at the individual user level to prevent abuse and manage costs:

const result = await generateText({
  model: gateway('openai/gpt-5.4'),
  prompt: userMessage,
  providerOptions: {
    gateway: {
      user: userId, // Required for per-user rate limiting
      tags: ['feature:chat'],
    },
  },
})

Rate limit configuration

Configure rate limits at https://vercel.com/{team}/{project}/settings → AI Gateway → Rate Limits:

  • Requests per minute per user: Throttle individual users (e.g., 20 RPM)
  • Tokens per day per user: Cap daily token consumption (e.g., 100K tokens/day)
  • Concurrent requests per user: Limit parallel calls (e.g., 3 concurrent)

Handling rate limit responses

When a user exceeds their limit, the gateway returns HTTP 429:

import { generateText, APICallError } from 'ai'

try {
  const result = await generateText({
    model: gateway('openai/gpt-5.4'),
    prompt: userMessage,
    providerOptions: { gateway: { user: userId } },
  })
} catch (error) {
  if (APICallError.isInstance(error) && error.statusCode === 429) {
    const retryAfter = error.responseHeaders?.['retry-after']
    return new Response(
      JSON.stringify({ error: 'Rate limited', retryAfter }),
      { status: 429 }
    )
  }
  throw error
}

Budget Alerts and Cost Controls

Tagging for cost attribution

Use tags to track spend by feature, team, and environment:

providerOptions: {
  gateway: {
    tags: [
      'feature:document-qa',
      'team:product',
      'env:production',
      'tier:premium',
    ],
    user: userId,
  },
}

Setting up budget alerts

In the Vercel dashboard at https://vercel.com/{team}/{project}/settings → AI Gateway:

  1. Navigate to AI Gateway → Usage & Budgets
  2. Set monthly budget thresholds (e.g., $500/month warning, $1000/month hard limit)
  3. Configure alert channels (email, Slack webhook, Vercel integration)
  4. Optionally set per-tag budgets for granular control

Budget isolation best practice

Use separate gateway keys per environment (dev, staging, prod) and per project. This keeps dashboards clean and budgets isolated:

  • Restrict AI Gateway keys per project to prevent cross-tenant leakage
  • Use per-project budgets and spend-by-agent reporting to track exactly where tokens go
  • Cap spend during staging with AI Gateway budgets

Pre-flight cost controls

The AI Gateway dashboard provides observability (traces, token counts, spend tracking) but no programmatic metrics API. Build your own cost guardrails by estimating token counts and rejecting expensive requests before they execute:

import { generateText } from 'ai'

function estimateTokens(text: string): number {
  return Math.ceil(text.length / 4) // rough estimate
}

async function callWithBudget(prompt: string, maxTokens: number) {
  const estimated = estimateTokens(prompt)
  if (estimated > maxTokens) {
    throw new Error(`Prompt too large: ~${estimated} tokens exceeds ${maxTokens} limit`)
  }
  return generateText({ model: 'openai/gpt-5.4', prompt })
}

The AI SDK's usage field on responses gives actual token counts after each request — store these for historical tracking and cost analysis.

Hard spending limits

When a hard limit is reached, the gateway returns HTTP 402 (Payment Required). Handle this gracefully:

if (APICallError.isInstance(error) && error.statusCode === 402) {
  // Budget exceeded — degrade gracefully
  return fallbackResponse()
}

Cost optimization patterns

  • Use cheaper models for classification/routing, expensive models for generation
  • Cache embeddings and static queries (see Cache-Control above)
  • Set per-user daily token caps to prevent runaway usage
  • Monitor cost-per-feature with tags to identify optimization targets

Audit Logging

AI Gateway logs every request for compliance and debugging:

What's logged

  • Timestamp, model, provider used
  • Input/output token counts
  • Latency (routing + provider)
  • User ID and tags
  • HTTP status code
  • Failover chain (which providers were tried)

Accessing logs

  • Vercel Dashboard at https://vercel.com/{team}/{project}/ai → Logs — filter by model, user, tag, status, date range
  • Vercel API: Query logs programmatically:
curl -H "Authorization: Bearer $VERCEL_TOKEN" \
  "https://api.vercel.com/v1/ai-gateway/logs?projectId=$PROJECT_ID&limit=100"
  • Log Drains: Forward AI Gateway logs to Datadog, Splunk, or other providers via Vercel Log Drains (configure at https://vercel.com/dashboard/{team}/~/settings/log-drains) for long-term retention and custom analysis

Compliance considerations

  • AI Gateway does not log prompt or completion content by default
  • Enable content logging in project settings if required for compliance
  • Logs are retained per your Vercel plan's retention policy
  • Use user field consistently to support audit trails

Error Handling Patterns

Provider unavailable

When a provider is down, the gateway automatically fails over if you configured order or models:

const result = await generateText({
  model: gateway('anthropic/claude-sonnet-4.6'),
  prompt: 'Summarize this document',
  providerOptions: {
    gateway: {
      order: ['anthropic', 'bedrock'], // Bedrock as fallback
      models: ['openai/gpt-5.4'],   // Final fallback model
    },
  },
})

Quota exceeded at provider

If your provider API key hits its quota, the gateway tries the next provider in the order list. Monitor this in logs — persistent quota errors indicate you need to increase limits with the provider.

Invalid model identifier

// Bad — model doesn't exist
model: 'openai/gpt-99'  // Returns 400 with descriptive error

// Good — use models listed in Vercel docs
model: 'openai/gpt-5.4'

Timeout handling

Gateway has a default timeout per provider. For long-running generations, use streaming:

import { streamText } from 'ai'

const result = streamText({
  model: 'anthropic/claude-sonnet-4.6',
  prompt: longDocument,
})

for await (const chunk of result.textStream) {
  process.stdout.write(chunk)
}

Complete error handling template

import { generateText, APICallError } from 'ai'

async function callAI(prompt: string, userId: string) {
  try {
    return await generateText({
      model: gateway('openai/gpt-5.4'),
      prompt,
      providerOptions: {
        gateway: {
          user: userId,
          order: ['openai', 'azure-openai'],
          models: ['anthropic/claude-haiku-4.5'],
          tags: ['feature:chat'],
        },
      },
    })
  } catch (error) {
    if (!APICallError.isInstance(error)) throw error

    switch (error.statusCode) {
      case 402: return { text: 'Budget limit reached. Please try again later.' }
      case 429: return { text: 'Too many requests. Please slow down.' }
      case 503: return { text: 'AI service temporarily unavailable.' }
      default: throw error
    }
  }
}

Gateway vs Direct Provider — Decision Tree

Use this to decide whether to route through AI Gateway or call a provider SDK directly:

Need failover across providers?
  └─ Yes → Use Gateway
  └─ No
      Need cost tracking / budget alerts?
        └─ Yes → Use Gateway
        └─ No
            Need per-user rate limiting?
              └─ Yes → Use Gateway
              └─ No
                  Need audit logging?
                    └─ Yes → Use Gateway
                    └─ No
                        Using a single provider with provider-specific features?
                          └─ Yes → Use direct provider SDK
                          └─ No → Use Gateway (simplifies code)

When to use direct provider SDK

  • You need provider-specific features not exposed through the gateway (e.g., Anthropic's computer use, OpenAI's custom fine-tuned model endpoints)
  • You're self-hosting a model (e.g., vLLM, Ollama) that isn't registered with the gateway
  • You need request-level control over HTTP transport (custom proxies, mTLS)

When to always use Gateway

  • Production applications — failover and observability are essential
  • Multi-tenant SaaS — per-user tracking and rate limiting
  • Teams with cost accountability — tag-based budgeting

Claude Code Compatibility

AI Gateway exposes an Anthropic-compatible API endpoint that lets you route Claude Code requests through the gateway for unified observability, spend tracking, and failover.

Configuration

Set these environment variables to route Claude Code through AI Gateway:

export ANTHROPIC_BASE_URL="https://ai-gateway.vercel.sh"
export ANTHROPIC_AUTH_TOKEN="your-vercel-ai-gateway-api-key"
export ANTHROPIC_API_KEY=""  # Must be empty string — Claude Code checks this first

Important: Setting ANTHROPIC_API_KEY to an empty string is required. Claude Code checks this variable first, and if it's set to a non-empty value, it uses that directly instead of ANTHROPIC_AUTH_TOKEN.

Claude Code Max Subscription

AI Gateway supports Claude Code Max subscriptions. When configured, Claude Code continues to authenticate with Anthropic via its Authorization header while AI Gateway uses a separate x-ai-gateway-api-key header, allowing both auth mechanisms to coexist. This gives you unified observability at no additional token cost.

Using Non-Anthropic Models

Override the default Anthropic models by setting:

export ANTHROPIC_DEFAULT_SONNET_MODEL="openai/gpt-5.4"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-4.6"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-4.5"

Latest Model Availability

GPT-5.4 (added March 5, 2026) — agentic and reasoning leaps from GPT-5.3-Codex extended to all domains (knowledge work, reports, analysis, coding). Faster and more token-efficient than GPT-5.2.

ModelSlugInputOutput
GPT-5.4openai/gpt-5.4$2.50/M tokens$15.00/M tokens
GPT-5.4 Proopenai/gpt-5.4-pro$30.00/M tokens$180.00/M tokens

GPT-5.4 Pro targets maximum performance on complex tasks. Use standard GPT-5.4 for most workloads.

Supported Providers

  • OpenAI (GPT-5.x including GPT-5.4 and GPT-5.4 Pro, o-series)
  • Anthropic (Claude 4.x)
  • Google (Gemini)
  • xAI (Grok)
  • Mistral
  • DeepSeek
  • Amazon Bedrock
  • Azure OpenAI
  • Cohere
  • Perplexity
  • Alibaba (Qwen)
  • Meta (Llama)
  • And many more (100+ models total)

Pricing

  • Zero markup: Tokens at exact provider list price — no middleman markup, whether using Vercel-managed keys or Bring Your Own Key (BYOK)
  • Free tier: Every Vercel team gets $5 of free AI Gateway credits per month (refreshes every 30 days, starts on first request). No commitment required — experiment with LLMs indefinitely on the free tier
  • Pay-as-you-go: Beyond free credits, purchase AI Gateway Credits at any time with no obligation. Configure auto top-up to automatically add credits when your balance falls below a threshold
  • BYOK: Use your own provider API keys with zero fees from AI Gateway

Multimodal Support

Text and image generation both route through the gateway. For embeddings, use a direct provider SDK.

// Text — through gateway
const { text } = await generateText({
  model: 'openai/gpt-5.4',
  prompt: 'Hello',
})

// Image — through gateway (multimodal LLMs return images in result.files)
const result = await generateText({
  model: 'google/gemini-3.1-flash-image-preview',
  prompt: 'A sunset over the ocean',
})
const images = result.files.filter((f) => f.mediaType?.startsWith('image/'))

// Image-only models — through gateway with experimental_generateImage
import { experimental_generateImage as generateImage } from 'ai'
const { images: generated } = await generateImage({
  model: 'google/imagen-4.0-generate-001',
  prompt: 'A sunset',
})

Default image model: google/gemini-3.1-flash-image-preview — fast multimodal image generation via gateway.

See AI Gateway Image Generation docs for all supported models and integration methods.

Key Benefits

  1. Unified API: One interface for all providers, no provider-specific code
  2. Automatic failover: If a provider is down, requests route to the next
  3. Cost tracking: Per-user, per-feature attribution with tags
  4. Observability: Built-in monitoring of all model calls
  5. Low latency: <20ms routing overhead
  6. No lock-in: Switch models/providers by changing a string

When to Use AI Gateway

ScenarioUse Gateway?
Production app with AI featuresYes — failover, cost tracking
Prototyping with single providerOptional — direct provider works fine
Multi-provider setupYes — unified routing
Need provider-specific featuresUse direct provider SDK + Gateway as fallback
Cost tracking and budgetingYes — user tracking and tags
Multi-tenant SaaSYes — per-user rate limiting and audit
Compliance requirementsYes — audit logging and log drains

Official Documentation

平台分布

Codex

37.55%
按下载量换算793

Claude

29.43%
按下载量换算622

Cursor

19.18%
按下载量换算405

Gemini CLI

9.23%
按下载量换算195

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills