가이드
후보 중에서 선택하기
oloproof select는 시스템의 여러 버전 중 모든 요구 사항을 충족하는 가장 좋은 버전을 고르고, 그것이 다음 버전보다 정말 앞서는지를 따로 알려 줍니다. 예를 들어 에이전트 셋, 프롬프트 둘 또는 검색 설정 넷과 요구 사항 한 세트가 있을 때 사용하세요.
왜 가장 좋은 숫자를 고르지 않는가
숫자가 기준을 넘는 후보 중 가장 저렴한 것을 고르면 두 가지 문제가 있습니다. 90% 기준에 대해 측정된 91%는 한 포인트 위일 뿐이고, 천 개 케이스의 노이즈 안에 있습니다. 그리고 여러 후보를 보면, 운으로 기준을 넘은 후보가 바로 선택됩니다. 그래서 각 후보는 먼저 모든 규칙을 스스로 입증해야 하며, 여러 후보를 보기 때문에 더 엄격한 신뢰 수준을 씁니다. 후보 세 개와 95% 정책이라면 각각 98.33% (1 - 0.05/3)에서 결정됩니다. 모든 규칙을 통과한 후보만 순위가 매겨지며, 더 저렴한 후보가 안전 규칙을 비용과 맞바꿀 수는 없습니다.
선택 선언하기
프로젝트 옆에 선택 파일을 작성하고, 프로젝트의 release.yaml 아래에서 결정합니다.
select:
candidates:
agent_a: run_01JC8Q2X7D
agent_b: agent_b.yaml
agent_c: agent_c.yaml
objective:
metric: cost_per_task
direction: minimize후보는 저장된 실행 ID이거나, oloproof select가 먼저 실행하는 프로젝트 파일입니다. 재사용할 수 있는 실행에는 새 비용이 들지 않습니다. 정책에는 실행 규칙만 들어갈 수 있고, 조기 중단은 꺼져 있어야 합니다.
oloproof select select.yaml
oloproof select select.yaml --save--save는 로컬 workbench의 Candidates에도 선택을 기록합니다.
답 읽기
결과는 세 가지입니다.
- 후보가 선택되고 차순위에 대한 우위가 입증됨: 목표에 대한 두 후보의 짝지은 비교가 PASS입니다.
- 후보가 선택되었지만 우위는 입증되지 않음: 이 증거로는 차순위도 똑같이 타당한 선택이었을 것입니다.
- 자격을 갖춘 후보 없음: 각 후보의 규칙이 답과 함께 나열되므로 무엇이 부족한지 볼 수 있습니다.
후보가 선택되면 명령은 0으로, 자격을 갖춘 후보가 없으면 3으로 종료합니다.
실제 예시
세 에이전트는 성공률 90% 이상, 위반률 1% 이하를 달성해야 하며, 목표는 작업당 비용을 가장 낮추는 것입니다.
| 에이전트 | 성공 | 위반 | 작업당 비용 |
|---|---|---|---|
| A | 94% | 0.5% | $18 |
| B | 91% | 0.1% | $12 |
| C | 96% | 2% | $30 |
각각 98.33%에서 결정됩니다. 케이스 1,000개에서는 자격을 갖춘 에이전트가 없습니다. A의 위반률은 아직 1% 미만으로 입증되지 않았고, B의 91%는 90%에 너무 가까워 입증되지 않으며, C는 위반 상한을 넘습니다. 답은 각 후보에게 무엇이 부족한지와 함께 "자격을 갖춘 후보 없음"입니다. 케이스 3,000개에서는 A가 두 규칙을 모두 입증하고 선택됩니다. B가 더 저렴하지만 성공률이 여전히 입증되지 않아 순위에 오르지 않습니다. 숫자만 보고 B를 고르면 아무도 입증하지 않은 요구 사항을 출시하게 됩니다.
선택 공유하기
oloproof select select.yaml --save는 선택을 워크벤치용으로 보관합니다. oloproof push --selection ID는 프로젝트의 egress 정책을 거쳐 각 후보의 실행과 함께 선택을 호스팅된 워크스페이스로 보냅니다. ID는 .oloproof/bundles/ 아래의 폴더 이름이거나 선택의 다이제스트입니다. 워크스페이스는 선택을 보관하기 전에, 보유한 실행으로부터 그 실행들이 판정된 정책 아래에서 선택을 다시 수행하고, 결과가 같을 때만 보관합니다. 결과나 문장이 수정된 선택, 프로젝트에 없는 실행을 가리키는 선택, 또는 엔진이 그 실행들로부터 만들지 않는 선택은 거부되며 아무것도 저장되지 않습니다. 그러니 push하기 전에 후보의 실행을 선택의 정책 아래에서 판정하세요. 프로젝트의 Candidates 페이지에 나열되고, 그 페이지는 로컬 워크벤치와 똑같이 보여 줍니다.
Owner나 Admin은 선택 페이지에서 그 증거 페이지를 만들 수 있습니다. 결과, 수준, 그리고 각 후보의 이름, 실행 ID, 보정된 수준에서의 규칙을 "Reported by the developer" 라벨과 함께 보여 주며, 케이스 내용은 절대 보여 주지 않습니다.