> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ycloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Тестирование и оценка

> Проверьте одношаговые и многошаговые сценарии, передачу диалога, инструменты и бизнес-сценарии перед полным развертыванием.

Протестируйте агента на ожидаемых ответах и случаях сбоев перед изменением аудитории на `EVERYONE`.

## Начните с ограниченных настроек

Оставьте развертывание, передачу диалога и последующие действия отключенными во время создания базовой линии тестирования. Ограничьте аудиторию перед добавлением тестовых получателей.

**Справочник по API:** [GET Get Settings](/api-reference/meta-business-agents/get-settings) · [PUT Replace Settings](/api-reference/meta-business-agents/replace-settings)

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl --request PUT \
  "https://api.ycloud.com/v2/metaBusinessAgents/$PHONE_NUMBER_ID/settings" \
  --header "X-API-Key: $YCLOUD_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "rollout": {"enabled": false},
    "handoff": {"enabled": false},
    "followup": {"enabled": false},
    "ai_audience": "ALLOWLISTED_ONLY"
  }'
```

[GET Get Settings](/api-reference/meta-business-agents/get-settings) возвращает массив, даже если существует только один объект настроек. [PUT Replace Settings](/api-reference/meta-business-agents/replace-settings) возвращает обновленный объект настроек. YCloud пропускает поля со значением null перед вызовом Meta, поэтому непереданные настройки остаются без изменений.

| Поле | Базовая линия тестирования |
| - | - |
| `rollout.enabled` | Оставьте `false`, пока агент не будет готов к тестированию в реальных условиях WhatsApp. |
| `handoff.enabled` | Оставьте `false` во время тестирования базовых ответов. Включайте отдельно при тестировании сценариев передачи диалога. |
| `followup.enabled` | Оставьте `false` во время тестирования базовых ответов. Включайте отдельно при тестировании сценариев последующих действий. |
| `ai_audience` | Используйте `ALLOWLISTED_ONLY`, пока не будет пройдено ограниченное приемочное тестирование. |

Считайте действующие настройки после обновления. Изменяйте только одно поведение за раз при тестировании передачи диалога или последующих действий, затем восстанавливайте ограниченную базовую линию перед переходом к другому сценарию.

## Добавление тестовых получателей

Оставьте для `ai_audience` значение `ALLOWLISTED_ONLY`, затем добавьте каждого тестировщика в виде номера телефона в формате E.164. Сохраните возвращенный `id` записи списка разрешенных, чтобы позже можно было удалить эту запись.

**Справочник по API:** [GET List Allowlist](/api-reference/meta-business-agents/list-allowlist) · [POST Create Allowlist Entry](/api-reference/meta-business-agents/create-allowlist-entry) · [DELETE Delete Allowlist Entry](/api-reference/meta-business-agents/delete-allowlist-entry)

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl --request POST \
  "https://api.ycloud.com/v2/metaBusinessAgents/$PHONE_NUMBER_ID/allowListEntries" \
  --header "X-API-Key: $YCLOUD_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"consumer_phone_number":"+14155550123"}'
```

Используйте [GET List Allowlist](/api-reference/meta-business-agents/list-allowlist) для просмотра текущей тестовой аудитории. Используйте [DELETE Delete Allowlist Entry](/api-reference/meta-business-agents/delete-allowlist-entry) для удаления тестировщика по возвращенному ID записи.

<Warning>
  Не используйте номер конечного пользователя с телефонным кодом страны `+86`. В настоящее время Meta Business Agent не отвечает на сообщения от конечных пользователей `+86`, даже если номер отформатирован в правильном формате E.164 и добавлен в список разрешенных.
</Warning>

## Запуск одношагового теста

**Справочник по API:** [POST Test Agent](/api-reference/meta-business-agents/test-agent)

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl --request POST \
  "https://api.ycloud.com/v2/metaBusinessAgents/$PHONE_NUMBER_ID/tests" \
  --header "X-API-Key: $YCLOUD_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"user_msg":"What is your return policy?"}'
```

Успешный ответ может содержать:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "message_id": "MESSAGE_ID",
  "agent_response": "Unused items can be returned within 30 days.",
  "conversation_id": "CONVERSATION_ID",
  "timestamp": 1787630155,
  "quick_replies": [],
  "product_variant_ids": []
}
```

| Поле ответа | Значение |
| - | - |
| `message_id` | Идентификатор сообщения для сгенерированного ответа. |
| `agent_response` | Сгенерированный текст ответа. Может быть пустым, если присутствует `no_response_reason`. |
| `conversation_id` | Идентификатор контекста для последующих шагов теста. |
| `timestamp` | Метка времени Unix в секундах. |
| `handoff_reason` | Причина, по которой агент решил передать диалог человеку (если присутствует). |
| `no_response_reason` | Причина, по которой агент не выдал ответ (если присутствует). |
| `quick_replies` | Предлагаемые метки быстрых ответов (если присутствуют). |
| `product_variant_ids` | Варианты продуктов, на которые ссылается ответ (если присутствуют). |

Текущий ответ REST не включает `estimated_token_usage`.

## Сохранение контекста для многошаговых тестов

Отправьте возвращенный `conversation_id` со следующим сообщением клиента.

**Справочник по API:** [POST Test Agent](/api-reference/meta-business-agents/test-agent)

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl --request POST \
  "https://api.ycloud.com/v2/metaBusinessAgents/$PHONE_NUMBER_ID/tests" \
  --header "X-API-Key: $YCLOUD_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "user_msg": "What information do you need from me?",
    "conversation_id": "CONVERSATION_ID"
  }'
