Skip to main content

Agentforce を䜿甚しおアプリケヌションを修正する

メモ

メモ

日本語で受講されおいる方ぞ
Challenge は日本語の Trailhead Playground で開始し、かっこ内の翻蚳を参照しながら進めおいっおください。Challenge での評䟡は英語デヌタを察象に行われるため、英語の倀のみをコピヌしお貌り付けるようにしおください。日本語の組織で Challenge が䞍合栌だった堎合は、(1) この手順に埓っお [Locale (地域)] を [United States (米囜)] に切り替え、(2) [Language (蚀語)] を [English (英語)] に切り替えおから、(3) [Check Challenge (Challenge を確認)] ボタンをクリックしおみるこずをお勧めしたす。

翻蚳版 Trailhead を掻甚する方法の詳现は、自分の蚀語の Trailhead バッゞを参照しおください。

Agentforce Adventure Tools (Agentforce アドベンチャヌツヌル) アプリケヌション

この特別な Playground には、テヌブルトップ RPG (ロヌルプレむングゲヌム) キャンペヌン甚の Quick Dice Roller (クむックダむスロヌラヌ) が搭茉されおいる Agentforce Adventure Tools (Agentforce アドベンチャヌツヌル) ずいうカスタムコンパニオンアプリケヌションが含たれおいたす。

これは、Playground でダむスロヌラヌを䜿甚できる軜量のサンプルアプリケヌションです。このアプリケヌションでは、コマンドでダむス (サむコロ) を振り、補正倀 (魔法装備や呪文の効果など) を加え、クリティカルをトリガヌする栄光のナチュラル 20 を出せるかを詊すこずができたす。

テヌブルトップ RPG では、クリティカルは結果が非垞に良い (たたは悪い) ダむスロヌルのこずです。倚くの堎合、決定的成功のクリティカルヒット、たたは特にひどい結果の臎呜的倱敗ずなりたす。このアプリケヌションでは、ダむスで最倧の目が出たずきのみ、クリティカルヒットずカりントされたす。

すべおのロヌルは「Dice Roll」(ダむスロヌル) ずいう名前のカスタムオブゞェクト (Dice_Roll__c) のアドベンチャヌログに远加され、埌で自慢できるように、衚蚘法、総蚈、クリティカルフラグ、結果が保存されたす。キャラクタヌのランダムな運呜が蚘録されたシヌトのようなものず考えおください。

RPG では、このようなサヌビスによっおダむスのメカニズムが凊理されたす。ルヌルの適甚によりク゚ストの公平性が保たれ、すべおの冒険のダむスロヌルを蚘録するこずができるようになりたす。

Salesforce の Agentforce Adventure Tools (Agentforce アドベンチャヌツヌル) アプリケヌションのスクリヌンショット。

Note

画面の倧きさによっおは、すべおの結果を衚瀺するためにスクロヌルダりンするこずが必芁になる堎合がありたす。

ダむスロヌルの補正倀を蚭定し、ダむスをロヌルするナヌザヌを遞択し、䞀般的なダむス (たずえば、D4 は 4 面のダむス、D6 は 6 面のダむス) をワンタップでロヌルできたす。各ロヌルの明確な総蚈、クリティカルのコヌルアりト、結果の敎然ずした履歎が瀺されたす。ダむスロヌルで順番を決め、D20 を投げお、望みどおりにクリティカルが出るよう祈りたしょう。

その内郚では、シンプルな Apex コントロヌラヌず Lightning Web コンポヌネントが組み合わされおいたす。Agentforce からのコヌド提案やリファクタリングのサポヌトを確認するのにうっお぀けです。孊習の間は冒険の拠点ずしお䜿甚し、埌で各自のキャンペヌンに合わせおカスタマむズしおください。

ミッション: いく぀かのコヌドを曎新した埌で、ほかの開発者が、Quick Dice Roller (クむックダむスロヌラヌ) が正垞に動䜜しおいないこずに気づきたした。頌りになる Agentforce を䜿甚しお、バグを芋぀け出し、コヌドを調敎しお、ダむスロヌルのバランスを取り戻す必芁がありたす。

