CopilotKit/OpenTag

OpenTag: The Channels SDK starter application, a self-hosted AI on-call triage bot for Slack and Microsoft Teams, built with AG-UI and LangGraph. Fork it and ship your own.

OpenTag – Slack 및 Teams용 자체 호스팅 AI 지식 작업 보조 도구

무엇인가요 – OpenTag는 즉시 실행 가능한 오픈소스 '지식 작업 에이전트'입니다. LangGraph를 기반으로 한 대규모 언어 모델 기반 Python 에이전트를 CopilotKit의 Channels SDK를 통해 Slack 및 Microsoft Teams에 연결합니다. 리포지토리는 완전한 Node + Python 스택, Slack/Teams 내부에 렌더링되는 몇 가지 UI 구성 요소, 그리고 Railway 또는 AWS용 배포 스크립트를 포함합니다.

핵심 구성 요소

구성 요소 역할
agent/ (Python) OpenAI와 통신하고 웹 조사 수행, 선택적 도구(예: GitHub, Linear, Notion 등) 호출하는 LangGraph 딥 에이전트
app/ (Node/TS) CopilotKit 런타임. 관리형 채널을 호스팅하고 AG-UI 프로토콜을 Slack/Teams로 변환하며 차트, 테이블, 승인 카드를 렌더링
Channels SDK Slack/Teams 어댑터를 추상화하고 전달, 상태, 재연결을 처리하는 라이브러리
배포 구성 Railway (.railway/railway.ts) 및 AWS ECS-Fargate 설정, Docker 이미지 opentag-agent 및 opentag-runtime

작동 방식

  1. 채널 생성 – CopilotKit CLI(channels setup 또는 channels add)를 실행하여 CopilotKit Intelligence에 관리형 채널을 등록합니다. 이 과정에서 CopilotKit의 호스팅된 요청 URL을 가리키는 Slack 앱 매니페스트가 생성됩니다.
  2. 런타임 시작 – pnpm dev를 실행하면 Node 런타임과 Python LangGraph 에이전트가 시작됩니다. 런타임은 CopilotKit Intelligence로의 아웃바운드 WebSocket을 열며, Slack 메시지는 이 연결을 통해 전달됩니다.
  3. 사용자 상호작용 – Slack/Teams에서 사용자가 @OpenTag를 언급하거나 슬래시 명령어를 사용합니다. 런타임은 AG-UI 프로토콜을 통해 메시지를 Python 에이전트로 전달합니다.
  4. 에이전트 응답 – 에이전트는 다음 중 하나를 수행할 수 있습니다:
    • 일반 텍스트 응답 생성
    • 업로드된 CSV에서 네이티브 Slack 차트 생성
    • Linear 이슈 또는 Notion 페이지 생성(승인 카드 포함)
    • 병렬 웹 조사 수행 후 인용 출처가 포함된 테이블 반환
  5. 렌더링 – Node 측에서 결과를 Slack 블록 또는 Teams 카드로 포맷하여 차트, 테이블, 또는 상호작용 가능한 승인 버튼을 표시합니다.

주요 기능

  • 네이티브 Slack UI – 차트, 테이블, 상호작용 가능한 카드가 스레드 내부에 직접 표시됩니다.
  • 작성 승인 – 외부 도구(Linera, Notion)를 수정하는 작업은 사용자 승인 버튼을 기다린 후에 진행됩니다.
  • 도구 통합 – GitHub, PostHog, Linear, Notion, Composio 툴킷과의 선택적 연결 가능.
  • 자체 호스팅 – Python 에이전트와 Node 런타임은 자체적으로 실행합니다. CopilotKit 서버에는 코드가 존재하지 않으며, 관리형 채널 구성을 제외하고는 아무것도 없습니다.
  • 배포 가능 – 1클릭으로 Railway에 배포하거나 AWS Fargate 레시피 사용 가능. Docker 이미지는 GitHub Container Registry에 게시됨.

시작하기

  1. Node 22+, pnpm, Python 3.12, 그리고 uv를 설치합니다.
  2. pnpm install을 실행합니다.
  3. CopilotKit CLI로 관리형 채널을 생성하거나, 자체 Channels SDK 러너를 사용합니다.
  4. .env.example을 .env로 복사하고 OpenAI 키, CopilotKit API 키, Slack 자격 증명을 입력합니다.
  5. pnpm dev로 두 서비스를 시작하고, Slack에서 /invite @OpenTag로 봇을 초대합니다.

사용자 정의 – 대부분의 측면은 단일 파일 또는 디렉터리로 구성됩니다:

  • 성격 및 시스템 프롬프트 → agent/prompts/system.py
  • 에이전트 로직 → agent/agent.py
  • 도구 → agent/tools.py
  • UI 구성 요소 → app/components/
  • 채널 트리거 → app/channel.tsx
  • 배포 토폴로지 → .railway/railway.ts

대상 사용자 – 데이터와 자격 증명을 자체적으로 관리하고 싶은 팀이 일상적인 지식 작업(스프레드시트 요약, 리서치 정보 수집, 티켓 생성 등)을 자동화하기 위해 온프레미스 AI 보조 도구를 원하는 경우에 적합합니다.

관련

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