novuhq/novu

The open-source communication infrastructure for agents and products

Novu – 제품 및 AI 에이전트를 위한 오픈소스 커뮤니케이션 레이어

Novu는 단일 API, 통합 대화 플랫폼으로, 사용자가 이미 사용하고 있는 다양한 채널(인박스/인앱, 이메일, SMS, 푸시 알림, Slack, Teams, Telegram, WhatsApp 등) 간에 메시지를 송수신할 수 있게 합니다. 두 가지 대상자를 위해 설계되었습니다:

  1. 제품 팀 – 다이제스트, 워크플로, 사용자 선호도 설정, 임베드 가능한 <Inbox /> UI 등을 제공하는 알림 시스템이 필요하지만 각 공급자를 별도로 연결하고 싶지 않은 팀.
  2. AI 에이전트 개발자 – 에이전트가 실제 채널을 통해 사용자와 대화하기를 원하는 개발자. Novu는 인바운드 메시지를 정규화하고 에이전트로 라우팅한 뒤, 에이전트의 응답을 다시 전송합니다—모두 "Agent Communication Infrastructure"(ACI) 하나로 처리됩니다.

핵심 기능

  • Unified API – 하나의 요청 형식으로 모든 공급자와 채널을 지원합니다.
  • Conversation model – 소스(Slack, 이메일, SMS 등)에 관계없이 메시지는 단일 데이터 형태로 관리됩니다.
  • Bidirectional messaging – 동일 레이어를 통해 사용자 메시지를 수신하고 에이전트 응답을 전달합니다.
  • Workflow engine – 조건부 라우팅, 분기 및 알림 다이제스트(배치 처리).
  • Embeddable UI components – 실시간 <Inbox />와 설정 패널을 웹 앱에 제공(현재 React 지원, 향후 Vue/Angular/React‑Native 예정).
  • Extensive provider catalog – 20종 이메일, 37종 SMS, 8종 푸시, 13종 채팅, 그리고 인앱 인박스를 포함한 카탈로그. 모두 플러그인 형태로 구현.
  • Open‑core licensing – 코어는 MIT 라이선스, 엔터프라이즈 전용 기능은 상용 라이선스로 제공.

전형적인 사용 사례

  • Product notifications – 알림, 활동 피드, 마케팅 메시지를 사용자가 선호하는 채널을 통해 전달.
  • Customer‑support bots – LLM 기반 챗봇을 Slack, Teams, WhatsApp에 연결해 별도의 webhook 어댑터 없이 사용.
  • Monitoring & alerting – 이메일, SMS, 인앱 피드를 통해 이상 알림을 전송하고, 고빈도 이벤트는 다이제스트로 요약.
  • Internal tooling – 시스템 이벤트를 팀이 선호하는 채팅 플랫폼으로 라우팅하면서 검색 가능한 인박스를 유지.

시작하기

  1. Novu 대시보드에서 무료 계정에 가입합니다.
  2. UI 또는 API를 통해 원하는 공급자(예: SMS용 Twilio, 이메일용 SendGrid)를 추가합니다.
  3. SDK(@novu/js, @novu/react 등)를 사용해 알림을 전송하거나 <Inbox /> 컴포넌트를 임베드합니다.
  4. 에이전트를 위해서는 Novu에서 정규화된 메시지 페이로드를 받아 처리(예: Claude, LangChain 또는 커스텀 LLM 사용)하고 응답을 반환하는 핸들러를 구현합니다.

생태계

  • SDKs – JavaScript/TypeScript(@novu/js), React(@novu/react), 향후 네이티브, Vue, Angular 래퍼 예정.
  • Docs & demos – 전체 문서 사이트와, 몇 분 안에 Claude 관리 에이전트를 Slack/Telegram/Email에 연결하는 "Novu Connect" CLI 데모 제공.
  • Community – Discord 서버, 오픈 이슈 트래커, 기여 가이드라인, 공개 기여자 배지.

Novu 자체가 AI 모델은 아니지만, AI 에이전트가 최신 메시징 채널 전체를 통해 실제 사용자와 소통할 수 있게 하는 기반을 제공하여 정적인 알림을 인터랙티브하고 스레드화된 대화로 전환합니다.