Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

chat-sdk

Slack・Teams・Google Chat・Discord・Telegram・GitHub・Linear・WhatsApp など複数プラットフォームに対応したチャットボットを、Chat SDK(`chat` npm パッケージ)を使って構築します。メンションやDM・スレッド購読・リアクション・スラッシュコマンド・カード・モーダル・ファイル送受信・AIストリーミングの処理、Webhookルートやマルチアダプター構成のセットアップ、リッチカードやAIレスポンスのストリーム配信、カスタムアダプターや状態管理アダプターの実装など、チャットボット開発全般で活用できます。

description の原文を見る

Build multi-platform chat bots with Chat SDK (`chat` npm package). Use when developers want to build a Slack, Teams, Google Chat, Discord, Telegram, GitHub, Linear, or WhatsApp bot, handle mentions, direct messages, subscribed threads, reactions, slash commands, cards, modals, files, or AI streaming, set up webhook routes or multi-adapter bots, send rich cards or streamed AI responses to chat platforms, or build a custom adapter or state adapter.

SKILL.md 本文

Chat SDK

Slack、Teams、Google Chat、Discord、Telegram、GitHub、Linear、WhatsApp 全体でチャットボットを構築するための統合 TypeScript SDK。ボットロジックを一度書いて、すべてのプラットフォームにデプロイしてください。

公開ソースから始める

Chat SDK がユーザープロジェクトにインストールされると、node_modules に含まれる公開ファイルを確認します:

node_modules/chat/docs/                    # バンドルドキュメント
node_modules/chat/dist/index.d.ts          # コア API タイプ
node_modules/chat/dist/jsx-runtime.d.ts    # JSX ランタイムタイプ
node_modules/chat/docs/contributing/       # アダプタオーサリングドキュメント
node_modules/chat/docs/guides/             # フレームワーク/プラットフォームガイド

以下のパスの1つが存在しない場合、そのパッケージはまだプロジェクトにインストールされていません。

コードを書く前に以下をお読みください:

  • node_modules/chat/docs/getting-started.mdx — インストールとセットアップ
  • node_modules/chat/docs/usage.mdxChat 設定とライフサイクル
  • node_modules/chat/docs/handling-events.mdx — イベントルーティングとハンドラ
  • node_modules/chat/docs/threads-messages-channels.mdx — スレッド/チャネル/メッセージモデル
  • node_modules/chat/docs/posting-messages.mdx — 投稿、編集、削除、スケジュール
  • node_modules/chat/docs/streaming.mdx — AI SDK 統合とストリーミングセマンティクス
  • node_modules/chat/docs/cards.mdx — JSX カード
  • node_modules/chat/docs/actions.mdx — ボタン/選択インタラクション
  • node_modules/chat/docs/modals.mdx — モーダル送信/閉じるフロー
  • node_modules/chat/docs/slash-commands.mdx — スラッシュコマンドルーティング
  • node_modules/chat/docs/direct-messages.mdx — DM 動作と openDM()
  • node_modules/chat/docs/files.mdx — 添付ファイル/アップロード
  • node_modules/chat/docs/state.mdx — 永続化、ロック、重複排除
  • node_modules/chat/docs/adapters.mdx — クロスプラットフォーム機能マトリックス
  • node_modules/chat/docs/api/chat.mdx — 正確な Chat API
  • node_modules/chat/docs/api/thread.mdx — 正確な Thread API
  • node_modules/chat/docs/api/message.mdx — 正確な Message API
  • node_modules/chat/docs/api/modals.mdx — モーダル要素とイベント詳細

使用している特定のアダプタまたはステートパッケージについては、node_modules にインストールされたそのパッケージの dist/index.d.ts エクスポート サーフェスを確認してください。

