Introducing Chat SDK
8分 32秒
Chat SDKでAIエージェント開発を革新:マルチプラットフォーム対応の課題を解決する統一API
この記事は動画の内容を元にAIが生成したものです。正確な情報は元の動画をご確認ください。
ポイント
- •AIエージェント開発者は、Chat SDKを利用することでマルチプラットフォーム対応の複雑な課題を解決できます。
- •各チャットプラットフォームの異なるAPIやUI構造に対応する反復作業を排除し、開発負担を大幅に軽減します。
- •統一されたAPIとJSXで一度エージェントを構築すれば、SlackやGitHubなど多様な環境にネイティブなUXで簡単に展開可能です。
Chat SDKでAIエージェント開発を革新:マルチプラットフォーム対応の課題を解決する統一API
はじめに:AIエージェント開発における共通の課題
皆様、こんにちは。ForcellのCTOであるマルタです。本日はご参加いただきありがとうございます。
今年の1月初旬、私たちは社内の全社員に対し、「自身の生産性をいかに何倍にも高めるか」という命題を与えました。そして、その結果として各チームが構築した成果には目を見張るものがありました。ほぼすべてのチームが複雑な作業を処理するためのAIエージェントを構築し、そのほとんどが誰でも利用できるSlackボットとして提供されました。
しかし、私たちはすぐに一つの課題に直面しました。それは、誰もが同じようなプラットフォーム連携作業を繰り返し行っていたことです。あるチームがエージェントを開発すると、次にSlackの複雑さに対応しなければなりませんでした。これは見た目よりもずっと困難な作業です。スレッドやリアクションの仕組み、メッセージの投稿方法、そして状態管理の方法を理解する必要があります。その後、「ねえ、そのエージェントをGitHubにも接続できない?」という要望が出ると、GitHubのAPIを使って同じロジックを異なるプラットフォームコードで最初からやり直すことになりました。
私たちはすぐに、チャットAPIが表面上は似ていても、その内部構造は完全に異なっているということを学びました。例えば、Slackはネイティブなストリーミングをサポートしており、LLMがトークンを生成するそばからメッセージに直接ストリーミング表示できます。一方、Discordでは投稿を編集し続ける必要があり、GitHubに至ってはストリーミング機能がありません。Discordはモーダルをサポートしますが、Microsoft Teamsでは読み取り専用のリアクションしか利用できません。これらは単なる「癖」ではなく、各プラットフォームの根本的な動作の違いなのです。
この結果、たとえ一つのシンプルなエージェントであっても、異なるツールで利用可能にするためだけに膨大な量のロジックを記述することになってしまいます。これは悪夢のような状況であり、Vercel社だけの問題ではありません。今後、あらゆる企業が、業務がすでにそこで行われている場所、すなわちチャット、共同レビュー、課題追跡などの「サーフェス」全体にわたってAIエージェントをどのように提供するかを考える必要に迫られるでしょう。
Chat SDKとは:AIエージェントのマルチプラットフォーム展開を可能にする統一API
AI SDKがモデルプロバイダー(GPT、Claude、Geminiなど)に対して同様の課題を解決するのと同じように、Chat SDKはインタラクティブなAIエージェントのために同じ役割を果たします。Chat SDKは、Slack、GitHub、Linear、Discord、Telegram、WhatsAppなど、さまざまなプラットフォーム間でのエージェントインタラクションのための単一のAPIを提供するものです。あなたがエージェントを構築すれば、Chat SDKがそれをユーザーがすでに使用しているアプリケーションに配信してくれます。
VZero背景エージェントの事例:フェルナンド氏の経験
フェルナンド氏は過去数週間にわたりVZero背景エージェントを構築してきましたが、彼がなぜChat SDKをそのスタックの重要な部分と見なしたのかを説明します。
VZero背景エージェントの構築を始めた当初の目標は、SlackからVZeroにタグ付けしてプルリクエストを開けるようにすることでした。彼は、あらゆるコードベース、あらゆる言語でバックグラウンド実行できる汎用コーディングエージェントを求めていました。開発を進め、VZero Slackアプリの最初のバージョンを友人に送ったところ、彼らが最初に尋ねたのは「これはLinearのIssueでも使える?GitHubのPRコメントからタグ付けできない?」ということでした。
この経験は、彼が初めてモバイルアプリを出荷した際、「Webでも使えないか?」と聞かれた時のことを思い出させました。VZeroがあらゆる場所で動作する必要があることが明らかになり、ユーザーの期待が変化していることを強く感じました。そこで彼は選択を迫られました。「VZero背景エージェントをプラットフォームごとに構築するか、それともチャットエージェント版のReact Nativeのように、すべてのプラットフォームで統一されたAPIを使って一度構築するか?」
フェルナンド氏は長年React Nativeでクロスプラットフォームアプリを構築してきた経験があり、この問題は彼にとって新しいものではありませんでした。そこでChat SDKが登場しました。Chat SDKを利用することで、VZero背景エージェントの構築に集中し、各プラットフォーム固有のAPIについて心配する時間を減らすことができたのです。
Chat SDKによるAIエージェント開発の実際
それでは、Chat SDKがどのように機能するのか、マット氏が詳細を説明します。
基本的な「Hello World」ボットの作成
フェルナンド氏と同様に、まずはSlackから始めましょう。ボットをメンションすると、非常にシンプルな「Hello World」という応答が返ってきます。これは画期的なことだとお分かりいただけるでしょう。コードを見ると、このボットがいかに簡単に作成できるかがわかります。新しいChatインスタンスを作成し、onMentionリスナーを追加して、スレッドに「Hello World」を投稿するだけです。これだけです。
JSXを活用したリッチなネイティブ体験
しかし、私たちは開発者にプレーンテキストのボットを作ってもらいたいわけではありません。各プラットフォームの機能を最大限に活用した、リッチなネイティブ体験を求めています。そして、開発者はJSXを好みます。そこで、私たちはChat SDKにJSXを導入しました。これで、慣れ親しんだコンポーネントを使って構築できるようになります。
例えば、2つのボタンを追加してみましょう。既存の「Hello World」メッセージを、「Continue」ボタンと「Cancel」ボタンを持つ「Hello Worldカード」に変更します。さらに、actionリスナーを追加し、ボタンがクリックされたときに「ユーザー名がContinueをクリックしました」と表示されるように設定します。
Slackで再度ボットをメンションすると、期待通りに構築したものが表示されます。コンポーネントはネイティブにレンダリングされ、「Continue」をクリックすると、ボットは即座にアクションを処理します。
アダプターによるゼロコードでのマルチプラットフォーム対応
ここからがさらに面白い点です。もし同じ体験をDiscordでも実現したい場合はどうでしょうか?必要なのはDiscordアダプターを追加することだけです。これだけで、Discordチャンネルに戻ってボットをメンションすると、まったく同じUIがDiscordにネイティブにレンダリングされます。新しいプラットフォームをサポートするために、コードの変更は一切必要ありません。
エージェントのストリーミング機能
これは素晴らしいことですが、次にエージェントについて見ていきましょう。AI SDKを使って構築したシンプルなエージェントがあります。エージェントにはストリーミング機能が必要です。Chat SDKを使えば、ストリーミングは非常に簡単です。ストリームを作成し、それをスレッドに投稿するだけです。Slackがストリーミングをどのように処理するか、あるいはDiscordが部分的な更新をどのように扱うかを探す必要はありませんでした。一つのAPIを使うだけで済みます。Slackでボットをメンションすると、レスポンスがネイティブにストリーミング表示されるのが確認できます。
ダイレクトメッセージへの対応
しかし、なぜそこで止まるのでしょうか?WhatsAppやTelegramのようなプラットフォームで、エージェントにダイレクトメッセージを送りたい場合はどうでしょう?Chat SDKを使えば簡単です。onDirectMessageリスナーと必要なアダプターを追加するだけです。これで、エージェントにDMを送る誰でも同じ体験を得ることができます。Web版WhatsAppを開いて「Hi, how are you doing?」と送ると、構築したエージェントがダイレクトメッセージに応答するのが確認できます。
GitHubでのコードレビュー連携
エージェントを構築したところで、プルリクエストを開いてみましょう。しかしその前に、WhatsAppでチャットしたのと同じエージェントが、私のコードをレビューできたらどうでしょうか?必要なのはGitHubアダプターだけです。GitHubアダプターを追加するだけで、エージェントをまったく新しいプラットフォームに導入できます。GitHubを開いてプルリクエストを見ると、コメントでエージェントをメンションするだけで、以前構築したのと同じダイレクトメッセージリスナーで応答してくれます。
Slack、Discord、WhatsApp、Telegram、GitHub。これらのAPIがどれほど異なるかを少し考えてみてください。しかし、たった一つのファイルと数行のコードで、私たちのエージェントはこれらすべてのプラットフォームに対応することができました。
まとめ:一度構築すればどこへでも展開
Chat SDKを使用すれば、リッチなネイティブ体験を一度構築するだけで、単一のAPIを通じてあらゆる場所に展開できます。これは、開発者がプラットフォームごとの細かなAPIの違いに頭を悩ませることなく、本質的なエージェントのロジック開発に集中できることを意味します。
AIエージェントの可能性を最大限に引き出し、ユーザーがすでに利用している多様なプラットフォームでシームレスな体験を提供するために、Chat SDKは強力なツールとなるでしょう。ぜひchat-sdk.devにアクセスして、ドキュメントやテンプレートをご確認ください。
ご清聴いただきありがとうございました。皆様がどのようなものを構築されるか、今から楽しみです。