

# Gerenciar um A/B teste
<a name="ab-testing-manage"></a>

Atualize um A/B teste para iniciá-lo, pausá-lo ou pará-lo. Você usa a `UpdateABTest` operação para alterar o status da execução.

**nota**  
Os comandos do ciclo de vida da AgentCore CLI (`view`,,,`pause`, `resume` `stop``promote`,`archive`) identificam um teste pelo **ID de trabalho** passado com`-i, --id`, não pelo nome. Obtenha o ID de `agentcore run ab-test --json` (o `id` campo) ou listando os testes com`agentcore view ab-test`. O ID do trabalho usa o formato`name-suffix`. Por exemplo: `customerSupportTargetTest-Ab1Cd2Ef3G`. Os registros de trabalhos são armazenados localmente como JSON `.cli/jobs/ab-tests/` em seu projeto.

## Exemplos de código
<a name="manage-ab-test-examples"></a>

### Exibir, pausar, retomar e parar
<a name="manage-ab-test-start-stop"></a>

**Example**  
Liste todos os trabalhos de A/B teste ou visualize um em detalhes (também mostra o URL da invocação e os resultados):  

```
agentcore view ab-test
agentcore view ab-test <ab-test-id>
```
Reinicie um teste pausado:  

```
agentcore resume ab-test -i <ab-test-id>
```
Pausa um teste em execução. O tráfego para de se dividir e todas as solicitações são encaminhadas para a variante de controle. Pode ser retomado.  

```
agentcore pause ab-test -i <ab-test-id>
```
Pare um teste permanentemente. Todo o tráfego é revertido para a variante de controle. Isso não pode ser desfeito.  

```
agentcore stop ab-test -i <ab-test-id>
```
Inicie um teste (defina o status de execução como`RUNNING`):  

```
import boto3
import uuid

client = boto3.client("bedrock-agentcore", region_name="us-west-2")

response = client.update_ab_test(
    abTestId="customerSupportPromptTest-Ab1Cd2Ef3G",
    executionStatus="RUNNING",
    clientToken=str(uuid.uuid4()),
)
print(f"Execution status: {response['executionStatus']}")
```
Pausar um teste em execução:  

```
response = client.update_ab_test(
    abTestId="customerSupportPromptTest-Ab1Cd2Ef3G",
    executionStatus="PAUSED",
    clientToken=str(uuid.uuid4()),
)
print(f"Execution status: {response['executionStatus']}")
```
Pare um teste em execução permanentemente:  

```
response = client.update_ab_test(
    abTestId="customerSupportPromptTest-Ab1Cd2Ef3G",
    executionStatus="STOPPED",
    clientToken=str(uuid.uuid4()),
)
print(f"Execution status: {response['executionStatus']}")
```

### Promova a variante de tratamento
<a name="manage-ab-test-promote"></a>

Quando os resultados forem estatisticamente significativos, promova a variante de tratamento. `promote`interrompe o teste e grava a variante de tratamento em`agentcore.json`; execute `agentcore deploy` depois para implementá-la.

**Example**  

```
agentcore promote ab-test -i <ab-test-id>
agentcore deploy
```
O SDK não tem uma única operação de “promoção”. Pare o teste e, em seguida, aplique você mesmo a variante vencedora aos seus recursos (por exemplo, atualizando o pacote de configuração de controle ou o destino do gateway de acordo com o tratamento).

### Excluir um A/B teste
<a name="manage-ab-test-remove"></a>

Exclua um A/B teste e seus metadados associados. O teste deve estar em status de `STOPPED` execução antes de ser excluído. A exclusão de um teste não afeta os pacotes de configuração, o AgentCore Gateway ou a configuração de avaliação on-line referenciados pelo teste.

**Example**  

```
agentcore archive ab-test -i <ab-test-id>
```
Pare e depois exclua:  

```
import boto3
import uuid

client = boto3.client("bedrock-agentcore", region_name="us-west-2")

# First stop the test if it's running
client.update_ab_test(
    abTestId="customerSupportPromptTest-Ab1Cd2Ef3G",
    executionStatus="STOPPED",
    clientToken=str(uuid.uuid4()),
)

# Then delete
response = client.delete_ab_test(
    abTestId="customerSupportPromptTest-Ab1Cd2Ef3G"
)
print(f"Deleted: {response['abTestId']}")
```

## Transições de status de execução
<a name="manage-ab-test-execution-states"></a>


| De | Para | Description | 
| --- | --- | --- | 
|  `NOT_STARTED`  |  `RUNNING`  | Comece o teste. O AgentCore Gateway começa a dividir o tráfego. | 
|  `RUNNING`  |  `PAUSED`  | Faça uma pausa no teste. O tráfego pára de se dividir; todas as rotas de tráfego devem ser controladas. | 
|  `PAUSED`  |  `RUNNING`  | Reinicie um teste pausado. | 
|  `RUNNING`  |  `STOPPED`  | Pare o teste permanentemente. O roteamento de tráfego termina imediatamente. | 
|  `PAUSED`  |  `STOPPED`  | Interrompa permanentemente um teste pausado. | 