Chat SDK가 에이전트를 사용자 곁으로 데려온다
Chat SDK는 에이전트를 Slack, Teams, Discord 등 여러 채팅 플랫폼에 하나의 코드베이스로 배포한다.
Chat SDK는 에이전트를 사용자가 이미 일하는 채팅 플랫폼으로 옮기기 위해 만든 TypeScript 라이브러리다. Slack, Microsoft Teams, Google Chat, Discord, Telegram, GitHub, Linear, 그리고 WhatsApp까지 하나의 코드베이스에서 다룰 수 있고, 핵심 chat 패키지가 이벤트 라우팅과 애플리케이션 로직을 담당한다.
출발점은 단순했다. 내부 팀들이 에이전트를 만들자마자 Slack, Discord, GitHub, Linear 같은 각기 다른 플랫폼 연동을 매번 새로 구현해야 했고, 이 과정이 빠르게 반복 작업이 됐다. 그래서 필요한 것은 사용자를 에이전트로 데려오는 것이 아니라, 에이전트를 사용자가 있는 곳으로 보내는 공통 계층이었다.
Chat SDK는 플랫폼별 차이를 어댑터로 흡수한다.
- Slack은 네이티브 streaming 경로에서 서식을 실시간으로 렌더링한다.
- 다른 플랫폼은 streamed text를 각 어댑터의 markdown-to-native 변환 파이프라인으로 처리한다.
Table()컴포넌트는 Slack의 Block Kit table, Teams와 Discord의 GFM markdown table, Google Chat의 monospace text widget, Telegram의 code block, GitHub와 Linear의 기존 markdown 파이프라인으로 맞춰 렌더링된다.- cards, modals, buttons도 JSX로 한 번만 작성하면 플랫폼별 지원 범위에 따라 자동으로 fallback된다.
메시지 맥락도 자동으로 보강된다. 채널명과 사용자명은 사람이 읽기 쉬운 텍스트로 바뀌고, 반대로 에이전트가 clear text로 at-mention을 보내면 Slack 알림이 실제로 트리거되도록 다시 변환된다. 링크 미리보기, 참조 게시물, 이미지도 프롬프트에 포함되고, 표준 markdown은 Slack의 변형 문법으로 실시간 변환된다.
AI SDK와의 연결도 핵심이다. post() 함수는 AI SDK text stream을 직접 받을 수 있어, 스트리밍 LLM 응답을 별도 wiring 없이 채팅 플랫폼에 흘려보낼 수 있다. 즉, 모델 응답과 UI 렌더링, 플랫폼별 표현 차이를 한 번에 묶어 처리한다.
상태 관리에는 플러그형 state adapter가 쓰인다.
- Redis와
ioredis는 출시 시점부터 지원됐다. - 이제 PostgreSQL도 production-ready 옵션으로 제공된다.
pg와 raw SQL로 동작하며, 첫 연결 시 필요한 테이블을 자동 생성한다.- TTL-based caching, distributed locking, namespaced state를 지원한다.
마지막으로 WhatsApp 지원이 추가되면서 write-once 모델이 더 큰 메시징 플랫폼으로 확장됐다. 메시지, reaction, auto-chunking, read receipt, 이미지·음성 메시지·스티커 다운로드, 위치 공유를 지원하지만, WhatsApp의 24-hour messaging window 제약 때문에 message history, editing, deletion은 지원하지 않는다.
Chat SDK는 open source이며 public beta 상태다. 팀이 만든 에이전트는 더 이상 한 플랫폼에만 머물 필요가 없고, 사용자가 실제로 있는 채팅 환경으로 배포될 수 있다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.