いざ冒険ぞ!

  1. Playground でブラりザヌタブに戻りたす。再びログむンを求められたら、ログむン情報を䜿甚しおログむンしたす。
  2. アプリケヌションランチャヌ をクリックしお、アプリケヌションランチャヌを開き、[Agentforce Adventure Tools (Agentforce アドベンチャヌツヌル)] を怜玢しお遞択したす。
  3. [Quick Dice Roller (クむックダむスロヌラヌ)] ペヌゞで、任意のダむスロヌルボタンをクリックしたす。たずえば、[D20] セクションで、[1 D20] ボタンをクリックしたす。
  4. ロヌルが保存されたこずを䌝えるトヌストメッセヌゞが珟れたすが、合蚈が未定矩ず衚瀺されたす。

Salesforce の成功バナヌのスクリヌンショット。

合蚈が未定矩であるだけではなく、各タむルに瀺されおいる倀の曞匏も正しくありたせん。最終的な合蚈が蚈算されおいないか、適切に衚瀺されおいたせん。

ロヌルの合蚈倀ず総蚈倀がない Agentforce Adventure Tools (Agentforce アドベンチャヌツヌル) ダむスロヌラヌの D20 タむルのスクリヌンショット。

さっそく調査したしょう。朜䌏堎所のIDE タブに戻りたす。Note

この Developer Edition 組織では、Agentforce の芁求数に制限がありたす。独自のプロンプトを詊す前に、このバッゞの手順を完了しおください。远加のプロンプトで制限を䜿い切り、プロゞェクトを完了できなくなる可胜性がありたす。

Agentforce を䜿甚しおアプリケヌションを修正する

たず、Playground に接続されたたたであるこずを確認したす。

sf org display や sf org list ずいったコマンドを実行できたすが、 もっず楜しく、簡単に始められるようにするために、Agentforce に尋ねるこずにしたす。

  1. [Agentforce Vibes] タブが開いた状態で、スクロヌルダりンしお [Agentforce] パネルの [Start a New Task (新しいタスクを開始)] をクリックしたす。
  2. 次のプロンプトを䜿甚しお、結果を瀺すよう Agentforce に指瀺したす: What is the username of the Salesforce Org I'm currently connected to? (珟圚接続しおいる Salesforce 組織のナヌザヌ名は䜕ですか?)
  3. Enter/Return キヌを抌したす。メモ: Agentforce が芁求を実行できるように、コマンドの承認を求められたら、承認したす。
Note

プロンプトを完了するために、いく぀かのアクションが実行される堎合がありたす。耇数回コマンドを承認するこずが必芁になる堎合がありたす。ボタンのラベルはアクションによっお異なる可胜性がありたす。最終的な出力が芁求を満たしおいれば、その出力が、予想される適切な結果です。

タスクの結果にナヌザヌ名が衚瀺されたす。その正しい Playground に接続しおいない堎合、倉曎しおデフォルト組織を開きたす。

ヒヌロヌである゜ヌスを衚瀺する

  1. ゚クスプロヌラヌアむコンをクリックしお、ファむル゚クスプロヌラヌビュヌを開きたす。ファむル゚クスプロヌラヌビュヌを開くもう 1 ぀の方法は、Ctrl+Shift+E キヌ (Windows) たたは Cmd+Shift+E キヌ (macOS) を抌すこずです。

匷調衚瀺されおいるファむル゚クスプロヌラヌアむコン。

  1. プロゞェクトのルヌトディレクトリに [manifest] ずいう名前のフォルダヌがあり、[package.xml] ファむルが含たれおいるかどうかを確認したす。メモ: プロゞェクトのルヌトフォルダヌに [manifest] フォルダヌがない堎合は远加する必芁がありたす。
    • [dx-project] フォルダヌが匷調衚瀺されおいるこずを確認し、新芏フォルダヌボタンをクリックしたす。

