mcpField
S
sf-ai-agentscript

sf-ai-agentscript

github.com/jaganproエージェントワークフロー4241.4k 回インストール26 週間前に更新
リポジトリ

sf-ai-agentscript について

sf-ai-agentscriptは、`.agent` ファイルでAgentforceの決定論的なエージェントを作成・検証するスキルです。明示的なトピックルーティング、状態遷移、制御された公開手順を必要とするチーム向けです。

主な機能

  1. 01`.agent` ファイルの作成と編集
  2. 02有限状態のトピックフロー設計
  3. 03構文と組織の準備状況の検証
  4. 04エージェントのプレビュー、公開、有効化
  5. 05有効化と安全性のチェック

活用シーン

  1. 01必須のルーティング条件を持つエージェントの構築
  2. 02公開前の`.agent`ファイル確認
  3. 03プレビューや公開の問題の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jaganpro/sf-skills --skill sf-ai-agentscript

インストール後、Claude Code で/sf-ai-agentscriptを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
bundle-meta.xml
deterministic-routing.agent
escalation-pattern.agent
flow-action-lookup.agent
hub-and-spoke.agent
minimal-starter.agent
assets/agents/
hello-world-employee.agent
hello-world.agent
multi-topic.agent
production-faq.agent
production-faq.bundle-meta.xml
README.md
simple-qa.agent
assets/apex/
models-api-queueable.cls
assets/components/
apex-action.agent
error-handling.agent
escalation-setup.agent
flow-action.agent
n-ary-conditions.agent
topic-with-actions.agent
assets/metadata/
basic-genai-prompt-template.genAiPromptTemplate-meta.xml
genai-function-apex.xml
genai-function-flow.xml
genai-plugin.xml
http-callout-flow.flow-meta.xml
record-grounded-genai-prompt-template.genAiPromptTemplate-meta.xml
assets/patterns/
action-callbacks.agent
advanced-input-bindings.agent
bidirectional-routing.agent
critical-input-collection.agent

詳細

SF-AI-AgentScript スキル

Agent Script は、決定性の高い Agentforce エージェントを実現するためのコードファーストな方法です。ユーザーが .agent ファイルを作成している場合、有限状態のトピックフローを構築している場合、またはルーティング、変数、アクション、公開動作を再現可能な形で制御する必要がある場合に、このスキルを使います。

まず、最も短いガイドから始めてください:references/activation-checklist.md

Builder UI から移行しますか?references/migration-guide.md を使ってください。

このスキルが担当するタスク

次の作業には sf-ai-agentscript を使います。

  • .agent ファイルの作成または編集
  • 決定性の高いトピックルーティング、ガード、遷移
  • Agent Script CLI のワークフロー(sf agent generate authoring-bundle、sf agent validate authoring-bundle、sf agent preview、sf agent publish authoring-bundle、sf agent activate)
  • スロットの入力、指示の解決、アクション後のループ、または FSM の設計

ユーザーが次の作業をしている場合は、ほかに引き継ぎます。

  • Builder メタデータエージェント(GenAiFunction、GenAiPlugin、GenAiPromptTemplate、Models API、カスタム Lightning タイプ)の保守 → sf-ai-agentforce
  • ペルソナ/トーン/声の設計 → sf-ai-agentforce-persona
  • 正式なテスト計画やカバレッジループの作成 → sf-ai-agentforce-testing

ユーザーが Builder Script/Canvas ビューを使っていても、成果物が .agent オーサリングバンドルであれば、作業は sf-ai-agentscript で続けてください。


適切な決定性の設定

  • 決定性は目的地ではなく、調整するものです。
  • 「おおむね正しい」では許容されない場合、つまりゲート、必須の順序、明示的な状態遷移、コンプライアンス、またはドリフト制御が必要な場合は、Agent Script を使います。
  • ワークフローが完全に静的で直線的な場合は、会話をスクリプト化するのではなく Flow または Apex を使います。
  • 決定性のある枠組みを優先してください。決定性のある開始/ゲート → 柔軟な中盤 → 決定性のある終了処理とします。
  • 決定性を高めれば自動的に良くなるわけではありません。まず最小限から始め、ルーティングのドリフト、順序の失敗、またはコンプライアンスリスクが見られる部分だけを強化してください。

最初に確認する必須コンテキスト

次の点を確認するか、推測してください。

  • エージェントの目的と、Agent Script が本当に適切かどうか
  • Service Agent と Employee Agent のどちらか
  • 対象組織と公開の意図
  • 想定するアクション/対象(Flow、Apex、PromptTemplate など)
  • 依頼がオーサリング、検証、プレビュー、または公開のトラブルシューティングのどれに当たるか

