Vercel开源Chat SDK:一套代码,支持六个平台,跨平台机器人开发效率提10倍

工具推荐 1772015345更新

0

假如:你是一家公司的技术负责人,你的团队需要开发一个客服机器人。

用户们在Slack、Discord、微信群里提问题,技术人员在GitHub上协作,产品经理则偏爱Microsoft Teams。

以前,你不得不为每个平台组建专门的开发小组,写完全不同的代码,维护六七套系统。现在,这些都将成为历史。

因为,Vercel最新开源了Chat SDK。

简单来说,Chat SDK是一个"万能翻译器"和"统一调度中心"的结合体。它让开发者只需要写一套代码,就能同时支持Slack、Microsoft Teams、Google Chat、Discord、GitHub和Linear这六大主流平台

传统开发模式下,如果你想做一个支持5个平台的聊天机器人,你可能需要5个程序员每人负责一个平台,大家各自为战、重复造轮子。现在有了Chat SDK,一个程序员就能搞定所有平台。

Chat SDK的主要亮点:

1. 写一次,到处运行。它采用事件驱动架构,开发者只需要定义一套业务逻辑,比如"当用户@机器人时,回复欢迎语",这段代码在所有平台上都能无缝运行。平台之间的差异(API格式、消息结构、认证方式)全部由SDK自动处理。

2. TypeScript加持,类型安全有保障。作为TypeScript原生开发的SDK,它继承了TypeScript的所有优点:编译时就能发现类型错误、智能代码提示、大幅降低调试成本。

3. JSX写界面,跨平台渲染。Chat SDK允许用类似React的JSX语法编写交互式卡片(Card)、按钮、表单等UI元素。写出来的代码在Slack上呈现为Block Kit组件,在Google Chat上变成Google Chat Cards,在Microsoft Teams上则是Adaptive Cards。一套代码,多平台原生体验

4. AI流式响应,原生支持。内置对AI SDK的深度整合。你可以直接把大语言模型的流式输出(textStream)传给消息发送方法,AI的回复会像ChatGPT一样实时逐字显示在聊天窗口中,而不是等全部生成后才一次性发送。用户再也不用盯着"对方正在输入..."干着急。

5. 完整的事件处理体系

支持的消息类型非常全面:

  • 提及(@机器人)
  • 直接消息
  • 表情回应(点赞、鼓掌等)
  • 按钮点击、下拉选择
  • 斜杠命令(/start、/help等)
  • 弹窗表单
  • 文件上传

Chat SDK的设计非常模块化,由三个组件构成:

Chat(调度中心)。整个SDK的入口,负责协调各个适配器(Adapter),并将来自平台的事件分发给你定义的处理器。

Adapters(平台适配器)。针对每个平台的独立实现模块。每个平台都有专属的适配器,负责解析webhook回调、格式化消息、处理API调用。目前官方支持Slack、Teams、Google Chat、Discord、GitHub、Linear六大平台。

State(状态管理)。可插拔的存储方案。开发阶段可以用内存存储,生产环境则支持Redis、ioredis等分布式存储,确保机器人在多实例部署时状态一致。

实际使用有多简单?看看这段代码就知道了:

import { Chat } from"chat";import { createSlackAdapter } from"@chat-adapter/slack";import { createRedisState } from"@chat-adapter/state-redis";const bot = new Chat({  userName: "mybot",  adapters: {    slack: createSlackAdapter(),  },  state: createRedisState(),});// 当有人@机器人时,自动回应bot.onNewMention(async (thread) => {await thread.subscribe();await thread.post("Hello! I'm listening to this thread.");});// 当收到订阅消息时,处理并回复bot.onSubscribedMessage(async (thread, message) => {await thread.post(`You said: ${message.text}`);});

不到20行代码,一个能用的Slack机器人就完成了。

如果要发送一个带按钮的交互卡片?同样简洁:

import { Card, CardText, Actions, Button } from "chat";await thread.post(  <Card title="Order #1234">    <CardText>Your order has been received!</CardText>    <Actions>      <Button id="approve" style="primary">Approve</Button>      <Button id="reject" style="danger">Reject</Button>    </Actions>  </Card>);

AI编程助手也能用。

如果你使用Claude Code、Cursor或GitHub Copilot等AI编程工具,可以直接让它们学习Chat SDK:

npx skills add https://github.com/vercel/chat --skill chat-sdk

安装后,AI助手就能理解Chat SDK的完整API,包括事件处理器、JSX卡片组件、流式响应等,写出来的代码更加准确。

Vercel还非常贴心地准备了多个快速起步指南:

  • Slack机器人:使用Next.js和Redis,从零搭建一个完整的Slack bot
  • Discord客服机器人:基于Nuxt和AI SDK,打造智能客服
  • GitHub PR审查机器人:自动为代码审查流程提效

每个教程都有完整的代码仓库和详细说明,即使是Chat SDK的新手也能快速上手。

Chat SDK的出现,让聊天机器人开发从"手工作坊"时代迈向了"工业化生产"时代。它不是第一个尝试统一多平台的工具,但它是第一个在TypeScript生态中做到如此深度整合的方案。

当你的竞争对手还在为每个平台分别开发、维护、更新时,你只需要维护一套代码。

这不仅是效率的差异,更是战略层面的优势。

官网文档地址:chat-sdk.dev/docs

GitHub仓库:github.com/vercel/chat

参考资料:https://x.com/haydenbleasel/status/2026359649499492395;https://github.com/vercel/chat;https://vercel.com/changelog/chat-sdk