匷調衚瀺された新芏フォルダヌボタン。

    • 新しいフォルダヌに manifest ずいう名前を付けたす。
    • [manifest] フォルダヌが遞択された状態で、新芏ファむルボタンをクリックしお package.xml ずいう名前を付けたす。

匷調衚瀺された新芏ファむルボタン。

  1. manifest/package.xml ファむルの内容を次のコヌドで眮き換えたす。
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
   <types>
       <members>DiceRollService</members>
       <members>DiceRollServiceTest</members>
       <name>ApexClass</name>
   </types>
   <types>
       <members>Agentforce_Adventure_Tools</members>
       <name>CustomApplication</name>
   </types>
   <types>
       <members>Dice_Roll__c</members>
       <name>CustomObject</name>
   </types>
   <types>
       <members>Adventure_Tools</members>
       <members>Dice_Roll__c</members>
       <name>CustomTab</name>
   </types>
   <types>
       <members>Agentforce_Adventure_Tools_Landing</members>
       <members>Agentforce_Adventure_Tools_UtilityBar</members>
       <name>FlexiPage</name>
   </types>
   <types>
       <members>diceRoller</members>
       <name>LightningComponentBundle</name>
   </types>
   <version>64.0</version>
</Package>
  1. 保存するには、巊䞊隅にある 3 本の線のアむコン ファむルメニュヌアむコン。 をクリックし、[File (ファむル)] > [Save (保存)] を遞択したす。保存するもう 1 ぀の方法は、Ctrl+S キヌ (Windows) たたは Cmd+S キヌ (macOS) を抌すこずです。
Note

画面に埓っお、[Start New Task (新しいタスクを開始)] ボタンが䜿甚できない堎合は、コマンドパレットから [Developer: Reload Window (開発者: りィンドりを再読み蟌み)] を実行し、ステップを再床実行したす。

  1. Agentforce アむコン Agentforce Vibes アむコン を再びクリックしおりィンドりを開きたす。
  2. [Start New Task (新しいタスクを開始)] ボタンをクリックしたす。
  3. 次のプロンプトを䜿甚しお、組織から゜ヌスを取埗するよう Agentforce に指瀺したす: Please retrieve the source from my default org based on the manifest file (manifest ファむルに基づいおデフォルト組織から゜ヌスを取埗しおください)
  4. Enter/Return キヌを抌したす。メモ: コマンドの承認を求められたら、承認しおデフォルト組織を䜿甚したす。
    • たたは、コマンドパレットから次のコマンドを実行するこずもできたす: SFDX: Retrieve Source in Manifest from Org (SFDX: 組織からマニフェストの゜ヌスを取埗)
  5. クラスず LWC ファむルが衚瀺されおいるこずを確認したす。
    • ゚クスプロヌラヌビュヌを開きたす。
    • ルヌトディレクトリの force-app フォルダヌを展開したす。
    • /force-app/main/default/classes ずいう名前のサブフォルダヌに DiceRollService クラスが含たれおいるこずを確認したす。
    • /force-app/main/default/lwc ずいう名前のサブフォルダヌに diceRoller ずいう Lightning Web コンポヌネントのファむルが含たれおいるこずを確認したす。

組織からファむルが取埗されおいる堎合、準備完了です。

Note

Agentforce は AI で駆動し、匷力な味方になれたすが、完璧ではありたせん。時には、正しくないコヌドやステップを提案するこずがありたす。必ず、出力を慎重に確認し、自分自身で刀断を行い、゜リュヌションをテストしおから䜿甚しおください。

Agentforce を䜿甚しおコヌドの曞匏を敎える

Apex コヌドの曞匏蚭定が少しおかしいようです。Agentforce を呌び出しお、読みやすさず䞀貫性が向䞊するようにコヌドを適切な曞匏に敎えたしょう。

  1. 䞊郚にある dx-project 怜玢バヌをクリックしたす。

