CopilotKit
エージェント内蔵アプリのためのオープンソースSDK。チャットUI、生成的UI、共有状態、人による承認
CopilotKitは、自社製品の中にエージェントを組み込むためのオープンソースSDKです。カスタマイズ可能なチャットUI、エージェントが実行時に描画できるUIコンポーネント、エージェントとアプリの双方が読み書きする状態レイヤー、そして処理を止めて人の判断を待つステップを備えます。ライセンスはMITで、React、Angular、Vue、React Nativeに対応し、AG-UIプロトコルを開発しているプロジェクトでもあります。AI機能を出すうえでのインターフェース側の半分は解決してくれますが、難しいほうの半分、つまり誰かに使ってもらうことは解決しません。
CopilotKitとは何か
CopilotKitは自身を、フルスタックのエージェント型アプリケーション、生成的UI、チャットアプリケーションを構築するためのSDKだと説明しています。もともとReactライブラリとして始まり、いまはマルチプラットフォームです。READMEはReactとNext.jsを正式提供、Angular・Vue・React Nativeを対応、SlackとMicrosoft Teamsをベータとし、DiscordとGoogle Chatは今後対応と記載しています。いずれの接点も同じエージェントのバックエンドを共有します。導入はコマンド一つ、npx copilotkit@latest create と、OpenAI、Anthropic、Geminiなどのモデルキーだけです。リポジトリのソースはMITライセンスです。
同じチームが、その土台にあるエージェントとユーザー間の相互作用プロトコルAG-UIも開発しています。READMEによれば、LangChain、CrewAI、Mastra、PydanticAIをはじめとするエージェント分野の各所で採用されています。創業者にとっての実利は明快です。エージェントとインターフェースの間の通信形式は、放っておけば自前で決めて後悔する類の設計判断であり、他のフレームワークがすでに話しているプロトコルに乗ることで、エージェント側を後から差し替えられる状態を保てます。プロジェクトはコーディング支援ツールにライブラリの設定やデバッグ方法を教えるインストール可能なスキルも配布しており、誰が実装を書くと想定しているかがよく分かります。
用意されているパターンと、それぞれの用途
機能一覧は実のところ、エージェント製品向けのインターフェースパターンの一覧であり、互いに交換可能ではありません。どのパターンがどの問題を解くのかを知っておくことが、ボタン一つで済む作業の上にチャット欄を貼り付けてしまう事態を防ぎます。
| パターン | 解決すること | 使いすぎになりやすい場面 |
|---|---|---|
| チャットUI | 画面上にボタンのない自由な依頼を受ける場所。ストリーミング応答と、見えるツール呼び出しを伴う。 | 製品そのものにしてしまうこと。ワンクリックで済んだ操作を文章で頼むのは、手間が減るどころか増える。 |
| 生成的UI | エージェントに文章で説明させる代わりに、表・フォーム・グラフといった実際のコンポーネントを描画させる。 | 毎回の応答で作り分けること。使うたびに別の製品に見え、いつまでも覚えられない画面になる。 |
| 共有状態 | エージェントとアプリが同じデータを見る状態を保つこと。エージェントの操作が画面に反映され、利用者の編集がエージェントに届く。 | エージェントに不要な状態まで同期すること。UIの小さな変更がそのままエージェントの挙動変更になってしまう。 |
| 人による承認 | 影響の大きい処理の前で止まり、確認・修正・不足している入力を求める。 | 何でも確認させること。やがて人は読まずにクリックするようになる。あらゆる承認ステップに共通の失敗の形。 |
最後の行こそ間違えたくない部分で、これは技術ではなくプロダクトの判断です。どの操作に一時停止を挟むべきかは、フレームワークの問題ではなく、結果の重さと取り消せるかどうかの問題です。概念はヒューマン・イン・ザ・ループと承認ゲートで扱っています。
エージェントUIを実際に出して学んだこと
AgentCeres — agentceres.com のAIグロースチーム — では製品の表面すべてがエージェントとの会話なので、このインターフェースを作っては作り直してきました。いちばん役に立った学びは、どのSDKの機能一覧にも載っていません。エージェントの処理が長引くあいだ、沈黙は「壊れた」と読まれます。三十秒間なにも動かない画面を見た人は、丁寧な作業が進んでいるとは考えません。固まったと判断して再読み込みし、待っていたはずの処理を自分で取り消します。私たちは最終的に、いま何をしているかを一行で表示し、その回に何をしたかを折りたためる形で残すようにしました。すると「遅い」という苦情の多くが「いま何をしているのか」という質問に変わりました。
二つ目の学びは抑制についてで、これはどのライブラリも代わりに決めてくれない部分です。当社のエージェントは互いに仕事を渡し合いますが、その間でやり取りされるメッセージは、私たちには興味深く顧客には無用です。そこで、担当の専門エージェントに相談したという事実を表示名で示し、何を話したかは一切見せません。人に何を見せてよいかを決めるのは、結局のところ描画の問題ではありませんでした。あの履歴を作ったとき、データは最初からすべて記録の中にあり、本当の作業は人の前に出すべきものを選ぶことだったからです。
このライブラリにおける「作る」と「伸ばす」の切れ目はそこにあります。CopilotKitは、動くエージェントと顧客が使えるエージェントの距離を確かに縮めます。しかしAI機能が意味を持つかどうかを決める二つのこと、つまり誰かがそれを見つけるか、最初に試したことが成功するかについては何もしません。どちらもオンボーディングの仕事です。usertourはその案内版であり、langfuseは実際の利用者が入ったあとにエージェントが何をしたのかを見るための道具です。
FAQ
- CopilotKitは無料ですか?
- リポジトリのソースはMITライセンスで提供されているため、自前でホストして商用製品を上に載せてもソフトウェア費用はかかりません。プロジェクトはマネージドのクラウドとインテリジェンス基盤も販売しており、READMEが早期アクセスとしている自己学習機能や、SlackとTeamsの接点などはそちら側にあります。モデルの利用料は、どのプロバイダーを指すかに応じて別途請求されます。
- 利用にエージェントフレームワークは必要ですか?
- 不要です。背後にあるものとはAG-UI経由でやり取りするため、エージェントはLangChainやCrewAIのようなフレームワークでも、モデルを直接呼ぶ自前のコードでも構いません。この分離こそ採用する実務上の理由です。インターフェース層とエージェント層は変化の速度がまるで違うので、エージェントの考え方を変えるたびにUIを書き直す事態は避けたいはずです。
- チャットUIは自作ではだめですか?
- ストリーミング付きの基本的なチャット画面なら週末で作れます。時間がかかるのは後から出てくる部分です。コンポーネントを描画するツール呼び出し、アプリの状態とエージェントの状態を食い違わせないこと、セッションをまたいだ会話の再開、そして実行の途中で人の判断を待つ一時停止。製品自体がエージェントなら、これらはすぐに省略できないものになります。それがライブラリを使う理由です。必要なのがサポート用ウィジェットなら、これは過剰です。
- AI機能を足せば製品は伸びますか?
- それだけでは伸びません。ここは率直に言う価値があります。製品内のエージェントは定着と継続のための機能であり、すでに使っている人にとって難しい作業を簡単にできます。需要は生みませんし、出したからといって見つけてもらえるわけでもありません。実際には、最初のセッションで目の前に置かない限り、ほとんどの利用者は一度も開きません。実装と同じだけの手間をかけて、どう紹介するかを設計してください。
- どのフレームワークに対応していますか?
- READMEはReactとNext.jsを正式提供、Angular・Vue・React Nativeを対応、Slack・Microsoft Teams・Discord・Google Chatをベータまたは今後対応としており、いずれも同一のエージェントバックエンドに対して動きます。対応外のスタックを使っている場合は、AG-UIが実装先のプロトコルになります。いずれにせよ、依存先としてはそちらのほうが長持ちします。
You built it. Now grow it.
AgentCeres is a managed AI marketing team — specialists draft the SEO, social, and outreach that fill your links, you approve what ships. 14-day free trial, from $39/month.