Vercel News

The Agent Stack

8.5内容质量

TL;DR · AI 摘要

The Agent Stack 提供了构建生产级代理所需的完整工具链,包括模型连接、工作流执行和系统集成。

核心要点

  • AI SDK 提供统一接口调用多个模型,简化开发流程。
  • AI Gateway 作为模型调用的 CDN,支持多模型路由和成本跟踪。
  • Workflow SDK 支持在安全环境中执行复杂工作流。

结构提纲

按章节快速跳转。

  1. 代理需要连接模型、执行工作流和连接系统,但现有方案存在局限。

  2. AI SDK 提供统一接口,AI Gateway 支持多模型路由和成本跟踪。

  3. AI SDK 是一个平台、框架和模型无关的接口,支持多种模型调用。

  4. AI Gateway 作为模型调用的 CDN,支持多模型路由和成本跟踪。

  5. Workflow SDK 支持在安全环境中执行复杂工作流。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • The Agent Stack
    • 模型连接
      • AI SDK
      • AI Gateway
    • 工作流执行
      • Workflow SDK

金句 / Highlights

值得收藏与分享的关键句。

#AI#Agent#Vercel#SDK#模型集成
打开原文

Agent Stack - Vercel

Agent 被设计用于完成几乎任何类型的工作,从回答支持工单到编写代码。无论工作负载多么复杂,运行时间多长,或者需要多少次交互才能完成,每个 Agent 都需要三个核心能力才能运行:

  • Agent 需要连接到模型并在它们之间进行路由
  • Agent 需要在多个步骤中运行工作流
  • Agent 需要连接到使其有用的系统以及人们用来与它们交互的平台

为了构建一个完整的 Agent,实现这些能力迫使开发人员在使用单一提供商 API 的供应商锁定、拼接解决方案或自行构建抽象之间做出选择。

Agent Stack 为你提供了创建和部署生产级 Agent 所需的所有构建块。

Agent Stack 为你提供了构建完整、生产就绪的 Agent 所需的每种工具。

连接到模型

Agent 不是运行在单一模型上。每个任务都有不同的成本、延迟和能力权衡,而正确的选择取决于 Agent 正在执行的任务。它需要一个接口来访问它们中的任何一个,一种在它们之间进行路由的方式,以及一种将结果流回用户的方式。

AI SDK 为 Agent 提供了一个接口,用于调用任何模型,而 AI Gateway 则通过一个端点在数百个模型之间进行路由。

AI SDK

每个实验室都通过自己的 API 暴露模型调用。流式传输、工具调用、结构化输出和请求的形状各不相同,因此每个支持的提供商都会增加另一个需要构建和维护的集成。

AI SDK 是构建 AI 应用、Agent 和框架的单一接口。它与平台、框架和模型无关,并允许你生成文本、图像、语音、视频等。

call-model.ts

code
1
import
{
generateText
}
from
'ai'
;
2
3
const
{
text
}
=
await
generateText
(
{
4
model
:
'anthropic/claude-sonnet-4.6'
,
5
prompt
:
'Summarize the latest deploys.'
,
6
}
)
;
7
8
console
.
log
(
text
)
;

通过更改一个字符串来切换模型,而不是更改你的代码。

AI Gateway

现在,令牌已成为生产依赖,就像网络带宽一样,而 Agent 每个任务使用不同的模型。跨实验室的集成意味着需要使用来自昂贵、限速且不断变化的提供商的独立密钥和账单。

AI Gateway 是令牌的 CDN,它在我们运行了十多年全球网络上进行路由。它通过一个端点路由每个调用,当提供商出现故障时进行故障转移,并跟踪所有令牌的成本和使用情况。你按提供商的价格支付,没有任何溢价,你还可以使用自己的密钥。

“我们最不想看到的是每次有新模型发布时都要重建我们的基础设施。我们最不想看到的是每次有新模型发布时都要重建我们的基础设施。” Greg Chan CTO

SERHANT 使用一个密钥运行三个模型,将市场分析发送给 Claude,将营销文案发送给 GPT,将图像生成发送给 Gemini。

执行复杂的工作流

Agent 通常按顺序执行任务,有时需要几分钟或几小时,而这些任务通常需要在安全的环境中执行代码和其他操作。

Workflow SDK 使 Agent 的运行更加持久,而 Vercel Sandbox 为 Agent 提供了独立的虚拟机。

Workflow SDK

当某个步骤在代理工作流中深处失败,且没有可以从中恢复的点时,整个工作将重新开始,重新运行你为每个模型调用付费的所有内容。解决持久性问题意味着需要自己构建和维护重试机制、状态持久化和编排。

Workflow SDK 会检查每个工作中的每一步,保存状态,重试失败的部分,并在需要等待人员、缓慢的 API 或 webhook 时暂停。运行可以从上一步良好的状态恢复,而不是从零开始。

“像‘我们如何让这个过程变得持久?’或‘如果用户在生成过程中断开连接怎么办?’这样的问题过去常常占据我们的设计讨论。现在这些问题已经解决,因此我们可以像实验一样快速发布。像‘我们如何让这个过程变得持久?’或‘如果用户在生成过程中断开连接怎么办?’这样的问题过去常常占据我们的设计讨论。现在这些问题已经解决,因此我们可以像实验一样快速发布。” Alec Jo,FLORA 应用人工智能负责人