クイックスタート

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(),
  dedupeTtlMs: 600_000,
});

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}`);
});

コアコンセプト

  • Chat — メインエントリポイント。アダプタ、ルーティング、ロック、ステートを調整
  • Adapters — Slack、Teams、Google Chat、Discord、Telegram、GitHub、Linear、WhatsApp 用のプラットフォーム固有統合
  • ステートアダプタ — 購読、ロック、重複排除、スレッドステートの永続化
  • Threadpost()stream()subscribe()setState()startTyping() 付きの会話コンテキスト
  • Messagetextformatted、添付ファイル、作者情報、プラットフォーム raw を備えた正規化されたコンテンツ
  • Channel — スレッドとトップレベルの投稿用コンテナ

イベントハンドラ

ハンドラトリガー
onNewMention未購読スレッドでボットが @メンション
onDirectMessage未購読 DM スレッドで新規 DM
onSubscribedMessage購読スレッド内のメッセージ
onNewMessage(regex)未購読スレッド内の正規表現マッチ
onReaction(emojis?)絵文字追加または削除
onAction(actionIds?)ボタンクリックと選択/ラジオインタラクション
onModalSubmit(callbackId?)モーダルフォーム送信
onModalClose(callbackId?)モーダル閉じる/キャンセル
onSlashCommand(commands?)スラッシュコマンド呼び出し
onAssistantThreadStartedSlack アシスタントスレッド開始
onAssistantContextChangedSlack アシスタントコンテキスト変更
onAppHomeOpenedSlack App Home 開始
onMemberJoinedChannelSlack メンバーチャネル参加イベント

ハンドラを接続する前に node_modules/chat/docs/handling-events.mdxnode_modules/chat/docs/actions.mdxnode_modules/chat/docs/modals.mdxnode_modules/chat/docs/slash-commands.mdx をお読みください。onDirectMessage の動作は node_modules/chat/docs/direct-messages.mdx に記載されています。

ストリーミング

任意の AsyncIterable<string>thread.post() に渡します。AI SDK の場合、ステップ境界を保持するために、利用可能な場合は result.textStream より result.fullStream を優先してください。

import { ToolLoopAgent } from "ai";

const agent = new ToolLoopAgent({ model: "anthropic/claude-4.5-sonnet" });

bot.onNewMention(async (thread, message) => {
  const result = await agent.stream({ prompt: message.text });
  await thread.post(result.fullStream);
});

主要な詳細:

  • streamingUpdateIntervalMs は投稿+編集フォールバックのキャデンスを制御
  • fallbackStreamingPlaceholderText はデフォルト "..."。無効にするには null を設定
  • 構造化 StreamChunk サポートは Slack のみ。他のアダプタはテキスト以外のチャンクを無視

カードとモーダル (JSX)

tsconfig.jsonjsxImportSource: "chat" を設定します。

カードコンポーネント:

  • CardCardTextSectionFieldsFieldButtonCardLinkLinkButtonActionsSelectSelectOptionRadioSelectTableImageDivider

モーダルコンポーネント:

  • ModalTextInputSelectSelectOptionRadioSelect

ButtonModalcallbackUrl プロップを受け入れます。トリガーされると、SDK は onAction / onModalSubmit ハンドラを発火することに加えて、そのアクションペイロードをそのURLに POST します。これを webhook ベースのワークフローフロー用に使用してください。node_modules/chat/docs/actions.mdxnode_modules/chat/docs/modals.mdx を参照してください。

await thread.post(
  <Card title="Order #1234">
    <CardText>Your order has been received.</CardText>
    <Actions>
      <Button id="approve" style="primary">Approve</Button>
      <Button id="reject" style="danger">Reject</Button>
    </Actions>
  </Card>
);

アダプタインベントリ

公式プラットフォームアダプタ

プラットフォームパッケージファクトリ
Slack@chat-adapter/slackcreateSlackAdapter
Microsoft Teams@chat-adapter/teamscreateTeamsAdapter
Google Chat@chat-adapter/gchatcreateGoogleChatAdapter
Discord@chat-adapter/discordcreateDiscordAdapter
GitHub@chat-adapter/githubcreateGitHubAdapter
Linear@chat-adapter/linearcreateLinearAdapter
Telegram@chat-adapter/telegramcreateTelegramAdapter
WhatsApp Business Cloud@chat-adapter/whatsappcreateWhatsAppAdapter

公式ステートアダプタ

ステートバックエンドパッケージファクトリ
Redis@chat-adapter/state-rediscreateRedisState
ioredis@chat-adapter/state-iorediscreateIoRedisState
PostgreSQL@chat-adapter/state-pgcreatePostgresState
Memory@chat-adapter/state-memorycreateMemoryState

コミュニティアダプタ

  • chat-state-cloudflare-do
  • @beeper/chat-adapter-matrix
  • chat-adapter-imessage
  • @bitbasti/chat-adapter-webex
  • @resend/chat-sdk-adapter
  • @zernio/chat-sdk-adapter
  • chat-adapter-baileys
  • @liveblocks/chat-sdk-adapter
  • chat-adapter-sendblue
  • chat-adapter-zalo
  • chat-adapter-mattermost

近日公開予定のプラットフォーム

  • Instagram
  • Signal
  • X
  • Messenger

カスタムアダプタの構築

最初に以下の公開ドキュメントをお読みください:

  • node_modules/chat/docs/contributing/building.mdx
  • node_modules/chat/docs/contributing/testing.mdx
  • node_modules/chat/docs/contributing/publishing.mdx

また確認してください:

  • node_modules/chat/dist/index.d.tsAdapter および関連インターフェース
  • node_modules/@chat-adapter/shared/dist/index.d.ts — 共有エラーとユーティリティ
  • インストール済み公式アダプタ dist/index.d.ts ファイル — 設定と API の参考実装

カスタムアダプタはリクエスト検証、webhook 解析、メッセージ/スレッド/チャネル操作、ID エンコーディング/デコーディング、フォーマットコンバータが必要です。chat から BaseFormatConverter を使用し、@chat-adapter/shared から共有ユーティリティを使用してください。

Webhook セットアップ

登録された各アダプタは bot.webhooks.<name> を公開します。それらを HTTP フレームワークルートに直接接続してください。フレームワーク固有のルートパターンについては node_modules/chat/docs/guides/slack-nextjs.mdxnode_modules/chat/docs/guides/discord-nuxt.mdx を参照してください。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
vercel
リポジトリ
vercel/chat
ライセンス
MIT
最終更新
不明

Source: https://github.com/vercel/chat / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: vercel · vercel/chat · ライセンス: MIT