vercel/chat
Universal chat layer for building bots and agents.
概述
Chat SDK 是 Vercel 提供的 TypeScript 库,允许开发者编写一个 bot 实现,并在多个聊天平台(Slack、Microsoft Teams、Google Chat、Discord、Telegram、GitHub、Linear、WhatsApp 等)上运行。核心包(chat)提供 bot 运行时,而独立的 adapter 包将通用 SDK 调用转换为各平台的 API。
核心概念
| 概念 | 含义 | 重要性 |
|---|---|---|
| 统一的机器人逻辑 | 你创建一个 Chat 实例,注册事件处理器(提及、消息、按钮点击等),SDK 会将来自任何连接平台的事件路由到对应处理逻辑。 |
一次编写,随处部署;减少在 Slack、Teams 等平台上的代码重复。 |
| 适配器 | 小型 npm 包(@chat-adapter/slack、@chat-adapter/teams 等),实现平台特定的 Webhook 处理和 API 调用。 |
通过安装/卸载对应适配器,可轻松添加或移除平台。 |
| 状态管理 | SDK 默认无状态;你可以插入一个状态存储(例如通过 @chat-adapter/state-redis 使用 Redis)。 |
持久化会话上下文、用户偏好或任何自定义数据。 |
| AI 流式传输 | 内置对 LLM 响应流式传输的支持,返回给聊天客户端(Slack 流式、Telegram 草稿预览等)。 | 当 bot 由语言模型驱动时,提供“正在输入…”的响应式体验。 |
| 富 UI | JSX 基础的 卡片、模态框、斜杠命令、表情符号、文件上传和临时消息等,在各平台间抽象化。 | 无需学习每个平台的 UI 规范,即可构建交互式体验。 |
| 并发控制 | 处理同一线程中多个消息到达的辅助工具(突发、队列、防抖、丢弃)。 | 防止竞态条件和重复回复。 |
典型工作流程
- 创建项目 –
npx create-chat-sdk@latest my-bot生成一个包含可立即使用的Chat配置、Webhook 路由和示例.env的 Next.js 应用。 - 添加适配器 –
npm i @chat-adapter/slack @chat-adapter/teams(或其他需要的适配器)。 - 编写机器人逻辑 – 导入
Chat,实例化,附加处理器如bot.onNewMention或bot.onSubscribedMessage。 - 部署 – 将 Next.js 应用部署到 Vercel(或任何 Node 主机)。适配器暴露 HTTP 端点,Vercel 的无服务器函数可接收来自聊天平台的请求。
- 可选 AI 集成 – 安装 LLM(OpenAI、Claude 等),使用流式功能在生成过程中发送部分回复。
示例代码(来自 README)
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}`);
});
一旦添加了对应适配器,相同的 bot 对象即可在 Teams、Discord 等平台上响应。
生态系统与可扩展性
- 适配器目录(
@chat-adapter/catalog) – 一个无依赖的已发布适配器列表,包含其功能和所需环境变量。适用于工具、CLI 或 UI 向导。 - AI 编码代理技能 – Vercel 专用插件(
npx skills add vercel/chat),教会 AI 助手(如 OpenAI Codex)SDK 的 API 表面,使其能自动生成或修改 bot 代码。 - Vercel 插件 – 将 Chat SDK 技能与其他代理工具捆绑,便于在 Vercel 项目中添加 AI 辅助开发。
谁会使用它?
- 需要在多个内部聊天工具上部署支持机器人,但不想维护多个代码库的产品团队。
- 构建 AI 驱动的助手(如代码审查、知识库)的开发者,希望其可通过 Slack、Teams 或 Discord 访问。
- 为拥有异构通信栈的客户交付聊天机器人解决方案的顾问。
文档与支持
- 完整文档:https://chat-sdk.dev/docs
- 适配器列表与指南:https://chat-sdk.dev/adapters
- Vercel 知识库文章:https://vercel.com/kb/chat-sdk
- 开源 MIT 许可证;仓库中包含贡献指南和安全策略。
以上所有信息均直接取自仓库的 README。
相关
- 项目
- 项目
- 项目
- 项目
- 项目