4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Agent Script ローカル環境での高速プロトタイピング (Agentforce DX)

Last updated at Posted at 2025-12-29

Agentforceの新しい「Agent Script」と「ハイブリッド推論エンジン」がついにGAとなりました。

従来の推論エンジンから何が進化したのか?開発者体験(DX)がどう変わるのか?気になるところです。今回は、最新のAgentforce DXが可能にしてくれる、VS Code上で完結するエージェントの高速プロトタイプ開発 について取り上げたいと思います。

New ハイブリッド推論エンジン & Agent Script

AIの柔軟な創造性と、ビジネスワークフローに必要な決定論的な厳格性を両立させるのが、新たな ハイブリッド推論エンジン です。そして、そのポテンシャルを最大限引き出すために誕生したのが Agent Script です。

image.png

Salesforceデベロッパーブログより
AIエージェント開発の悩みを解決!Agent Scriptとハイブリッド推論のすすめ

開発を加速させる2つのプレビューモード

Agentforce DXを活用することで、VS Code上でエージェントをライブプレビューし動作検証できます。用途に応じて2つのモードが用意されており、どちらもブラウザ不要で動かすことが可能です。

  • シミュレーションモード
    • Agentforce Actionの実装前でも、エージェント全体の動作をシミュレート可能
  • ライブテストモード
    • 個々のアクションを実際に動作させて動作検証が可能

本記事では、はじめの環境構築〜 シミュレーションモード を使ったプロトタイプ開発を行うまでの手順をご紹介します。

前提

紹介する手順の前提環境、知識についてです。

環境

  • OS: Mac
  • VS Code: 最新バージョン
  • npm: 最新LTSバージョン

想定スキル・ナレッジ

  • 基本的なコマンド操作
  • npmでのパッケージインストール
  • VS Codeの基本的な操作

1. Salesforce開発環境の取得

無償のDeveloper Edition組織を取得し、Agentforceを有効化します。

1-1. Salesforce組織のサインアップ

https://www.salesforce.com/form/developer-signup
にアクセスし、サインアップします。

しばらくするとメールが届くので、パスワードを設定すると利用可能になります。

1-2. Einstein 設定

Salesforceにログインし、ギアアイコン -> 設定 をクリックします。

image.png

左上の検索ボックスに Einstein 設定 と入力し、Einstein -> Einstein生成AI -> Einstein設定 を開き、Einstein を有効化オンにします。

image.png

1-3. Agentforce の有効化

左上の検索ボックスに Agentforce と入力し、Einstein -> Einstein生成AI -> Agentforceスタジオ -> Agentforceエージェント を開き、Agentforceオンにします。

image.png

Agentforceスタジオ配下のメニューが表示されない場合は、ブラウザをリロードします

2. Salesforce CLIのセットアップ

Salesforce開発に必要なCLI、Agentforce用プラグインをインストールします。

2-1. Salesforce CLI インストール

npm install @salesforce/cli --global

ここではnpmを使ってインストールします。npm以外でインストールする手段もあります - 詳細

インストールできていることを確認します。

sf --version

@salesforce/cli/2.115.15 darwin-arm64 node-v25.2.1
のようにバージョン情報が表示されることを確認します

2-2. Salesforce CLI - Agentプラグイン インストール

以下コマンドでインストールします。

sf plugins install agent@latest

インストールされたプラグインを確認します。

sf plugins --core

agent 1.26.0
のように、agent というプラグインが入っていることを確認します

3. VS Codeのセットアップ

SalesforceオフィシャルのVS Code拡張機能を2つインストールします。

3-1. Salesforce Extension Pack 拡張機能インストール

VS Codeの拡張機能の検索ボックスに salesforce extension と入力し、Salesforce Extension Pack を見つけてインストールします。

image.png

3-2. Agentforce DX 拡張機能インストール

続いて、agentforce と入力し、Agentforce DX を見つけてインストールします。

image.png

3-3. VS Code 再起動

拡張機能インストール後、念のためVS Codeを再起動しておきましょう。

4. Salesforceプロジェクト

Salesforceプロジェクトを作成し、その中でAgentforceエージェント開発を始めます。

4-1. Salesforceプロジェクトの作成

任意のディレクトリに移動し、任意の名前でSalesforceプロジェクトを作成します。

sf project generate --name my-first-next-gen-agent

