model-builder-and-byollm
Salesforceでモデルビルダーを設定する際に使用し、外部のLLMを登録したり、AgentforceとEinstein機能の標準モデルを選択できます。モデルの登録、APIキーの設定、モデルエイリアスの構成、コストとパフォーマンスのトレードオフに対応しています。トラストレイヤーの設定には対応していません(agentforce-trust-layerを使用してください)。
description の原文を見る
Use when configuring Model Builder in Salesforce to register external LLMs or select standard models for Agentforce and Einstein features. Covers model registration, API key configuration, model aliases, and cost/performance tradeoffs. NOT for Trust Layer configuration (use agentforce-trust-layer).
SKILL.md 本文
Model Builder と Bring Your Own LLM (BYOLLM)
このスキルは、外部 LLM プロバイダー (OpenAI、Anthropic、Azure OpenAI、その他の OpenAI 互換エンドポイント) を Model Builder 経由で Salesforce に登録する、Einstein 機能を支援する標準モデルを選択または変更する、フィーチャーが参照するモデルエイリアスを設定する、接続性をテストする、またはモデル登録の障害をトラブルシュートする必要がある場合に実行されます。Mode 1 (新しい外部 LLM を登録)、Mode 2 (現在のモデル設定をレビューおよび管理)、Mode 3 (モデル接続性とエイリアスの障害をトラブルシュート) をカバーしています。
開始前に
このドメインで作業を開始する前に、以下の情報を収集してください。
- ライセンスとフィーチャーフラグ: Model Builder と BYOLLM 登録には、組織で Einstein 生成 AI 機能が有効になっている必要があります。Setup > Einstein Generative AI に移動して、トグルがオンになっていることを確認します。通常、Einstein for Agentforce ライセンスまたは Einstein 1 ライセンスが必要です。フラグが有効になっていない場合、Setup 下の Model Builder メニューエントリは表示されません。
- 外部プロバイダーの前提条件: 外部 LLM を登録する場合、プロバイダー (OpenAI、Anthropic、Azure OpenAI など) からの有効な API キーを持ち、ベースエンドポイント URL を知っている必要があります。Azure OpenAI の場合、エンドポイントとキーに加えて、デプロイメント名と API バージョンも必要です。
- 最も一般的な誤った仮定: プラクティショナーは、モデルエイリアスの背後にあるモデルを影響なく変更できると想定しています。実際には、エイリアスを参照するすべての Agentforce エージェント、プロンプトテンプレート、Einstein フィーチャーは、エイリアスが更新されると即座に新しいモデルの使用を開始します。段階的なロールアウトやフィーチャーレベルのオーバーライドはなく、エイリアスの変更はグローバルで即座です。
- プラットフォーム制約: Model Builder は Salesforce 標準モデル (Salesforce ホスト版の Llama ファミリーモデルなど) と OpenAI 互換 API 経由の外部モデルをサポートしています。すべての外部モデルがすべての Einstein フィーチャータイプをサポートするわけではありません。具体的には、関数呼び出し (ツール使用) をサポートしないモデルは、エージェント型の Agentforce アクションをバックアップできません。エージェント中心のユースケースに対してモデルを選択する前に、機能カバレッジを確認してください。
- Named Credential 要件: 外部モデルの API キーは、Model Builder のプレーンテキストフィールドではなく、Salesforce 内の Named Credentials (External Credentials) として保存する必要があります。これはプラットフォーム強制とTrust Layer 要件の両方です — Named Credentials の外に保存されたキーは拒否されます。
コアコンセプト
Model Builder とモデルエイリアス
Model Builder は Salesforce UI (Setup > Model Builder) で、管理者が LLM 設定を登録し、Einstein および Agentforce フィーチャーがこれらのモデルを呼び出すのに使用するモデルエイリアスを管理します。モデルエイリアスは sfdc_ai__DefaultGPT4Omni またはカスタムエイリアスなどの論理名で、消費するフィーチャーを特定の基盤モデルから切り離します。
プロンプトテンプレートまたは Agentforce エージェントがモデルエイリアスを使用するよう設定された場合、プロバイダーまたはエンドポイントを直接参照しません。エイリアスを参照し、Model Builder はそのエイリアスを実行時に実際に登録されたモデルに解決します。この間接参照により、管理者は消費するすべてのフィーチャーを変更することなく、基盤モデルをスワップできます。欠点は、エイリアスの変更が即座でグローバルであること です — エイリアスシステムに A/B テストやカナリアロールアウトは組み込まれていません。
Salesforce は標準フィーチャー用のデフォルトエイリアスセットを搭載しています。管理者は外部モデルを指すカスタムエイリアスを追加できます。エイリアスは一度に 1 つのモデルのみを指すことができます。
外部モデル登録 (BYOLLM)
Model Builder で外部 LLM を登録するには、3 つのステップが含まれます。
- External Credential (Named Credential): Setup > Named Credentials で External Credential を作成し、カスタム認証プロトコルを使用してプロバイダー API キーを保存します。API キーをパラメーターとして、認証情報の Principal を追加します。この認証情報は後に Model Builder 外部モデル設定によって参照されます。
- Model Builder 登録: Setup > Model Builder > Add Model で、適切なプロバイダータイプ (OpenAI、Azure OpenAI、Anthropic、またはカスタム OpenAI 互換) を選択します。エンドポイント URL、モデル識別子 (
gpt-4o、claude-3-5-sonnet-20241022など)、およびステップ 1 で作成した Named Credential を指定します。Salesforce は API キーが Named Credentials を通じて移動することを強制します — モデルレコードにプレーンテキストで保存されることはありません。 - エイリアス割り当て: 外部モデルを登録した後、モデルエイリアスを作成または更新して、それを指すようにします。そのエイリアスを参照するフィーチャーは、外部モデルを使用するようになります。
Azure OpenAI の場合、エンドポイント形式は https://<resource>.openai.azure.com/openai/deployments/<deployment-name> で、API バージョンを指定する必要があります (2024-02-01 など)。Azure は OpenAI のベアラートークンと比較して異なる認証ヘッダー (api-key) を使用しています。Salesforce はプロバイダータイプが Azure OpenAI に設定されている場合、この違いを自動的に処理します。
モデル選択: コスト対品質のトレードオフ
Salesforce Model Builder は、Salesforce 標準モデルと外部登録モデルの両方をエイリアス割り当てに公開します。特定のユースケースに適したモデルを選択するには、以下をバランスさせる必要があります。
- 品質: より大きなフロンティアモデル (GPT-4o、Claude 3.5 Sonnet、Llama 3.1 405B) は複雑なエージェント型タスクをより良く推論しますが、トークンあたりのコストが高く、レイテンシーが高くなります。
- コスト: より小さいまたは中程度のモデル (GPT-4o mini、Claude 3 Haiku、Llama 3.1 70B) はトークンあたりの価格が大幅に安く、より高速です。完全な推論が必要でない高ボリュームの要約、分類、抽出タスクに適しています。
- 関数呼び出しサポート: アクション (Apex を呼び出す、レコードのクエリ、フィールド更新) を実行する Agentforce エージェントは、関数呼び出し (ツール使用) をサポートするモデルが必要です。すべてのモデルがこれをサポートするわけではなく、関数呼び出しのないモデルはテキスト生成ユースケース (メール草稿、ドキュメント要約など) に限定されます。
- コンテキストウィンドウ: 大量のデータ (長いメールスレッド、大規模レコードセット、ドキュメントチャンク) を渡すユースケースでは、より大きなコンテキストウィンドウを持つモデルが必要です。モデルのコンテキスト制限をターゲットフィーチャーのプロンプトサイズ推定に対して確認してください。
モデル接続性のテスト
Model Builder は、登録された各外部モデルで組み込みのテスト接続機能を提供します。これは設定された Named Credential とエンドポイントを使用してプロバイダーに最小限の API リクエストを送信し、成功または失敗を報告します。登録またはリクエスト情報の更新後、モデルがライブエイリアスで使用される前に、このテストを実行することは必須です。
一般的なパターン
Mode 1: 外部 LLM (BYOLLM) 登録のエンドツーエンド
いつ使用するか: 組織が Salesforce でホストされていないモデル (独自の Azure OpenAI デプロイメント、Anthropic API サブスクリプションなど) を Agentforce エージェント または Einstein フィーチャーを支援するために使用したい場合。データレジデンシー要件を満たす、モデルバージョンを制御する、またはコストを最適化するためです。
仕組み:
- プロバイダーコンソール (OpenAI Platform、Azure Portal、Anthropic Console) からプロバイダー API キーとエンドポイント URL を取得します。
- Salesforce Setup > Named Credentials > External Credentials で、新しい External Credential を作成します。
- Authentication Protocol: Custom
- Org (またはユーザーレベルのキー分離が必要な場合は Per-User) の Principal を追加します。
- カスタムヘッダーパラメーター
AuthorizationをBearer <API_KEY>(OpenAI/Anthropic の場合) またはapi-keyヘッダーとキー値 (Azure OpenAI の場合) で追加します。
- Setup > Named Credentials で、External Credential を参照し、プロバイダーのベースドメイン (
https://api.openai.comなど) を指す Named Credential を作成します。 - Setup > Model Builder > Add Model に移動します。
- プロバイダータイプを選択 (OpenAI、Azure OpenAI、Anthropic、または OpenAI 互換)。
- モデル識別子を入力 (OpenAI の場合は
gpt-4o-mini、Anthropic の場合はclaude-3-5-haiku-20241022など)。 - ステップ 3 で作成した Named Credential を選択します。
- Azure OpenAI の場合、完全なデプロイメントエンドポイントと API バージョンを入力します。
- モデルレコードを保存します。
- テスト接続をクリックします。続行する前に成功を確認してください。
- Model Builder > Model Aliases に移動します。
- 新しいエイリアス (例:
MyOrg_AzureGPT4o) を作成するか、既存のエイリアスを更新して、新しく登録されたモデルを指すようにします。 - このモデルを使用すべきプロンプトテンプレートまたは Agentforce エージェントで、エイリアスを名前で選択します。
Salesforce 標準モデルを使用しない理由: 標準モデルは Salesforce のモデルバージョンのケイデンスによって管理されます。厳密なモデルバージョンピニング要件、特定プロバイダーとのデータ処理契約、または高ボリュームでのコスト最適化の必要性がある組織は、BYOLLM を通じてモデルを直接制御することから利益を得ます。
Mode 2: 現在のモデル設定をレビュー
いつ使用するか: リリース前、モデルコストレビュー中、または新しい Agentforce フィーチャーをオンボーディングする場合、各エイリアスの背後にあるモデルを確認し、すべての外部モデルが正常であることを確認します。
仕組み:
- Setup > Model Builder > Model Aliases に移動します。各エイリアスとその現在のモデル割り当てをレビューしてください。
- 外部モデルでバックアップされた各エイリアスについて、モデルレコードを開いてテスト接続をクリックします。テストが成功していることを確認してください。
- 各外部モデルに関連する Named Credential を確認します — 認証情報レコードを更新することなく、認証情報が有効期限切れになっていないか、ローテーションされていないかを確認してください。
- 各エイリアスを参照する Agentforce エージェントおよびプロンプトテンプレートをレビューします (組織のバージョンでフィーチャーが表示されている場合、エイリアスの詳細ビューに表示されます)。
- エイリアス対モデルのマッピングと最後の接続性テストの日付をドキュメント化します。
Mode 3: モデル接続性の障害をトラブルシュート
いつ使用するか: Agentforce エージェントまたは Einstein フィーチャーがモデル関連エラーで失敗する場合、テスト接続が Model Builder でエラーを返す場合、またはプロンプトテンプレートが一般的な障害応答を返す場合。
仕組み:
- テスト接続を実行してください Setup > Model Builder で障害が発生しているモデルで。返されたエラーメッセージは通常、障害が認証 (401/403)、エンドポイント解決 (DNS または URL の誤設定)、またはレート制限 (429) であるかを示しています。
- 401/403 エラー: 関連する Named Credential および External Credential を開きます。API キー値が現在のものであることを確認してください — プロバイダーキーがローテーションされた場合、External Credential の Principal パラメーターを更新します。新しいキーを External Credential 以外のどこにも保存しないでください。
- 404 またはエンドポイントエラー: Azure OpenAI の場合、モデルエンドポイント URL のデプロイメント名と API バージョンが正しいことを確認してください。OpenAI 互換エンドポイントの場合、ベース URL が正しいパスプレフィックスを含むことを確認してください (一部のプロバイダーは
/v1/を使用し、一部は異なるプレフィックスを使用します)。 - 429 / レート制限エラー: 外部プロバイダーのクォータまたはレート制限を超えています。プロバイダー側の使用ログをレビューしてください。高ボリュームユースケースについてプロバイダーティアのアップグレードまたはレート制限が高いモデルへの切り替えを検討してください。
- テスト接続が成功したのにフィーチャーエラー: 障害が発生しているフィーチャーが、アクションを持つ Agentforce エージェントである場合、登録されたモデルが関数呼び出しをサポートしていることを確認してください。接続性テストは成功しますが、ツール使用をサポートしないモデルは、エージェントがアクションを起動しようとする場合、実行時に失敗します。
意思決定ガイダンス
| 状況 | 推奨アプローチ | 理由 |
|---|---|---|
| アクション呼び出し (ツール使用) を持つ Agentforce エージェント | 関数呼び出しサポートが確認されたモデルを選択 (GPT-4o、Claude 3.5 Sonnet、ツールサポート付き Llama 3.1) | 関数呼び出しなしのモデルは実行時に Agentforce アクションを起動できない |
| 高ボリュームのメール、ドキュメント要約 | カスタムエイリアス経由で、より小さく安いモデルを使用 (GPT-4o mini、Claude 3 Haiku) | フロンティアモデルは抽出/要約には不要。スケールでのコスト削減は大幅 |
| データレジデンシー要件 (EU データ境界など) | BYOLLM を通じて、必要なリージョンに Azure OpenAI デプロイメントを登録 | Salesforce 標準モデルは地域固有のデータレジデンシーを提供しない可能性。Azure OpenAI は EU リージョンをサポート |
| コンプライアンスによるモデルバージョンピニング要件 | 特定のプロバイダーモデル ID を使用した BYOLLM を使用 | Salesforce 標準モデルは基盤モデルバージョンを更新する可能性。BYOLLM は直接的なバージョン管理を提供 |
| 本番ロールアウト前に新しいモデルをテスト | テストモデルを指す新しいエイリアスを作成。サンドボックスプロンプトテンプレートのみで使用 | エイリアスはグローバル — テストが完了するまで本番エイリアスを更新しないでください |
| 外部モデル API キーがプロバイダーによってローテーション | Named Credentials で External Credential の Principal パラメーターを更新 — その他の場所ではありません | API キーは Named Credentials 内に留まる必要があります。その他の場所を更新すると効果がなく、キーを露出させる可能性があります。 |
| 組織が Salesforce マネージドモデル更新を望む | デフォルトの Salesforce 標準モデルエイリアスを使用 | Salesforce は基盤モデルバージョンを管理。プロバイダーアカウントまたはキー管理は不要 |
| 複数のフィーチャーに異なるモデルが必要 | 各フィーチャータイプに異なるエイリアスを作成 (例: AgentAlias はエージェント型タスク、SummaryAlias は要約) | エイリアスごと 1 つのユースケースにより、1 つのフィーチャーのモデルスワップが別のフィーチャーに無意識に影響するのを防止します。 |
推奨ワークフロー
このスキルを実装する AI エージェントまたはプラクティショナーのためのステップバイステップ手順:
- コンテキストを集める — 組織エディション、関連オブジェクト、現在の設定状態を確認してください。
- 公式ソースをレビュー — このスキルの well-architected.md の参照文献を確認してから変更してください。
- 実装またはアドバイス — 上記のコアコンセプトおよび一般的なパターンセクションのパターンを適用してください。
- 検証 — スキルのチェッカースクリプトを実行し、以下のレビューチェックリストに照らして確認してください。
- ドキュメント化 — 標準パターンからの逸脱を記録し、必要に応じてテンプレートを更新してください。
レビューチェックリスト
Model Builder / BYOLLM の実装を完了としてマークする前に、これらをチェックしてください。
- Einstein 生成 AI フィーチャーフラグが Setup > Einstein Generative AI で有効であることを確認
- Named Credential および External Credential を作成。API キーは External Credential Principal にのみ保存 — プレーンテキストではない
- 外部モデルが Model Builder に登録済み。正しいプロバイダータイプ、モデル ID、エンドポイント
- すべての登録済み外部モデルでテスト接続が成功
- モデルエイリアスを作成または更新。意図されたモデルを指すようになっている
- モデル機能を確認: エイリアスがアクションを持つ Agentforce エージェントをバックアップする場合、関数呼び出しサポートが必要
- コンテキストウィンドウサイズを、ターゲットフィーチャーの予想プロンプトサイズに対して確認
- エイリアス対モデルのマッピングをドキュメント化 (どのフィーチャーがどのエイリアスを使用するか)
- 本番エイリアスを更新する前に、別のエイリアスを使用してサンドボックステストを完了
- API キーローテーション手順をドキュメント化: ローテーション担当者、更新場所 (External Credential のみ)、再テスト方法
Salesforce 特有の落とし穴
実際の本番環境の問題を引き起こす非自明なプラットフォームの動作:
- エイリアスの変更はグローバルで即座です — Model Builder でモデルエイリアスを更新すると、そのエイリアスを参照するすべての Agentforce エージェント、プロンプトテンプレート、Einstein フィーチャーが、同時に警告なく影響を受けます。カナリアロールアウト、フィーチャーレベルのオーバーライド、または変更された内容の監査ログはありません。1 つのフィーチャー用に意図されたモデルスワップは、関連のないフィーチャーの品質を無意識に低下させたり、アクション呼び出しを破損させたりする可能性があります。常にテスト用に新しいエイリアスを作成し、完全な検証後のみ共有エイリアスを更新してください。
- サンドボックスと本番環境のモデル設定は独立しています — Model Builder 登録、Named Credentials、エイリアス設定は、change sets または Salesforce CLI を通じてサンドボックスから本番環境に自動的にデプロイされません。各環境は独立して設定する必要があります。サンドボックスで新しい外部モデルをテストし、その後「本番環境に行く」組織は、本番環境で Named Credential、External Credential、モデル登録の手順をすべて手動で複製する必要があります。Metadata API または Salesforce CLI (Model Builder メタデータタイプがサポートされている場合) でこれをスクリプト化することは、再現性のために強く推奨されます。
- API レート制限はプロバイダー側です。Salesforce 側ではありません — Salesforce は、プラットフォーム自体のリクエストインフラストラクチャが課すもの以外に、外部 LLM への呼び出しのレート制限を強制しません。Agentforce フィーチャーが外部プロバイダーへの高いクエリボリュームを生成する場合、プロバイダーのレート制限 (1 分あたりのリクエストまたは 1 分あたりのトークン) が、Salesforce 内の一般的なモデル障害として表示される 429 エラーを引き起こします。これらの障害は標準 Salesforce デバッグログに表示されません — プロバイダー側の監視またはミドルウェアロギングレイヤーが必要です。ユーザーが報告した障害を待つのではなく、プロバイダーの使用ダッシュボードを事前に監視してください。
- Named Credential パーミッションセットは外部モデル呼び出しに必要です — 外部モデルを呼び出すユーザー
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- PranavNagrecha
- ライセンス
- Apache-2.0
- 最終更新
- 2026/5/9
Source: https://github.com/PranavNagrecha/AwesomeSalesforceSkills / ライセンス: Apache-2.0