```

Используйте новый диалог для сценариев, которые не должны наследовать предыдущий контекст.

## Тестирование знаний, навыков, коннекторов и инструментов

Охватите настроенные ресурсы вместо тестирования только идеальных сценариев (happy-path).

**Справочник по API:** [POST Run Connector Tool](/api-reference/meta-business-agents/run-connector-tool) · [GET List Connector Logs](/api-reference/meta-business-agents/list-connector-logs)

* Задавайте вопросы, ответы на которые содержатся в бизнес-информации, FAQ, на веб-сайтах и в файлах.
* Проверяйте недостающие факты, противоречивые источники, устаревший контент и неподдерживаемые запросы.
* Проверяйте, когда каждый навык должен и не должен запускаться.
* Проверяйте каждый инструмент коннектора с валидными, невалидными и неполными входными данными.
* Убедитесь, что секретные значения никогда не появляются в ответах или журналах.
* Включайте случаи, которые должны инициировать передачу диалога человеку или не давать ответа.

Если вызов коннектора завершается ошибкой, изучите журналы коннектора и проверьте учетные данные, состояние сертификата, привязки параметров и определения запросов инструмента перед изменением навыка.

Запустите каждый настроенный инструмент напрямую через `/connectors/{connectorId}/tools/{toolId}/runs` с репрезентативными `input`, прежде чем разрешить агенту выбирать его в диалоге:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl --request POST \
  "https://api.ycloud.com/v2/metaBusinessAgents/$PHONE_NUMBER_ID/connectors/CONNECTOR_ID/tools/TOOL_ID/runs" \
  --header "X-API-Key: $YCLOUD_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"input":"Look up order ORD-1001"}'
```

## Тестирование через WhatsApp с получателями из списка разрешенных

Проверьте те же сценарии с каждого тестового номера телефона из списка разрешенных. Это подтверждает поведение в реальном канале, которое тестовая конечная точка не может воспроизвести полностью.

<Warning>
  Во время раннего доступа тестовая конечная точка может возвращать пустой ответ или `ELIGIBILITY_CHECK_FAILED`, пока аудитория имеет значение `ALLOWLISTED_ONLY`. Проверьте `no_response_reason`, соответствие требованиям, развертывание, аудиторию и настройки списка разрешенных. Если для тестирования API требуется `EVERYONE`, используйте его только в контролируемой среде и восстановите ограниченную настройку сразу после теста.
</Warning>

## Запуск оценок

API оценки предоставляет следующие ресурсы:

| Метод | Путь | Назначение |
| - | - | - |
| `GET` | [List Eval Cases](/api-reference/meta-business-agents/list-eval-cases) | Список доступных случаев оценки. |
| `POST` | [Submit Eval Run](/api-reference/meta-business-agents/submit-eval-run) | Запуск выполнения оценки. |
| `GET` | [Get Eval Run Status](/api-reference/meta-business-agents/get-eval-run-status) | Опрос прогресса и результата выполнения. |
| `GET` | [Get Eval Details](/api-reference/meta-business-agents/get-eval-details) | Получить подробные результаты оценки. |
| `GET` | [Get Eval Summary](/api-reference/meta-business-agents/get-eval-summary) | Получить сводки оценок. |

Перечислите доступные случаи, отправьте запуск, используя требуемое значение `eval_case_ids`, сохраните возвращенный `job_id` и опрашивайте конечную точку задания.

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl "https://api.ycloud.com/v2/metaBusinessAgents/$PHONE_NUMBER_ID/evalCases" \
  --header "X-API-Key: $YCLOUD_API_KEY"
```

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl --request POST \
  "https://api.ycloud.com/v2/metaBusinessAgents/$PHONE_NUMBER_ID/evalRuns" \
  --header "X-API-Key: $YCLOUD_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"eval_case_ids":"EVAL_CASE_IDS"}'
```

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl "https://api.ycloud.com/v2/metaBusinessAgents/$PHONE_NUMBER_ID/evalRuns/JOB_ID" \
  --header "X-API-Key: $YCLOUD_API_KEY"
```

Поле статуса возвращается в виде строки и в настоящее время не ограничено документированным перечислением. Прекратите опрос, когда в ответе будет получен завершенный результат или ошибка, вместо того чтобы предполагать недокументированные имена статусов.

Случаи оценки описывают `scenario`, `categories`, `max_turns` и `success_criteria`. Подробные результаты включают оценки, метки ходов, причины, стенограммы и временные метки. Сводки объединяют оценки, основные моменты и категории сбоев.

## Контрольный список для запуска

* Необходимые бизнес-факты верны и не противоречат друг другу.
* Многоходовые разговоры сохраняют заданный контекст.
* Отсутствующая информация приводит к безопасному ответу вместо выдуманного.
* Инструменты коннектора успешно работают и безопасно завершаются с ошибкой при репрезентативном вводе.
* Сценарии передачи работают как ожидается.
* Ошибки оценки рассмотрены и либо исправлены, либо явно приняты.
* Ответственный за откат знает, как отключить развертывание.

<Card title="Далее: Безопасное развертывание" icon="arrow-right" href="/ru/documentation/meta-business-agent/roll-out-safely">
  Сначала включите агента для получателей из белого списка, а затем расширьте на всю аудиторию.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.