Skip to main content

eval.gated_change/1

Decide one change an automated loop made to an agent's text or configuration (guidance, a system prompt, tool caps) against an evaluation set: keep it only on evidence about that exact candidate revision, from a producer the case lists as another agent run than the one that wrote it, that the evaluation design passed review, the change stays inside the surface the loop may change and carries no leaked or forbidden content, it improved on the tuning split and the improvement reproduced, and the held-out split did not regress; reject it when every one of those is decided and one is false; propose it to a person when it leaves the surface; or close the case inconclusive on an explicit decision. The candidate's revision hashes its content together with its basis (baseline, question set, data revision and design), so a moved basis is a new candidate revision and evidence about the old one no longer counts. Missing, stale or non-independent evidence leaves a claim unknown, and unknown neither keeps nor rejects.

Dependency graph​

Which actions may produce which evidence, which claims that evidence establishes, and which outcomes and obligations rest on those claims. Hover or focus a node to trace what it rests on.

Protocol · revision 1

eval.gated_change/1

Decide one change an automated loop made to an agent's text or configuration (guidance, a system prompt, tool caps) against an evaluation set: keep it only on evidence about that exact candidate revision, from a producer the case lists as another agent run than the one that wrote it, that the evaluation design passed review, the change stays inside the surface the loop may change and carries no leaked or forbidden content, it improved on the tuning split and the improvement reproduced, and the held-out split did not regress; reject it when every one of those is decided and one is false; propose it to a person when it leaves the surface; or close the case inconclusive on an explicit decision. The candidate's revision hashes its content together with its basis (baseline, question set, data revision and design), so a moved basis is a new candidate revision and evidence about the old one no longer counts. Missing, stale or non-independent evidence leaves a claim unknown, and unknown neither keeps nor rejects.

  • Actions6
  • Evidence kinds4
  • Claims7
  • Outcomes4
  • Claim supports claim
  • Precondition, traced on hover
  • Needs authority
ACTION · READcandidate.evaluateACTION · WRITEchange.apply_outside_su…ACTION · WRITEchange.keepACTION · NONEchange.proposeACTION · NONEchange.rejectACTION · NONEdesign.reviewEVIDENCE KINDdesign_reviewEVIDENCE KINDguard_checkEVIDENCE KINDheldout_comparisonEVIDENCE KINDtuning_comparisonCLAIMchange.supportedCLAIMchange.within_surfaceCLAIMcontent.cleanCLAIMexperiment.validCLAIMheldout.not_regressedCLAIMresult.reproducibleCLAIMtuning.improvedOUTCOMEinconclusiveOUTCOMEkeptOUTCOMEproposedOUTCOMErejected

Hover or focus a node to trace what it rests on and what rests on it. Press Enter to pin it, Escape to clear.

