代理評估員

Important

本文中標示為預覽的項目目前仍在預覽中。 此預覽版未簽訂服務等級協議,Microsoft 不建議用於生產工作負載。 某些功能可能不被支援或功能受限。 欲了解更多資訊,請參閱Microsoft Azure預覽補充使用條款。

AI 代理是強大的生產力助理,能為企業需求創造工作流程。 然而,由於其複雜互動模式,可觀察性仍是一大挑戰。 代理評估器透過衡量品質、安全性與效能,提供系統性地觀察代理工作流程。

客服人員的工作流程通常涉及推理使用者意圖、呼叫相關工具,並利用工具結果完成如更新資料庫或撰寫報告等任務。 要打造生產準備的代理型應用程式,你不僅需要評估最終輸出,還要評估工作流程中每個步驟的品質與效率。

Foundry 內建的代理評估器,功能類似代理系統的單元測試——它們將代理訊息作為輸入與輸出的二元通過/不通過分數(或根據閾值轉換為二元分數)的輸入與輸出。 這些評估者支持兩項代理人評估的最佳實務:

  • 系統評估——檢視能動系統的端到端結果。
  • 流程評估——驗證逐步執行以達成成果。
評估員 最佳做法 何時使用 Purpose Output
任務完成(預覽) 系統評估 評估工作流程自動化、目標導向 AI 互動,或任何任務完成至關重要情境下的端到端任務成功率 衡量代理是否完成了請求的任務,並交付了符合所有使用者需求的可用成果 二元:通過/不及格
客戶滿意度(預覽版) 系統評估 衡量整體用戶滿意度,偵測用戶挫折感 衡量六個面向的整體使用者滿意度:幫助性、完整性、清晰度、語氣、解析度與適應性 李克特量表 1-5
任務依附(預覽) 系統評估 確保客服人員遵循系統指示,並在受規範環境中驗證合規性 衡量代理人的行為是否符合其根據規則、程序及政策限制,根據系統訊息及先前步驟所分配的任務 二元:通過/不及格
任務導航效率 系統評估 優化代理工作流程、減少不必要的步驟、驗證已知最佳路徑(需要實地驗證) 透過比較工具序列與預期的工具序列,衡量代理人是否有效地執行工具呼叫以完成任務 二元:通過/不及格
意圖解析度(預覽) 系統評估 客戶支援情境、對話式 AI、理解使用者意圖至關重要的常見問題系統 衡量代理人是否正確識別使用者意圖 二元:根據門檻(1-5 等級)進行通過/不通過
工具呼叫準確度 流程評估 整體工具呼叫品質評估,透過工具整合、API 互動完成任務 衡量代理是否以正確的參數做出正確的工具呼叫以完成任務 二元:根據門檻(1-5 等級)進行通過/不通過
工具選擇 流程評估 驗證編排平台中工具選擇的品質,確保工具使用效率且無冗餘 衡量代理人是否選擇了正確的工具,而非選擇不必要的工具 二元:通過/不及格
工具輸入精度 流程評估 在生產環境中嚴格驗證工具參數、API 整合測試、要求 100% 參數正確性的關鍵工作流程 衡量工具呼叫參數是否在六項嚴格標準中正確:基礎性、型別合規性、格式合規性、必要參數、無異常參數及值值適當性 二元:通過/不及格
工具輸出利用率 流程評估 驗證 API 回應的正確使用、資料庫查詢結果、代理推理與回應中的搜尋輸出 衡量代理人是否正確理解並使用工具呼叫,則在其推理與最終回應中呈現情境結果 二元:通過/不及格
工具呼叫成功率 流程評估 監控工具可靠性、偵測 API 故障、逾時問題或工具執行中的技術錯誤 衡量工具呼叫是否成功或導致技術錯誤或異常 二元:通過/不及格
品質評分器(預覽) 品質評估 評估回合層級的整體回應品質,包括相關性、棄權率、回答完整性,以及可選擇的紮實性與情境覆蓋 能在單一評估者中進行跨多維度的品質評估,而非分別執行個別評估者 二元:通過/不及格
輸出品質(預覽) 系統與品質評估 在多個面向評估回應品質與任務結果,同時降低評估成本與延遲 將一批批次的流暢度、連貫性、意圖解決、任務依從性、紮根性及任務完成,匯聚於一則 LLM 評審 綜合:包含通過/不通過的組成分數
工具使用品質(預覽) 流程評估 評估完整的工具使用流程,同時降低評估成本與延遲 批次工具呼叫準確度、工具呼叫成功率、工具輸入準確度、工具輸出利用率及工具選擇,整合成一個 LLM 裁判判定 綜合:包含通過/不通過的組成分數

