惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
L
LangChain Blog
H
Help Net Security
博客园_首页
T
Tailwind CSS Blog
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
雷峰网
雷峰网
Recent Announcements
Recent Announcements
D
DataBreaches.Net
U
Unit 42
Vercel News
Vercel News
I
InfoQ
Martin Fowler
Martin Fowler
Microsoft Azure Blog
Microsoft Azure Blog
Apple Machine Learning Research
Apple Machine Learning Research
S
SegmentFault 最新的问题
Jina AI
Jina AI
博客园 - 叶小钗
博客园 - 【当耐特】
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
Last Week in AI
Last Week in AI

Chat SDK Documentation

History | Chat SDK History | Chat SDK List a vendor-official adapter | Chat SDK Approvals | Chat SDK Vercel Connect | Chat SDK Teams Low-Level APIs | Chat SDK CLI | Chat SDK Platform Adapters | Chat SDK State Adapters | Chat SDK Cards | Chat SDK Getting Started | Chat SDK Modals | Chat SDK Slack Low-Level APIs | Chat SDK Streaming | Chat SDK Testing | Chat SDK Overview | Chat SDK toAiMessages | Chat SDK Cards | Chat SDK Overview | Chat SDK Markdown | Chat SDK Modals | Chat SDK AI SDK Tools | Chat SDK Types | Chat SDK Message Subject | Chat SDK Conversation History | Chat SDK Transcripts | Chat SDK Slack bot with Next.js and Redis Actions | Chat SDK Direct Messages | Chat SDK Emoji | Chat SDK
Introduction | Chat SDK
Vercel · 2026-05-29 · via Chat SDK Documentation

A unified SDK for building chat bots across Slack, Microsoft Teams, Google Chat, Discord, Telegram, and more.

Chat SDK is a TypeScript library for building chat bots that work across multiple platforms with a single codebase. Write your bot logic once and deploy it to Slack, Microsoft Teams, Google Chat, Discord, Telegram, GitHub, Linear, WhatsApp, and Messenger.

Building a chat bot that works across multiple platforms typically means maintaining separate codebases, learning different APIs, and handling platform-specific quirks individually. Chat SDK abstracts these differences behind a unified interface.

  • Single codebase for all platforms
  • Type-safe adapters and event handlers with full TypeScript support
  • Event-driven architecture with handlers for mentions, messages, reactions, button clicks, slash commands, and modals
  • Thread subscriptions for multi-turn conversations
  • Rich UI with JSX cards, buttons, and modals that render natively on each platform
  • AI streaming with first-class support for streaming LLM responses
  • Serverless-ready with distributed state via Redis and message deduplication

Chat SDK has three core concepts:

  1. Chat — the main entry point that coordinates adapters and routes events to your handlers
  2. Adapters — platform-specific implementations that handle webhook parsing, message formatting, and API calls
  3. State — a pluggable persistence layer for thread subscriptions and distributed locking
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.");
});

Each adapter factory auto-detects credentials from environment variables (SLACK_BOT_TOKEN, SLACK_SIGNING_SECRET, REDIS_URL, etc.), so you can get started with zero config. Pass explicit values to override.

PlatformPackageMentionsReactionsCardsModalsStreamingDMs
Slack@chat-adapter/slackYesYesYesYesNativeYes
Microsoft Teams@chat-adapter/teamsYesRead-onlyYesYesNative (DMs) / BufferedYes
Google Chat@chat-adapter/gchatYesYesYesNoPost+EditYes
Discord@chat-adapter/discordYesYesYesNoPost+EditYes
Telegram@chat-adapter/telegramYesYesPartialNoPrivate chat drafts / Post+EditYes
GitHub@chat-adapter/githubYesYesNoNoBufferedNo
Linear@chat-adapter/linearYesYesNoNoAgent sessions / Post+EditNo
WhatsApp@chat-adapter/whatsappN/AYesPartialNoBufferedYes
Twilio@chat-adapter/twilioN/ANoFallbackNoBufferedYes
Messenger@chat-adapter/messengerYesReceive-onlyPartialNoBufferedYes

If you use an AI coding agent like Claude Code, you can teach it about Chat SDK by installing the skill:

npx skills add vercel/chat

This gives your agent access to Chat SDK's documentation, patterns, and best practices so it can help you build bots more effectively.

The SDK is distributed as a set of packages you install based on your needs:

PackageDescription
chatCore SDK with Chat class, types, JSX runtime, and utilities
chat/aiAI utilitiescreateChatTools for agent operations and toAiMessages for converting chat history into AI SDK prompts
@chat-adapter/slackSlack adapter
@chat-adapter/teamsMicrosoft Teams adapter
@chat-adapter/gchatGoogle Chat adapter
@chat-adapter/discordDiscord adapter
@chat-adapter/telegramTelegram adapter
@chat-adapter/githubGitHub Issues adapter
@chat-adapter/linearLinear Issues adapter
@chat-adapter/whatsappWhatsApp Business adapter
@chat-adapter/twilioTwilio SMS and MMS adapter
@chat-adapter/messengerFacebook Messenger adapter
@chat-adapter/state-redisRedis state adapter (production)
@chat-adapter/state-ioredisioredis state adapter (alternative)
@chat-adapter/state-pgPostgreSQL state adapter (production)
@chat-adapter/state-memoryIn-memory state adapter (development)