概要
2025年6月25日に開催された AWS Summit Japan で学んで返ってきた Strands Agents を使って、Agentforceに似たような機能を作りたいと思って試してみました。
Strands Agents について
細かいところはリファレンスページを見てもえればと思うのですが、上記リファレンスの一言目にある通り、簡単にAgent機能を作れるFWになります。
Strands Agents is a simple-to-use, code-first framework for building agents.
Agentの役割とツールの登録をしておけば、自然文のメッセージをもとにAIが自動的に必要なツールを使って、回答を返してくれる。Agentforceで例えると「トピック」と「アクション」をコードで定義するみたいな感じです。
実際の動作例としては、下記の通りになります。
👤 ユーザー: "ログインエラーのケースを解決したい"
🤖 AI思考プロセス:
- "ケース情報が必要" → ケース取得する処理 実行
- "類似ケースを調べよう" → 類似のケース取得する処理 実行
- "最新情報も確認" → 外部Web情報取得処理 実行
- 全情報を統合して回答生成
📄 結果: 包括的な解決方法を提示
今回作ってみたユースケース(目指したい体験)
サポート担当者の体験
- 自動分析: ケース画面を開くと、AI が自動的にケース内容を分析
- 類似ケース発見: 過去の類似ケースを自動検索し、解決パターンを提示
- 外部情報統合: 関連するWeb記事や既知問題情報を自動収集
- AI チャット: 具体的な質問に対してコンテキストを理解したAI回答
アーキテクチャ
すごい簡単ですが、下記のような構成にしてみました
SF側
LWC + Apexで実装しています。
Apexはほんとただ、Agetnt のAPIに対して、ケースIdと自然文を投げて結果をLWCに渡すだけ
AWS側
中央に Strands Agents を実装したLambdaを用意。API GW経由でリクエストする。
Strands Agents に対しては、事前に使えるツールとして、「Salesforceへのケース取得機能」(Lambda)と「TavlilyAPI経由で外部サイトを検索する機能」(Lambda)を登録している
データフローをまとめると
- ケース画面オープン → LWC自動起動
- LWC → Apex Controller → Main Agent Lambda
- Main Agent → SF API Lambda (ケース取得・類似検索)
- Main Agent → Web Search Lambda (外部情報検索)
- Strands Agent → AWS Bedrock (AI回答生成)
- 回答 → LWC → ユーザー表示
流れ
惜しかった点
- TavlilyAPIからせっかく画像を取得できるので Carousel で表示できたら良いなと思ったのですが、SFプラットフォームはCSPの制限があり難しいと思い断念。。。(社内のドキュメント管理システムなどにのみアクセスするとかの仕組みであれば、ドメインを登録すれば良いだけなので実現可能だと思います)
Tavlily AIの良いと思ったところ
シンプルであり、簡単に試して結果を確認できる
初めてTavily AIを使ってみたら、すごくユーザビリティがよく、試すまでに複雑なこと一切いらない体験に感動しました。これからもっと使っていこうと思います。
独自のロジックで関連度などを分析してくれる
Tavily Search APIは、1回のAPI呼び出しで最大20のサイトを集約し、独自のAIを用いて、タスク、クエリ、または目標に最も関連性の高いソースとコンテンツをスコアリング、フィルタリング、ランク付けします。
毎月1000リクエストまでは無料
個人検証とかであれば、ほぼお金がかかることはないかなと思います
まとめ
- Agnet の開発って難しそうな内容が多かったイメージですが、どんどん抽象化したFWやツールが出てきてくれるおかげで触りやすいなって今回の開発を通して感じました。
- Salesforce プラットフォームにもどんどん生成AIを盛り込んでいき、定量的な作業に課題を感じるビジネスユーザーの生産性を上げる貢献をしていきたいですね。
今回のコード
- https://github.com/Kyohei-takiyama/sf-support-assistant
- インフラ周りはTerraformで作っているのでAWS環境とかであれば、すぐにAPIなど構築できると思います。