系統評估

系統評估檢視你代理工作流程最終結果的品質。 這些評估器適用於單一代理,在多代理系統中則適用於主要編排者或負責任務完成的最終代理:

  • 任務完成 - 客服人員是否已完全完成所請求的任務?
  • 客戶滿意度——使用者對客服人員的表現會有多滿意?
  • 任務遵循——代理是否遵循其指示中的規則與限制?
  • 任務導航效率——代理是否有效執行了預期步驟?
  • 意圖解決——客服人員是否正確識別並回應使用者意圖?

具體來說,對於代理人的文字輸出,你也可以應用像 和 Relevance 這類接受代理人輸入的 RAG 品質評估器Groundedness來評估最終回應的品質。

範例:

流程評估

流程評估檢視您代理工作流程中每個步驟的品質與效率。 這些評估者專注於系統中執行的工具呼叫以完成任務:

  • 工具呼叫的準確度——客服人員是否以正確的參數做出正確的工具呼叫,且沒有冗餘?
  • 工具選擇——代理人是否選擇了正確且必要的工具?
  • 工具輸入準確度——客服是否提供正確的工具呼叫參數?
  • 工具輸出使用率——客服是否正確使用工具呼叫結果作為推理與最終回應?
  • 工具呼叫成功 - 工具呼叫是否成功且沒有技術錯誤?

範例:

品質評估(預覽)

品質評估評估 AI 助理在回合層級的整體回應品質。 品質評分器評估器與Microsoft Copilot Studio代理評估中使用的品質評估器相同。 它檢視了回應品質的多個面向:

  • 相關性 ——回應是否與使用者的查詢相關?
  • 迴避 ——當代理人無法或不應該回答時,是否適當地棄權?
  • 答案完整性 ——回答是否完全回應使用者的問題?

在提供背景資訊後,品質評分器還會評估:

  • 紮根 性——回應是否紮根於所提供的情境?
  • 情境覆蓋 ——回應是否在情境中運用相關資訊?

範例:

綜合評估器(預覽)

綜合評審會在一次 LLM 評審中衡量多項品質面向。 利用它們來降低分別運行對應內建評估器的成本與延遲,同時保留每個品質面向的分數與理由。

Note

使用GPT-5.6家族的模型作為綜合評估者的LLM評審。 若要選擇成本最低且能維持高評估品質的選項,請使用 gpt-5.6-luna。

輸出品質

輸出品質評估器(builtin.output_qualityOutput Quality evaluator)評估代理回應的品質及其在解決使用者任務上的成功程度。 它會將以下評估者分組成一個 LLM 評審名單:

元件評估器 它衡量的是什麼 Score 預設通過門檻
流暢度 文法品質與可讀性。 1-5 3
連貫性 邏輯流暢與組織。 1-5 3
意圖解析 回應是否識別並回應使用者的意圖。 1-5 3
任務遵循度 代理人是否遵守其指令與限制。 0 或 1 1
Groundedness 該回應是否能獲得現有情境的支持。 1-5 3
任務完成 代理人是否完成了請求的任務並產生可用的結果。 0 或 1 1

工具使用品質

工具使用品質評估器(builtin.tool_use_quality)評估代理人從工具選擇到回傳結果的使用過程。 它會將以下評估者分組成一個 LLM 評審名單:

元件評估器 它衡量的是什麼 Score 預設通過門檻
工具呼叫準確度 工具呼叫的整體正確性、參數與效率。 1-5 3
工具呼叫成功率 工具呼叫是否完成時沒有技術錯誤。 0 或 1 1
工具輸入精度 工具呼叫參數是否正確。 0 或 1 1
工具輸出利用率 代理人是否正確使用工具,決定其回應。 0 或 1 1
工具選擇 代理人是否選擇必要的工具,避免不必要的電話。 0 或 1 1