Salesforceプロジェクト名の例: my-first-next-gen-agent

作成したプロジェクトディレクトリに移動します。

cd my-first-next-gen-agent

4-2. Salesforce組織の接続

任意のエイリアス名で、取得したSalesforce開発環境に接続します。

sf org login web --set-default --alias DevOrg

エイリアス名の例: DevOrg

ブラウザが立ち上がり、Salesforceログイン画面が開きます。
ユーザー名パスワード を入力してログインします。

image.png

ログイン後、許可をクリックし、ブラウザを閉じます。

4-3. Agent Spec 生成

まずは、エージェントの仕様を定義するファイルを作成します。エージェントの役割、会社情報などの基本的な情報を入れます。

sf agent generate agent-spec --type internal --role "Sales Support" --company-name "Demo Company" --company-description "Provide IT Services" --tone neutral

type: internalが社内の従業員向けエージェント。customerが社外の顧客向けエージェントを示します。

4-4. Authoring Bundle 生成

Authoring Bundle生成機能は、現在ベータ版での提供です

作成したAgent Specファイルから、Agent Scriptを記述するファイル = Authoring Bundleファイルを生成します。

sf agent generate authoring-bundle --spec specs/agentSpec.yaml --name "MyFirstAgent" --api-name "myFirstAgent"

VS Code コマンドパレットからも実行可
AFDX: Generate Authoring Bundle

4-5. Authoring Bundle の確認・編集

VS Codeを開きます。

code .

Authoring Bundleファイル:
force-app -> main -> default -> aiAuthoringBundles -> myFirstAgent -> myFirstAgent.agent を開きます。以下構造のAgent Scriptで記述されていることを確認します。

Agent Scriptの主な構成

system:
    # エージェントの一般的な振る舞い(役割など)を指示
    # また、welcome(開始時)とerror(エラー時)のメッセージ定義は必須
config:
    # エージェントの表示ラベル、開発者名、デフォルトユーザー、説明文など
    # メタデータを設定
variables:
    # エージェント全体で使用する変数を定義
    # 定義した変数はスクリプト内で @variables.変数名 として参照・更新を行う
language:
    # エージェントがサポートする言語(デフォルトのロケールや追加のロケール)を定義
connection:
    # 外部チャネル(チャットツールなど)との対話方法を記述
    # エスカレーション時のメッセージや、有人対応へのルーティング設定など
start_agent:
    # 会話の最初に必ず実行される特別なトピック
    # ユーザーの入力を分析し、適切なTopicへルーティングする役割
topic:
    # Agentforce Topic、Topic内のAgentforce Action等の定義

Agent Scriptのルールについては、↓のブログで解説してます
Agent Script 書き方ガイド

試しに、Agent Script で記述された言語設定の部分 language > default_locale項目を、日本語を示すjaに変更して保存してみましょう。

language:
    default_locale: "ja"
    additional_locales: ""
    all_additional_locales: False

5. シミュレーションモードでのライブプレビュー

プレビュー機能は、現在ベータ版での提供です

VS Code内で、Agentforceエージェントを動かします。

5-1. エージェントのプレビューを起動

Agentforce DXのアイコン をクリックし、Select agent...から、myFirstAgentを選択します。

image.png

Start Simulation ボタンの右側にある 矢印アイコン をクリックし、Simulation が選択されていることを確認してから、Start Simulation をクリックします。

image.png

5-2. 会話のシミュレーション

デフォルトで表示される Agent Preview タブにて、プレビュー起動したAgentforceエージェントとの会話を試します。

image.png

まだAgent Script部分は言語設定以外デフォルトのままなので、ここでは日本語で会話できることのみを確認します

5-3. エージェントのデバッグ

Agent Tracer タブにて、会話のシミュレーションの過程での、推論の動作、トピック選択、アクションの実行順序、変数のIN/OUTなどが期待どおり行われているか?を確認できます。

image.png

6. エージェントの改善

機能を追加したり動作を修正したい場合は、Agent Script を編集するだけで、即座にシミュレーションへ反映可能です。本番稼働では必須の各Agentforce Actionの実装は、シミュレーションモードでは必要ありません。

6-1. Authoring Bundle の編集

これ以降、具体例での手順紹介になります。

例えば、

私の今日の面談予定に基づき、チェックしておくべきニュースを教えて。

