OpenAIのAgent Builderの基本

OpenAI DevDay 2025でAgent Builderが発表になりました。今までマルチステップエージェントを構築する場合、Agent SDKでプログラムする必要がありました。Agent Builderを使えばGUIで構築できます。Agent Builderの基本的な作り方を解説します。

マルチステップエージェントの構成要素

マルチステップエージェントを構成するのはワークフローです。ワークフローはノードをエッジで繋ぐことで構築します。ワークフローはStartノードで始まりEndノードで終わります。ワークフロー内で状態を管理する状態変数としてStateを使用できます。様々なノードが準備されておりそれらをStartからEndまでエッジで繋ぐことでワークフローを作ります。

ノード

Agent Builderで使えるノードは以下の12個です。

カテゴリノード用途
CoreAgent生成AIに処理を実行させる
Startワークフローの開始
Stateを定義
削除不可
Endワークフローの終了
出力定義
Noteメモ。何も処理はしません。
ToolsFile Search指定したファイルを検索
あらかじめ作成したVector StoreのIDを指定
Guardrails生成内容を安全性を検査
MCPMCPサーバーに接続
LogicIf / else条件分岐
While反復処理
User approvalユーザー承認
human-in-the-loop
DataTransform変数の変換
Set stateStateに値を設定

変数

ワークフロー内で使える変数には参照できる範囲が決まっています。ワークフローを呼び出した際のユーザー入力は input_as_text に格納されておりワークフローのどこからも参照できます。それ以外の変数は各ノードの直後のみ参照可能でノードの処理結果を確認できます。

スコープ変数名内容
ワークフロー全体input_as_textワークフロー呼び出し時の入力文字列
Agentノードの直後output_textAgent が生成したテキスト
output_parsedAgentノードの生成したJSON
GuardrailsノードのPassの直後safe_textチェック済みの安全な文字列
GuardrailsノードのFailの直後guardrailsどの検査に抵触したか等の結果
File Searchノードの直後results(配列)ファイル名やメタデータ属性
MCPノードの直後results(オブジェクト)MCP 呼び出し結果

State

Stateは状態を管理する状態変数です。StateはStartノードでのみ定義可能で、型と名前と初期値を定義できます。

説明
String文字列
未定なら "" で初期化が安全
Number数値
Boolean真偽値
ObjectJSON。スキーマ定義は次の3通り
+ Add property: 1つずつ手作業で追加
Generate: 生成AIでスキーマを生成
Advanced: JSON定義を記述
List配列
初期値は改行区切りで定義可能

Agentノードの作り方

基本の設定はNameとInstructionsの2つです。Nameはエージェントの名前、Instructionsは生成AIに与えるプロンプトです。最初の入力欄はシステムプロンプトです。 ボタンをクリックすることで入力欄を増やせます。左上のドロップダウンリストでUserAssistantを切り替えることができます。

コンテキストの追加

右下の Add contextからコンテキストを追加できます。選択すると入力欄に{{スコープ.変数名}}の形式で入力されます。入力欄で青い文字色で表示されていれば正しく認識されています。黒い文字色の場合は正しく認識されていないので注意して下さい。

注意点: InstructionsではCELは使用できません。

生成AIの設定

エージェントが処理に使用する生成AIの挙動を制御できます。

項目設定内容
Include chat history以前のAgentノードの入出力を含めるか
Model使用するモデル
Reasoning effort推論モデルの推論強度
Toolsエージェントで使用する各種ツール
– Client tool
– MCP server
– File search: 作成したVector StoreのIDを指定
– Web search: サイトを指定、サイトの地域を指定
– Code Interpreter: Pythonコードをアップロード
– Function: OpenAI Functions互換の関数定義
– Custom: 任意の拡張
Output format出力の形式
– Text: 文字列
– JSON: Stateと同様にスキーマを指定
– Widget: ウィジェットUI出力に最適

Set stateノードの使い方

Stateに値を設定できます。Assign valueでStateに設定する値を、To variableで設定するStateを指定できます。Assign valueではCELという言語を使って値を編集できます。

Whileノードの使い方

ループする条件をCELで指定します。条件を満たしている間Whileノード内の処理を繰り返します。ノードをドラッグアンドドロップでWhileノードの中に移動できます。

foreachには対応していないので配列の要素数とループカウンタの比較でループできます。

If / else ノードの使い方

条件をCELで記述し、条件は複数追加できます。他のノードとは違いノードの出口が複数あります。それぞれの条件を満たした場合の遷移先のノードを接続します。

CEL(Common Expression Language)

値を編集したり条件判断を行うことができます。

処理内容
値の取得input.results[0]配列の0番目
workflow.input_as_textこのワークフロー実行の入力値
size(input.authors)配列の要素数
条件判断input.score >= 0.8スコアが0.8以上か
input.tags != nullタグが設定されているか
値の設定“The region is: ” + input.metadata[“region”]文字列連結
input.score > (state.flags.beta ? 0.9 : 0.8)三項演算子
betaがtrueなら0.9、falseなら0.8
複合処理state.emails.all(email, email.contains(“@”))全てのメールが「@」を含むか
“Patrick Star” in state.employees従業員リストに Patrick Star がいるか

まとめ

Agent Builderの使い方の基本を解説しました。ここまでの基本を押さえるだけでもマルチステップエージェントを構築できます。Agent SDKでプログラムするよりもかなり簡単に構築できるようになりました。マルチステップエージェントはアイディア次第で可能性は無限大です。様々なアイディアをAgent Builderで形にしていきましょう!

この記事を書いた人
新技術基盤開発室の鈴村です。生成AIに関する技術調査を行っており、最近はAI駆動開発に興味があります。開発にAIを活用する方法を模索中。
新技術基盤開発室の鈴村です。生成AIに関する技術調査を行っており、最近はAI駆動開発に興味があります。開発にAIを活用する方法を模索中。

>お役立ち資料のダウンロード

お役立ち資料のダウンロード

ブログでは紹介しきれないシステム開発や導入におけるケーススタディを資料にまとめました。お気軽にダウンロードください。

CTR IMG