エージェントスクリプトを使用してエージェントを作成する
学習の目的
このバッジでは、次のことを行います。
- エージェントスクリプトと作成バンドルについて学習する。
- エージェントスクリプトファイルを使用してエージェントをプレビューする。
- エージェントスクリプトファイルを更新して検証しながら、エージェントをコーディングする。
- エージェントを組織に公開する。
- 公開されたエージェントを組織の Agentforce Builder UI に表示する。
このステップでは、ステップ 1 で作成した Developer Edition 組織を使用します。
エージェントのブループリントとなるエージェントスクリプトの概要
エージェントを構築するときは、特定のライフサイクルに従います。
-
開発: エージェントスクリプトファイルをコーディングして、エージェントの指示とロジックを定義します。
-
公開: エージェントスクリプトファイルを開発組織にリリースして、エージェントメタデータを作成します。
-
テスト: Sandbox またはスクラッチ組織でエージェントの動作を検証します。
-
実装: エージェントメタデータを本番環境に移行します。
-
有効化: エージェントを有効にして、お客様が利用できるようにします。
このバッジでは、開発ステップと公開ステップを中心に説明します。
エージェントスクリプトは、次世代の Agentforce エージェントの基盤で、 自然言語を用いたバイブコーディングの柔軟性と、ビジネスルールを処理するプログラム的表現の信頼性を兼ね備えています。エージェントスクリプトを使用すれば、大規模言語モデル (LLM) のあらゆるメリットがもたらされるほか、エージェントに決定論的な動作を追加する手段にもなります。
Salesforce の大半の要素と同様に、エージェントのエージェントスクリプトファイルは、AiAuthoringBundle (または単に作成バンドル) というメタデータコンポーネントの一部です。作成バンドルは、DX プロジェクトで CLI コマンドまたは VS Code を使用してゼロから作成するか、バイブコーディングで作成することができます。あるいは、まず組織で Agentforce Builder を使用してエージェントを作成してから、作成バンドルを DX プロジェクトに取得することもできます。作成バンドルには .agent という拡張子が付いたファイルが含まれます。これがエージェントのブループリントとなるエージェントスクリプトファイルです。
この Trailhead バッジでは、前の単元でコピーしたリポジトリに用意されている作成バンドルとエージェントスクリプトファイルを使って作業を開始します。準備はいいですか?
VS Code で、前の単元でコピーした DX プロジェクトの force-app/main/default/aiAuthoringBundles/Local_Info_Agent ディレクトリにある Local_Info_Agent.agent というエージェントスクリプトファイルを開きます。

エージェントスクリプトファイルは、構文が見やすいように色分けされ、構文エラーやコードのナビゲーションなどには目を引くビジュアルキュー (赤い波線など) が示されます。こうした色が表示されるのは、Apex や LWC と同様に、Salesforce VS Code 拡張機能がエージェントスクリプトをプログラミング言語としてサポートしているためです。
エージェントスクリプト言語自体の説明はこのバッジの範疇を超えていますが、少し時間をかけてファイルがどのようなものか確認しておく価値はあります。たとえば、ファイルは system、config、variables などのブロックで構成されています。config ブロックには、エージェントを定義する設定パラメーターが含まれています。このバッジの後半で、パラメーターの 1 つを変更します。
詳細は、「Get Started with Agent Script (エージェントスクリプトの使用開始)」を参照してください。
エージェントスクリプトファイルのみを使用してエージェントをプレビューする
エージェントのエージェントスクリプトファイルをコーディングするときは、エージェントと定期的に会話することをお勧めします。変更や更新を行いながら、エージェントがどのように応答するかをリアルタイムで確認できます。こうした会話プレビューは、エージェントが期待どおり動作することを確認するインタラクティブなテストとして機能します。
まずは、シミュレーションモードでエージェントをプレビューします。このモードでは、エージェントスクリプトファイルのみを使用して会話し、すべてのツールをシミュレーションします。このモードは特に、ツールを実装する Apex クラス、フロー、プロンプトテンプレートがまだ使用できない場合に役立ちます。LLM は、エージェントスクリプトファイルに追加されたサブエージェントに関する情報を使用して、ツールが何を行い、どのように応答するかをシミュレーションします。LLM には組織経由でアクセスするため、シミュレーションモードでも組織への認証が必要になります。
- VS Code で、Local_Info_Agent.agent エージェントスクリプトファイルを右クリックしてコンテキストメニューを開きます。
-
[AFDX: Preview This Agent (AFDX: このエージェントをプレビュー)] を選択します。
左側に Agentforce DX パネルが開きます。
-
[Select agent… (エージェントを選択…)] ドロップダウンリストから、[Local_Info_Agent] を選択します。すでに選択されているかもしれません。
リストの [Agent Script (エージェントスクリプト)] セクションでのエージェントの位置に注意します。新しいエージェントを作成した場合を除き、リストには Local_Info_Agent のみが表示されます。
- ドロップダウンで、[Simulation (シミュレーション)] を選択し、[Start Simulation (シミュレーションを開始)] をクリックしてプレビューを開始します。