dx-project 怜玢バヌ。

  1. DiceRollService.cls ず入力し、Enter/Return キヌを抌しお遞択したす。
  2. メモ: /force-app/main/default/classes フォルダヌにあるファむルです。
  3. アクティビティバヌにある Agentforce アむコン Agentforce Vibes アむコン をクリックしたす。
  4. [Start New Task (新しいタスクを開始)] ボタンをクリックしたす。
  5. Agentforce にコヌドの曞匏を敎えるよう指瀺したす。次のプロンプトをコピヌしお入力ボックスに貌り付けたす: Please format the DiceRollService class using prettier-plugin-apex. If the plugin is not installed, install it using npm and then use the npx prettier --write command. (prettier-plugin-apex を䜿甚しお DiceRollService クラスの曞匏を敎えおください。プラグむンがむンストヌルされおいない堎合は、npm を䜿甚しおむンストヌルしおから npx prettier --write コマンドを䜿甚しおください。)
  6. Enter/Return キヌを抌したす。[Allow (蚱可)]、[Run Command (コマンドを実行)]、[Proceed While Running (実行䞭に続行)]、[Yes, proceed (はい、続行したす)] のクリックを求められたら、クリックしたす。数回クリックするこずが必芁になる堎合がありたす。
Note

Agentforce で䞀時的に譊告や゚ラヌが衚瀺されるこずがありたす。これは Agentforce の非決定的な動䜜の䞀郚で想定内です。タスクに取り組んでいる人間の開発者のように、さたざたな手法を詊行した結果、譊告や゚ラヌがトリガヌされる堎合がありたす。最終的な出力が芁求を満たしおいる限り、問題ありたせん。

  1. Agentforce が提案したコマンドを確認したす。Prettier コヌドフォヌマッタヌの基本ルヌルが䜿甚されおいたす。詳现は、Salesforce 拡匵機胜に関するドキュメントを参照しおください。
  2. [Problems (問題)] タブに衚瀺されおいる問題は無芖したす。
  3. すべおが正しいこずを再確認し、Ctrl+S キヌ (Windows) たたは Cmd+S キヌ (macOS) を䜿甚しおクラスを保存したす。

Agentforce を䜿甚しおバグを修正する

では、バグを修正したしょう。

  1. Agentforce りィンドりで、[Start New Task (新しいタスクを開始)] ボタンをクリックしたす。
  2. 次のプロンプトをコピヌしお、入力ボックスに貌り付けたす:
The diceRoller LWC is not displaying the total sum of all dice rolls or indicating whether a roll was a critical hit.
Please help me identify and fix the issue. This component uses the DiceRollService Apex class.
I suspect the problem may be related to the visibility of fields in the RollResult inner class. Don't add debug logs, investigate the issue with the variables in the RollResult subclass to make sure they have the appropriate aura annotations for continuation. I'm pretty sure the problem is in those variables, in the Apex class. Not in the LWC. Important: keep the changes inside the RollResult class. Finally, after the changes are accepted, run the command npx prettier --write again to adjust the indentation.

3. Enter/Return キヌを抌しお、Agentforce の応答を確認したす。

Note

Agentforce は AI で駆動し、匷力な味方になれたすが、完璧ではありたせん。時には、正しくないコヌドやステップを提案するこずがありたす。必ず、出力を慎重に確認し、自分自身で刀断を行い、゜リュヌションをテストしおから䜿甚しおください。

提案が正確ではない堎合や、゚ラヌメッセヌゞが衚瀺された堎合、たたは問題が解決されない堎合は、応答を华䞋しお Agentforce に再床詊すよう芁求しおみおください。芁求の凊理に時間がかかりすぎる堎合、[Developer: Reload Window (開発者: りィンドりを再読み蟌み)] を実行しお、再床ステップを実行するこずもできたす。

Agentforce で DiceRollService クラスの倉曎が詊行されたす。修正案を含む分割画面が衚瀺される堎合がありたす。

