この動画では、OpenAIのDev Dayで発表されたAgent Builderの実践的な使用方法を解説している。Agent Builderはドラッグ&ドロップ式のビジュアルワークフローエディタであり、n8nやMake.comのような自動化ツールに似たインターフェースを持つ。動画では具体例として、架空のテーマパーク「ウェストワールド」の旅行代理店エージェントを構築する過程を詳細に示している。分類エージェント、ガードレール機能、ベクトルストアを使ったRAG実装、条件分岐ロジックなど、実用的なエージェント設計の要素を網羅的にカバーしている。また、MCPサポートやエクスポート機能についても触れ、n8nなど既存のノーコードツールに対する競争力を評価している。

OpenAI Dev DayとAgent Builderの概要
さて、昨日はOpenAIのDev Dayがありまして、彼らが発表した内容などをカバーする動画を丸々1本作りました。しかし、その中で特に興味深く見えたものの一つが、このAgent Builderという概念全体であり、実際にはそれがAgent Kitの一部なんです。ですから、この動画でやりたいことは、実際にAgent Builderでいくつかのエージェントを構築してみること、彼らが作った例のいくつかについてどう機能するかを見ること、そしてさらに私たち自身で何かを組み立てて、実際にこれを試してみて、この強みと弱点を確認することです。
さて、Agent Builderに入ると、いろいろなものが表示されます。おそらく最も興味深い部分の一つはテンプレートです。ここにある様々なテンプレートの例を見ることができ、それらがどのように構造化されているかを確認できます。では、実際に構造化データのQ&Aを見てみましょう。
ここには、多くの点でmake.comやn8nのような、こうしたドラッグ&ドロップのビルダーに似たレイアウトがあります。そして、こちら側にはドラッグしてきたり設定したりできるノードがたくさんあります。それから、これらのものそれぞれをクリックすることができます。そして右側には、変更できる設定がたくさんあります。
ワークフローの構造と条件分岐
このワークフローを見ると、基本的に開始して、いくつかのガードレールを通過し、それから分類の部分に入ります。そこで、何が導くのかを判断します。それからif elseノードに入り、基本的にここのエージェントから出てきた分類に基づいて振り分けます。
これをLangGraphのようなものとして見ると、ノードがあって、それからここにあるような部分がエッジのようなもので、これらは実際には条件付きエッジです。次にどのノードに行くかを決めるようなものです。そして、そのノードに到達すると、ツールを使用する機能を含む様々なことが行われているのが分かります。基本的に、ここで行われている出力に対して少しコントロールすることができます。
これはパーソナルアシスタントのような別の例です。基本的に入っていくと、プロンプトリライターがあることが分かります。つまり、ユーザーの質問をより具体的で、ここにあるナレッジベースに関連性のあるものに書き換えるというものです。それから、元の質問を渡して、これがここのGPT-5モデルによって書き換えられます。
それから基本的に、この質問がQ&Aを使うべきか、ファクトファインディングを使うべきかを判断します。これは分類エージェントで、ここで分類の方法を見ることができます。基本的には、列挙型として標準操作手順を予測します。そしてそれは、Q&A、ファクトファインディング、またはその他のいずれかになります。
条件分岐とエージェントの役割分担
そこから、if elseノードに来ます。if elseノードは条件付きエッジとして、本当に分かりやすいものであることが分かります。その出力がQ&Aだった場合を確認できます。そして、入出力が過去の標準操作手順であることが分かります。これは、JSONが返ってきて、そのJSONから標準操作手順の変数を取得していることを示しています。
そしてそれがQ&Aなら、内部Q&Aに行くというルートを取ります。ファクトファインディングなら、このルートを取ります。そしてそれが他の何かなら、ここのエージェントに行きます。それらのエージェントを見てみると、それらが何であるかを見てみましょう。最初のものはウェブ検索を行います。これは素敵でシンプルなもので、そこにプロンプトがあります。
それから実際にGPT-5を使ってウェブ検索を行います。取得する出力がテキストになることが分かります。詳細度は中程度で、これはチャットに返されます。外部のファクトファインディングなら、ウェブ検索とコードインタープリターツールの両方がここにあります。そして、それがそのいずれでもない場合、これは基本的にユーザーに詳細を求めて、彼らのクエリがこれらの出力のいずれかとして分類できるようにします。
独自エージェントの構築開始
私が思うに、実際に飛び込んで、ここで自分たちのエージェントを構築するためにこれが実際にどのように機能するかを見てみましょう。さて、新しいワークフローを作成するためにここに来ました。これらのエージェントのいずれかをドラッグできることが分かりますよね。そして基本的に、それらが何であるかの詳細を記入します。もし望むなら、ステップを削除することもできます。
また、もし自分自身にメモを書きたければ、メモを入れることもできます。これは実際に、本当に便利なタッチだと感じます。そして確かに、おそらく計画をブレインストーミングするようなことができるものです。実際に、メモにプロンプトを入れて、それがより詳細を記入してくれるようにすることもできると思います。
それから、ツールのようなものがあります。ここのツールには、ファイル検索のようなものがあります。何かをアップロードしたい場合、これは基本的に小さなRAGのようなものを作成してくれます。返す結果の数を設定できます。ベクトルストアを作成できますし、それはすぐに見てみます。
ガードレールのようなものもあり、それを見てみますし、MCPのようなものさえあります。実際にMCPを設定したい場合、ここに来ることができます。サーバーなどを選んで、ここに入れたいものを選びます。その詳細を記入して、基本的に外部のMCPと呼ぶものを作成するか、OpenAIのもの、他の開発者のものを選ぶことができます。
ウェストワールド旅行エージェントの構築
さて、私がやろうとしているのは、少しシンプルなものから始めることです。スタートノードがありますよね。それは基本的に物事を持ち込みます。基本的に、最初にガードレールを設けます。そして、かなり良いガードレールの一つが、このジェイルブレイク対策です。これは基本的に、人々がジェイルブレイクを試みるようなプロンプトを入れるのを止めます。
あなたのエージェントをジェイルブレイクしようとして、どれくらい成功するか分かりませんが、おそらく一部の人は回避できるでしょう。でも、これが確かに、多くのエージェントシステムでこのようなものをコーディングする方法よりも簡単であることは分かります。そして、もしそのエージェントが失敗したら、単に終了します。そして、もし通過するなら、ここに来て、分類エージェントに行かせることができます。
ちょっと待って、ガードレールの他のものを見てみましょう。モデレーションのようなものができます。基本的に、有害なコンテンツなどをブロックできます。そして、それに対して設定できる設定があります。基本的に、何をブロックしたいかの設定がたくさんあります。
ジェイルブレイク対策では、モデルは何か、ガードレールで実際に使用している信頼度のしきい値は何かを見ることができます。それから、ハルシネーション(幻覚)のようなものもあります。もし基本的に何らかのベクトルストアに応答を根拠づけたい場合、それもそこに入れることができます。
この場合、私は単純なジェイルブレイク対策のものだけを使います。基本的にそれを出力させます。そしてこれに続いて、分類器を設けます。
分類器の設定とスキーマ定義
さて、私がやろうとしているのは、テーマパーク「ウェストワールド」のための旅行エージェントを構築することです。私たちが欲しいのは、それに関する質問に答えられるもの、クエリがウェストワールドでない場合を処理できるものです。そして当面は、これをクエリ分類器として基本的に設定します。
基本的に何らかの分類器を作りたい場合、出力を構造化したいです。ここに来てJSONを選択するだけで、スキーマを追加できます。そして、これまでのテストで見つけたことは、多くの場合、ブール値のようなものを使いたいと思うかもしれません。それはまあまあのようです。
ですから、うまくいっているように見えるのは、列挙型を持つことです。これをユーザートピックと呼びましょう。説明を入れます。ユーザーの会話が話している話題です。そして、ここに列挙型を入れることが分かります。ウェストワールドにすることができ、その他にすることができ、非旅行にすることができます。それらを開始時の列挙型として入れましょう。
さて、それができました。ここにシステムプロンプトを入れます。ユーザーの入力を、彼らがクエリしている話題に基づいて、ウェストワールド、その他、または非旅行のいずれかとして分類してください。必ず構造化データを出力してください。
さて、それができたことが分かります。次に、この後に基本的にif elseが欲しいです。これからの出力がここに来ます。それから、もしウェストワールドのものなら、出力を過去のものとして使いたい、ユーザートピックを使いたいと言います。そしてそれが等しくなります。
さて、これらを設定したので、応答スキーマを戻って確認する必要があります。非旅行、その他、ウェストワールドがあります。さて、ここに来て、ウェストワールド、その他、非旅行です。
各ルートのエージェント設定
さて、これから、これに対していくつかの異なるエージェントを設定したいです。基本的に他の旅行に来たら、それをエージェントにします。そして、これには詳細などを何も与えません。単純なシステムプロンプトを与えるだけです。
丁重に断ることでユーザーのクエリを処理し、ウェストワールドテーマパークの旅行のみを扱っていることを説明してください。もし彼らがショーグンワールドや他のデロス社のテーマパークに興味があるなら、他の担当者に連絡すべきです。
さて、ここにもう一つあります。ここには基本的に、ウェストワールドテーマパークに関連するクエリのみを扱っており、旅行に関係のないものは処理できないこと、そして他のすべてのクエリはデロス社のカスタマーサポートに向けるべきであることをユーザーに説明する、というものを設定します。
さて、それら2つができました。それから、ウェストワールドのものを設定する必要があります。ここを見ると、ウェストワールド旅行エージェントマスターガイドというマークダウンドキュメントを作ったことが分かります。これにはパークに関する情報がたくさんあります。価格設定に関するものがあるはずです。価格のサムネイルがあることが分かります。人々が聞くことができる様々なものや、そこにある情報がたくさんあります。そして、それをここのベクトルストアに使います。
ベクトルストアとRAGの実装
何をしたいかというと、まずこれをファイル検索として追加したいと言います。アップロードする必要があります。さて、それをアップロードしました。これを呼びます。ウェストワールドがそこのベクトルストアの名前です。今、それを処理しているところです。私たちが見ることができるものからです。
そして、ここにシステムプロンプトが必要です。ウェストワールド旅行データベースの情報を使って、その情報で顧客の質問に答え、虚偽の情報や詳細を生成することなく、説得力があり友好的な方法で彼らに売り込むようにしてください。
さて、これで基本的にそこから結果を取得するために使っていることが分かります。すべてを通過しながら、チャット履歴をこれに含めたいことが分かります。さて、これができました。そして、私が知りたいのは、ウェストワールドについていくつか質問したいということです。
エージェントのテスト – 旅程作成
私と妻がウェストワールドに行く旅行のサンプル旅程を作成してもらえますか。価格も含めてください。
さて、ガードレールをトリガーしていることが分かります。これを分類しました。クエリ分類器がここでウェストワールドとして戻ってくるはずです。そして確かに、使用トピックはウェストワールドです。それでこの上のエージェントに行きました。
そして今、基本的にファイル情報からウェストワールド旅行データベースを使って、これを通過しながら様々な情報を引き出すことが分かります。これを通過して何を検索したかを見ることができます。そして、最終的な答えが返ってきます。
素晴らしい。お二人のためにウェストワールドへの逃避旅行を組み立てるのが大好きです。これが2人のための3日間のスウィートウォーターのサンプル旅程です。誰のためのものかについての情報があります。それについての情報があります。これを実際に私たちのドキュメントから取得している場所を見ることができて、良いですね。
価格設定。価格を教えてくれましたか。はい。基本的に、これは1日あたりゲスト1人につき4万ドルから5万5千ドルかかります。つまり、この休暇に行くのに25万ドル以上を見ています。間違いなく高価です。
それで、難易度の追加オプションがあることが分かります。もし対決したいなら、ラトルスネークリッジトレイルのようなものがあると思います。実際のテレビ番組に関連する、そして私たちのドキュメントに関連する様々なものがあります。
エージェントのテスト – キャラクター照会
メイヴに会えますか。スペルに自信がありませんが、見てみましょう。それが通過します。さて、ここで分かることは、おそらくこれらのことをどう処理するかについて考えたいということです。これがウェストワールドだと判断しましたが、ウェストワールドのキャラクターのようなものを持って、それについて別のセクションを設けたいかもしれません。
はい、メイヴは一般的にウェストワールドアーク内でスケジュールを組むことができます。彼女はメリット・プロセス・サルーンで紹介されています。私たちが望むものに対して、すべて順調です。
エージェントのテスト – 範囲外のクエリ
ディズニーランドに行くことについての詳細を教えてもらえますか。これは今、基本的にこれからの拒否を望んでいます。ここを通過します。ガードレールを通過していて、それらすべてが合格するはずです。
しかし、その他のものを取得するはずです、そうですよね。それが今、この別のエージェントに行ったことに注目してください。そして今、何らかの拒否を得るはずです。申し訳ありませんが、ディズニーランドについてはお手伝いできません。ウェストワールドテーマパークの旅行計画のみを扱っています。
さて、これはかなりうまくいきました。これは、ここで見ることができる単純なエージェントです。これはすべて準備ができています。今、これを公開できます。これをウェストワールド旅行エージェントと呼びます。そして今、実際にこれをデプロイできる状態になりました。
デプロイとエクスポートオプション
チャットキットを使うことができます。それについては別の動画を作ると思います。または、実際にここに来て、エージェントSDKを取得し、これの完全なコードを取得できます。このコードを取って、実際に実行したい場所に入れることができます。
そして、これの素晴らしいところは、ここから実際にそれを取って、モデルを変更できることです。エージェントSDKが他のモデルを使えることはかなり確実だと思いますが、彼らのファイル検索やガードレールなどに制限されています。これを通過しています。
全体的に、これは始めるのが非常に簡単であることが分かります。これでできる様々なことがたくさんあります。そして、これが多くの人々にとって、エージェントを構築する簡単な方法を探している人々にとって、頼りになるツールになるだろうと言わざるを得ません。
n8nとの比較と今後の展望
私は、これがn8nにどのような影響を与えるのか疑問に思います。n8nキラーではないかもしれませんが、確かに人々がエージェントを設計し、物事を進め、そしておそらくこのシステムからエクスポートするための、素敵で簡単な方法になるものです。
明らかに私にとっての欠点は、これに縛られたくないということです。私たちが本当に望むのは、OpenAIのエージェントSDKだけでなく、LangGraph、ADK、Pydantic AIなどのような複数のエージェントフレームワークのために構築できる、このようなもののオープンソースバージョンを持つことです。
とにかく、これについてどう思うか、コメントで教えてください。自分で試してみましたか。これをn8nキラーのようなものと見ていますか。これに何が欠けていると思いますか。それが、私が今考えているもう一つのことです。
MCPについては示しませんでしたが、確かにこれでMCPを設定することができます。つまり、私たちが望むものを何でも実際にこれに配線して、それを使用できるというのは、かなりクールです。
そして前に言ったように、実際のチャットキットの部分を見る別の動画を作ると思います。なぜなら、それはそれ自体で本当に興味深いと思うからです。そして、それについてどう感じるか100パーセント確信していません。それがあまりにもOpenAIにあなたを縛り付けているのか、それとも、素敵で簡単なチャットUIのフロントエンドなどを作る本当に良い方法になる可能性があるのか。
とにかく、いつものように、動画が役に立ったと思ったら、いいねとチャンネル登録をクリックしてください。次の動画でお話しします。それでは、また。


コメント