有効化チェックリスト

.agent ファイルを作成または修正する前に、まず次の点を確認してください。

  1. start_agent ブロックがちょうど 1 つである
  2. タブとスペースを混在させない
  3. ブール値は True/False にする
  4. else if とネストした if を使わない
  5. トップレベルの actions: ブロックを使わない
  6. set 式で @inputs を使わない
  7. linked 変数にデフォルト値を設定しない
  8. linked 変数に object/list 型を使わない
  9. 明示的な agent_type を使う
  10. @actions. プレフィックスを一貫して使う
  11. run @actions.X を使うのは、target: を持つトピックレベルのアクション定義が X の場合に限る
  12. インテントのルーティングに、@system_variables.user_input contains/startswith/endswith の生の値を直接使って分岐しない
  13. プロンプトテンプレートの出力では、is_displayable: False と is_used_by_planner: True の組み合わせを優先する
  14. @outputs.X がスカラー値だと決めつけない。分岐や代入の前に出力スキーマを確認する

詳細版は references/activation-checklist.md を使ってください。


絶対に守るべきルール

1) Service Agent と Employee Agent
エージェントタイプ必須事項禁止事項/注意事項
AgentforceServiceAgent有効な default_agent_user、適切な権限、対象組織の確認、sf org create agent-user を優先する実在する Einstein Agent User がいない状態で公開しない
AgentforceEmployeeAgent明示的な agent_typedefault_agent_user を指定しない

詳細:references/agent-user-setup.md

2) 推奨されるトップレベルブロックの規約

このスキルの例やレビューでは、一貫性を保つために次の順序を使用してください。

config:
variables:
system:
connection:
knowledge:
language:
start_agent:
topic:

Salesforce の公式資料ではトップレベルブロックの順序が異なっており、ローカルでの検証結果からも複数の順序でコンパイルできることが示されています。これはスタイル上の規約として扱い、単独で正誤を判断したり、公開を妨げたりするものではありません。

3) 重要な設定フィールド
フィールドルール
developer_nameフォルダー名/バンドル名と一致させる必要があります
description公開ドキュメント/例では、この設定フィールドを使用してください
agent_type毎回明示的に設定してください
default_agent_userService Agents のみ

ローカルのツールでは互換性のために agent_description: も使用できますが、このスキルの公開ドキュメントや例では description: を優先してください。

4) 即時エラーとして扱うべき構文上のブロッカー
  • else if
  • ネストされた if
  • コメントのみの if 本体
  • トップレベルの actions:
  • 呼び出しレベルの inputs:/outputs: ブロック
  • description や label などの予約済み変数/フィールド名

標準ルールセット:references/syntax-reference.md および references/validator-rule-catalog.md


推奨ワークフロー

推奨される作成ワークフロー

フェーズ 1 — エージェントを設計する
  • 問題が Agent Script にとって本当に十分な決定性を備えているか判断します
  • トピックを状態、遷移をエッジとしてモデル化します
  • 本当に必要な変数のみを定義します
フェーズ 2 — .agent を作成する
  • まず config、system、start_agent、トピックを作成します
  • 完全な inputs: と outputs: を含む、ターゲットに紐づいたアクションを追加します
  • 決定論的なツールの表示には available when を使用します
  • 分岐の前に、生の意図/検証シグナルをブール値または列挙型に正規化します。重要な制御フローで、ユーザーの生の発話に対する直接的な部分文字列チェックは避けてください
  • アクション後のチェックは instructions: -> の 先頭 に配置します
デフォルトの作成方針
  • ソース管理で .agent を直接作成、編集する方法をデフォルトにします。
  • ユーザーがローカルでのバンドルのひな形作成を希望する場合にのみ、sf agent generate authoring-bundle --no-spec を使用します。
  • sf agent generate agent-spec は、デフォルトのワークフローではなく、任意のアイデア出し/トピックのひな形作成として扱います。
  • Agent Script のユーザーを sf agent create や sf agent generate template に誘導しないでください。
フェーズ 3 — 継続的に検証する

検証は書き込み/編集時にすでに自動実行されます。公開前に CLI を使用してください。

sf agent validate authoring-bundle --api-name MyAgent -o TARGET_ORG --json

バリデーターは、構造、実行時の注意点、ターゲットの準備状況、組織を考慮した Service Agent のチェックをカバーします。ルール ID は references/validator-rule-catalog.md にあります。

フェーズ 4 — プレビューのスモークテスト

