
9,101 文字

最近のインタビューで、Metaの創設者マーク・ザッカーバーグは、近い将来、地球上を歩く人間の数よりも多い、数十億のエージェントが実世界で稼働するだろうという予測を立てました。大胆な主張に聞こえるかもしれませんが、それについて今日お話ししていきましょう。まずはこのクリップをご覧ください。
私たちは、最終的に数億から数十億の異なるAIエージェントが存在する世界に住むことになると思います。おそらく世界の人口よりも多くのAIエージェントが存在することになるでしょう。私たちは、製品やモデルにかかわらず、1つの巨大なAIが存在するとは考えていません。私たちは基本的に、異なるモデルの幅広い多様性を持つことを信じています。そして、すべてのビジネスや人々が、自分たちで作る独自のものを多く求めるようになるでしょう。それが興味深い点であり、これを面白くする要因の多くになると思います。
彼は間違っていません。実際、特に設定可能な方法でAIエージェントをデプロイし、スケールすることがいかに簡単であるかを考えると、彼の意見は的を射ています。将来、企業があなたのような人々によって構築された基本的なAIエージェントのセットから選択し、それらを即座にデプロイして、ニーズに合わせてカスタマイズできる世界を想像してください。何百万もの異なる企業のために、数十から数百のエージェントを用意する。これがマークの言う数十億のエージェントです。
このビデオでは、数百のエージェントを同時にデプロイするような大げさな紹介はしませんが、AIエージェントをクラウドにスケーラブルな方法でデプロイすることがいかに簡単かをお見せします。多くの人、おそらくあなたも含めて、自分のコンピュータでAIエージェントを構築していますが、クラウドに移行する段階になると尻込みしてしまい、エージェントを本番環境に移してスケールすることが非常に困難に感じられます。しかし、これから説明するセットアップを使えば、実際には非常に簡単だということをお見せします。
これは、エージェントをデプロイしたいと考えている人のための実践的なガイドになりますが、私の目標は、このようなプロセスを取り入れ、それをどれだけ拡張できるかを想像していただくことです。近い将来、世界を席巻するであろう数十億のエージェントの構築に参加できるようにすることです。そしてそれは全て、コードをデプロイするための私のお気に入りのツールであるDockerを中心に展開されています。このビデオを見終わった時にDockerを好きにならなければ、私の仕事は失敗です。
また、今日デプロイするのは、AIエージェントを構築するための完全なプロセスを紹介するミニシリーズの一部として取り組んできたGitHubエージェントです。このエージェントは、コードQ&Aのために完全なリポジトリを消費することができ、今回はそれをクラウドに移行します。最高の部分は、これを完全に無料で始められることです。とてもエキサイティングなので、早速始めましょう。
まずは状況を整理し、それからDockerのセットアップに入り、これをクラウドにデプロイするのがいかに簡単かをお見せします。シリーズの最後のビデオで作成したフロントエンドもクラウドにデプロイします。これが、私たちが現在Pantic AIで構築しているGitHubエージェントです。Pantic AIは現在私のお気に入りのエージェントフレームワークです。
GitHubリポジトリのメタデータを取得するためのツール、ファイル構造を取得するためのツール、そして特定のファイルの内容を取得するためのツールを定義しています。これらのツールを全て組み合わせることで、エージェントはコードを分析し、URLを与えられたリポジトリに関する質問に答えることができます。
また、このシリーズではFast APIを使ってエージェントのAPIエンドポイントを作成しました。これにより、シリーズの早い段階で示したように、ローカルで実行するエージェントのフロントエンドとしてAgent Zero(私がライブエージェントスタジオ用に構築したプラットフォーム)を使用するためのエンドポイントを持つことができます。また、最後のビデオでは、LovableとBolt.DIYを使用して独自のカスタムフロントエンドを作成する方法も紹介しました。
エンドポイントはここにあり、全てがクラウドにAPIエンドポイントとしてデプロイする準備が整っていますが、ここで難しい部分に入ります。全てがローカルで実行され、素晴らしく動作しています。ターミナルで開いているのが見えますし、Agent Zeroに行ってテストすることもできます。
ここにBolt.DIYのGitHubリポジトリについて説明を求めるプロンプトを貼り付けると、エージェントが反応し、ツールを呼び出し、回答を得ています。これは完璧に機能していますが、全てローカルで実行されています。今からクラウドにデプロイしようとしているのですが、問題があります。
このAPIをデプロイするマシンに、正しいバージョンのPythonがインストールされ、正しいパッケージがインストールされていることを確認する必要があります。エンドポイントスクリプトを実行してエージェントをホストする前に、やらなければならないことがあります。
ここで「ザッカーバーグよ、これらのマシンは全て、エージェントのために正確に設定されている必要があり、マシンがダウンした場合は別のマシンを起動して全てを設定し直さなければならず、サーバーレスアーキテクチャで実行したい場合にデータベースドライバーがデフォルトでサポートされていないとインストールする方法がないのに、どうやって数十億のエージェントを展開できるのか?」と考えるかもしれません。
Pythonやパッケージのような単純なものでさえ、エージェントにはこれらの前提条件が必要なので、全てを設定するのは困難に見えるかもしれません。エージェントの設定に必要な全てを整然とパッケージ化する方法があれば、決定論的な一連のステップで全てを設定し、最後にエージェントを実行できるようになります。そうすれば、どのプラットフォーム、どのアーキテクチャでも動作する、完璧な独立環境が得られます。
そこでDockerの出番です。これを見てください。まさに私たちが必要としていたものです。ここに一連のステップがあり、これが独立した環境で全てを設定します。エージェントに必要なものだけがインストールされた、独自の小さなコンピュータのように考えることができます。そして最後に、Fast APIエンドポイントでエージェントを実行します。
これをセットアップする大きな利点は、どこにでもデプロイできるようになるだけでなく、CursorやWindsurfのようなAI IDEを使用して、エージェントを作成するための全てのステップをコードで定義できることです。つまり、サーバーに入って一つずつコマンドを実行する外部プロセスを作成する必要はなく、実際にコードで作成してAIの助けを借りて作成することができます。
正直に言うと、私はこのDockerfileを自分で作成したわけではありません。Windsurfを使って作成しました。そのため、これらのコマンドがどのように機能するかについて詳しい説明はしません。理解はしていますが、現在の焦点はAIで作成したこのDockerfileを使用してエージェントをデプロイすることです。これにより、多くの異なるプラットフォームがサポートする、エージェントを実行する小さな仮想マシンができます。
今から、このDockerfileを使ってそれらのプラットフォームの1つに移動し、これをデプロイしスケールすることがいかに簡単かをお見せします。また、他のタイプのプラットフォームにデプロイする方法についても説明します。
クラウドにDockerコンテナをデプロイする前に、私が最初にすることは、それをローカルでテストすることです。他のコードと同様に、エラーがないことを確認したいからです。特にAIを使用してDockerfileを作成している場合は、幻覚を起こしていないことを確認する必要があります。
クラウドでデプロイしたときにエラーが発生し、それがクラウドの設定によるものなのか、実際にコードにエラーがあるのかわからないのが最悪です。そのため、まずローカルで完璧に実行できることを確認してから、クラウドにデプロイします。Docker Desktopを使用してコンテナをビルドして実行します。
docker.ioに行き、このアップデートされたREADMEを見てください。エージェントのコードは全て、説明欄にリンクされているGitHubリポジトリにあります。そのため、これをダウンロードして一緒に進めることができます。ここでDockerでコンテナをビルドするためのコマンドを使います。ビルドのための非常に単純なコマンドです。
VS Codeで見ているディレクトリにいるため、現在のディレクトリでビルドするためのドットがあります。そのため、現在のディレクトリでDockerfileを見つけます。私の場合、既にキャッシュされているため、すぐにビルドされました。明らかにビデオの準備のために既にビルドしていたからです。
初めて実行する場合は、AIエージェントに必要な完璧な環境をセットアップするために、これらのコマンドを全て実行するため、少し時間がかかります。最も時間がかかるのは、エージェントのためのPythonパッケージを全てインストールすることです。
READMEに戻って、コンテナを起動するためのこのコマンドを実行できます。コピーしてターミナルに戻ります。ポート8000を公開しているのは、これがAIエージェントエンドポイントのポートだからです。そして、コンテナの外で実行する場合と同様に、エージェントにはENVファイルが必要なので、ENVファイルを渡しています。
これを実行すると、Fast APIからの出力は通常見るものと同じですが、今は全てがコンテナ内で実行されています。Docker Desktopでも確認できます。Agent Zeroのフロントエンドに戻って、コンテナ内で実行されている状態でも全てが機能しているか確認します。
今回は簡単なテストメッセージを送って、全てが機能しているか確認します。素早い応答が欲しいだけです。うまく機能していますね。ターミナルに戻ると、Pantic AIエージェントからの出力がここにあります。全てが完璧に機能しています。
これで全てがローカルで完璧に動作していることがわかったので、同じ独立したマシンをクラウドにデプロイすることができます。エージェントのために正確にセットアップしたこの独立環境なので、ローカルで動作している以上、専用サーバーにサーバーデプロイをしようと、クラウドのどこにデプロイしても動作することが絶対的に確実です。全て同じDockerコンテナで実行されるからです。これがDockerの美しさであり、スケーラブルで簡単にデプロイできる理由です。
クラウドでDockerコンテナをデプロイする方法は数百万通りあります。AWSやGoogle Cloudでサーバーレスにしたり、Digital Oceanを使ってアプププラットフォームやドロップレットを使用したりと、N8Nで行ったように、Dockerコンテナの柔軟性により、多くのオプションがあります。
このビデオでは特にRenderを選びました。スポンサーはついていませんが、これが私が見つけたDockerコンテナを最も簡単にデプロイできる方法です。また、無料プランがあり、これから紹介するエージェントのDockerバックエンドと、シリーズの最後のビデオで構築したフロントエンドの両方に使用できます。
RenderでのDockerのデプロイに関する優れたドキュメントもあります。説明欄にリンクを貼っておきます。一般的に素晴らしいドキュメントを持っているのも、彼らを選んだ理由の一つです。実際のデプロイを開始するには、ダッシュボードに移動します。
dashboard.render.pngリポジトリです。そのため、あなたのために知的な決定を行います。非常に便利です。メインブランチを選択します。デフォルトで存在しています。あなたや顧客に最も近い地域を選択でき、ルートディレクトリはそのままにしておきます。インスタンスタイプは今は無料プランを選びます。これらの制限に注意してください。しかし、始めるには素晴らしい方法です。
環境変数については、これがDockerの最も美しい部分の一つです。環境変数を使用してDockerfileでの構築方法を決定し、また、これによってAIエージェントを異なるクライアントやビジネス、あるいはビジネスの部門に合わせて設定やカスタマイズすることができます。私は自分のENVファイルからコピーして環境変数を追加しようと思いますが、その前に少し説明させてください。
これはDockerでスケーラブルにする要因の一つです。ここで異なるインスタンスのための環境変数を設定できます。例えば、Renderで営業部門用のエージェントのインスタンスを1つ、マーケティング部門用のエージェントのインスタンスを別に持つことができ、エージェントの動作を決定し、実際にそのエージェントを使用する人々に合わせてカスタマイズするために環境変数を設定できます。
これも、Dockerエージェントをとてもうまくスケールできる理由の一つです。本質的に環境変数を使用して設定するからです。ここでビデオを一時停止して、ローカルにある全ての環境変数を入力し、それが完了したら戻ってきます。
環境変数の設定が完了しました。このシリーズの他のビデオで説明しているので、詳しくは説明しませんが、重要なのは、これを持ち込むのがとても簡単で、環境変数をうまく使えば、エージェントの異なる動作を多く設定できるということです。
詳細セクションについては、変更する必要のあるものは何もありません。エージェントに必要な正確なインスタンスをセットアップする方法を指示するのは、Dockerfileなので、Dockerを使うととても簡単です。全ての依存関係についても同様です。
「Deploy web service」をクリックすると、ビルドログを表示するビューに移動し、GitHubからコードを取得し、エージェントとそのAPIエンドポイントを構築・提供するためにDockerfileを実行する様子をリアルタイムで見ることができます。このセットアップ全体が完了するまで一時停止し、完了したら戻ってきます。
約5分かかり、今私たちのAIエージェントエンドポイントがRenderでライブになりました。これを見てください。出力は私たちにとってとても馴染みのあるものです。これはローカルで実行しているときにターミナルで見たものとまったく同じです。そして、サービスがライブであることを示すこの素敵なメッセージが表示されました。
これをテストしてみましょう。Agent Zeroに戻ってテストし、その後Renderでフロントエンドのデプロイも行います。このリンクをコピーして、Agent Zeroに戻り、新しい会話を開始します。ここで設定を開きます。Superbaseとその他全てを全く同じように設定したので、変更する必要があるのはURLだけです。
LocalhostをRenderから取得したものに置き換えます。この特別なRenderのURLを取得しました。これを独自のドメインに設定することもできます。Renderには必要な柔軟性が全てあります。そして、同じ拡張子/API、そしてpantic-github-agentを使用します。
保存をクリックすると更新され、新しい会話が始まります。そうですね、同じ質問を使ってみましょう。全てが正常に機能しているか確認するために、全く同じ質問を使用します。これをここに送信し、Renderに戻って、実際にエージェントと通信しているか確認します。
はい、エージェントへの新しいリクエストが届きました。そうですね、少し遅延がありましたが、レスポンスを取得しました。リポジトリ情報を取得し、そのツールを実行しました。Agent Zeroに戻ると、レスポンスがあります。これは完璧に機能しています。5分ほどで、DockerコンテナがRenderで実行されています。
ロードバランシングを作成したり、サーバーレスアーキテクチャにデプロイしたり、エージェントを水平方向にスケールするためにより多くのRenderインスタンスを起動したり、垂直方向にスケールするためにインスタンスサイズを上げたりと、これを前進させる方法は多くあります。私のチャンネルの他のビデオでさらに詳しく説明したいことがたくさんありますが、Dockerを使用して構築できるあらゆるAIエージェントをデプロイすることがいかに簡単かを示す、素晴らしい出発点となります。
最後にすぐにやりたいことは、このシリーズの最後のビデオで構築したカスタムフロントエンドもRenderにデプロイすることです。おさらいとして、このGitHubリポジトリがあり、とてもシンプルです。LovableでアプリケーションをスタートさせGeminiを使用して無料で多くの改良を行うためにB.DIYに移行しました。
環境変数に関するいくつかの変更以外は、最後に作業したときからこのプロジェクトに変更を加えていません。再びWindsurfを使用しました。説明を避けているわけではなく、この変更自体にかかった時間以上に説明に時間をかけたくないだけです。
コード内で使用されるこれらの環境変数をここで定義しています。Renderデプロイメント内で、SuperbaseとRenderでホストされているAIエージェントのAPIのURLに設定したいエンドポイントの環境変数を設定できるようにするためです。
これらの変更を加え、説明欄にリンクを貼るGitHubリポジトリにプッシュしました。Renderに戻ってページをデプロイできます。まず、これはViteとReactで構築されています。通常、LovableとBoltが出力するのはReact + Viteアプリケーションです。
Renderのviteドキュメントでは、静的サイトを作成するように指定されています。バックエンドにはWebアプリを使用し、シングルページアプリケーションやダイナミックアプリケーションにもWebアプリを使用しますが、Viteは静的コンテンツを出力するだけです。そのため、静的サイトをデプロイし、ビルドとパブリッシュコマンドの手順も提供されています。
Renderに戻り、新しい静的サイトを追加します。GitHubリポジトリを選択します。選択して接続すると、自動的にNodeと認識されます。既に一度デプロイしているので、新しい名前を追加します。メインブランチを使用し、インストールコマンドには「npm install」と「npm run dev」このコマンドを実行します。パブリッシュディレクトリはデフォルトのdistのままです。これはviteガイドのこれらの指示に従っているだけです。
これで完了です。あとは環境変数を設定するだけです。GitHubで行った変更に戻ると、VITE_API_URLがあります。これはRenderにあるAIエージェントのインスタンスを指すことになります。具体的には、Agent Zeroで使用したものをそのままコピーします。これが私のエンドポイントです。とても簡単です。
追加する必要のある他の2つの変数は、VITE_SUPABASE_URLとSUPABASE_PUBLIC_KEYです。これらをカメラの外で追加し、それが完了したら戻ってきます。
環境変数の設定が完了し、必要な全てが整いました。Dockerによるバックエンドと同様、非常にシンプルで、詳細設定で気にする必要のあるものは何もありません。「Deploy static site」をクリックします。ReactとViteではとても速いので、少し時間がかかります。完了したら戻ってきます。
30秒後に準備が整いました。このURLをクリックすると、シリーズの最後のビデオで構築し、ローカルで実行していたサイトに移動します。ここで「hello」というメッセージを送信して、Renderでホストされているフロントエンドとエージェントの両方が機能しているか確認します。
素晴らしい、レスポンスが返ってきました。これは完璧に機能しています。これで、どこにでもデプロイでき、Renderを例として使用して本当に簡単にスケールできるDockerコンテナ内にAIエージェントができました。フロントエンドもデプロイされています。全てがクラウドにあります。数分で全てを行いました。とてもエキサイティングです。
これで、AIエージェントとプルーフオブコンセプトのフロントエンドをクラウドにデプロイし、それは簡単でした。このガイドがエージェントのデプロイ方法を明確に示し、また、Dockerを使用してエージェントをスケールしデプロイすることがいかに簡単か、そして実際に無限の数のエージェントを稼働させることができることを理解するきっかけになったことを願っています。
コンテナを使用し、エージェントをどこにでも配置できるこの小さな独立環境に入れることで、多くのオプションと柔軟性が得られます。また、このAIエージェントシリーズについては、見逃したくないコンテンツがまもなく登場します。GitHubエージェントをRAGで拡張する方法や、GitHubガイドを例としてAIエージェントを収益化する方法をお見せする予定です。
このコンテンツを気に入っていただき、AIエージェントの構築に関するさらなるコンテンツを楽しみにしていただけるなら、「いいね」と「登録」をしていただけると嬉しいです。では、次回のビデオでお会いしましょう。
コメント