Pular para o conteúdo

Guias

Escolher entre candidatos

oloproof select escolhe, entre várias versões de um sistema, a melhor que atende a cada requisito, e diz à parte se ela está mesmo à frente da seguinte. Use-o quando tiver, por exemplo, três agentes, dois prompts ou quatro configurações de recuperação, e um só conjunto de requisitos.

Por que não escolher os melhores números

Escolher o candidato mais barato cujos números passam dos limites tem dois problemas. Um 91% medido contra um limite de 90% está um ponto acima, dentro do ruído de mil casos. E quando você olha vários candidatos, o que passou do limite por sorte é o que você escolhe. Por isso cada candidato precisa primeiro estabelecer cada regra sozinho, com um nível de confiança mais rigoroso porque vários são examinados: com três candidatos e uma política de 95%, cada um é decidido a 98.33% (1 - 0.05/3). Só os candidatos que passam em todas as regras são classificados, e um mais barato nunca pode trocar uma regra de segurança pelo seu custo.

Declarar uma seleção

Escreva um arquivo de seleção ao lado do seu projeto e decida-o sob o release.yaml do projeto:

select:
  candidates:
    agent_a: run_01JC8Q2X7D
    agent_b: agent_b.yaml
    agent_c: agent_c.yaml
  objective:
    metric: cost_per_task
    direction: minimize

Um candidato é um id de execução armazenado, ou um arquivo de projeto que oloproof select executa primeiro. Uma execução que ele pode reutilizar não custa nada novo. A política só pode conter regras de execução, e a parada antecipada precisa estar desligada.

oloproof select select.yaml
oloproof select select.yaml --save

--save também grava a seleção para o workbench local, em Candidates.

Ler a resposta

Há três resultados:

  • Um candidato é selecionado e sua vantagem sobre o segundo está estabelecida: a comparação pareada dos dois no objetivo é PASS.
  • Um candidato é selecionado e sua vantagem não está estabelecida: o segundo teria sido uma escolha igualmente defensável com estas evidências.
  • Nenhum candidato se qualifica: as regras de cada candidato são listadas com suas respostas, para você ver o que falta.

O comando sai com 0 quando um candidato é selecionado e com 3 quando nenhum se qualifica.

Um exemplo completo

Três agentes precisam atingir uma taxa de sucesso de pelo menos 90% e uma taxa de violações de no máximo 1%; o objetivo é o menor custo por tarefa.

AgenteSucessoViolaçõesCusto por tarefa
A94%0.5%$18
B91%0.1%$12
C96%2%$30

Cada um é decidido a 98.33%. Com 1,000 casos nenhum agente se qualifica: a taxa de violações de A ainda não foi mostrada abaixo de 1%, os 91% de B estão perto demais de 90% para serem estabelecidos, e C rompe o teto de violações. A resposta é "nenhum candidato se qualifica", com o que falta a cada um. Com 3,000 casos A estabelece as duas regras e é selecionado. B é mais barato, mas seu sucesso ainda não está estabelecido, então ele nunca é classificado: escolher B pelos números entregaria um requisito que ninguém demonstrou.

Compartilhar uma seleção

oloproof select select.yaml --save guarda a seleção para o workbench. oloproof push --selection ID a envia ao workspace hospedado com a execução de cada candidato, pela política de egress do projeto; ID é o nome da pasta em .oloproof/bundles/ ou o digest da seleção. Antes de guardar a seleção, o workspace a refaz a partir das execuções que tem, sob a política com que essas execuções foram decididas, e só a guarda se o resultado for o mesmo: uma cujo resultado ou frases foram editados, que nomeia uma execução que o projeto não tem, ou que o motor não faz a partir dessas execuções, é recusada, e nada é armazenado. Então decida as execuções dos candidatos sob a política da seleção antes de enviá-las. A página Candidates do projeto a lista, e a página dela a mostra exatamente como o workbench local.

Um Owner ou Admin pode fazer dela uma página de evidência a partir da página da seleção: o resultado, o nível e, para cada candidato, o nome, o id da execução e as regras no nível corrigido, com o rótulo "Reported by the developer", nunca o conteúdo de um caso.

Próximos passos