FLORA 在 Workflow SDK 上构建了其创意代理,其中单个创意会话可以扩展到超过五十个图像模型。每一步都会保存状态并在失败时重试,因此长时间运行的会话永远不会丢失其状态。

链接到标题 Vercel Sandbox

代理可以读取文件、运行命令和编写代码。这种自由使它们变得强大。但如果没有限制,这也是一种风险。代码未经审查,命令可能有误,一个错误的步骤可能会访问它不应该接触的内容。

Vercel Sandbox 为每个代理提供了一个独立的微虚拟机,这是一个完整的 Linux 计算机,带有文件系统、Docker 支持和自己的内核,与主机和其他沙箱隔离。只有当代理的代码调用某个服务时,凭证才会被注入,因此它可以在不需要看到原始令牌的情况下使用所需的内容。

run-agent-code.ts。

code
1
import
{
Sandbox
}
from
'@vercel/sandbox'
;
2
3
const
sandbox
=
await
Sandbox
.
create
(
{
runtime
:
'python3.13'
}
)
;
4
await
sandbox
.
writeFiles
(
[
5
{
path
:
'agent.py'
,
content
:
Buffer
.
from
(
agentCode
)
}
,
6
]
)
;
7
const
result
=
await
sandbox
.
runCommand
(
'python'
,
[
'agent.py'
]
)
;
8
console
.
log
(
await
result
.
stdout
(
)
)
;

在一次性、隔离的微虚拟机中运行代理的未经审查的代码。

沙箱为你和你的代理提供了与 Vercel 的十亿个预览部署和每天六百万次构建相同的底层机制。

链接到标题 连接到数据和工具

一个只能与模型交流的代理无法做太多事情。要变得有用,它必须访问数据和外部系统,并与使用它的人进行交流。这两种连接都必须是安全的。

Vercel Connect 为代理提供有限的、短期的访问权限,以访问数据和系统。Chat SDK 将代理部署到用户已经存在的应用程序中。

链接到标题 Vercel Connect

打开拉取请求、更新记录、查询数据仓库。让代理执行这些任务意味着要给予它访问你所使用的平台的权限,而目前这通常意味着提供一个长期有效的令牌,范围足够广泛,可以涵盖代理可能需要执行的任何操作。它永远不会过期,也没有人能说清楚哪个用户授权了代理执行了哪些操作。

使用 Vercel Connect,你只需与每个系统集成一次。代理为每个任务生成一个短期的令牌,仅限于你明确授予的权限。

Vercel Connect 通过为每个任务生成的短期令牌将代理与你的系统集成。

每个操作都从用户追踪到代理再到服务,因此审计日志可以将每个调用与代理代表的用户联系起来。

Vercel Connect 是 Agent Stack 中最新的构建模块,目前处于公开测试阶段,支持 Slack、GitHub、Snowflake、Salesforce、Notion 和 Linear,以及通过 OAuth 或 API 连接的任何其他服务。

链接到标题 Chat SDK

人们的工作并不局限于一个标签页。他们会在 Slack、GitHub、Linear、WhatsApp 和 Discord 之间切换,并期望在每个平台都能看到你的代理。如果自行实现,意味着每个平台都需要不同的 API 集成、认证流程和消息格式。

Chat SDK 可以将你的代理带到所有这些平台。你只需安装一次 Chat SDK,它就会处理每个平台的适配器,使你的代理能够在用户已经存在的地方运行。

“Chat SDK 是我们其中一个代理能够在十五个应用中出现而无需构建十五个集成的方式。Chat SDK 是我们其中一个代理能够在十五个应用中出现而无需构建十五个集成的方式。” Gavriel Cohen,联合创始人兼首席执行官

NanoClaw 使用 Chat SDK 从单一代码库中将一个代理交付到十几个渠道。一次对话可以从 Slack 开始,然后继续在 GitHub 或 Linear 中进行,代理可以在不同界面上保持上下文。

链接到标题 eve,代理框架

在过去的一年中,我们在 Agent Stack 上构建了数百个代理。随着我们反复组装这些构建模块,我们发现代理具有某种结构。

code
agent/
agent.ts                   # 它运行的模型
instructions.md            # 它是谁
tools/
run_sql.ts               # 它能做什么
post_chart.ts
skills/
revenue-definitions.md   # 它知道什么
subagents/
investigator/            # 它委托给谁
channels/
slack.ts                 # 它在哪里运行
schedules/
monday-summary.ts        # 它何时自主行动

一个数据分析师代理,一目了然

eve 就是这种结构,作为一个框架。它是一个有特定观点的开源实现,将 Agent Stack 放在单个目录中。指令保存在 Markdown 中,工具使用 TypeScript。持久执行、沙箱计算、审批和交付已经在底层实现,运行在上面的模块之上。使用 eve,组装工作已经完成,因此你只需编写代理,无需做其他事情。

eve 今天已进入公开测试阶段,你可以在发布文章中了解更多。