Protocol as text
Actions
NameDescriptionRuleLeads to
candidate.evaluatecheck and run the current candidate revision: the guard check, the tuning comparison and the held-out comparisoneffect readproduces guard_check; produces heldout_comparison; produces tuning_comparison
change.apply_outside_surfaceapply a candidate that leaves the surface the loop may change; needs a capability never granted to a loopclaim is false: change.within_surface needs loop_change.apply_outside_surface effect write—
change.keepkeep the candidate; needs every keep claim to hold for the current candidate revision and authority to keep a loop's changeclaim change.supported needs loop_change.keep effect write—
change.proposehand a candidate that leaves the surface the loop may change to a person as a proposal, applying nothingclaim is false: change.within_surface effect none—
change.rejectdiscard the candidate, leaving the surface as it was; needs every keep claim decided and one of them false, so an unknown claim never rejectsall of claim is false: change.supported not claim is unknown: change.within_surface not claim is unknown: content.clean not claim is unknown: experiment.valid not claim is unknown: heldout.not_regressed not claim is unknown: result.reproducible not claim is unknown: tuning.improved effect none—
design.reviewreview the evaluation design, under authorityneeds eval_design.review effect noneproduces design_review
Evidence kinds
NameDescriptionRuleLeads to
design_reviewa review of the evaluation design; its result is passed or failed—establishes experiment.valid (passed about eval_design, independent on different_agent_run)
guard_checka check of the candidate, in order, against the surface the loop may change, for expected answers inside the candidate and for new forbidden content in answers; its result is outside, leaked or clean—establishes change.within_surface (not outside about candidate, independent on different_agent_run); establishes content.clean (clean about candidate, independent on different_agent_run)
heldout_comparisona run of the candidate against the baseline on the held-out split; its result is held or regressed—establishes heldout.not_regressed (held about candidate, independent on different_agent_run)
tuning_comparisona first and a second run of the candidate against the baseline on the tuning split; its result is reproduced (both better), not_reproduced (the first better, the second not) or not_better (the first not better)—establishes result.reproducible (reproduced about candidate, independent on different_agent_run); establishes tuning.improved (not not_better about candidate, independent on different_agent_run)
Claims
NameDescriptionRuleLeads to
change.supportedevery keep claim holds for the current candidate revision: the design is valid, the change is within the surface and clean, it improved on the tuning split reproducibly, and the held-out split did not regressall of claim change.within_surface claim content.clean claim experiment.valid claim heldout.not_regressed claim result.reproducible claim tuning.improvedrequires kept; requires rejected (false); gates change.keep; gates change.reject (false)
change.within_surfacean independent guard check of the current candidate revision did not find it outside the surface the loop may changenot evidence = outside: guard_checksupports change.supported; requires proposed (false); requires rejected; gates change.apply_outside_surface (false); gates change.propose (false); gates change.reject (not unknown)
content.cleanan independent guard check of the current candidate revision found it inside the surface, with no expected answers inside it and no new forbidden content in answersevidence = clean: guard_checksupports change.supported; requires rejected (not unknown); gates change.reject (not unknown)
experiment.validthe current evaluation design passed a review by a producer the case lists as another agent run than the loop'sevidence = passed: design_reviewsupports change.supported; requires rejected (not unknown); gates change.reject (not unknown)
heldout.not_regressedan independent run of the current candidate revision on the held-out split did not regress against the baselineevidence = held: heldout_comparisonsupports change.supported; requires rejected (not unknown); gates change.reject (not unknown)
result.reproduciblean independent second run of the current candidate revision on the tuning split reproduced the first run's improvementevidence = reproduced: tuning_comparisonsupports change.supported; requires rejected (not unknown); gates change.reject (not unknown)
tuning.improvedan independent first run of the current candidate revision on the tuning split was better than the baselinenot evidence = not_better: tuning_comparisonsupports change.supported; requires rejected (not unknown); gates change.reject (not unknown)
Outcomes
NameDescriptionRuleLeads to
inconclusivethe case closed on an explicit decision that the evaluation settles nothing——
keptthe case closed with the candidate kept; needs every keep claim to holdclaim change.supported—
proposedthe case closed with the candidate proposed to a person, because it leaves the surface the loop may changeclaim is false: change.within_surface—
rejectedthe case closed with the candidate rejected; needs it within the surface, every keep claim decided and one of them false. Evidence that is missing, about another candidate revision or not independent rejects nothing: it leaves its claim unknown, not falseall of claim is false: change.supported claim change.within_surface not claim is unknown: content.clean not claim is unknown: experiment.valid not claim is unknown: heldout.not_regressed not claim is unknown: result.reproducible not claim is unknown: tuning.improved—

Source: protocols/eval-gated-change/1.yaml

Actions​

What can be done in a case: what it needs first, which authority it requires, the class of effect it has and the evidence it may produce.

ActionDescriptionPreconditionRequires capabilityEffectMay produce
candidate.evaluatecheck and run the current candidate revision: the guard check, the tuning comparison and the held-out comparisonnoneno authorityreadguard_check, heldout_comparison, tuning_comparison
change.apply_outside_surfaceapply a candidate that leaves the surface the loop may change; needs a capability never granted to a loopchange.within_surface is FALSEloop_change.apply_outside_surfacewriteno evidence
change.keepkeep the candidate; needs every keep claim to hold for the current candidate revision and authority to keep a loop's changechange.supported is TRUEloop_change.keepwriteno evidence
change.proposehand a candidate that leaves the surface the loop may change to a person as a proposal, applying nothingchange.within_surface is FALSEno authoritynoneno evidence
change.rejectdiscard the candidate, leaving the surface as it was; needs every keep claim decided and one of them false, so an unknown claim never rejectsall of (change.supported is FALSE; not (change.within_surface is UNKNOWN); not (content.clean is UNKNOWN); not (experiment.valid is UNKNOWN); not (heldout.not_regressed is UNKNOWN); not (result.reproducible is UNKNOWN); not (tuning.improved is UNKNOWN))no authoritynoneno evidence
design.reviewreview the evaluation design, under authoritynoneeval_design.reviewnonedesign_review

