vercel/chat

Universal chat layer for building bots and agents.

개요

Chat SDK 는 Vercel 에서 제공하는 TypeScript 라이브러리로, 개발자가 단일 봇 구현을 작성하고 Slack, Microsoft Teams, Google Chat, Discord, Telegram, GitHub, Linear, WhatsApp 등 여러 채팅 플랫폼에서 실행할 수 있도록 해줍니다. 핵심 패키지(chat)는 봇 런타임을 제공하며, 별도의 어댑터 패키지들은 일반적인 SDK 호출을 각 플랫폼의 API 로 변환합니다.

주요 개념

개념 의미 중요성
통합 봇 로직 Chat 인스턴스를 생성하고, 이벤트 핸들러(멘션, 메시지, 버튼 클릭 등)를 등록하면 SDK 가 연결된 플랫폼에서 오는 이벤트를 라우팅합니다. 한 번 작성하고 어디서나 배포 가능; Slack, Teams 등에서 중복 코드를 줄입니다.
어댑터 플랫폼별 웹훅 처리 및 API 호출을 구현하는 작은 npm 패키지(@chat-adapter/slack, @chat-adapter/teams, …). 해당 어댑터를 설치/제거함으로써 플랫폼을 추가하거나 제거할 수 있습니다.
상태 관리 SDK 는 기본적으로 상태 없이 동작하지만, 상태 저장소(예: @chat-adapter/state-redis 를 통한 Redis)를 연결할 수 있습니다. 대화 컨텍스트, 사용자 설정, 또는 사용자 정의 데이터를 지속적으로 저장할 수 있습니다.
AI 스트리밍 LLM 응답을 채팅 클라이언트(Slack 스트리밍, Telegram 드래프트 미리보기 등)로 스트리밍하는 내장 지원. 봇이 언어 모델로 작동할 때 "입력 중..." 같은 반응성 있는 경험을 제공합니다.
리치 UI JSX 기반의 카드, 모달, 슬래시 명령어, 이모지, 파일 업로드, 일시적 메시지 등이 모든 플랫폼에서 추상화되어 있습니다. 각 플랫폼의 UI 사양을 배우지 않고도 인터랙티브한 경험을 구축할 수 있습니다.
병렬 제어 동일한 스레드에 여러 메시지가 동시에 도착했을 때 처리하는 도구(버스트, 큐, 디바운스, 드롭). 레이스 컨디션과 중복 응답을 방지합니다.

일반적인 워크플로우

  1. 프로젝트 생성 – npx create-chat-sdk@latest my-bot 로 Next.js 앱을 스크래핑하며, 사용 가능한 Chat 설정, 웹훅 라우트, 예제 .env 파일이 포함됩니다.
  2. 어댑터 추가 – npm i @chat-adapter/slack @chat-adapter/teams (필요한 다른 어댑터도 포함).
  3. 봇 로직 작성 – Chat 을 가져와 인스턴스화하고 bot.onNewMention 또는 bot.onSubscribedMessage 와 같은 핸들러를 연결합니다.
  4. 배포 – Next.js 앱을 Vercel(또는 다른 Node 호스트)에 배포합니다. 어댑터는 HTTP 엔드포인트를 노출하며, Vercel 의 서버리스 함수가 채팅 플랫폼으로부터 요청을 수신할 수 있습니다.
  5. 옵션: 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 표면을 학습하게 하여, 봇 코드를 자동 생성하거나 수정할 수 있게 합니다.
  • Vercel 플러그인 – Chat SDK 기술과 다른 에이전트 도구를 함께 번들링하여, Vercel 프로젝트에 AI 지원 개발을 쉽게 추가할 수 있게 합니다.

누구에게 적합한가요?

  • 여러 내부 채팅 도구에 지원 봇이 필요한 제품 팀 (별도의 코드베이스 유지 없이).
  • Slack, Teams, Discord 등에서 접근 가능한 AI 기반 어시스턴트(예: 코드 리뷰어, 지식 기반)를 개발하는 개발자.
  • 다양한 커뮤니케이션 스택을 가진 고객에게 챗봇 솔루션을 제공하는 컨설턴트.

문서 및 지원


위 모든 정보는 리포지토리의 README 에서 직접 가져왔습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트