メインコンテンツへスキップ

Agentforce DXとCLIでエージェントをプレビューしてみる

    Winter '26 で気になったこちらのpreview機能を使ってみる。

    基本的には書いてあることを忠実に設定すれば、問題なく動作した。そんなに罠はない印象。

    APIの疎通確認

    新しいものを使う前に、そもそもちゃんとAPIが疎通できるかを確認しておく。(久しぶりなので)

    接続アプリを作る

    「外部クライアントアプリケーション設定」から新規作成する。
    最近はこんな設定があったのね、という驚き。

    画像

    エージェントの「接続」に接続アプリを追加

    エージェントビルダーの「接続」から、作成したアプリを選択して設定。

    VScodeから接続アプリを認証

    これ以降はVScodeの操作。
    事前にアプリケーションマネージャーで、前項で作成したアプリを確認し、鍵とシークレットの値をコピペしておくき、下記で認証を通す。
    マイドメインは、Sandboxでもマイドメインの設定ページと一致させれば大丈夫。

    curl https://マイドメイン/services/oauth2/token \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'grant_type=client_credentials' \
    --data-urlencode 'client_id=鍵' \
    --data-urlencode 'client_secret=シークレット'

    結果として下記が返ってくればOK。

    {"access_token":"長々しいトークン","signature":"FrXMswssZXXXX","token_format":"jwt","scope":"sfap_api chatbot_api api","instance_url":"https://マイドメイン","id":"https://test.salesforce.com/id/00DH10000008kziMAA/005F9000009vWWxIAM","token_type":"Bearer","issued_at":"1757919053677","api_instance_url":"https://api.salesforce.com"}%

    エージェントの起動

    エージェントビルダーで言うと、プレビューを開始するところ。

    curl --location -X POST https://api.salesforce.com/einstein/ai-agent/v1/agents/エージェントのId/sessions \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer トークン' \
    --data '{
    "externalSessionKey": "前のレスポンスのSessionId",
    "instanceConfig": {
    "endpoint": "https://マイドメイン"
    },
    "streamingCapabilities": {
    "chunkTypes": ["Text"]
    },
    "bypassUser": true
    }'
    画像
    レスポンス(隠すべきものがありそうな気もするけど、まぁいっか)

    エージェントに質問する

    curl --location 'https://api.salesforce.com/einstein/ai-agent/v1/sessions/前のレスポンスのSessionId/messages' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer トークン' \
    --data '{"message": {"sequenceId": 1,"type": "Text","text": "領収書は発行できる?"}}
    画像
    レスポンス(同上)

    会話を終了し、疎通確認完了

    curl --location --request DELETE 'https://api.salesforce.com/einstein/ai-agent/v1/sessions/前のレスポンスのSessionId' \
    --header 'x-session-end-reason: UserRequest' \
    --header 'Authorization: Bearerトークン'

    Agentforce DX

    疎通確認が取れたので、ようやく Agentforce DX を使ってみる。これも言われるがままに対応すれば特に問題なし。

    「Agentforce DX」をインストール

    https://developer.salesforce.com/docs/einstein/genai/guide/agent-dx-preview.html#prerequisites

    接続アプリを認証

    sf org login web --client-app 接続アプリ名 --username ユーザー名 --client-id 鍵 --scopes "sfap_api chatbot_api refresh_token api web"

    Agentforce DX が有効化しなかったので、VSCodeは再起動が必要だった。
    下部の選択リストでエージェントを選択したら、そのまま会話が開始できた。
    この機能も初めて使ったけど、ブラウザでいちいち開くよりはラクかもしれない。

    画像
    VSCodeのAgentforce DXビュー

    CLIでpreview

    ここまできたら、あとはpreviewコマンドを打つだけ。

    sf agent preview --client-app 接続アプリ名 --target-org 組織名

    ターミナルとしてはこのような表示になるらしい。枠で囲われていて意外とわかりやすい。

    画像
    ターミナル上での見え方 (会話以前)

    会話を投げるとこんな感じ。

    画像
    ターミナル上での見え方 (会話部分)

    会話を終了すると、勝手に responses.json と transcript.json が作成された。

    画像
    勝手に作られるtempフォルダ
    画像
    responses.json
    画像
    transcript.json

    Agentforce DX のほうがやりやすいような気もするから、どう使い分けるかは謎。。
    Agent Builder上で表示される推論の中身までVSCode上で見られるようになったら便利かも。

     
     

    あべ

     
     
    趣味=甘いものを食べること、 仕事=salesforceエンジニア

    あなたへのおすすめ