Agentforce による DiceRollService クラスの提案が含たれおいる暪䞊びの画面のスクリヌンショット。

Agentforce が問題を発芋しお修正し、そのクラスに問題がなければ、倉曎を受け入れたす。[Save (保存)] および [Run Command (コマンドを実行)] のクリックを求められたら、クリックしたす。ファむルの保存は、Ctrl + S キヌ (Windows) たたは Cmd + S キヌ (macOS) を抌しお手動で行うこずもできたす。

次は、倉曎をリリヌスしたす。

  1. Agentforce りィンドりでスクロヌルダりンし、[Start New Task (新しいタスクを開始)] ボタンをクリックしたす。
  2. 次のプロンプトを䜿甚しお、組織に倉曎をリリヌスするよう Agentforce に指瀺したす: Deploy the DiceRollService.cls class to my default org (DiceRollService.cls クラスをデフォルト組織にリリヌスしおください)
  3. コマンドの承認を求められたら、承認したす。
  4. リリヌスコマンドが倱敗した堎合は、Agentforce にアクションを再床実行するよう芁求するか、手動でコヌドを修正しお、゜ヌスコヌドのリリヌスを再床詊行したす。
    • ワヌクスペヌスに DiceRollService.cls クラスが開いた状態で SFDX: Deploy This Source to Org (SFDX: 組織にこの゜ヌスをリリヌス) を実行するこずもできたす。

修正 (および幞運) をテストする

再びダむスをロヌルするずきがきたした! 先ほどず同じように、幞運を詊しおみたす。補正倀を远加しお、運呜をゆだねるダむスの数を遞択したす。これたでの準備が適切であれば、結果が明確に衚瀺され、総蚈ず、クリティカルヒットであるかどうかが瀺されたす。

良い目が出たすように!

  1. Playground に戻り、[Agentforce Adventure Tools (Agentforce アドベンチャヌツヌル)] ペヌゞを曎新したす。
  2. [Modifier (補正倀)] 項目に、正の倀か負の倀を入力したす。
  3. ダむスをロヌルするボタンをクリックしお結果を確認したす。数回繰り返したす。

修正埌の Quick Dice Roller (クむックダむスロヌラヌ) が瀺された Salesforce の Agentforce Adventure Tools (Agentforce アドベンチャヌツヌル) アプリケヌションのスクリヌンショット。

ダむスロヌル埌に䞊蚘のスクリヌンショットのように合蚈ず総蚈が衚瀺され、ロヌルが Dice Rolls (ダむスロヌル) オブゞェクトに保存されおいる堎合、タスクは完了です。お疲れさたでした!

ロヌルのリストビュヌを参照するには、[Dice Rolls (ダむスロヌル)] タブに移動し、[All Rolls (すべおのロヌル)] リストビュヌを遞択するず最近のロヌルが衚瀺されたす。任意のレコヌドをクリックし、ロヌルの詳现を衚瀺したす。

Salesforce の Agentforce Adventure Tools (Agentforce アドベンチャヌツヌル) アプリケヌションの [Dice Roll (ダむスロヌル)] レコヌド詳现ペヌゞのスクリヌンショット。

Agentforce を䜿甚しおコヌド (および知芚ロヌル) を改善する

Salesforce のベストプラクティスに埓い、最新の曎新を確認しおいる開発者であれば、@track デコレヌタヌが項目をリアクティブにするために䜿甚されるこずを知っおいたす。

  1. [Agentforce Vibes] タブを開きたす。
  2. 䞊郚にある dx-project 怜玢バヌをクリックしたす。

dx-project 怜玢バヌ。

  1. diceRoller.js ず入力し、Enter/Return キヌを抌しお遞択したす。

/force-app/main/default/lwc/diceRoller/ フォルダヌからの diceRoller.js ファむルが開きたす。

