Customize a Service Agent with Prompts, Flows, and Actions



https://trailhead.salesforce.com/content/learn/projects/customize-a-service-agent-with-prompts-flows-and-actions?trail_id=become-an-agentblazer-innovator

# Get Agent-Ready

何もしないで検証ボタンをクリック

:::note alert
Einstein Setup is not enabled.
:::

AgentもONにした後で検証ボタンをクリックする

:::note alert
Make sure you have updated the EinsteinServiceAgent User Company’s name to Coral Cloud Resorts.
:::

# Update a Flow, Agent Action, and Topic

エージェントに関して言えば、トピックは特定のジョブに関連するアクションのカテゴリであり、これらのアクションによってエージェントの行動が決まります。アクションは、フロー、プロンプト テンプレートなどに基づいて作成できます。

基本的に、トピックにはアクションが含まれており、アクションはフローを使用してタスクを実行できます。また、トピック、アクション、フローは最初に作成されて接続された後でも、いつでも編集または更新できます。

何もしないで検証ボタンをクリック

:::note alert
Make sure Get Experience Details flow has been saved as a new version.
:::


価格が含まれているようには見えないけど...

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/3ffc93f2-153c-4e5b-a1d2-f388b4768bf9.png)

あああ、次の質問で詳細が出るんだな

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/dd5e873f-ea44-445f-9f2f-698c9e3c64b5.png)


+ [Agentforce Innovator Challenge - Update a Flow, Agent Action and Topic](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX000000WubH0AS)


# トピックの中にあるInstructions


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/bc0b497b-0e21-4b2f-a537-7505de55c215.png)

Instructions help an agent make decisions about how to use the actions in a topic for different use cases. For example, ask an agent to collect clarifying information before running an action. Or tell an agent how to choose between different actions.

指示は、エージェントがさまざまなユースケースでトピック内のアクションをどのように使用するか決定するのに役立ちます。たとえば、アクションを実行する前にエージェントに明確な情報を収集するように依頼します。または、エージェントにさまざまなアクションの選択方法を伝えます。


The following instructions are used to run this topic.
このトピックを実行するには、次の手順を使用します。

+ Convert the date to YYYY-MM-DD format before using it for the 'Get Sessions'. action

「セッションの取得」アクションで使用する前に、日付を YYYY-MM-DD 形式に変換します。

+ If a customer would like more information on Activities or Experiences, you should run the action '**Get Experience Details**' and then summarize the results with improved readability. Always ensure you know the customer before running this action.

顧客がアクティビティや体験に関する詳細情報を希望する場合は、「体験の詳細を取得」アクションを実行し、読みやすく結果を要約する必要があります。このアクションを実行する前に、必ず顧客について理解していることを確認してください。

+ If asked about an experience’s Name, Description, Activity Level, Type or Price, then call the **Get_Experience_Details** action.

体験の名前、説明、アクティビティ レベル、タイプ、または価格について尋ねられた場合は、Get_Experience_Details アクションを呼び出します。

**これは後から追加したけど、入力した順番ではないみたいですね。**

+ If asked to book, use the action '**Create Booking**'. The Contact__c is the contact ID from the 'Get Customer Details'. The Session__c is the ID of the session from the action '**Get Sessions**'. If multiple sessions are present ask to select one of the sessions and use that Session as the ID for the Session__c. Prompt for the Number of Guests and use that for the Number_of_Guests__c.

予約を求められた場合は、「予約の作成」アクションを使用します。Contact__c は、「顧客の詳細を取得」からの連絡先 ID です。Session__c は、「セッションを取得」アクションからのセッション ID です。複数のセッションが存在する場合は、セッションの 1 つを選択するように求め、そのセッションを Session__c の ID として使用します。ゲストの数を尋ね、それを Number_of_Guests__c に使用します。

+ If asked to get sessions for the experience use the '**Get Sessions**' action. Ask for the date of the sessions if not provided. Use the Id of the Experience__c from the 'Get Experience Details'.

エクスペリエンスのセッションを取得するように求められた場合は、「セッションの取得」アクションを使用します。セッションの日付が指定されていない場合は、日付を尋ねます。「エクスペリエンスの詳細の取得」からエクスペリエンスの ID__c を使用します。

+ If the customer is not known, you must always ask for their email address and their membership number. Get their Contact record by running the action '**Get Customer Details**' before running any other actions.

顧客が不明な場合は、必ず電子メール アドレスと会員番号を尋ねる必要があります。他のアクションを実行する前に、「顧客の詳細を取得」アクションを実行して、顧客の連絡先レコードを取得します。


このトピックのアクションの一覧。
使えるものが出ているんだろうな。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/de8265d1-d6ef-4b99-9f87-783a0e8ac44a.png)

# ベストプラクティス

プロンプト テンプレートを検討する前に、覚えておくべきベスト プラクティスをいくつか紹介します。

### ガードレール言語

+ 「すべき」ではなく「しなければならない」を使う
+ 強い命令には「厳密に」を使う
+ ガードレールを「[動詞を挿入]する必要があります」のようにフォーマットします
+ 一貫性を保ちたいときは「常に」を使う
+ 「しない」や「やめる」などの強い動詞を使う
+ 絶対的なガードレールには「決して」を使用する

### コンテンツに関する考慮事項

+ コンテンツの長さを制御するには、「[文字数を挿入]以内」を使用します
+ 新しいコンテンツを指導する際に、LLMに良いコンテンツの例をいくつか挙げる
+ 新しいコンテンツを追加するときにプロンプ​​トでセクションを ### または “”” で開始します
+ 「創造的になりましょう」と言って、LLMに多様性を持たせることを奨励する
+ URLを(SLOT-PLACEHOLDER)の形式で挿入します。
+ 新しいコンテンツを追加するときは、「データソースを決して公開しないでください」と書いてください。

### 避けるべきこと

+ プロンプトにデフォルト値を指定して、マージフィールドのヌル値に対するガードレールを作成します。
+ 「間接的に」「微妙に」「伝える」という言葉はモデルが理解できないので使用しないでください。


# エラー

+ [Copilot Version cannot be activated. Copilot services are still being provisioned for this organization.](https://qiita.com/Keiji_otsubo/items/9795518042a31cd0298c)