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 – チャート、テーブル、インタラクティブカードがスレッド内に直接表示されます。
  • 書き込み確認 – 外部ツール(Linear、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
  • プロジェクト
  • プロジェクト