WebMCP 평가
게시일: 2026년 5월 19일, 최종 업데이트: 2026년 5월 28일
| 설명하듯이 | 웹 | 확장 프로그램 | Chrome 상태 | 의도 |
|---|---|---|---|---|
| GitHub | View | 실험 의도 |
WebMCP는 생성형 AI 모델을 사용하는 에이전트를 지원합니다. 생성형 AI를 사용하여 시스템을 테스트하려면 테스트에서 확률적 결과를 지원해야 합니다. 하나의 입력으로 정확도가 다양한 수천 개의 답변이 나올 수 있습니다. 이 테스트 기법을 평가 또는 평가라고 합니다.
도구를 프로덕션에 출시하기 전에 에이전트가 도구를 호출해야 하는 시점, 도구를 실행하는 방법, 허용되는 답변을 이해하는지 확인해야 합니다. 실패가 발생하기 전에 실패 기회를 해결하세요.
평가를 작성하여 대규모 언어 모델(LLM)과의 시스템 터치 포인트를 테스트합니다.
- 모델이 설명과 스키마를 기반으로 도구의 목적을 이해하는지 확인합니다.
- 모델이 사용자 의도를 지원하기 위해 올바른 매개변수로 올바른 도구를 선택하는지 확인합니다.
- 모델이 수신한 정보를 기반으로 작동하는지 확인합니다(예: 정보를 사용하여 다른 도구를 호출).
- 성공적인 사용자 여정을 확인합니다. 사용자의 의도를 고려할 때 에이전트가 제공된 도구를 사용하여 내 웹사이트에서 사용자 여정을 성공적으로 완료할 수 있나요?
모델과 통신하지 않는 시스템 상호작용에 대해서는 계속해서 클래식 결정론적 테스트를 작성해야 합니다.
오류 모드
개발자는 실패가 발생하기 전에 시스템을 테스트하여 실패를 방지해야 합니다. 이렇게 하려면 시스템이 자체적으로 실패할 수 있는 경우와 외부 요인과 상호작용할 때 실패할 수 있는 경우를 모두 이해해야 합니다. WebMCP의 경우 도구 자체가 실패할 수 있으며 에이전트가 도구를 예상대로 사용하지 못할 수 있습니다.
WebMCP 도구가 실패할 수 있으며 에이전트가 WebMCP 도구로 실패할 수 있습니다. 예를 들어 사용자가 장바구니에 티셔츠를 추가하려고 한다고 가정해 보겠습니다.
| 실패 | 예 | 문제 해결 |
|---|---|---|
| 에이전트가 올바른 도구를 선택하지 못하거나 잘못된 도구를 직접 호출합니다. |
에이전트가
|
|
| 에이전트가 잘못된 순서로 도구를 호출합니다. |
에이전트가
|
|
| 에이전트가 잘못된 인수로 도구를 호출합니다. |
에이전트가
|
|
사용자가 장바구니에 있는 항목을 확인하려는 경우 어떻게 해야 하나요?
| 실패 | 예 | 문제 해결 |
|---|---|---|
| 도구 출력이 잘못되었거나 도구에 누락된 항목이 있습니다. | 사용자가
|
|
마지막으로 도구가 JavaScript가 실패하는 방식으로 실패할 수 있습니다. 문제 해결을 위해 다음을 조사하세요.
- 도구 코드가 잠재적인 모든 런타임 오류와 예외를 올바르게 처리하나요?
- 오류가 에이전트와 모델에 정상적으로 보고되나요?
- 도구가 의존하는 외부 API 또는 서비스가 정상인가요?
- 오류 구조가 모델이 일시적인 문제 (재시도)와 심각한 실패를 구분할 수 있을 만큼 명확한가요?
격리 상태에서 도구 테스트
에이전트가 '작은 피자를 주문하고 싶습니다'와 같은 요청에 대해 호출할 도구를 파악할 수 없는 경우 복잡한 사용자 여정에서 성공할 가능성이 없습니다.
격리 상태에서 도구를 테스트하면 브라우저 시뮬레이션을 실행하기 전에 스키마와 설명을 최적화할 수 있습니다.
호출 정확도 측정
데모인
WebMCP zaMaker를 살펴보세요.
사용자가 '작은 피자를 주문하고 싶습니다'라고 입력하면 모델 응답에서
set_pizza_size 호출을 실행하려는 의도를 나타낼 수 있습니다.
"size":"Small" 인수로
expectedCall 함수는 예상되는 함수와 인수를 정의합니다. 이 접근 방식을 사용하면 제공된 스키마를 기반으로 에이전트가 사용자 의도를 지원하는 올바른 도구를 선택하는지 확인할 수 있습니다.
{
"messages": [
{
"role": "user",
"content": "I'd like a small pizza."
}
],
"expectedCall": [
{
"functionName": "set_pizza_size",
"arguments": { "size": "Small" }
}
]
}
expectedCall은 규칙 기반의 결정론적 테스트를 실행하는 데 사용됩니다.
WebMCP 도구를 구성요소의 수명 주기에 연결할 수 있습니다. 즉, 애플리케이션 상태가 WebMCP에서 예상하는 상태와 일치할 때 테스트해야 합니다. 이를 관리하려면 평가하려는 상태와 관련된 전체 도구 목록을 제공하세요. 예를 들어 사용자가 에이전트와 공동 탐색하고 WebMCP zaMaker를 엽니다.
애플리케이션 상태
[
...
{
"name": "add_topping",
"description": "Add one or more toppings to the pizza",
...
},
{
"name": "set_pizza_size",
"description": "Set the pizza size directly.",
"inputSchema": {
"type": "object",
"properties": {
"size": {
"type": "string",
"enum": [
"Small",
"Medium",
"Large",
"Extra Large"
],
"description": "The specific size name."
},
}
}
},
{
"name": "set_pizza_style",
"description": "Set the style of the pizza (colors/theme)",
...
},
...
]
예상되는 호출
...
"expectedCall": [
{
"functionName": "set_pizza_size",
"arguments": { "size": "Small" }
}
]
...
WebMCP는 열 때 add_topping, set_pizza_size, set_pizza_style 도구를 노출합니다. 이러한 개별 도구를 정확하게 테스트하려면 시뮬레이션된 완전한 상태를 만들기 위해 모든 도구를 포함해야 합니다.
참고: 에이전트가 추가 도구에 액세스할 수 있지만 제공하는 도구를 평가하는 것이 가장 좋습니다.
이제 에이전트가 필요에 따라 올바른 도구를 호출한다는 것을 알았으므로 도구 호출에 올바른 매개변수가 있고 결과가 예상대로인지 테스트할 수 있습니다. 결정론적 테스트와 확률적 테스트의 두 단계가 있습니다.
결정론적 테스트 실행
WebMCP 도구는 JavaScript 또는 HTML 주석으로 빌드되므로 결정론적 테스트를 작성하여 다음 작업을 실행할 수 있습니다.
- 도구 로직을 확인합니다.
- 종속 항목이 올바르게 호출되었는지 확인합니다.
- 의도된 다른 부작용과 함께 사용자 인터페이스가 예상대로 업데이트되었는지 확인합니다.
- 반환된 정보가 예상 값과 일치하는지 확인합니다.
- 테스트 매개변수를 검증합니다.
예를 들어 도구에서 SearchComponent 함수를 사용하는 경우 SearchComponent의 모의 객체를 전달하여 테스트할 수 있습니다. 가능한 최상의 결과를 얻으려면 도구가 작동하는 환경을 시뮬레이션해야 합니다. 이는 다른 애플리케이션 통합 테스트를 작성할 때 사용하는 것과 동일한 기법입니다.
확률적 테스트 실행
다음 도구를 올바르게 호출하려면 모델 출력이 필요한 경우 평가를 작성해야 합니다.
사용자가 도구의 기능을 구체적으로 요청하는 직접 쿼리 또는 도구를 사용해야 함을 암시하는 모호한 쿼리를 모델에 제공할 수 있습니다. 예를 들어 '피자에 페퍼로니를 추가해 주세요'는 직접 쿼리입니다. '피자에 모든 고기를 넣어 주세요'는 더 모호하며 모델이 add_topping 도구가 필요하고 어떤 토핑을 고기로 정의할 수 있는지 이해해야 합니다.
평가를 위한 데이터 세트를 만들 때 기준 도구 실행을 테스트하는 직접 쿼리와 모델 추론 및 도구 선택 로직을 테스트하는 개방형 쿼리를 모두 포함합니다.
커피숍을 운영하는 경우 에이전트에게 지난달에 주문한 것과 동일한 커피를 다시 주문하도록 요청하는 사용자를 지원할 수 있습니다. 이전 주문을 검색하는 도구(OrderHistoryService)와 커피를 주문하는 도구를 작성합니다. 주문 내역 서비스를 테스트하기 위해 커피 제품 ID를 반환하는 모의 객체를 전송할 수 있습니다.
이 예에서는 모델이 쿼리의 의도를 이해하고 올바른 도구를 선택하며 해당 도구가 조치를 취하는 데 필요한 올바른 정보를 제공하는지 평가합니다.
모델이 get_order_history를 호출하지 않으면 order_product에 사용할 item_id를 알 수 없습니다.
엔드 투 엔드 테스트
엔드 투 엔드 테스트를 작성하여 사용자와 에이전트가 여정을 성공적으로 완료할 수 있다고 확신하세요. 개별 도구를 테스트하는 것 외에도 다단계 작업이 올바른 순서로 실행되는지 테스트합니다.
예를 들어 온라인 의류 매장을 운영합니다. 사용자가 에이전트에게 '검은색 재킷과 청바지를 구매하려고 합니다. 사용된 소재의 세부정보를 제공해 주시겠어요?'라고 요청합니다.
성공적인 에이전트 여정은 다음과 같습니다.
- 의류 카테고리로 이동합니다.
- 요청된 의류 항목 중 하나를 찾습니다 (순서는 중요하지 않음).
- 특정 항목을 찾습니다 (
search_clothes). - 소재 목록이 포함된 제품 세부정보를 가져옵니다 (
get_product_details). - 요청된 각 항목에 대해 2~4단계를 반복합니다.
에이전트가 2단계에 도달하면 검은색 재킷이나 청바지를 먼저 검색할 수 있습니다. 순서는 중요하지 않습니다. 하지만 나머지 단계는 순차적으로 따라야 합니다.
에이전트가 예상되는 순서로 도구를 호출하는지 확인하는 엔드 투 엔드 평가를 작성합니다.
{
"messages": [
{
"role": "user",
"content": "I am looking to buy a black jacket and a pair of jeans.
Could you provide a breakdown of the materials used ?"
}
],
"expectedCall": [
{
"functionName": "navigate_to_category",
"arguments": { "category": "clothes" }
},
{
"unordered": [
{
"ordered": [
{
"functionName": "search_clothes",
"arguments": { "query": "black jacket" }
},
{
"functionName": "get_product_details",
"arguments": { "productId": "JACKET002" }
}
]
},
{
"ordered": [
{
"functionName": "search_clothes",
"arguments": { "query": "jeans" }
},
{
"functionName": "get_product_details",
"arguments": { "productId": "JEANS001" }
}
]
}
]
}
]
}
체인 중간 실패 평가
start_pizza_creator, set_pizza_style, set_pizza_size, start_checkout, add_discount_coupon, complete_checkout. add_discount_coupon이 실패했지만 프로세스를 계속 완료할 수 있었습니다. 즉, 사용자에게 할인이 제공되지 않았습니다.에이전트가 여러 도구를 순차적으로 호출해야 하는 경우가 있을 수 있습니다. 이 프로세스 중간에 도구가 실패하면 어떻게 되나요? 예를 들어 사용자가 쿠폰 코드로 피자를 주문하려고 합니다.
'페스토 피자 작은 사이즈로 주문하고 싶습니다. 프로모션 코드 FreePizza를 사용해 주세요.'
에이전트가 add_discount_coupon에서 실패하고 정가 피자를 결제할 수 있습니다. add_discount_coupon 도구를 테스트하려면 모델과 상호작용하지 않고 이 도구 호출 시퀀스를 수동으로 실행하여 이 시나리오를 시뮬레이션할 수 있습니다. 도구가 실패할 것으로 예상되는 상태로 애플리케이션을 가져옵니다. 이 경우 start_checkout 도구 이후입니다. 그런 다음 add_discount_coupon을 격리 상태에서 평가할 수 있습니다.
WebMCP 실험
격리 상태에서 도구 평가를 실험하고 WebMCP 호환 에이전트를 사용하여 WebMCP 지원 사이트를 평가해 보세요.
- GitHub에서 실험적 평가 도구를 다운로드합니다.
- AI 평가 만들기 과정을 검토합니다.