綜合結果

主output_qualitytool_use_quality結果僅在所有相關成分通過時才會通過。 不適用的元件會被跳過,且不會導致主要結果失敗。 若跳過所有分量,主要結果為 not_applicable。

每個綜合評估器會回傳一個主要二元結果及其組成評估者的結果。 嚴格品質閘使用主要結果,並用元件結果來識別導致失效的品質維度。

Output Description
output_quality 或 tool_use_quality 主要分數。 值 1 表示所有適用的元件都通過了。 值 0 為表示至少有一個適用元件失敗。
<component>_score 來自元件評估器的數值分數。
<component>_result 根據元件的門檻決定通過/不通過結果。
<component>_reason 關於組成分數的說明。
<component>_status 表示該元件是已完成還是被跳過。
<composite>_reason 清單顯示故障元件或顯示元件被跳過。
<composite>_properties 包含失敗與跳過元件清單,以及模型與代幣的元資料。

例如,當流暢度、一致性、意圖解決、任務依從性及任務完成通過但基礎性未通過時,輸出品質結果即告失敗。 他們 output_quality_reason 指出「接地感」是失敗的部分,並 groundedness_reason 解釋了它的分數。

配置複合評估器

這兩種綜合評估器都支援回合層級與對話層級的評估。 輸入形狀預設決定評估等級:

  • query地圖和response回合評估。
  • 用於對話層級評估的地圖 messages 。

將初始化參數設 evaluation_level 為 或 turnconversation 以覆蓋此行為。

以下配置在轉彎層級同時運行兩個複合評估器。 回應包含代理訊息及工具呼叫與結果,工具定義描述代理可用的工具。

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "output_quality",
        "evaluator_name": "builtin.output_quality",
        "initialization_parameters": {
            "deployment_name": model_deployment,
            "evaluation_level": "turn",
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
            "tool_definitions": "{{item.tool_definitions}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "tool_use_quality",
        "evaluator_name": "builtin.tool_use_quality",
        "initialization_parameters": {
            "deployment_name": model_deployment,
            "evaluation_level": "turn",
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
            "tool_definitions": "{{item.tool_definitions}}",
        },
    },
]

參考資料: 從 SDK 執行評估

要評估完整對話,請將完整對話映射到 messages ,並省略 evaluation_level 或設定為 conversation:

"initialization_parameters": {
    "deployment_name": model_deployment,
    "evaluation_level": "conversation",
},
"data_mapping": {
    "messages": "{{item.messages}}",
    "tool_definitions": "{{item.tool_definitions}}",
},

參考資料: 帶有工具呼叫的訊息

模型與工具支援

對於 AI 輔助評估者,你可以使用 Azure OpenAI 或 OpenAI 推理模型以及非推理模型作為 LLM 評審。

支援工具

代理人評估員支援以下工具:

  • 檔案搜尋
  • 功能工具(使用者自訂工具)
  • MCP
  • 知識型多元多元處理計畫(MCP)

以下工具目前支援有限。 如果你的客服人員對話包含使用以下工具,請避免使用 tool_call_accuracy, tool input accuracy, tool_output_utilizationtool_call_successgroundedness 或 評估器:

  • Azure AI 搜尋服務
  • Bing 基礎設置
  • Bing 自訂搜尋
  • SharePoint 基礎設置
  • 程式碼解譯器
  • Fabric 資料代理
  • 網路內容搜尋

使用代理人評估器

代理人評估者評估 AI 代理人執行任務、遵循指示及有效使用工具的能力。 每個評估器都需要特定的資料映射與參數:

