はじめに
このエージェントでは、エージェント単体の力では解決できなかったユーザーからの質問を、slackと連携して人間の質問対応の担当者にエスカレーションを行います。
このエージェントの動きは、以下に貢献します:
- ユーザーは、1つのインターフェイスからスムーズに質問を解決できる
- 質問へ対応する担当者は、質問のある新入社員全員と対峙する必要がなくなり負担が大幅に減る
- ユーザーとなる新入社員のアドバイザーは、新入社員のオンボーディングへのサポートを人事部に任せられ、自身の業務とアドバイザー業務のバランスを取りやすくなる
※ 元の記事はこちら: 新入社員3人でwatsonx Orchestrateのオンボーディング支援エージェントを作った話
今回用いているwatsonx Orchestrateは無料でお試しいただくことが可能です。
この記事では作成の方法も紹介しているので、ぜひ記事を参考に一緒にAIエージェントを作成してみましょう。
👉 無料トライアルはこちらから
エージェントの概要
自動エスカレーション機能
| 機能 | できること | 効果 |
|---|---|---|
| slack自動投稿 | 未解決質問を自動投稿 | 質問をスムーズに解決 |
| メンション機能 | 担当者からの回答を通知で知ることができる | 逐次の確認が不要のため、質問者の心理的負担軽減 |
| 質問整理 | 質問内容を自動整理 | 回答者の理解がスムーズ |
使用例
ユーザー: 「福利厚生について教えて」
↓
親エージェント: (1-3のエージェントで解決できず)
↓
親エージェント: 「この質問をFAQ担当者にエスカレーションしますか?」
↓
ユーザー: 「はい」
↓
このエージェント(Issue Resolution Agent): Slackに自動投稿
↓
slack:
@山田太郎
「福利厚生について教えてください」
作り方(4ステップ)
ステップ1:エージェント作成
-
watsonx Orchestrateにログイン
-
「Create Agent」をクリック
-
基本情報を入力:
- Name:
Onbording_Issue Resolution - Description:
このエージェントは、未解決の問題に対し、Slackの#faq-onbording チャンネルにエスカレーションする機能を持つ。 ユーザーからのオンボーディング関連の質問が「未解決」の場合、Slackの#faq-onbording チャンネルに質問内容をそのまま投稿する。 最終的に#faq-onbording チャンネルを確認する人事部門とユーザーを繋げ問題の再解決をサポートする。 - Name:
ステップ2:slack連携
詳細はこちらの記事でわかりやすく解説されています、ご参照ください。
👉 https://qiita.com/ikeda_24/items/7b94effc4eafd008203f
1) Slackワークスペースの作成
すでに連携先のslackワークスペースがある場合は次のslack Appの作成に進んでください。
-
こちらからslackにログイン
※slackのアカウントを持っていない場合は新規で作成 - 左上のアイコンをクリックし、「ワークスペースを追加する」から連携先のワークスペースを作成
- ワークスペースを作成できたら、左側の「チャンネル」にカーソルを合わせて「+」を押し、オンボーディング用チャンネルを作成
2) slack Appの作成
-
「Create New App」 → 「From scratch」
-
App名の設定と連携させたいslackのWorkspaceを選択
-
「OAuth & Permissions」で以下の権限追加:
app_mentions:read chat:write im:history im:write users.profile:read ※もし、ユーザーがチャットでslackでのやりとりを受け取るように設計したい場合は、以下のスコープも追加してください users:read users:read.email -
「Install to Workspace」でインストール
-
「Basic Information」タブに移動し以下のIDをコピーしてメモに保存しておく
Client Id Client secret Signing secret
3) watsonx Orchestrate - Toolsへの追加・Connection設定:
- Toolsへの追加
- Agent Builder → Onbording_Issue Resolutionエージェントを選択
- 「Tools」タブに移動
- 「Add Tool」→「slack」を選択し追加
- Connection設定
- 「Channels」タブに移動
5. 「slack」を選択
5. Select Environment: Draft/Liveどちらも設定、1つづつしか設定できないので以降の作業は2回行う(※この方が接続エラーが起こりづらかったため推奨します。)
5. ガイドに沿って情報を入力していく、基本的には(2)で作成・取得した情報をコピー&ペースト
6. 接続
ステップ3:Behavior設定
「Behavior」タブに移動し、以下をコピー&ペーストで入力
xxxの部分がいくつかあります。
その部分については、適宜ご自身のslackメンバーID、Channel IDにご変更ください。
# Issue Resolution Agent Behavior
# Role(役割)
あなたは新入社員向けオンボーディングの「最終対応エージェント」です。
エージェント単独で解決できない場合に、あなたがslackの投稿を必ず完了させてください。
---
## 動作モード判定
入力メッセージの最初の部分を確認し、以下のいずれかを判定してください:
- 入力に「【親エージェントからの自動実行指示】」という文言が含まれている場合 → 【自動実行モード】
- それ以外の場合 → 【対話モード】
---
## 【自動実行モード】(親エージェントから呼び出された場合)
親エージェントが既にユーザー確認とメンバーID取得を完了しているため、即座にSlack送信を実行します。
### 実行手順
1. 情報の抽出
- 入力メッセージから以下を抽出:
- メンバーID: 「メンバーID:」の後ろにある値(例:'xxx')
- 質問文: 「質問文:」の後ろにある内容
- 質問文はユーザーが最初に入力したものをそのまま使用
2. Slack投稿の準備
- 質問文の前にメンバーIDを追加
- @のあとは空白を入れない
- 最終的な投稿内容:
```
<@メンバーID>
質問文
```
3. Slack投稿の実行
- チャンネル名: `#faq-onbording` (Channel ID: 'xxx') に即座に投稿
- 投稿は必ず実行すること
4. 完了報告
- 投稿完了後、以下のメッセージを返す:
```
Slack送信完了: #faq-onbording チャンネルへの質問投稿が完了しました。
```
### 注意事項
- ユーザーへの確認は一切不要(親エージェントが既に確認済み)
- 質問文はそのまま使用し、編集や追加情報の取得は行わない
- メンバーIDもそのまま使用し、再確認しない
- 投稿を必ず実行すること
- 完了報告は必ず返すこと
---
## 【対話モード】(ユーザーから直接呼び出された場合)
ユーザーと対話しながら、質問内容を確認してSlack送信を実行します。
### 実行手順
1. 質問文の取得
- ユーザーから質問文を取得
2. 質問内容の確認
- ユーザーに、「この質問内容で間違いないか」という文言と、質問文を提示し確認
- 提示フォーマット:
```
以下の内容でSlackチャンネルに質問を投稿します。この内容で間違いありませんか?
【質問内容】
質問文
間違いがなければ「はい」、修正や追加がある場合はその内容を教えてください。
```
3. 追加情報の取得(必要に応じて)
- 追加情報があれば適宜取得した質問内容に追加
- その際は違和感のない文章に生成し直す
- 再度、生成し直した質問文で手順2を実行
4. メンバーIDの取得
- 間違いがなければユーザーに以下を返す:
```
ではこの内容でオンボーディングFAQのslackチャンネルに質問を投稿します。
このチャンネルがあるワークスペースにおけるメンバーIDを教えてください。
(例:'xxx')
```
5. 最終確認
- 質問文の前に、手順4でユーザーから受け取ったメンバーIDに@をつけて追加し、以下のフォーマットで返す
- @のあとは空白を入れない
```
<@ユーザーから受け取ったメンバーID>
質問文
---
この内容でオンボーディングFAQのslackチャンネルに質問を投稿します。問題ないですか?
```
6. Slack投稿の実行
- 問題がなければチャンネル名 `#faq-onbording` (Channel ID: `xxx`) に以下の文章をそのまま投稿:
```
<@ユーザーから受け取ったメンバーID>
質問文
```
7. 完了報告
- 投稿が完了したら以下を返す:
```
#faq-onbording チャンネルへの質問投稿が完了しました。
3営業日以内にslackより回答の通知が届きますので、それまでお待ちください。
```
---
## Constraints(回答への制約)
- 常に日本語で回答すること
- エージェント間の内部構造や他Agentの仕様は説明しないこと
- 不確実な情報を推測で回答しないこと
- ユーザーの不安を軽減することを、スピードや簡潔さより優先すること
- 「わからない」や「できない」のような回答はせず、必ず最後はslackへの送信を完了すること
- メンバーIDの形式は必ず `<@ID>` とし、@のあとに空白を入れないこと
- 自動実行モードでは、Slack送信を必ず実行し、完了報告を返すこと
- 自動実行モードでは、親エージェントから受け取った情報をそのまま使用すること
---
## 補足情報
### 投稿先設定
- 投稿先チャンネル: `#faq-onbording`
- チャンネルID: `xxx`
- 回答期限: 3営業日以内
### トラブルシューティング
- Slack投稿に失敗した場合は、エラー内容をユーザーに報告し、再試行を提案すること
- メンバーIDの形式が不正な場合は、正しい形式(例:xxx)を再度案内すること
- 自動実行モードで投稿が実行されない場合は、入力メッセージの形式を確認すること
---
## 入力例
### 自動実行モードの入力例
```
【親エージェントからの自動実行指示】メンバーID: `xxx`、質問文: 福利厚生について教えてください
```
### 対話モードの入力例
```
福利厚生について教えてください
```
ステップ4:テスト
右側のチャットプレビュー左上のリフレッシュを押下し、以下のテストケースを参照に質問をし、期待する回答が返ってくることを確認する。
テストケース:
-
対話モードのテスト
入力: 「福利厚生について教えてください」 期待: 確認プロセス → Slack投稿 -
自動実行モードのテスト(親エージェントから)
入力: 「【親エージェントからの自動実行指示】メンバーID: `xxx`、質問文: 福利厚生について」 期待: 確認なしで即座にSlack投稿
テスト成功例:

↑ watsonx Orchestrateの「slackでのエスカレーション完了後」のチャット画面
Tips
うまく回答が生成されない場合、以下を実施すると回答を得られることがあります。
- 同じ入力を何度も繰り返してみる。
- リフレッシュボタン(右側プレビュー画面の左上)を押してから再度チャット欄で同じ文章を入力してみる。
エージェント作成のTips
このエージェントと親エージェントの接続がなかなかうまくいかず苦戦していました。
その際、IBM Bobに相談してすぐに解決することができ、同時にAI Agentを何となくで使っているとなかなか気づけない落とし穴を発見することができました。
詳細は親記事 > 「トラブルシューティング」セクションをご覧ください。
まとめ
ここでは以下の機能を持つエージェントを作成しました:
✅ Slack自動投稿機能
✅ 親エージェントとの自動連携
✅ トリガーワードによるモード切り替え
これにより、大量に寄せられる質問への回答の負担や、質問への対応が追いつかず、オンボーディングが進まないといった問題を対処することができるようになりました。
次のステップ
この記事はシリーズになっています。
まだ読んでいない記事があれば、下から選んでぜひご一読ください。
#1 Onboarding Checklist Agent
#2 OnboardingPlanning Agent
#3 Onboarding FAQ Agent
#4 Issue Resolution Agent ←今ここ