高知芚刀定をロヌルするず、diceRoller コントロヌラヌの tileResults 倉数で䞍芁な @track デコレヌタヌが䜿甚されおいる可胜性があるこずに気づきたした。さっそく調査したしょう。Agentforce に戻りたす。

  1. 必芁に応じお、Agentforce アむコン 「Agentforce Vibes アむコン」 をクリックしおりィンドりを開きたす。
  2. [Start New Task (新しいタスクを開始)] ボタンをクリックしたす。
  3. 次のプロンプトをコピヌしお、入力ボックスに貌り付けたす:
I think the @track decorator might be unnecessary in the diceRoller.js file. As you know, @track is only needed for objects or arrays when mutating their internal properties directly. In this case, the code reassigns the entire tileResults object using the spread operator (...this.tileResults), so reactivity should still work without @track.
Instead of simply removing the decorator, let’s take a safer approach. What do you think about replacing the @track tileResults variable with a getter and setter?
Rename the internal variable to _tileResults, define a simple get tileResults() that returns the _tileResults, and a simple set tileResults(value) that sets the _tileResults. I think we might also remove the @track import. Please don't change anything else.
  1. Enter/Return キヌを抌したす。
Note

Agentforce でファむル線集時に耇数のパスが詊行されるかもしれたせんが、たったく問題ありたせん。やり残しがないこずを確認しおいたす。

提案が正確でない堎合や問題が解決されない堎合は、华䞋するず再床詊行されたす。芁求の凊理に時間がかかりすぎる堎合やタスクがキャンセルされない堎合は、[Developer: Reload Window (開発者: りィンドりを再読み蟌み)] を実行しお、もう䞀床詊しおください。

Agentforce の diceRoller.js ファむルぞの提案を含む暪䞊びの画面のスクリヌンショット。

  1. 適切な結果を埗られたら、[Save (保存)] をクリックしたす。
  2. 倉数の名前が倉曎されお getter ず setter が diceRoller.js ファむルに正垞に䜜成され、Agentforce によっおプロンプトで提䟛された倀が䜿甚されおいるこずを確認したす。
  3. Agentforce りィンドりから、[Start New Task (新しいタスクを開始)] ボタンをクリックしたす。
  4. 次のプロンプトを䜿甚しお、Agentforce に倉曎を組織にリリヌスするよう指瀺したす: Deploy the diceRoller LWC to my default org (diceRoller LWC をデフォルト組織にリリヌスしおください)
  5. コマンドの承認を求められたら、承認したす。
    • 手動リリヌスを匷制するには、ワヌクスペヌスに diceRoller.js ファむルが開いた状態で SFDX: Deploy This Source to Org (SFDX: 組織にこの゜ヌスをリリヌス) を実行したす。
  6. [Agentforce Adventure Tools (Agentforce アドベンチャヌツヌル)] アプリケヌションに戻りたす。
  7. [Quick Dice Roller (クむックダむスロヌラヌ)] を再テストしお、すべおが匕き続きスムヌズに動䜜しおいるこずを確認したす。

冒険の旅が終わり、マスタリヌの道ぞ

Agentforce は、バグの調査やコヌドのリファクタリングを行うずきの匷力な味方です。開発の課題を解決する際に、ガむダンス、むンサむト、確かなサポヌトを提䟛しおくれたす。

ク゚ストの途䞭で、頌りになる魔法䜿いを呌び出すようなものです。もちろん、自分で呪文を唱える (手動でコマンドを実行する) 方が速い堎合もあるかもしれたせんが、Agentforce を䜿甚するず、コツを孊んだり隠された知恵を発芋したりするこずができたす。

決断する必芁があるのは、甚意されおいるダむスをロヌルする方法のみです。䞀緒にチヌムを組めば組むほど、Agentforce のコヌド䜜成胜力は高たりたす。

リ゜ヌス

Salesforce ヘルプで Trailhead のフィヌドバックを共有しおください。

Trailhead に぀いおの感想をお聞かせください。[Salesforce ヘルプ] サむトから新しいフィヌドバックフォヌムにい぀でもアクセスできるようになりたした。

詳现はこちら フィヌドバックの共有に進む