評估員 所需輸入 必要參數 支援的評估等級
任務完成(預覽) (query, response) 或 messages;可選: tool_definitions deployment_name;可選: evaluation_level 轉身,對話
客戶滿意度(預覽版) (query, response) 或 messages deployment_name;可選性: threshold, evaluation_level 轉身,對話
任務依附(預覽) (query, response) 或 messages;可選: tool_definitions deployment_name 轉動
意圖解析度(預覽) (query, response) 或 messages deployment_name;可選: evaluation_level 轉動
工具呼叫準確度 (query, ) tool_definitions或 (messages, ;tool_definitionsresponse) 和 tool_calls 是可選的,且query deployment_name;可選: evaluation_level 轉動
工具選擇 (query, ) tool_definitions或 (messages, ;tool_definitionsresponse) 和 tool_calls 是可選的,且query deployment_name;可選: evaluation_level 轉動
工具輸入精度 (query, response, ) tool_definitions或 (messages, tool_definitions) deployment_name;可選: evaluation_level 轉動
工具輸出利用率 (query, response, ) tool_definitions或 (messages, tool_definitions) deployment_name;可選: evaluation_level 轉動
工具呼叫成功率 response 或 messages deployment_name;可選: evaluation_level 轉動
任務導航效率 (actions 或 messages), expected_actions (無;可選: matching_mode) 轉動
輸出品質 query且response;或。messages tool_definitions 是選擇性的。 deployment_name;可選: evaluation_level 轉身,對話
工具使用品質 query, , response, tool_definitions和;或 messages 與 tool_definitions。 deployment_name;可選: evaluation_level 轉身,對話

回合層級評估會評分個別代理人的回應;對話層級評估會評分整個互動內容。 當評估者同時支持時,請使用 evaluation_level 來選擇等級。 關於訊息結構,請參見 帶有工具呼叫的訊息。

範例輸入

你的測試資料集應該包含資料映射中所參考的欄位。 以下為格式範例:

{"query": "What's the weather in Seattle?", "response": "The weather in Seattle is rainy, 14°C."}
{"query": "Book a flight to Paris for next Monday", "response": "I've booked your flight to Paris departing next Monday at 9:00 AM."}
{"messages": [{"role": "user", "content": "Book a flight to Paris."}, {"role": "assistant", "content": "I booked your flight to Paris."}]}

對於更複雜的代理與工具呼叫互動,請使用訊息陣列 和 queryresponse。 這些陣列使用與首選 messages 結構相同的 OpenAI 訊息結構。 請參閱 「分開查詢與回應格式」。 系統訊息為可選,但對於評估代理人行為的評估者非常有用,這些指令包括 task_adherence、 task_completion、 tool_call_accuracy、 tool_selectiontool_input_accuracytool_output_utilizationgroundedness及 :

{
    "query": [
        {"role": "system", "content": "You are a travel booking agent."},
        {"role": "user", "content": "Book a flight to Paris for next Monday"}
    ],
    "response": [
        {"role": "assistant", "content": [{"type": "tool_call", "tool_call_id": "call_123", "name": "search_flights", "arguments": {"destination": "Paris", "date": "next Monday"}}]},
        {"role": "tool", "tool_call_id": "call_123", "content": [{"type": "tool_result", "tool_result": {"flight": "AF123", "time": "9:00 AM"}}]},
        {"role": "assistant", "content": "I've booked flight AF123 to Paris departing next Monday at 9:00 AM."}
    ]
}

工具定義格式

欄位 tool_definitions 描述了代理人可用的工具。 它包含一個工具物件清單,description包含一個name、 、 以及 JSON Schema parameters 物件:

[
  {
    "name": "search_flights",
    "description": "Search for available flights to a destination on a given date.",
    "parameters": {
      "type": "object",
      "properties": {
        "destination": { "type": "string", "description": "The destination city." },
        "date": { "type": "string", "description": "The travel date in YYYY-MM-DD format." }
      },
      "required": ["destination", "date"]
    }
  }
]

將此清單 tool_definitions 作為測試資料集中的欄位,與 queryresponse和 一起。

設定範例

資料映射語法:

  • {{item.field_name}} 參考你測試資料集中的欄位(例如, {{item.query}})。
  • {{sample.output_items}} 參考代理的結構化輸出,包括工具呼叫與結果。 對於需要完整互動上下文(task_adherence, , tool_call_accuracytool_selection, tool_input_accuracy, ) tool_output_utilization的評估者,請使用此方法。
  • {{sample.output_text}} 引用了代理人的明文回覆。 對於期望字串回應的評估者(例如, coherence, violence)使用此方法。