公開前にプレビューのループを使用してください。

  • スモークテスト用の発話を 3~5 個導き出します
  • start/send/end サブコマンドを使用してプレビューを開始します。sf agent preview のみで実行しないでください
  • --authoring-bundle を使用する場合は、必ずモードを明示的に選択します。--simulate-actions または --use-live-actions を指定してください
  • トピックのルーティング/アクション呼び出し/安全性/グラウンディングを確認します
  • 修正して、最大 3 回まで再実行します

ループの全体:references/preview-test-loop.md

フェーズ 5 — 公開して有効化する
sf agent publish authoring-bundle --api-name MyAgent -o TARGET_ORG --json

# Manual activation
sf agent activate --api-name MyAgent -o TARGET_ORG

# CI / deterministic activation of a known BotVersion
sf agent activate --api-name MyAgent --version <n> -o TARGET_ORG --json

公開しても、エージェントは有効化されません。 自動化では、決定論的で機械可読な有効化を実現するために、--version <n> --json を優先してください。

決定論的な構成要素

これらは提案ではなく、コードとして実行されます。

  • 条件分岐
  • available when ガード
  • 変数チェック
  • 直接の set / transition to
  • run @actions.X:X がトピックレベルの target: を持つアクション定義である場合のみ
  • LLM 向けテキストへの変数の挿入

重要な違い:

  • 決定論的:set、transition to、およびトピックアクションを対象とする run @actions.X
  • LLM による指示:reasoning.actions: のユーティリティ/委任(@utils.setVariables、@utils.transition、{[email protected]} の指示参照など)

現在、推論レベルのユーティリティとしてモデル化されているものに決定論的な動作が必要な場合は、次のいずれかを行います。

  • 直接の set / transition to に書き換える、または
  • トピックレベルの対象を持つアクションに昇格させ、そのアクションを run する

references/instruction-resolution.md と references/architecture-patterns.md を参照してください。


スキル間の統合

スキル間のオーケストレーション

タスク委任先理由
flow:// ターゲットを構築するsf-flowフローの作成/検証
Apex アクションターゲットを構築するsf-apex@InvocableMethod とビジネスロジック
トピックのルーティング/アクションをテストするsf-ai-agentforce-testing正式なテスト仕様と修正ループ
デプロイ/公開するsf-deployデプロイのオーケストレーション

重要度の高い失敗パターン

症状考えられる原因次に読むドキュメント
公開中に Internal Error が発生するService Agent ユーザーが無効、またはアクションの I/O が不足しているreferences/agent-user-setup.md, references/actions-reference.md
プロンプトテンプレートアクションで invalid input/output parameters が発生する対象テンプレートが Draft ステータスです — まず有効化してくださいreferences/action-prompt-templates.md
パーサーが条件分岐を拒否するelse if、ネストされた if、空の if 本体references/syntax-reference.md
アクションのターゲットに関する問題Flow / Apex ターゲットがない、Flow が非アクティブ、スキーマが不正references/actions-reference.md
プロンプトテンプレートは実行されるが、ユーザーには空の応答が表示されるプロンプト出力が is_displayable: True に設定されているreferences/production-gotchas.md, references/action-prompt-templates.md
プロンプトアクションは実行されるが、プランナーが出力を未設定として扱う出力は直接表示されないよう隠されているが、プランナーからは見えるreferences/production-gotchas.md, references/actions-reference.md
run @actions.X で ACTION_NOT_IN_SCOPE が発生するrun がトピックレベルのターゲット対応定義ではなく、ユーティリティ / 委任 / 未解決のアクションを参照しているreferences/syntax-reference.md, references/instruction-resolution.md
決定論的なキャンセル / 修正 / URL チェックの動作に一貫性がない生の @system_variables.user_input マッチング、または文字列メソッドのガードを制御フロー上重要な検証に使用しているreferences/syntax-reference.md, references/production-gotchas.md
@outputs.X の比較や代入が予期しない動作をするアクション出力が単純なスカラーではなく、構造化またはラップされているreferences/actions-reference.md, references/syntax-reference.md
プレビューと実行時の結果が一致しないリンクされた変数 / コンテキスト / 既知のプラットフォームの問題references/known-issues.md
検証は通るが公開に失敗する組織固有のユーザー / 権限 / 再取得に関する問題references/production-gotchas.md, references/cli-guide.md

リファレンスマップ

まずはこちら
公開 / 実行時の安全性
アーキテクチャ / 推論
検証 / テスト / デバッグ
Examples / scaffolds
Project documentation

Score Guide

ScoreMeaning
90+Deploy with confidence
75–89Good, review warnings
60–74Needs focused revision
< 60Block publish

Full rubric: references/scoring-rubric.md


Official Resources

コメント