技能包

Chat SDK:一份逻辑部署到多个聊天平台

适合在要用 TypeScript 同时对接多个聊天平台时使用,前提是先 npm i chat,再按平台加 adapter,并且第一次不要对外发消息。

官方来源 · Chat SDK

安装

npm i chat

适合谁

当你要用同一套 TypeScript 逻辑,在 Slack、Microsoft Teams、Google Chat、Discord、Telegram、GitHub、Linear、WhatsApp 等平台做聊天机器人时,使用 Chat SDK。它强调写一次机器人逻辑、部署到各处,而不是为每个平台各写一套未点名的框架。

更合适的前提是:你准备在 Node / TypeScript 项目里装核心包,并再装对应平台的 adapter。资料没有把这些平台写成互斥名单,后面还有 and more。官方说明页是

https://github.com/vercel/chat

3 分钟完成第一次尝试

推荐的第一条路径是核心包安装,不要同时开三条安装器:

npm i chat

前置:本机已有 npm。这条命令会改 package.json 和 node_modules,先确认当前目录就是你的机器人项目。装完后做只读核对:在脚本里写出资料中的导入,先不要连真实工作区、也不要对外发消息。

import { Chat } from "chat";
import { createSlackAdapter } from "@chat-adapter/slack";
import { createRedisState } from "@chat-adapter/state-redis";

成功信号:核心包能导入。adapter 需要再按平台安装,摘录写明 Install one or more adapters for your platforms;摘要点名例如 @chat-adapter/slack。若导入 adapter 失败,先停在缺失依赖,不要编造其他包名。

同一页还出现 npx skills add vercel/chat 以及 npx create-chat-sdk@latest my-bot。第一次不要并行跑脚手架;那会生成项目文件,必须先确认目录名 my-bot 不会覆盖现有文件夹。

使用案例

案例一:在已有 TypeScript 项目里接入 Slack。先 npm i chat,再安装 Slack adapter,然后用 Chat、createSlackAdapter、createRedisState 组装实例。摘要还提到处理 onNewMention 与 onSubscribedMessage,但摘录没有写出这两个回调的完整函数体,因此本案例完成标准是导入与组装成功,而不是已经在 Slack 里回复了一条消息。连 Redis 或注册 webhook 前,先确认连接目标和路由不会写到错误环境。

案例二:用官方脚手架新建一个 bot 目录。命令是 npx create-chat-sdk@latest my-bot。摘要说它会生成 Chat 配置、webhook 路由和 .env.example。这是写盘操作:先确认 my-bot 目录不存在或可以覆盖,再执行。完成标准是目录被创建,并且你能看到生成物。不要向 .env.example 填入任何密钥占位符之外的伪造密钥,也不要在未改配置时启动对外服务。资料没有写出环境变量名,因此不要编造。

使用边界

核心安装是 npm i chat,平台能力靠 adapter。导入示例只给出 Slack adapter 与 Redis state。脚手架和 agent skill 安装是并列出现的其他入口,不要把它们和核心包安装混成必须同时执行的一步。

不要假设列表里的每个平台都有已写出的 adapter 包名。资料没有给出客户端名单,也没有写如何在未安装 adapter 时直接打到 Teams 或 WhatsApp。超出这些已写明的安装、导入和脚手架命令,这份说明覆盖不到。