mcpField
A
agent-miner

agent-miner

github.com/happy-technologies-llcデータ・データベース4141 回インストール2 日前に更新
リポジトリ

agent-miner について

agent-minerは、ServiceNowの管理者や分析担当者向けのスキルです。会話、インシデント、リクエストのデータから自動化候補となる反復パターンを探し、優先順位付きのレポートを作成します。

主な機能

  1. 01仮想エージェントと有人対応の会話分析
  2. 02頻度が高く複雑さの低いタスクの特定
  3. 03解決経路と引き継ぎ箇所の整理
  4. 04自動化による時間削減の推定
  5. 05自動化候補の優先順位レポート

活用シーン

  1. 01仮想エージェントの拡張計画
  2. 02インシデントやリクエストからセルフサービス機会を発見
  3. 03自動化投資の根拠づくり
  4. 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インタラクションテーブルで利用可能なフィールドを確認する初期調査時

ベストプラクティス

  1. 季節性や循環的なパターンを捉えるため、少なくとも30日分のデータを分析します
  2. グループ化する前に短い説明を正規化します。表現のばらつきによって、実際の件数が見えにくくなります
  3. 大規模な障害で一斉に作成されたインシデントなど、外れ値を除外します
  4. 新しさを重視します。増加傾向にあるパターンは、減少傾向にあるものより優先度が高くなります
  5. ユーザー満足度を考慮します。CSATスコアの低い課題点から優先して自動化します
  6. エージェントと検証します。これらのやり取りを日々担当している現場スタッフに、分析結果を確認します
  7. 手早く実現できる成果から始めます。初期の自動化では、件数が多く複雑さが低いパターンを対象にします
  8. 実装後の対応回避率を追跡し、実際のROIを測定します
  9. 四半期ごとに見直します。サービスやユーザーベースの変化に伴い、やり取りのパターンも変化します
  10. 機密データを保護します。分析の前に、会話のトランスクリプトから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 - やり取りの量を予測するためのトレンド分析

コメント