- エージェントにどのようなことができるのか試してみるために、チャットボックスに
What can you help me with?(どのようなことを手伝ってもらえるのですか?) という質問を入力します。
エージェントは少し考えて応答します。
- 次の質問を入力します。
What’s the weather like?
天気予報のサマリーが示されますが、エージェントの口調が海賊風であることに気が付きましたか? たとえば、応答は「Arrr matey (よぉ、相棒)」といった感じで始まります。奇妙ですよね! エージェントがこのように応答する理由は、エージェントスクリプトファイルで、現地の天気を説明するときは海賊風に話すように指示されているからです。
海賊のペルソナはキャラクターをテストする面白い方法ですが、プロフェッショナルなエージェントには一貫したブランドボイスが求められます。では、エージェントスクリプトファイルを変更して、エージェントの会話形式の応答を調整する方法を見ていきましょう。
エージェントスクリプトファイルをコーディングする
エージェントの動作を変更したいときは、エージェントスクリプトファイルをコーディングします。コーディングしながらファイルを検証して、エラーが潜んでいないことを確認します。ここで、エージェントが海賊風に応答するのを止めさせることにして、その方法を見ていきましょう。
- VS Code で、エージェントスクリプトファイルにざっと目を通し、現地の天気を伝えるときに海賊風に応答するというエージェントへの指示を探してみてください。
ヒント: local_weather の推論指示を見つけます。まだ見つからない場合は、 行 117 付近で Finally, ALWAYS give answers で始まる行を探します。
-
Finally, ALWAYS give answers で始まる行をすべて削除して、ファイルを編集します。自分が何をしているか把握している場合を除き、それ以外の変更は行わないでください!
- ファイルを保存します。
- エージェントスクリプトファイルを右クリックしてコンテキストメニューを開き、[AFDX: Validate this Agent (AFDX: このエージェントを検証)] を選択します。
ファイルの検証中は、VS Code の右下に小さなウィンドウが表示されます。検証に失敗すると、[Problems (問題)] タブが開き、エラーメッセージと問題を解決するためのヒントが示されます。ただし、手順に従っていれば、エージェントスクリプトファイルが正常に検証されるはずです。
-
[Restart Options (再起動オプション)] をクリックして、Agentforce DX プレビューウィンドウの右上にある [Compile & Restart (コンパイルして再起動)] をクリックします。
![Agentforce DX プレビューウィンドウに [Restart Options (再起動オプション)] が表示され、[Compile & Restart (コンパイルして再起動)] が強調表示されている VS Code。](https://res.cloudinary.com/hy4kyit2a/f_auto/fl_lossy/q_70/learn/projects/create-an-agent-using-pro-code-tools/create-an-agent-from-your-dx-project/images/ja-JP/8b956d2c6b7ddda2ebc5b3453aee18b0_kix.c8d30k87ir9o.png)
- チャットボックスに同じ質問 (
What’s the weather like?(天気はどんな感じですか?)) を入力します。★ 上向き矢印をクリックすると、チャット履歴を使用できます。
今回は、面白みに欠けるかもしれませんが、プロフェッショナルな返信になっているはずです。
- 質問し終えたら、[Stop Simulation (シミュレーションを停止)] をクリックします。
ライブモードでエージェントをプレビューする
ライブモードでエージェントをプレビューすると、開発組織の実際の Apex クラス、フロー、プロンプトテンプレートが使用され、エージェントの実際の動作に極めて近いものが示されます。
この Trailhead バッジの初期設定の際に、必要な Apex クラスと関連アセットがすでに組織にリリースされています。これらのアセットをその後ローカル DX プロジェクトで変更した場合は、リリースし直して、ライブプレビューで正しく使用されるようにする必要があります。
このライブプレビューでも、実際の組織ユーザー、具体的には前の単元で作成したユーザーを使用します。このためには、エージェントスクリプトファイルに変更が必要です。ではやってみましょう。
- VS Code のエディターに、Local_Info_Agent.agent エージェントスクリプトファイルを開きます。
- config セクション (行 11 付近) で、default_agent_user プロパティを見つけます。
- エージェントスクリプトファイルを編集して、UPDATE_WITH_YOUR_DEFAULT_AGENT_USER プレースホルダーを、前の単元でスクリプトによって生成されたユーザー名に更新します。
- たとえば、生成されたユーザー名が afdx-agent@testdrive.org98eca4a312-3456xyz であれば、更新後のプロパティは次のようになります。
default_agent_user: "afdx-agent@testdrive.org98eca4a312-3456xyz"
- たとえば、生成されたユーザー名が afdx-agent@testdrive.org98eca4a312-3456xyz であれば、更新後のプロパティは次のようになります。
- エージェントを検証します。これは常に、エージェントスクリプトファイルを変更する場合のベストプラクティスです。
- Agentforce DX パネルが開いていない場合は、スクリプトファイルの任意の場所を右クリックしてコンテキストメニューを開き、[AFDX: Preview This Agent (AFDX: このエージェントをプレビュー)] を選択します。
- ドロップダウンで、[Live Test (ライブテスト)] を選択し、[Start Live Test (ライブテストを開始)] をクリックしてエージェントをプレビューします。

- もう一度
What’s the weather like?(天気はどんな感じですか?) と質問します。
応答はシミュレーションを実行した場合と似ていますが、今回は 65.3°F ~ 81.1°F という具体的な気温の範囲が示されます。この理由は、エージェントが組織の実際の Apex クラス (WeatherService) を使用しているためです。このクラスは、テスト目的で、温度をこの範囲にハードコーディングします。では、実際に試してみましょう。force-app/main/default/classes/WeatherService.cls ファイルを確認します。
Agentforce Builder でエージェントを表示して変更する
組織の Agentforce Builder UI に戻ります。ここでも、VS Code の場合と同じように、エージェントをプレビューしてコーディングできます。実際には、エージェントがピエロ風に応答するように変更します。プロフェッショナルであることよりも、おどけたほうが面白いからです!
その前に、ローカルのエージェントスクリプトファイルを変更していることを忘れないようにします。組織内ビルダーの使用時も同じコードを使用するためには、Local_Info_Agent 作成バンドルを組織にリリースする必要があります。プロコードツールとローコードツールの両方を使用する場合に重要な点は、DX プロジェクトと組織を同期させることです。
- VS Code の統合ターミナルで次の CLI コマンドを実行して、更新された作成バンドルを組織にリリースします。
sf project deploy start --metadata aiAuthoringBundle:Local_Info_Agent
ターミナルに、次のリリース状況が表示されます。
- ブラウザーに Agentforce Studio を開くには、VS Code の統合ターミナルで次の CLI コマンドを実行します。
sf org open authoring-bundle
- 場所が違っているというメッセージが表示された場合は、[Take Me There (移動する)] をクリックします。
- テーブルで、[Local Info Agent (ローカル情報エージェント)] をクリックすると、Agentforce Builder にそのエージェントが開きます。テーブルにこのエージェントが表示されない場合は、VS Code でもう一度
sf org open authoring-bundleコマンドを実行します。
Agentforce Builder を初めて使用する場合は、その機能を確認しておきます。このローカル情報エージェントのバージョンはバージョン 1 (ドラフト) です。![ローカル情報エージェントが開き、[Version 1 (Draft) (バージョン 1 (ドラフト))] が強調表示されている Agentforce Builder。[Canvas (キャンバス)] ビューから [Script (スクリプト)] ビューに切り替えるドロップダウンも強調表示されています。](https://res.cloudinary.com/hy4kyit2a/f_auto/fl_lossy/q_70/learn/projects/create-an-agent-using-pro-code-tools/create-an-agent-from-your-dx-project/images/ja-JP/1b89996e80536f807dc71b4d923aa90f_kix.bbd2r144kqn4.png)
- Agentforce Builder で [Script (スクリプト)] ビューを選択し、ALWAYS Provide forecasts that include a temperature range (常に予報と共に気温の範囲を示す) (行 116 付近) の直後の新しい行に次の指示を追加します。
Finally, ALWAYS give answers like you're a clown in a circus, using clown-themed language and expressions to make the interaction more engaging and fun for the user.
-
[Save (保存)] をクリックします。
- 必要に応じて、[Preview (プレビュー)] ボタンを使用すれば、組織内で直接エージェントをプレビューできます。
- VS Code のターミナルで次の CLI コマンドを実行して、組織の更新された作成バンドルを DX プロジェクトに取得します。
sf project retrieve start --metadata AiAuthoringBundle:Local_Info_Agent
- ライブモードプレビューをコンパイルして再起動し、もう一度天気予報を質問します。エージェントがピエロ風に応答するはずです!
作成バンドルを公開する
作成バンドルを組織に公開すると、組織でエージェントスクリプトファイルを使用して、関連付けられているエージェントメタデータ (メタデータの初期バージョンまたは新しいバージョン) が生成されます。エージェントメタデータには、Bot、BotVersion、GenAiPlannerBundle、GenAiFunction などのコンポーネントが含まれます。このエージェントメタデータに基づいて、組織に新しいエージェントが作成されるか、既存のエージェントの新バージョンが作成されます。公開したエージェントをテストした後、本番組織に実装して有効にすれば、ユーザーが利用できるようになります。最後に、DX プロジェクトが組織から新規または更新されたすべてのメタデータを取得します。
- VS Code のエディターに、Local_Info_Agent.agent エージェントスクリプトファイルを開きます。
- エージェントスクリプトファイルを右クリックしてコンテキストメニューを開き、[AFDX: Publish This Agent (AFDX: このエージェントを公開)] を選択します。
[Output (出力)] タブで、公開手順の進行状況を確認できます。ドロップダウンを使用して、Agentforce DX の情報に絞り込みます。
- エクスプローラーを使用して、DX プロジェクトの force-app/main/default パッケージディレクトリに取得されたメタデータを表示します。この例では、エディターに GenAiPlannerBundle メタデータコンポーネント XML ファイルが開いています。
![Bot、BotVersion、GenAiPlannerBundles などのエージェントメタデータが強調表示され、エディターに Local_Info_Agent_v1 プランナーバンドル XML ファイルが開いている VS Code エクスプローラー。Agentforce DX の [Output (出力)] タブも強調表示されています。](https://res.cloudinary.com/hy4kyit2a/f_auto/fl_lossy/q_70/learn/projects/create-an-agent-using-pro-code-tools/create-an-agent-from-your-dx-project/images/ja-JP/9a8ac93abd10563edd2d66775d6710ca_kix.irtskluf6tzi.png)
- 組織の Agentforce Builder に戻ってページを更新します。この時点で、ローカル情報エージェントの確定バージョンであるバージョン 1 (確定済み) が作成されているはずです。
作成バンドルを公開すると、BotVersion や GenAiPlannerBundle など、エージェントメタデータの新しいバージョンが生成されます。上記の画像で、新バージョンは v1 と表示されています。
エージェントを有効にする
Coral Clouds Resort のゲストがローカル情報エージェントを利用できるようにします。VS Code から、BotVersion メタデータファイルを使用してエージェントを有効にできます。
- VS Code のエクスプローラーを使用して、force-app/main/default/bots/Local_Info_Agent ディレクトリに移動します。
-
Local_Info_Agent.bot-meta.xml ファイルを右クリックしてコンテキストメニューを開き、[AFDX: Activate Agent (AFDX: エージェントを有効化)] を選択します。
![v1.botVersion-meta.xml ファイルを右クリックしたコンテキストメニューに [AFDX: Activate Agent (AFDX: エージェントを有効化)] オプションが強調表示されている VS Code。](https://res.cloudinary.com/hy4kyit2a/f_auto/fl_lossy/q_70/learn/projects/create-an-agent-using-pro-code-tools/create-an-agent-from-your-dx-project/images/ja-JP/1d84a880960e83f687fd1ac314f2e894_kix.d9b36pssafx0.png)
- VS Code 上部にあるドロップダウンの [Version 1 (バージョン 1)] をクリックします。
- 組織の Agentforce Builder に移動して、ローカル情報エージェントのページを更新します。[Version 1 (Active) (バージョン 1 (有効))] など、エージェントの有効なバージョンが表示されます。
お疲れさまでした。Agentforce DX を使用して、エージェントのエージェントスクリプトファイルをコーディングし、エージェントをプレビューして、組織に公開することができました。ツールキットにこうしたプロコードツールが加わったため、独自のエージェントを作成することができます。本番向けのエージェントを公開する前に、特定のユースケースに適した語調に調整することを忘れないでください。
リソース
- Salesforce Developers: Build Agents with Agentforce DX (Agentforce DX を使用したエージェントの構築)
- Salesforce Developers: Salesforce CLI Command Reference | agent Commands (Salesforce CLI コマンドリファレンス | agent コマンド)
- Salesforce Developers: Agentforce バイブス拡張機能
- Salesforce ヘルプ: Design and Implement Agents (エージェントの設計および実装)
- Trailhead: 新しい Agentforce Builder について知る