以下是任務依附的範例配置:

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "task_adherence",
        "evaluator_name": "builtin.task_adherence",
        "initialization_parameters": {"deployment_name": model_deployment},
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
        },
    },
]

關於執行評估及設定資料來源的詳細說明,請參閱 SDK 中的執行評估 。

範例輸出

代理人評估員會帶著推理回傳通過/不通過的結果。 主要輸出欄位:

{
    "type": "azure_ai_evaluator",
    "name": "Task Adherence",
    "metric": "task_adherence",
    "label": "pass",
    "reason": "Agent followed system instructions correctly",
    "threshold": 3,
    "passed": true
}

對於在閾值設定前使用 1–5 刻度(如 intent_resolution 和 tool_call_accuracy),輸出會包含一個數 score 值欄位,旁邊是通過/不通過結果:

{
    "type": "azure_ai_evaluator",
    "name": "Intent Resolution",
    "metric": "intent_resolution",
    "label": "pass",
    "score": 4,
    "reason": "Agent correctly identified the user's intent to book a flight to Paris",
    "threshold": 3,
    "passed": true
}

任務導航效率

任務導航效率衡量代理人是否採取了最佳的行動序列,方法是與預期序列(地面真實)比較。 使用此評估器進行工作流程優化與迴歸測試。

{
    "type": "azure_ai_evaluator",
    "name": "task_navigation_efficiency",
    "evaluator_name": "builtin.task_navigation_efficiency",
    "initialization_parameters": {
        "matching_mode": "exact_match"  # Options: "exact_match", "in_order_match", "any_order_match"
    },
    "data_mapping": {
        "actions": "{{item.actions}}",
        "expected_actions": "{{item.expected_actions}}"
    },
}

配對模式:

模式 Description
exact_match 代理人的軌跡必須完全符合真實情況(順序與內容)
in_order_match 所有地面真實步驟必須以正確順序出現在代理人的軌跡中(允許額外步驟)
any_order_match 所有地面真實步驟必須出現在代理人的軌跡中,順序無關緊要(允許額外步驟)

動作格式:

映射為 actionsmessages 或 。expected_actions 欄位 actions 接受字串或訊息物件清單。 該 messages 欄位接受完整的互動,作為一組訊息物件的陣列。 每個動作訊息代表代理在對話中所採取的步驟:

actions = [
    {
        "role": "assistant",
        "content": [
            {"type": "function_call", "name": "call_tool_A", "arguments": "{\"param\": \"value\"}"}
        ]
    },
    {
        "role": "assistant",
        "content": [
            {"type": "function_call", "name": "call_tool_B", "arguments": "{}"}
        ]
    },
]

Note

actions和expected_actions欄位使用不同的格式。 actions 包含代理作為文字或訊息物件的實際行為,而 expected_actions 包含預期的工具名稱及其參數(可選性)。

若要以訊息形式提供代理互動,而非 actions,映射 messages 與 expected_actions:

"data_mapping": {
    "messages": "{{item.messages}}",
    "expected_actions": "{{item.expected_actions}}",
}

預期行動格式:

這 expected_actions 可以是一列簡單的預期步驟清單:

expected_actions = ["identify_tools_to_call", "call_tool_A", "call_tool_B", "response_synthesis"]

或者一個包含工具名稱和參數的元組,以便更詳細的驗證:

expected_actions = (
    ["func_name1", "func_name2"],
    {
        "func_name1": {"param_key": "param_value"},
        "func_name2": {"param_key": "param_value"},
    }
)

輸出:

回傳二元通過/失敗結果,加上精確度、召回率及 F1 分數:

{
    "type": "azure_ai_evaluator",
    "name": "task_navigation_efficiency",
    "passed": true,
    "details": {
        "precision_score": 0.85,
        "recall_score": 1.0,
        "f1_score": 0.92
    }
}

代理訊息結構

代理評估員在需要指令、工具呼叫及工具結果時會使用訊息陣列。 關於典型訊息結構、角色定義及範例資料,請參閱 帶有工具呼叫的訊息 及 獨立查詢與回應格式。