と聞いたときに、

  1. 今日の面談予定の取得
  2. 取得した面談予定に関連する最新ニュースの取得
  3. 取得したニュースを教えてくれる

という動作をしてくれる営業支援エージェントを考えてみます。

この場合、例えば、以下のようなアクションが必要になりそうなので、Agent ScriptではAgentforce Actionを定義しますが、本手順においては各Apexコードは実装しません。

例) ユーザーの面談予定を取得するApexアクション

actions:
    get_user_events:
        description: "ユーザーの面談予定を取得します。"
        inputs:
            user_id: string
            event_at: date
        outputs:
            events: list[object]
                description: "ユーザーの面談予定のリスト。顧客名、顧客の業界、面談が行われる場所、面談時間、人物情報、面談のアジェンダ等の詳細が含まれる"
        target: "apex://GetEvents"

例) 最新ニュースを取得するApexアクション

actions:
    get_news_from_topic:
        description: "企業、業界、人物などのトピックに関する最新ニュースを取得します。各ニュースは、ニュースタイトル、記事コンテンツを含みます。"
        inputs:
            related_topics: list[string]
                description: "取得したいトピック情報(話題、業界、人物、企業、面談場所などに関する自然言語クエリー)のリスト"
        outputs:
            news_list: list[object]
        target: "apex://FetchNews"

今回、公式の Agent Script Recipes に記載のある、BidirectionalNavigationパターンを使用し、ユーザーの面談予定取得ニュースの取得 をそれぞれ専門Topicで動かし、Topic間を双方向遷移するような構成で、営業ユーザーのフロントとなる営業支援エージェントTopicを考えてみます。

例) 営業支援エージェントTopic

topic sales_agent:
    label: "営業支援エージェント"
    description: "営業活動をサポートするエージェント"

    reasoning:
        instructions: ->
            | ユーザーの営業活動についてのQA、アドバイスや調査依頼等に対応します。箇条書きを使い、正確に簡潔に回答します。

            if not @variables.Events:
                | ユーザーの要望に答えるために、ユーザーの営業活動予定の取得が必要な場合、{!@actions.events_manager}を実行します。

            if not @variables.NewsList:
                | ユーザーの要望に答えるためにニュースの取得が必要な場合、{!@actions.news_analyst}を実行します。

        actions:
            events_manager: @utils.transition to @topic.events_manager
            news_analyst: @utils.transition to @topic.news_analyst

(省略しますが、Agent Scriptのコード編集は、Agentforce Vibes をはじめとしたAIコーディングツールの活用がおすすめです)

6-2. プレビューの更新

Authoring Bundle の編集が完了したら、Stop Simulation の右上にある アイコン をクリックし、Compile & Restart をクリックします。

image.png

私の今日の面談予定に基づき、チェックしておくべきニュースを教えて。 と聞いてみると、各Agentforce Actionがダミーのデータを返したと推測される回答が得られました。

image.png

本日の面談予定は以下の通りです。株式会社山田商事(製造業/東京都千代田区丸の内) - 面談時間:10:00 - 参加者:山田 太郎(営業部長)、佐藤 花子(人事部長)... 株式会社山田商事が東京都内で新製品の発表会を開催。最新技術を活用した製品で業界関係者から注目されています。製造業界ではAIやIoTなど...

これが想定通りの動き(Topic/Actionの選択、実行順序、各アクションのINPUT/OUTPUTの値)なのかどうかを、Agent Tracerタブで確認します。
image.png

期待通りの動作: ユーザーの面談予定取得ニュースの取得 でTopic実行 になっていることを確認します。

想定通りでない場合、また改善箇所が見えてきた場合は、Authoring Bundle の編集 に戻り、繰り返し改善を図ります。編集 ⇄ 検証 がすべてVS Code内でシームレスに完結することで、高速フィードバックループを実現します。

おわりに

今回、Agentforce DXを用いた開発環境の構築から、VS Code上での高速プロトタイプ開発の流れをご紹介しました。

Apex、フロー、プロンプトテンプレート等のロジック実装を待たずにエージェントの動きをコードで即座に検証できる開発体験は、開発スピード・品質共に劇的に向上することが期待できます。Agent Script Recipesには、豊富なAgent Script実装パターンと、そのサンプルコードもGithubで公開されてます。

是非、お手元の環境で Agent Script での次世代エージェント開発を体感してみてください。

↓こちらも合わせてご覧ください↓

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?