agent-miner について
agent-minerは、ServiceNowの管理者や分析担当者向けのスキルです。会話、インシデント、リクエストのデータから自動化候補となる反復パターンを探し、優先順位付きのレポートを作成します。
主な機能
- 01仮想エージェントと有人対応の会話分析
- 02頻度が高く複雑さの低いタスクの特定
- 03解決経路と引き継ぎ箇所の整理
- 04自動化による時間削減の推定
- 05自動化候補の優先順位レポート
活用シーン
- 01仮想エージェントの拡張計画
- 02インシデントやリクエストからセルフサービス機会を発見
- 03自動化投資の根拠づくり
- 04仮想エージェントから有人対応への引き継ぎ改善
MCP 対応
SN-Query-TableやSN-Get-RecordなどのツールでServiceNowのテーブルやレコードを照会し、会話パターンを分析します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill agent-minerインストール後、Claude Code で/agent-minerを入力して読み込まれたか確認します。
詳細
エージェントインタラクションの分析
概要
このスキルでは、ServiceNow 全体のエージェントインタラクションを分析し、自動化の機会を見つけます。会話ログ、インシデントのパターン、リクエストの処理データ、解決ワークフローを分析することで、バーチャルエージェントによる対応やフロー自動化に適した反復タスクを特定できます。
主な機能:
- Virtual Agent およびライブエージェントセッションの会話記録を分析する
- 自動化に適した、高頻度かつ低複雑度のインタラクションパターンを特定する
- よくある解決経路を見つけ、ボットトピックとして標準化する
- バーチャルエージェントとライブエージェント間の引き継ぎポイントをマッピングし、エスカレーションフローを最適化する
- パターンごとの時間削減を見積もり、自動化の ROI を定量化する
- 優先順位を付けた自動化候補レポートを生成する
使用するタイミング: バーチャルエージェントの拡張を計画するとき、セルフサービスの機会を特定するとき、自動化への投資に関する事業計画を立てるとき、またはエージェントの作業負荷の分散を最適化するときに使用します。
前提条件
- ロール:
admin、virtual_agent_admin、またはレポートへのアクセス権を持つitil - プラグイン:
com.glide.cs.chatbot(Virtual Agent)、com.glide.interaction(Agent Workspace) - アクセス権:
interaction、sys_cs_conversation、sys_cs_message、incident、sc_req_itemテーブルへの読み取りアクセス権 - データ: 有意義なパターン分析を行うため、少なくとも30日分のインタラクション履歴
- 関連スキル: 特定した自動化候補を実装するための
genai/build-agent
手順
ステップ 1:インタラクション量の指標を収集する
インタラクション量の全体を取得し、ベースラインを設定して、トラフィックの多いカテゴリを特定します。
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: interaction
query: sys_created_on>=javascript:gs.daysAgo(30)^state=closed
fields: sys_id,number,channel,category,subcategory,assignment_group,assigned_to,opened_at,closed_at,close_code,short_description
limit: 500
REST の方法:
GET /api/now/table/interaction
?sysparm_query=sys_created_on>=javascript:gs.daysAgo(30)^state=closed
&sysparm_fields=sys_id,number,channel,category,subcategory,assignment_group,assigned_to,opened_at,closed_at,close_code,short_description
&sysparm_limit=500
&sysparm_display_value=true
ステップ 2:Virtual Agent の会話記録を分析する
会話メッセージを取得し、よくあるインテントとユーザーの言語パターンを特定します。
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_cs_conversation
query: sys_created_on>=javascript:gs.daysAgo(30)^state=closed
fields: sys_id,number,topic,state,live_agent_transfer,user,sys_created_on,channel,resolution_code
limit: 200
次に、頻度の高いトピックのメッセージを取得します:
Tool: SN-Query-Table
Parameters:
table_name: sys_cs_message
query: conversation=<conversation_sys_id>^ORDERBYsys_created_on
fields: sys_id,body,direction,sys_created_on,typed_text
limit: 50
REST の方法:
GET /api/now/table/sys_cs_conversation
?sysparm_query=sys_created_on>=javascript:gs.daysAgo(30)^state=closed
&sysparm_fields=sys_id,number,topic,state,live_agent_transfer,user,sys_created_on,channel,resolution_code
&sysparm_limit=200
&sysparm_display_value=true
ステップ 3:反復するインシデントパターンを特定する
インシデントをクエリして、自動化できるタスクを示す、発生頻度が高く解決時間が短いカテゴリを見つけます。
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: sys_created_on>=javascript:gs.daysAgo(30)^state=6^resolved_at!=NULL
fields: sys_id,number,category,subcategory,short_description,close_notes,resolution_code,assignment_group,calendar_duration,contact_type,reassignment_count
limit: 500
REST の方法:
GET /api/now/table/incident
?sysparm_query=sys_created_on>=javascript:gs.daysAgo(30)^state=6^resolved_at!=NULL
&sysparm_fields=sys_id,number,category,subcategory,short_description,close_notes,resolution_code,assignment_group,calendar_duration,contact_type,reassignment_count
&sysparm_limit=500
&sysparm_display_value=true
ステップ 4:サービスリクエストの処理パターンを分析する
ボリュームが多く、処理ワークフローがシンプルなカタログアイテムを特定します。
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sc_req_item
query: sys_created_on>=javascript:gs.daysAgo(30)^stage=closed_complete
fields: sys_id,number,cat_item,short_description,state,assignment_group,calendar_duration,approval,sys_created_on,closed_at
limit: 500
REST の方法:
GET /api/now/table/sc_req_item
?sysparm_query=sys_created_on>=javascript:gs.daysAgo(30)^stage=closed_complete
&sysparm_fields=sys_id,number,cat_item,short_description,state,assignment_group,calendar_duration,approval,sys_created_on,closed_at
&sysparm_limit=500
&sysparm_display_value=true
ステップ 5:エージェントへの引き継ぎポイントをマッピングする
バーチャルエージェントの会話がライブエージェントにエスカレーションされる場所と、その理由を特定します。
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_cs_conversation
query: live_agent_transfer=true^sys_created_on>=javascript:gs.daysAgo(30)
fields: sys_id,number,topic,live_agent_transfer,transfer_reason,user,sys_created_on
limit: 200
REST の方法:
GET /api/now/table/sys_cs_conversation
?sysparm_query=live_agent_transfer=true^sys_created_on>=javascript:gs.daysAgo(30)
&sysparm_fields=sys_id,number,topic,live_agent_transfer,transfer_reason,user,sys_created_on
&sysparm_limit=200
&sysparm_display_value=true
ステップ 6:既存のナレッジの網羅状況を確認する
頻度の高いインタラクションパターンに対応するナレッジ記事が存在するか確認します。
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: kb_knowledge
query: workflow_state=published^active=true
fields: sys_id,number,short_description,topic,category,sys_view_count,sys_updated_on
limit: 100
REST の方法:
GET /api/now/table/kb_knowledge
?sysparm_query=workflow_state=published^active=true
&sysparm_fields=sys_id,number,short_description,topic,category,sys_view_count,sys_updated_on
&sysparm_limit=100
&sysparm_display_value=true
ステップ 7:自動化候補をスコアリングして優先順位を付ける
以下の基準を使って、調査結果をスコア付きのランキングにまとめます:
| 基準 | 重み | スコアリング |
|---|---|---|
| インタラクション量 | 30% | 高(>50/月)=3、中(20-50)=2、低(<20)=1 |
| 解決の複雑さ | 25% | シンプル(1ステップ)=3、中程度(2-3ステップ)=2、複雑(4以上)=1 |
| 現在の解決時間 | 20% | >30分=3、15-30分=2、<15分=1 |
| ナレッジの有無 | 15% | KB あり=3、一部あり=2、なし=1 |
| 引き継ぎ頻度 | 10% | 引き継ぎ少=3、中程度=2、多=1 |
ステップ 8:自動化機会レポートを生成する
最終レポートをまとめます:
=== AGENT MINING REPORT ===
Period: [start_date] - [end_date]
Total Interactions Analyzed: [count]
Total Unique Patterns: [count]
TOP AUTOMATION CANDIDATES:
| Rank | Pattern | Volume | Avg Resolution | Score | Est. Savings |
|------|---------|--------|----------------|-------|--------------|
| 1 | Password reset | 245/mo | 8 min | 9.2 | 32 hrs/mo |
| 2 | VPN access request | 180/mo | 12 min | 8.7 | 36 hrs/mo |
| 3 | Software install | 150/mo | 15 min | 8.1 | 37 hrs/mo |
HANDOFF ANALYSIS:
- VA-to-Live transfer rate: [percentage]
- Top transfer reasons: [list]
- Recommended topic improvements: [list]
KNOWLEDGE GAPS:
- Patterns without KB articles: [list]
- Articles needing update: [list]
ESTIMATED ROI:
- Total automatable hours/month: [hours]
- Cost savings estimate: [amount]
- Implementation complexity: [low/medium/high]
ツールの使用
| ツール | 目的 | 使用するタイミング |
|---|---|---|
| SN-Query-Table | インタラクション、インシデント、リクエストを一括でクエリする | テーブル横断でパターンを見つけるとき |
| SN-Get-Record | 個別の会話やインシデントの詳細を読み取る | 特定のパターンを詳しく調べるとき |
| SN-Natural-Language-Search | 関連するパターンを自然言語で検索する | 類似するインタラクションを見つけるとき |
| SN-Get-Table-Schema | インタラクションテーブルで利用可能なフィールドを確認する | 初期調査時 |
ベストプラクティス
- 季節性や循環的なパターンを捉えるため、少なくとも30日分のデータを分析します
- グループ化する前に短い説明を正規化します。表現のばらつきによって、実際の件数が見えにくくなります
- 大規模な障害で一斉に作成されたインシデントなど、外れ値を除外します
- 新しさを重視します。増加傾向にあるパターンは、減少傾向にあるものより優先度が高くなります
- ユーザー満足度を考慮します。CSATスコアの低い課題点から優先して自動化します
- エージェントと検証します。これらのやり取りを日々担当している現場スタッフに、分析結果を確認します
- 手早く実現できる成果から始めます。初期の自動化では、件数が多く複雑さが低いパターンを対象にします
- 実装後の対応回避率を追跡し、実際のROIを測定します
- 四半期ごとに見直します。サービスやユーザーベースの変化に伴い、やり取りのパターンも変化します
- 機密データを保護します。分析の前に、会話のトランスクリプトからPIIをマスキングします
トラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
| 返されるやり取りの件数が少ない | クエリの日付範囲が狭すぎる、またはチャネルフィルターが指定されていない | 日付範囲を広げます。すべてのソースを含めるには、チャネルフィルターを削除します |
| 会話に一部のメッセージが含まれていない | メッセージの保持ポリシーによって古いデータが削除された | sys_cs_messageの保持ルールを確認します。利用可能な場合は、アーカイブデータを使用します |
| すべてのカテゴリが「Other」と表示される | インシデントの分類が徹底されていない | 代わりにshort_descriptionのテキストを分析します。NLPによるクラスタリングを検討します |
| 引き継ぎ理由が空欄になっている | VAトピックで転送理由フィールドが設定されていない | VAトピックの設定を確認します。transfer_reasonフィールドに値が入力されているか確認します |
| 解決時間が過大に見える | 対応時間だけでなく待ち時間も含まれている | calendar_durationとbusiness_durationでフィルタリングします。SLAの定義を確認します |
| 結果に重複するパターンがある | エージェントごとに同じ問題が異なる方法で分類されている | short_descriptionの類似性に基づいて正規化します。resolution_codeでグループ化します |
例
例1:パスワードリセット自動化の検討
シナリオ: ボットによる自動化に向け、パスワードリセットに関するすべてのやり取りを特定します。
Tool: SN-Query-Table
Parameters:
table_name: incident
query: sys_created_on>=javascript:gs.daysAgo(30)^short_descriptionLIKEpassword^state=6
fields: number,short_description,category,subcategory,calendar_duration,assignment_group,resolution_code
limit: 100
調査結果: パスワードリセットのインシデントは月に245件で、平均解決時間は8分、95%が標準手順で解決されています。推奨する対応:セルフサービスによるパスワードリセットを実現するため、LDAP連携を備えたVAトピックを実装します。
例2:ソフトウェアリクエストのパターン分析
シナリオ: ソフトウェアのインストールリクエストを分析し、カタログ自動化の有力候補を特定します。
Tool: SN-Query-Table
Parameters:
table_name: sc_req_item
query: sys_created_on>=javascript:gs.daysAgo(30)^cat_item.categoryLIKEsoftware^stage=closed_complete
fields: number,cat_item,short_description,calendar_duration,approval
limit: 200
調査結果: 上位5件のソフトウェアリクエストが、すべてのソフトウェアRITMの60%を占めています。いずれも標準化された承認および展開プロセスがあり、SCCM/Intuneによる自動処理に適しています。
関連スキル
genai/build-agent- 発見したパターンからカスタムAIエージェントを構築genai/flow-generation- 特定した候補向けの自動化フローを生成genai/playbook-generation- エージェント支援型自動化のプレイブックを作成knowledge/gap-analysis- やり取りのパターンに沿ったナレッジのギャップを特定reporting/trend-analysis- やり取りの量を予測するためのトレンド分析