developing-agentforce
Agentforce Agent Scriptを使用してエージェントの構築・修正・デバッグ・デプロイを行うスキルです。`.agent`ファイルやaiAuthoringBundleメタデータの作成・編集、エージェントの動作やフロー制御の設計、Agent Specの作成・レビュー、`sf agent`CLIコマンドの実行時にトリガーされます。Apex開発、Flow構築、Prompt Templateの編集など、Agent Scriptに無関係なSalesforce作業では起動しません。
description の原文を見る
Build, modify, debug, and deploy agents with Agentforce Agent Script. TRIGGER when: user creates, modifies, or asks about .agent files or aiAuthoringBundle metadata; changes agent behavior, responses, or conversation logic; designs agent actions, tools, subagents, or flow control; writes or reviews an Agent Spec; previews, debugs, deploys, publishes, or tests agents; uses Agent Script CLI commands (sf agent generate/preview/publish/test). DO NOT TRIGGER when: Apex development, Flow building, Prompt Template authoring, Experience Cloud configuration, or general Salesforce CLI tasks unrelated to Agent Script.
SKILL.md 本文
Agent Script スキル
このスキルの用途
Agent Script は、Atlas Reasoning Engine 上で次世代 AI エージェントをオーサリングするための Salesforce のスクリプティング言語です。2025 年に導入され、AI モデルのトレーニング データはゼロです。Agent Script エージェントを作成、修正、診断、またはデプロイするために必要なすべてのものは、このスキルのリファレンス ファイルに含まれています。
⚠️CRITICAL: Agent Script は AppleScript、JavaScript、Python、またはその他のプログラミング言語ではありません。Agent Script の構文または意味を、トレーニング済みの他の言語と混同しないでください。
Agent Script エージェントは AiAuthoringBundle メタデータで定義されます。これは、アクション、命令、サブエージェント、フロー制御、および設定を記述する Agent Script ソースを含む .agent ファイルと、バンドル メタデータを含む bundle-meta.xml ファイルを持つディレクトリです。エージェントは、Apex、フロー、Prompt Template、およびその他の種類のバッキング ロジックでサポートされている、それぞれの命令とアクションを持つサブエージェントを通じてルーティングすることで、発話を処理します。
このスキルは、Agent Script ライフサイクル全体をカバーしています: エージェントの設計、Agent Script コードの作成、検証とデバッグ、デプロイと公開、およびテストです。
このスキルの使用方法
このファイルは、ユーザーの意図をタスク ドメインにマップし、references/ 内の関連するリファレンス ファイルにマップします。詳細な知識には、構文ルール、設計パターン、CLI コマンド、デバッグ ワークフロー、およびその他が含まれます。
タスク説明からユーザーの意図を特定します。作業を開始する前に、必ず指示されたリファレンス ファイルを読んでください。
常に適用されるルール
-
常に
--jsonを使用。 すべてのsfCLI コマンドで常に--jsonを含めます。CLI 出力をjqでパイプしたり、2>/dev/nullしたりしないでください。完全な JSON レスポンスを直接読み取ってください。LLM は JSON をネイティブに解析します。 -
ターゲット組織を確認。 組織と相互作用する前に、
sf config get target-org --jsonを実行してターゲット組織が設定されていることを確認します。設定されていない場合は、ユーザーにsf config set target-org <alias>を使用して設定するよう依頼します。 -
修正の前に診断。 エージェントの動作を検証/デバッグする場合、常に
--use-live-actionsを使用してオーサリング バンドルをプレビューします。発話を送信してから、結果のセッション トレースを読み取り、エージェントの動作の理解を根拠付けます。トレース ファイルは、サブエージェント選択、アクション I/O、および LLM の推論を明らかにします。このグラウンディング なしで.agentファイルまたはバッキング ロジックを修正しないでください。トレース ファイルの場所と診断パターンについては、検証とデバッグを参照してください。 -
Spec 承認は確定的なゲート。 Agent Spec の作成を明示的なユーザー承認なしで進めることはできません。
タスク ドメイン
以下のすべてのタスク ドメインには 必須ステップ があります。順番に逐語的に従ってください。独自の計画を代わりにしたり、ステップをスキップしたりしないでください。
エージェントの作成
ユーザーはスクラッチからの新しいエージェントをビルドしたいと考えています。常に Agent Script を使用します。ユーザーと協力してエージェントの目的、サブエージェント、およびアクションを Salesforce 固有の用語を使用せずに平文で理解します。
必須ステップ
正確なコマンド構文については、エージェント用 CLI を読んでください。
- 設計 —
設計と Agent Specを読んで Agent Spec をドラフトします。既存のバッキング ロジックをスキャンすべきかどうかを常に質問します。特に指示がない限り、sfdx-project.jsonを読むことでスキャンを開始してパッケージ ディレクトリを特定してから、各ディレクトリでclasses/内の@InvocableMethod、flows/内のAutoLaunchedFlow、およびpromptTemplates/内のテンプレート メタデータを検索します。マッチをEXISTSとしてマーク。マッチしないアクションをNEEDS STUBとしてマーク。また、objects/で.object-meta.xmlをスキャンしてカスタム オブジェクトを発見します。関連オブジェクトは、プロンプトで言及されていなくても、エージェントが公開する必要があるデータを含むことが多いです。常に Agent Spec をファイルとして保存します。 - Agent Spec ユーザー承認のため停止。 ユーザーに提示します。承認またはフィードバックを求めます。承認なしで進まないでください。 承認されたら、ステップが失敗しない限り停止せずに進みます。
- 環境前提条件を検証 —
設計と Agent Spec、セクション 3 (環境前提条件) を読みます。設計のエージェント タイプに基づいて、組織環境を検証します:- 従業員エージェント: config ブロックに
default_agent_user、connection messaging:、または MessagingSession リンク変数が含まれていないことを確認します。存在する場合は削除します。完全な従業員エージェント例については、例を参照してください。 - サービス エージェント: org で Einstein Agent User をクエリします。存在する場合は、ユーザー名をユーザーに確認します。存在しない場合は、ユーザーの作成をガイドします。作成ステップについては
エージェント用 CLIのセクション 12 を参照し、必要なアクセス許可についてはAgent ユーザー セットアップを参照してください。 環境が検証されるまでコード生成に進まないでください。
- 従業員エージェント: config ブロックに
- オーサリング バンドルを生成 —
sf agent generate authoring-bundle --json --no-spec --name "<Label>" --api-name <Developer_Name> - コードを作成 —
Core Languageを読んで、構文、ブロック構造、およびアンチパターンを学習します。生成された.agentファイルをリファレンス ファイルとテンプレートを使用して編集します。.agentまたはbundle-meta.xmlファイルを手動で作成しないでください。 - コンパイルを検証 —
sf agent validate authoring-bundle --json --api-name <Developer_Name>検証に失敗した場合は、検証とデバッグを読んで診断して修正してから、再検証します。バッキング ロジックを生成する前に、常に構文とstructuralエラーを修正します。 - バッキング ロジックを生成 — NEEDS STUB とマークされた各アクションについて:
sf template generate apex class --name <ClassName> --output-dir <PACKAGE_DIR>/main/default/classes設計と Agent Specからクラス本体を invocable パターンで置き換えます。常にデプロイします:sf project deploy start --json --metadata ApexClass:<ClassName>次のスタブを生成してデプロイする前に、常にデプロイ エラーを修正します。 - 動作を検証 —
検証とデバッグを読んで、プレビュー ワークフローとセッション トレース分析を確認します。sf agent preview start --json --use-live-actions --authoring-bundle <Developer_Name>アクションがデータをクエリする場合、グラウンド テスト発話を次で実施:sf data query --json -q "SELECT <Relevant_Fields> FROM <SObject> LIMIT 100"テスト発話を送信:sf agent preview send --json --authoring-bundle <Developer_Name> --session-id <ID> -u "<message>"サブエージェント ルーティング、ゲーティング、およびアクション呼び出しが Agent Spec と一致することを確認します。動作が異なる場合は、動作上の問題を診断 ワークフローに切り替えます。問題を修正した後に戻ります。 チェックポイント — 以下のすべてが当てはまる場合を除き、公開に進まないでください:validate authoring-bundleはエラーゼロで合格- Live preview (
--use-live-actions) は各サブエージェントごとに代表的な発話でテスト済み - トレースは正しいサブエージェント ルーティングと action invoke を確認
- ユーザーが明示的にデプロイを承認
- 公開 — 公開はメタデータ構造を検証し、エージェント動作は検証しません。すべての公開は永続的なバージョン番号を作成します。
sf agent publish authoring-bundle --json --api-name <Developer_Name>公開に失敗した場合は、再試行する前にメタデータとライフサイクルのセクション 5 のトラブルシューティング チェックリストを確認します。 - アクティベート — 新しいバージョンをユーザーが利用できるようにします。
sf agent activate --json --api-name <Developer_Name> - 公開されたエージェントを検証 — アクティベーション後のユーザー向け動作をプレビュー:
sf agent preview start --json --api-name <Developer_Name>--authoring-bundleではなく--api-nameを使用します。 - エンドユーザー アクセスを設定 — 従業員エージェント のみ 対象。
Agent Access Guideを読んでアクセス許可を設定してアクセスを割り当てます。
リファレンス ファイル
エージェント用 CLI— generate、validate、deploy、publish、activate の正確なコマンド構文。 セクション 12 は Einstein Agent User 作成向けCore Language— 実行モデル、構文、ブロック構造、アンチパターン設計と Agent Spec— サブエージェント グラフ設計、フロー制御パターン、Agent Spec 作成、バッキング ロジック分析。環境前提条件向けセクション 3Subagent Map ダイアグラム— エージェントのサブエージェント グラフを視覚化するための Mermaid ダイアグラム規約Agent ユーザー セットアップと アクセス許可— パーミッション セット割り当て、オブジェクト アクセス許可、クロスサブエージェント検証メタデータとライフサイクル— ディレクトリ構造、バンドル メタデータ。公開トラブルシューティング検証とデバッグ— エージェントがコンパイルすることを検証、動作を確認するプレビューAgent Access Guide— エンドユーザー アクセス アクセス許可、表示トラブルシューティング既知の問題— エラーがコード修正後も持続する場合のみ読み込むアーキテクチャ パターン— hub-and-spoke、検証ゲート、post-action ループ複雑なデータ型— 型マッピング判定木Safety Review— 7 カテゴリ safety reviewDiscover リファレンス— ターゲット検出 CLIScaffold リファレンス— スタブ生成 CLIデプロイ リファレンス— デプロイ ライフサイクル、エラー復旧
既存のエージェントを理解する
ユーザーは、作成していない Agent Script エージェント、または再度確認する必要があるエージェントを理解したいと考えています。AiAuthoringBundle ディレクトリを指すか、「このエージェントは何をしますか?」または「このエージェントを修正する必要があるが、どのように動作するのかわかりません」と尋ねる可能性があります。
必須ステップ
- エージェントの場所を特定 —
sfdx-project.jsonを読んでパッケージ ディレクトリを特定します。ディレクトリ内でAiAuthoringBundleディレクトリを探します。.agentファイルとbundle-meta.xmlを読みます。 - コードを読む —
.agentファイルを解析する 前にCore Languageを読んで、構文と実行モデルを学習します。 - バッキング ロジックをマップ —
targetを持つ各アクションについて、プロジェクト内のバッキング実装 (Apex クラス、Flow、Prompt Template) を探します。入出力コントラクトに注釈を付けます。 - Agent Spec をリバース エンジニア —
設計と Agent Specを読んで Agent Spec 構造を理解します。コードから Agent Spec を生成してファイルとして保存します。 - Subagent Map ダイアグラムを作成 —
Subagent Map ダイアグラムを読んで Mermaid 規約を確認します。遷移、ゲート、およびアクション関連付けを示すサブエージェント グラフのフローチャートを生成します。 - ソースに注釈を付ける — ユーザーが Agent Script ソースに注釈を付けてほしいかどうかを尋ねます。リクエストされた場合、フロー制御の決定、ゲーティング根拠、およびサブエージェント関係を説明するインライン コメントを
.agentファイルに追加します。 - ユーザーに提示 — Agent Spec、Subagent Map、および生成した注釈付きソースを共有します。Core Language リファレンスの Anti-Patterns セクションをチェックしてコード内で見つかったマッチングをフラグします。
リファレンス ファイル
Core Language— 構文、実行モデル、アンチパターン設計と Agent Spec— Agent Spec 構造、フロー制御パターン認識Subagent Map ダイアグラム— サブエージェント グラフ視覚化の Mermaid 規約メタデータとライフサイクル— ディレクトリ規約、バンドル メタデータ既知の問題— コード内に説明のつかないワークアラウンド パターンがある場合のみ読み込む
既存のエージェントを修正する
ユーザーは、既存エージェント上でサブエージェント、アクション、命令、またはフロー制御を追加、削除、または変更したいと考えています。平文で変更を記述する場合もあります (「billing サブエージェントを追加」など) または特定の Agent Script コンストラクトを参照する場合もあります。
必須ステップ
正確なコマンド構文については、エージェント用 CLI を読んでください。
- 理解 — Agent Spec が存在しない場合は、上記の「既存のエージェントを理解する」ワークフローに従ってリバース エンジニアリングを最初に実施してから、続行します。
- Agent Spec を更新 —
設計と Agent Specを読んで、フロー制御パターンとバッキング ロジック分析を確認します。Agent Spec を修正して意図した変更を反映させます。新しいアクションについて、既存のバッキング ロジックをスキャンすべきかどうかを常に尋ねます。特に指示がない限り、sfdx-project.jsonを読むことでスキャンを開始してパッケージ ディレクトリを特定してから、各ディレクトリでclasses/内の@InvocableMethod、flows/内のAutoLaunchedFlow、およびpromptTemplates/内のテンプレート メタデータを検索します。マッチをEXISTSとしてマーク。マッチしないアクションをNEEDS STUBとしてマーク。常に更新された Agent Spec をファイルとして保存します。 - 更新された Agent Spec ユーザー承認のため停止。 ユーザーに提示します。承認またはフィードバックを求めます。承認なしで進まないでください。 承認されたら、ステップが失敗しない限り停止せずに進みます。
- コードを編集 —
Core Languageを読んで、構文とアンチパターンを学習します。.agentファイルを編集して承認された変更を実装します。 - コンパイルを検証 —
sf agent validate authoring-bundle --json --api-name <Developer_Name>検証に失敗した場合は、検証とデバッグを読んで診断して修正してから、再検証します。 - 新しいバッキング ロジックを生成 — NEEDS STUB とマークされた新しいアクションそれぞれについて:
sf template generate apex class --name <ClassName> --output-dir <PACKAGE_DIR>/main/default/classes設計と Agent Specからクラス本体を invocable パターンで置き換えます。常にデプロイします:sf project deploy start --json --metadata ApexClass:<ClassName>次のスタブを生成してデプロイする前に、常にデプロイ エラーを修正します。新しいアクションが追加されない場合はスキップします。 - 動作を検証 —
検証とデバッグを読んで、プレビュー ワークフローとセッション トレース分析を確認します。sf agent preview start --json --use-live-actions --authoring-bundle <Developer_Name>アクションがデータをクエリする場合、グラウンド テスト発話を次で実施:sf data query --json -q "SELECT <Relevant_Fields> FROM <SObject> LIMIT 100"テスト発話を送信:sf agent preview send --json --authoring-bundle <Developer_Name> --session-id <ID> -u "<message>"変更されたパスをまず最初にテストしてから、隣接パスをテストして既存動作でのリグレッションをキャッチします。 チェックポイント — 以下のすべてが当てはまる場合を除き、公開に進まないでください:validate authoring-bundleはエラーゼロで合格- Live preview (
--use-live-actions) は各サブエージェントごとに代表的な発話でテスト済み - トレースは正しいサブエージェント ルーティングと action invoke を確認
- ユーザーが明示的にデプロイを承認
- 公開 — 公開はメタデータ構造を検証し、エージェント動作は検証しません。すべての公開は永続的なバージョン番号を作成します。
sf agent publish authoring-bundle --json --api-name <Developer_Name>公開に失敗した場合は、再試行する前にメタデータとライフサイクルのセクション 5 のトラブルシューティング チェックリストを確認します。 - アクティベート — 新しいバージョンをユーザーが利用できるようにします。
sf agent activate --json --api-name <Developer_Name> - 公開されたエージェントを検証 — アクティベーション後のユーザー向け動作をプレビュー:
sf agent preview start --json --api-name <Developer_Name>--authoring-bundleではなく--api-nameを使用します。
リファレンス ファイル
エージェント用 CLI— validate、deploy、preview、publish、activate の正確なコマンド構文Core Language— 構文、アンチパターン設計と Agent Spec— Agent Spec 更新、バッキング ロジック分析検証とデバッグ— コンパイル診断、プレビュー ワークフロー、セッション トレース分析既知の問題— エラーがコード修正後も持続する場合のみ読み込む
コンパイル エラーを診断する
ユーザーは Agent Script を持っていますが、コンパイルされません。エラーは sf agent validate または sf agent preview start から表示されます。またはユーザーは「検証エラーが発生しています」のような症状を述べています。
必須ステップ
正確なコマンド構文については、エージェント用 CLI を読んでください。
- エラーを再現 — 実行:
sf agent validate authoring-bundle --json --api-name <Developer_Name>基本的なコンパイル エラーをキャプチャします。エラーがない場合は、実行:sf agent preview start --json --use-live-actions --authoring-bundle <Developer_Name>複雑なコンパイル エラーをキャプチャします。ユーザーが特定のエラー出力を提供した場合、確認するために常に再現します。 - エラーを分類 —
検証とデバッグを読んでエラー分類法を確認します。各エラー メッセージをルート原因カテゴリにマップします。 - 障害を特定 —
Core Languageを読んで正しい構文を理解します。各エラーを引き起こす.agentファイルの特定の行を探します。 - コードを修正 — ターゲット付き修正を適用します。Core Language リファレンスの Anti-Patterns セクションを確認して、既知の悪いパターンを導入していないことを確認します。
- 再検証 — 実行:
sf agent validate authoring-bundle --json --api-name <Developer_Name>その後、実行:sf agent preview start --json --use-live-actions --authoring-bundle <Developer_Name>エラーが持続する場合、ステップ 2-5 を繰り返します。 - 修正を説明 — ユーザーに何が間違っていて、何を変更したかを伝えます。Core Language エージェント実行モデルの観点からルート原因を説明します。
リファレンス ファイル
Core Language— 構文、ブロック構造、アンチパターン検証とデバッグ— エラー分類法、エラーからルート原因へのマッピング既知の問題— エラーがユーザー コードと一致しない場合のみ読み込む。プラットフォーム バグの可能性があるProduction Gotchas— エラーが予約キーワードまたはライフサイクル フック構文を含む場合のみ読み込む
動作上の問題を診断する
エージェントはコンパイルされ、プレビュー開始でき、--use-live-actions ですが、エージェントは予期されたように動作しません。ユーザーは「エージェントは常に間違ったサブエージェントに進む」または「アクションが呼び出されていない」のような症状を述べています。validate または preview start エラーから根本的に異なります — コードは有効ですが、動作が間違っています。
必須ステップ
正確なコマンド構文については、エージェント用 CLI を読んでください。
- ベースラインを確立 — Agent Spec を読みます。Agent Spec が存在しない場合は、既存のエージェントを理解する ワークフローに従ってリバース エンジニアリングを実施してから、続行します。
- 仮説を形成 —
Core Languageを読んで実行モデルを確認します。ユーザーの説明に基づいて、候補ルート原因をリストします。次の項目について考えます: サブエージェント ルーティング、ゲーティング条件、アクション可用性、命令の明確さ、変数の状態、および遷移のタイミング。 - プレビューで再現 —
検証とデバッグを読んで、プレビュー ワークフローとセッション トレース分析を確認します。プレビュー セッションを開始:sf agent preview start --json --use-live-actions --authoring-bundle <Developer_Name>その後、sf agent preview sendでそれぞれのサブエージェントをカバーするテスト メッセージを送信します。1 つのメッセージで十分ではありません — 続行する前に、サブエージェントごとに動作を確認します。 - セッション トレースを分析 — トレース出力を調べてサブエージェント選択、アクション可用性/実行、LLM 推論、および動作が Agent Spec から逸脱した箇所を確認します。このステップをスキップしないでください — プレビュー出力だけは診断に不十分です。
- ルート原因を特定 — トレース証拠を仮説にマッチさせます。Core Language リファレンスと
設計と Agent Specリファレンスのゲーティング パターン を参照してアンチパターンがないことを確認します。 - コードを修正 — ターゲット付き修正を適用します。修正がフロー制御の変更を含む場合、Agent Spec を更新して一致させます。
- 再検証と再プレビュー — ステップ 3-6 を動作が Agent Spec と一致するか、プラットフォーム制限を確認するまで繰り返します。
validate authoring-bundleを実行してから、preview start --use-live-actionsを実行して同じ発話を使用して修正を検証します。その後、変更の影響を受ける可能性のある隣接パスをテストします。 - 修正を説明 — ユーザーに何が間違っていて、何を変更したかを伝えます。Core Language エージェント実行モデルの観点からルート原因を説明します。
リファレンス ファイル
Core Language— 実行モデル、アンチパターン設計と Agent Spec— 動作ベースラインとしての Agent Spec、ゲーティング パターン検証とデバッグ— プレビュー ワークフロー、セッション トレース分析既知の問題— 動作が間違っていてもコード ロジックが正しい場合のみ読み込む
デプロイ、公開、およびアクティベート
ユーザーは、ローカル開発から Salesforce org の実行中の状態に機能するエージェントを取得したいと考えています。AiAuthoringBundle とその依存関係を org にデプロイし、バージョンをコミットするために公開してから、アクティベートしてライブにすることが関わります。
必須ステップ
正確なコマンド構文については、エージェント用 CLI を読んでください。
- コンパイルを検証 —
sf agent validate authoring-bundle --json --api-name <Developer_Name>検証に失敗した場合は進まないでください。 - バンドルと依存関係をデプロイ —
メタデータとライフサイクルを読んで依存関係の管理とデプロイ コマンドを確認します。AiAuthoringBundleと、すべてのバッキング ロジック (Apex クラス、Flow、Prompt Template) および依存関係を org にデプロイします。 - Live プレビュー —
検証とデバッグを読んで、プレビュー ワークフローとセッション トレース分析を確認します。sf agent preview start --json --use-live-actions --authoring-bundle <Developer_Name>その後、次でテスト発話を送信:sf agent preview send --json --authoring-bundle <Developer_Name> --session-id <ID> -u "<message>"ライブ アクションでバッキングされるときのエージェント動作を検証する主要な会話パスをテストします。 チェックポイント — 以下のすべてが当てはまる場合を除き、公開に進まないでください:validate authoring-bundleはエラーゼロで合格- Live preview (
--use-live-actions) は各サブエージェントごとに代表的な発話でテスト済み - トレースは正しいサブエージェント ルーティングと action invoke を確認
- ユーザーが明示的にデプロイを承認
- 公開 — 公開はメタデータ構造を検証し、エージェント動作は検証しません。公開を dev/test インナー ループの一部として実施しないでください。エージェントをアクティベートしてエンドユーザーに表示する直前の最終ステップとしてのみ公開してください。
sf agent publish authoring-bundle --json --api-name <Developer_Name>公開に失敗した場合は、再試行する前にメタデータとライフサイクルの 公開エラーのトラブルシューティング を確認します。 - アクティベート — 新しいバージョンをユーザーが利用できるようにします。
sf agent activate --json --api-name <Developer_Name> - 公開されたエージェントを検証 — アクティベーション後のユーザー向け動作をプレビュー:
sf agent preview start --json --api-name <Developer_Name>--authoring-bundleではなく--api-nameを使用します。 - エンドユーザー アクセスを設定 — 従業員エージェント のみ 対象。
Agent Access Guideを読んでアクセス許可を設定してアクセスを割り当てます。
リファレンス ファイル
エージェント用 CLI— deploy、publish、activate、deactivate の正確なコマンド構文検証とデバッグ— コンパイル検証、プレビュー ワークフローメタデータとライフサイクル— 依存関係管理、デプロイ コマンド。公開トラブルシューティングAgent Access Guide— エンドユーザー アクセス アクセス許可、表示トラブルシューティング既知の問題— デプロイがハングしたり、公開に失敗したり、アクティベートが予期せず失敗した場合のみ読み込む
Production の問題を診断する
ユーザーのエージェントは公開されてアクティブですが、プレビュー中に検出されなかった問題が発生しています。クレジット過剰消費、トークンまたはサイズ制限エラー、ループ ガードレール割り込み、予約キーワード ランタイム エラー、VS Code 同期失敗、またはプレビューと本番間の予期しない動作の違いが含まれます。
必須ステップ
正確なコマンド構文については、エージェント用 CLI を読んでください。
- 問題を分類 — これが請求/コスト懸念、ランタイム制限、命名の競合、ツール問題、またはプレビューと本番間の動作の違いであるかを判断します。
- 既知の production gotchas をチェック —
Production Gotchasを読んでクレジット消費、トークン制限、ループ ガードレール、予約キーワード、ライフサイクル フック、および VS Code ワークアラウンドを確認します。 - プレビュー vs 本番動作を比較 — 問題が動作的である場合、公開されたエージェントをプレビュー:
sf agent preview start --json --api-name <Developer_Name>(--authoring-bundleではなく)。live-actions authoring bundle プレビュー--authoring-bundle <Developer_Name> --use-live-actionsと比較してプレビュー vs 本番の違いを分離します。 - 既知の問題をチェック —
既知の問題を読んで本番のみの失敗を説明するプラットフォーム バグを確認します。 - 修正と再公開 — 修正を適用し、検証、再プレビュー、公開、アクティベート、検証します。デプロイ、公開、アクティベート ステップに従ってください。
- 診断を説明 — ユーザーに何が起きていて、何を変更したかを伝えます。ルート原因を説明します。
リファレンス ファイル
Production Gotchas— クレジット消費、トークン制限、ループ ガードレール、予約キーワード、ライフサイクル フック、VS Code ワークアラウンドエージェント用 CLI— preview、publish、activate のコマンド構文検証とデバッグ— プレビュー ワークフロー、セッション トレース分析既知の問題— 問題がプラットフォーム バグの可能性がある場合のみ読み込む
エージェントを削除またはリネームする
ユーザーはエージェントを削除したい、またはその名前を変更したいと考えています。AiAuthoringBundle のバージョン管理と公開バージョン依存関係によって複雑化されるメンテナンス タスク。
必須ステップ
正確なコマンド構文については、エージェント用 CLI を読んでください。
- 現在の状態を理解 —
メタデータとライフサイクルを読んでバージョン管理、削除メカニクス、およびリネーム メカニクスを確認します。エージェントが公開されているかどうか、どのくらいのバージョンが存在するか、および現在アクティブであるかどうかを特定します。 - アクティブであれば非アクティベート —
sf agent deactivate --json --api-name <Developer_Name>アクティブなエージェントは削除またはリネームできません。 - 操作を実行 — 削除の場合: Metadata & Lifecycle リファレンスで削除メカニクスに従います。リネームの場合: 同じリファレンスのリネーム メカニクスに従います。
- 孤立したものをクリーンアップ — 孤立したメタデータを検索して削除します: Bot、BotVersion、GenAiPlannerBundle、GenAiPlugin、GenAiFunction。Metadata & Lifecycle リファレンスで何を探すかについて詳細があります。
- 検証 — 操作が正常に完了したことを確認します。リネームの場合、新しいバンドルがコンパイルされること、およびプレビューして動作を確認すること検証します。
リファレンス ファイル
エージェント用 CLI— delete、deactivate、retrieve の正確なコマンド構文検証とデバッグ— コンパイル検証、プレビュー ワークフローメタデータとライフサイクル— 削除メカニクス、リネーム メカニクス、孤立したクリーンアップ
エージェントをテストする
ユーザーは Agent Script エージェント向けの自動テストを作成したいと考えています。テスト シナリオ、予期される動作、および品質メトリクスを定義する YAML 形式の AiEvaluationDefinition テスト仕様の作成が関わります。
必須ステップ
正確なコマンド構文については、エージェント用 CLI を読んでください。
- カバレッジベースラインを確立 — Agent Spec を読みます。Agent Spec が存在しない場合は、理解 ステップに従ってリバース エンジニアリングを最初に実施します。すべてのサブエージェント、アクション、およびフロー制御パスを Agent Spec にマップしてテスト カバレッジが必要なものを特定します。
- テスト シナリオを設計 — テスト設計方法論、予期、メトリクス、テスト仕様 YAML 形式、およびテンプレートについては、testing-agentforce スキルを使用してください。そのスキルはすべてのテスト コンテンツを所有しています。各カバレッジ ターゲットについて、1 つ以上のテスト シナリオを作成します: ユーザー発話、予期されるサブエージェント ルーティング、予期されるアクション呼び出し、および予期されるエージェント応答。happy paths とエッジ ケースの両方を含めます。
- テスト仕様 YAML を作成 — testing-agentforce スキルのテンプレートとリファレンス ファイルを使用します。SFDX プロジェクトの
specs/<Agent_API_Name>-testSpec.yamlに保存します。 - テスト メタデータを作成 — CLI を使用してテスト仕様から
AiEvaluationDefinitionを生成します。 - テストをデプロイ —
AiEvaluationDefinitionを org にデプロイします。 - テストを実行 — CLI を使用してテスト実行を実行します。結果をキャプチャします。
- 結果を分析 — 実際の結果を予期と比較します。失敗について、問題がエージェント コード、バッキング ロジック、またはテスト仕様自体のいずれにあるかを特定します。
- 反復 — 必要に応じてエージェント コードまたはテスト仕様を修正し、再デプロイ、再実行してカバレッジ ターゲットに達するまで繰り返します。
リファレンス ファイル
エージェント用 CLI— test create、test run、test results の正確なコマンド構文Core Language— 意味あるテストを設計するためのエージェント構造設計と Agent Spec— テスト カバレッジベースラインとしての Agent Spec- testing-agentforce スキル — テスト仕様 YAML 形式、予期、メトリクス、テスト設計方法論、およびテスト仕様テンプレート
Agent Spec
Agent Spec はこのスキルが生成および使用する中央の成果物です。エージェントの目的、サブエージェント グラフ、アクションとバッキング ロジック、変数、ゲーティング ロジック、および動作意図を表す構造化設計ドキュメント。
Agent Specs はエージェントとともに進化します。エージェント作成時はスパース (目的、トピック、方向ノート)。エージェント ビルド中はフレッシュ (フローチャート、バッキング ロジック マップ、ゲーティング ドキュメント)。既存エージェント理解時にリバース エンジニア。高度なトラブルシューティング中に重要で、期待される vs. 実際の動作を比較するために参考を提供します。テスト中、テスト カバレッジはそれに対してマップします。
エージェントを変更または分析するどの操作の最初のステップとしても常に Agent Spec を作成または更新します。これは機能する一貫したグラウンディングで、開発者が確認できる耐久性のある成果物です。
設計と Agent Spec を読んで Agent Spec 構造と作成方法論を確認します。
アセット
assets/ ディレクトリにはテンプレートと例が含まれています。成果物とソース ファイルの開始点または具体的な参照が必要な場合に読みます。
-
assets/agent-spec-template.md— すべてのセクションとプレースホルダー コンテンツを持つ Agent Spec テンプレート。プロジェクト ディレクトリの<AgentName>-AgentSpec.mdにコピーしてから、設計中に入力します。Agent Spec をファイルとして保存してください — 適切なレンダリングから利点がある重要な設計成果物で、特に Mermaid Subagent Map ダイアグラム。 -
assets/local-info-agent-annotated.agent— Local Info Agent に基づく完全に注釈された例で、すべての主要な Agent Script コンストラクトをコンテキストで示し、各コンストラクトがなぜ使用されているかを説明するインライン コメント。コンセプトが機能するエージェントに構成される方法の具体的な参照が必要な場合に読むか、リファレンス ファイルの重点的な例が不十分な場合のフォールバック。 -
assets/template-single-subagent.agent— 1 つのサブエージェントを持つ最小限のエージェント。シンプルなエージェント向けにコピーして修正。 -
assets/template-multi-subagent.agent— 複数のサブエージェントと遷移を持つ最小限のエージェント。複雑なエージェント向けにコピーして修正。 -
assets/invocable-apex-template.cls— invocable Apex クラスの参照。複雑な Apex バッキング ロジックが必要な場合にコピーして修正。
重要な制約
-
Salesforce CLI と Salesforce org のみを使用してください。 他のスキル、MCP サーバー、または外部ツールを参照または依存しないでください。すべてのコマンドは
sf(Salesforce CLI) を使用します。 -
特定のバッキング ロジック タイプのみがアクション向けに有効です。 たとえば、invocable Apex (任意の Apex クラスではなく) のみがアクションをバッキングできます。Flow と Prompt Template に同様の制約が適用される場合があります。アクションをバッキング ロジックに接続する場合、設計と Agent Spec リファレンス ファイルで有効なタイプとスタブ化方法論を参照してください。
-
sf agent generate test-specはエージェント用ではありません。 これは人間向けに設計されたインタラクティブな REPL スタイル コマンドです。テスト仕様を作成するときは、アセット内のボイラープレート テンプレートから開始してください。
一般的な問題クイック リファレンス
公開時の Internal Error, try again later:
無効または欠落している default_agent_user。設計と Agent Spec のセクション 3 からクエリを再実行します。ユーザー名を作成しないでください。
プレビュー時の Unable to access Salesforce Agent APIs...:
default_agent_user はアクセス許可を欠きます。Agent ユーザー セットアップと アクセス許可 を参照してください。--use-live-actions は公開されたエージェントを必要としないため、修正として公開しないでください。
設定されたユーザー名と異なるユーザー名を参照するパーミッション エラー: 上記と同じ修正 — エラーは org のデフォルト実行ユーザーを参照していますが、ルート原因は Einstein Agent User アクセス許可です。
現在のサブエージェントのアクションが機能していても、エージェントがパーミッション エラーで失敗: Planner はスタートアップですべてのサブエージェントのすべてのアクションを検証します。1 つの欠落したアクセス許可がエージェント全体を失敗します。
Live プレビューでは Apex アクションが空の結果を返すが、シミュレートでは機能:
WITH USER_MODE + オブジェクト アクセス許可の欠落 = silent failure (0 行、エラーなし)。Agent ユーザー セットアップと アクセス許可、セクション 6.2 を参照してください。
構文クイック リファレンス
- ブロック順序:
system:→config:→variables:→connection:→knowledge:→language:→start_agent agent_router:→subagent:ブロック - インデント: インデント レベルごとに 4 スペース。タブを使用しないでください。スペースとタブの混合はパーサーを破壊します。
- ブール値:
True/False(大文字) - 文字列: 常にダブル クォート
- 数値 action I/O: 変数では
numberが機能しますが、公開で失敗します。数値 action パラメータにobject+complex_data_type_nameを使用してください。複雑なデータ型で完全な判定木を参照してください。 after_reasoning:は NOinstructions:ラッパーを持つelse ifなし —if x and y:の複合またはシーケンシャル フラット ifs を使用- 予約された
@InvocableVariable名:model、description、label— Apex パラメータ名として使用できません @inputsと@outputsはエフェメラル:@inputsはwithでのみ;@outputsはアクション直後のset/ifでのみ。setの@inputs= silent failure。
複雑なデータ型向けの完全な Lightning 型マッピング判定木については 複雑なデータ型 を参照してください。3 フェーズ ランタイム モデルについては Instruction Resolution を参照してください。
アーキテクチャ パターン
3 つの主要な FSM パターン。コード付きの詳細は アーキテクチャ パターン にあります。
- Hub-and-Spoke (最も一般的):
start_agentが専門サブエージェントにルーティング。各サブエージェントは「ハブに戻る」遷移を持つ。個別ルーティング サブエージェントを作成しないでください。 - Verification Gate: 保護されたサブエージェントの前のアイデンティティ検証。保護された遷移の
available whenガード。 - Post-Action Loop: アクション完了後の再解決でトリガーする
instructions: ->トップの post-action チェック。
スコーリング ルーブリック
7 つのカテゴリに対して 100 ポイントで生成されたすべてのエージェントをスコアリング: Structure (15)、Safety (15)、Deterministic Logic (20)、Instruction Resolution (20)、FSM Architecture (10)、Action Configuration (10)、Deployment Readiness (10)。
完全なルーブリックについては スコーリング ルーブリック を参照してください。
Review Mode
ユーザーが既存の .agent ファイルを提供するとき (例えば、review path/to/file.agent):
- ファイルを読む
- 100 ポイント ルーブリックに対してスコアリング
- カテゴリごとにグループ化されたすべての問題をリスト
- 修正されたコード スニペットを提供
- 修正を適用することを提案
Safety Review
.agent ファイル向けの 7 カテゴリ LLM 駆動型 safety review
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- forcedotcom
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/forcedotcom/afv-library / ライセンス: Apache-2.0
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。