Evidence kinds​

The kinds of evidence this protocol admits.

Evidence kindDescriptionProduced byUsed by claims
design_reviewa review of the evaluation design; its result is passed or faileddesign.reviewexperiment.valid
guard_checka check of the candidate, in order, against the surface the loop may change, for expected answers inside the candidate and for new forbidden content in answers; its result is outside, leaked or cleancandidate.evaluatechange.within_surface, content.clean
heldout_comparisona run of the candidate against the baseline on the held-out split; its result is held or regressedcandidate.evaluateheldout.not_regressed
tuning_comparisona first and a second run of the candidate against the baseline on the tuning split; its result is reproduced (both better), not_reproduced (the first better, the second not) or not_better (the first not better)candidate.evaluateresult.reproducible, tuning.improved

Claims​

Each claim is TRUE, FALSE or UNKNOWN, established from evidence by its predicate. Missing or stale evidence leaves a claim UNKNOWN, never FALSE.

ClaimDescriptionTrue when
change.supportedevery keep claim holds for the current candidate revision: the design is valid, the change is within the surface and clean, it improved on the tuning split reproducibly, and the held-out split did not regressall of (change.within_surface is TRUE; content.clean is TRUE; experiment.valid is TRUE; heldout.not_regressed is TRUE; result.reproducible is TRUE; tuning.improved is TRUE)
change.within_surfacean independent guard check of the current candidate revision did not find it outside the surface the loop may changenot (evidence guard_check with result outside about candidate, from a producer independent on different_agent_run)
content.cleanan independent guard check of the current candidate revision found it inside the surface, with no expected answers inside it and no new forbidden content in answersevidence guard_check with result clean about candidate, from a producer independent on different_agent_run
experiment.validthe current evaluation design passed a review by a producer the case lists as another agent run than the loop'sevidence design_review with result passed about eval_design, from a producer independent on different_agent_run
heldout.not_regressedan independent run of the current candidate revision on the held-out split did not regress against the baselineevidence heldout_comparison with result held about candidate, from a producer independent on different_agent_run
result.reproduciblean independent second run of the current candidate revision on the tuning split reproduced the first run's improvementevidence tuning_comparison with result reproduced about candidate, from a producer independent on different_agent_run
tuning.improvedan independent first run of the current candidate revision on the tuning split was better than the baselinenot (evidence tuning_comparison with result not_better about candidate, from a producer independent on different_agent_run)

Obligations​

What must be done before a case can be complete, and what discharges it. An obligation stays open until its predicate is TRUE; its predicate being UNKNOWN does not discharge it.

This protocol declares no obligations.

Outcomes​

The legitimate terminal interpretations of a case, and what each requires.

OutcomeDescriptionRequires
inconclusivethe case closed on an explicit decision that the evaluation settles nothingdecision explicitly_inconclusive
keptthe case closed with the candidate kept; needs every keep claim to holdchange.supported is TRUE
proposedthe case closed with the candidate proposed to a person, because it leaves the surface the loop may changechange.within_surface is FALSE
rejectedthe case closed with the candidate rejected; needs it within the surface, every keep claim decided and one of them false. Evidence that is missing, about another candidate revision or not independent rejects nothing: it leaves its claim unknown, not falseall of (change.supported is FALSE; change.within_surface is TRUE; not (content.clean is UNKNOWN); not (experiment.valid is UNKNOWN); not (heldout.not_regressed is UNKNOWN); not (result.reproducible is UNKNOWN); not (tuning.improved is UNKNOWN))

Artifacts​

The things whose revisions evidence is bound to.

ArtifactDescription
candidatethe change under test; its revision hashes the changed text or configuration together with its basis: the baseline, the question set, the data revision and the evaluation design
eval_designthe evaluation design the loop is tuned under; its splits, metrics and guards

Independence dimensions​

What an evidence match may demand of a record's producer (independent_on). The case lists, for each producer, the dimensions on which it is independent of the case's work; a match that demands a dimension reads only records whose producer the case lists on it. A record that fails the demand neither establishes nor contradicts the match, so a match only such records would decide is UNKNOWN.

DimensionDescription
different_agent_runthe producer is another agent run than the one that wrote the candidate