How to Connect Any Agent to Any Frontend - Atai Barkai, CopilotKit
5分 22秒
AGUIとCopecitで加速するエージェント型アプリケーション開発の基礎
この記事は動画の内容を元にAIが生成したものです。正確な情報は元の動画をご確認ください。
ポイント
- •CopecitとAGUIは、エージェントのバックエンドとフロントエンドをシームレスに接続し、エージェント型アプリケーション開発を加速させるための基盤です。
- •シンプルなチャットからフロントエンドツール呼び出し、共有ステート、Generative UIまで、次世代アプリ構築に不可欠な強力なビルディングブロックを提供します。
- •本記事は、これらのビルディングブロックを活用し、プロジェクトマネージャーのコパイロットのような革新的なエージェント型アプリケーションを効率的に開発する方法を解説します。
はじめに:次世代のアプリケーション開発を支えるCopecitとAGUI
本日は、エージェント型アプリケーションの構築基盤を提供するCopecitとそのプロトコルAGUIについてご紹介します。Copecitは、毎週数百万件ものエージェントとユーザー間のインタラクションを処理し、そのパッケージは毎週18万件以上のインストールを記録しています。Fortune 100企業からユニコーンスタートアップまで、幅広い企業に利用されており、エージェント型アプリケーションの最前線を走る企業と言えるでしょう。
Copecitが開発したAGUIプロトコルは、エージェントのバックエンドとフロントエンドをシームレスに接続することを可能にします。これにより、どのようなエージェントバックエンドにも、どのようなエージェントフロントエンドにも接続できるようになります。ReactやAngular用の公式クライアントに加え、KotlinやRustなどコミュニティが開発した多様なクライアントも存在します。また、Mastraをはじめとする多くの主要なエージェントフレームワークとも連携しており、Googleは最近統合を発表しました。AmazonやMicrosoftも近々統合をローンチする予定です。
この記事では、AGUIとCopecitが提供するエージェント型アプリケーション構築のための主要なビルディングブロックと、その活用例について詳しく解説していきます。
エージェント型アプリケーション構築のための主要なビルディングブロック
CopecitとAGUIは、開発者が効率的にエージェント型アプリケーションを構築できるよう、いくつかの強力なビルディングブロックを提供しています。
1. シンプルなチャット機能
最も基本的なビルディングブロックとして、エージェントとのチャット機能が挙げられます。ユーザーはエージェントと自然な会話を通じてインタラクションを行うことができ、これは多くのエージェント型アプリケーションにおいてユーザーインターフェースの基盤となります。
2. フロントエンドツール呼び出し
エージェントがフロントエンド上で直接ツールを実行できるようにする機能です。これにより、エージェントはユーザーインターフェースの状態を動的に変更したり、ユーザーからの入力を受け取って即座に反応したりすることが可能になります。例えば、動画内ではエージェントが背景色を変更するシンプルな例が示されました。これは、エージェントがアプリケーションの見た目や動作を直接制御できることを意味し、よりリッチでインタラクティブな体験を提供します。
3. エージェントとアプリケーション間の共有ステート
エージェントとネイティブアプリケーションUIの間でステート(状態)をリアルタイムに共有する機能は、エージェント型アプリケーションの強力な側面の一つです。エージェントがバックグラウンドで動作し、アプリケーションのステートを変更すると、それがリアルタイムでUIに反映されます。また、ユーザーがUI上でステートを編集した場合も、エージェントはその変更を認識し、次のアクションに活かすことができます。
例えば、レシピ作成アプリケーションの例では、ユーザーが「スパイシーなパスタ料理」をリクエストすると、エージェントが料理の材料や手順を生成し、その情報がアプリケーションのUIに即座に表示されます。ユーザーが材料リストを編集すれば、エージェントはその変更を理解し、レシピを調整するといった双方向の連携が可能です。
4. Human-in-the-Loop
エージェントの意思決定プロセスに人間が介入し、確認や承認を行うためのビルディングブロックです。これにより、エージェントの自律性と人間の監視・制御を組み合わせることができ、特に重要なタスクやリスクの高い操作において、安全性と信頼性を高めることができます。
5. Generative UI
エージェントが動的にUIを生成する機能です。エージェントの実行状態や生成した情報に基づいて、最適なユーザーインターフェース要素を動的に提示することができます。これにより、アプリケーションがより柔軟になり、様々なシナリオに対応したユーザー体験を提供できるようになります。
AGUIとCopecitで構築できるアプリケーションの例:タスク管理コパイロット
これらのビルディングブロックを組み合わせることで、どのようなエージェント型アプリケーションが構築できるのでしょうか。動画では、ToDoボードのようなタスク管理アプリケーションにおける「カーソル(Copilot)」の例が紹介されました。
このアプリケーションでは、エージェントがプロジェクトマネージャーのコパイロットとして機能します。例えば、「新しいエージェントフックを使って素晴らしいウェブサイトをゼロから構築するためのチケットを作成して」と指示すると、エージェントはタスクボード上に適切なチケットを自動で生成します。現在のLLM(大規模言語モデル)だけではプロジェクトマネージャーの業務を完全に自動化することは難しいものの、このようなコパイロット型のエージェントは、プロジェクトマネージャーの作業を大幅に効率化し、生産性を向上させることが可能です。
さらに、エージェントはアプリケーションの現在の状態を完全に把握しており、それに基づいてインテリジェントなインタラクションを行うことができます。例えば、「完了した全ての項目についてQAチケットを作成して、実際に完了していることを確認して」と指示すると、エージェントはタスクボード上の完了済み項目を認識し、それぞれのQAチケットを自動で生成します。エージェントがツールを実行する際には、基本的なGenerative UIを通じて、その動作が視覚的に表示されるため、開発者はそのプロセスを完全に制御できます。
このようなアプリケーションは、Copecitのワークショップで約1時間半という短時間で構築できるほど、その開発は迅速かつ容易に行えるとのことです。
その他の高度なビルディングブロックと今後の展望
Copecitは、上記以外にも様々な高度なビルディングブロックを提供しており、今後もその進化は続きます。
バックエンドツールレンダリング
エージェントがバックグラウンドで実行しているツールを、フロントエンドのUIとしてレンダリングする機能です。例えば、エージェントが天気情報を取得するツールを実行した場合、その結果を「天気カード」としてユーザーインターフェースに表示することができます。これにより、バックエンドでの処理がユーザーにとってより透明で理解しやすいものとなります。
エージェント型Generative UIの進化
エージェントの実行状態を、単にツールからの出力としてだけでなく、より動的にGenerative UIとして表現することができます。これにより、エージェントが進行中の思考プロセスや次のステップなどを視覚的にユーザーに提示し、より直感的でリッチなインタラクションを実現します。
新しいuseAgentディレクティブ(Copecit 1.50)
Copecitは2週間後にバージョン1.50をリリースする予定で、これには刷新された内部構造と、全く新しい開発者インターフェースが含まれます。特に注目すべきは、新しいuseAgentディレクティブです。これにより、開発者はアプリケーション内で複数のエージェントを並行して接続できるようになります。例えば、一つのスレッドを開始した後、別のスレッドで異なるタスクを実行したい場合に、エージェントのクローンを簡単に作成し、並行処理を行うことが可能になります。これは、複雑なエージェント型アプリケーションの設計と実装を大幅に簡素化するでしょう。
まとめ
CopecitとAGUIは、エージェント型アプリケーション開発のパラダイムを大きく変える強力なツールです。チャット、フロントエンドツール呼び出し、共有ステート、Human-in-the-Loop、Generative UIといった多岐にわたるビルディングブロックを提供し、開発者が次世代のアプリケーションを迅速かつ効率的に構築できるよう支援しています。
特に、プロジェクトマネージャーのコパイロットの例で示したように、エージェントがアプリケーションの状態を深く理解し、ユーザーと協調しながらタスクを実行する能力は、これまでのソフトウェア開発では難しかった新たな可能性を切り開きます。
今後リリースされるCopecit 1.50のuseAgentディレクティブは、複数のエージェントを扱う複雑なアプリケーションの設計をさらに容易にし、エージェント型アプリケーションの可能性を無限に広げることでしょう。ぜひ、CopecitとAGUIを活用して、革新的なエージェント型アプリケーション開発に挑戦してみてはいかがでしょうか。