Ga naar de inhoud

Handleidingen

Configuratiereferentie

Elk veld van oloproof.yaml en release.yaml, met zijn type, zijn standaardwaarde, de waarden die het accepteert en een voorbeeld, overgenomen uit de modellen die de bestanden lezen. Gebruik deze pagina om een veld op te zoeken; lees de pagina's quickstart en gating om de werkwijze te leren.

Beide bestanden worden gevalideerd voordat er iets draait. Een onbekend veld, een verkeerd gespeld veld of een waarde van het verkeerde type is een configuratiefout, en het commando eindigt met 2 zonder een case uit te voeren. Beide bestanden hebben JSON Schemas, die een editor die JSON Schema leest kan gebruiken voor aanvulling. Het geïnstalleerde pakket schrijft ze, samen met de resultaatschema's, naar schemas/v1/ onder de huidige map: python -m oloproof_core.models.schema_export (de twee heten project_config.schema.json en release_policy.schema.json).

In de tabellen hieronder betekent "verplicht" dat het bestand zonder het veld wordt geweigerd; elk ander veld toont de waarde die wordt gebruikt als je het weglaat.

oloproof.yaml in één oogopslag

Een klein, volledig project. Het draait lokaal een Python-functie, heeft geen netwerk en geen sleutels nodig, en heeft de vorm die oloproof init neerzet.

# oloproof.yaml
version: 1
project: support-bot
dataset: datasets/support.jsonl
system:
  name: support-bot
  callable: app.bot:answer
evaluators:
  - type: exact_match
    criterion: correct_label
    field: label

Velden op het hoogste niveau

VeldTypeStandaardWat het is
version11Versie van het bestandsformaat. Alleen 1 bestaat.
projectstringverplichtDe naam van het project, getoond in rapporten en gebruikt bij het pushen.
datasetpadverplichtHet suitebestand, JSONL, relatief aan het project. De rijen worden beschreven in Suites.
systemmappingverplichtHet geteste systeem. Zie hieronder.
concurrencymappingsystem: 8, judge: 4Hoeveel systeemaanroepen en judgeaanroepen tegelijk lopen.
evaluatorslijstverplicht, minstens éénWat er op elke case wordt gemeten. Elk item heeft een type.
metricslijstleegExtra metrieken naast de metriek die elk evaluatorcriterium al is.
predictivemappingafwezigWaar het label, de score en de waarheid van een classifier staan. Zie Voorspellende modellen.
sliceslijst van stringsleegVerkennende slices: metadata.<key>, relevant_position of context_truncated. Ze bereiken de gate nooit. Zie Slices.
min_slice_supportgeheel getal, minstens 130Onder dit aantal in aanmerking komende cases toont een slice zijn schatting maar geen interval.
replicatesgeheel getal, minstens 11Meet elke case zo vaak. De case blijft de eenheid: replicaten worden binnen de case samengevoegd voordat er een interval wordt berekend.
pricinglijstleegWat je per miljoen tokens betaalt, per model. Zonder dit worden kosten in tokens gerapporteerd en nooit in dollars.
egresslijst van stringsleegWelke ruwe inhoud oloproof push naar een gehoste workspace mag sturen. Zie Resultaten en uitvoering.

concurrency

VeldTypeStandaard
systemgeheel getal, minstens 18
judgegeheel getal, minstens 14

pricing-items

Oloproof levert geen prijstabel mee. Elk item noemt een model precies zoals het model: van een evaluator het noemt.

VeldTypeStandaard
modelstringverplicht
input_per_mtokgetal, 0 of meerverplicht
output_per_mtokgetal, 0 of meerverplicht
# oloproof.yaml
version: 1
project: support-bot
dataset: datasets/support.jsonl
system:
  name: support-bot
  callable: app.bot:answer
evaluators:
  - type: exact_match
    criterion: correct_label
    field: label
pricing:
  - model: my-judge-model
    input_per_mtok: 0.15
    output_per_mtok: 0.6
egress: [raw_outputs]

system

Een systeem heeft precies één van callable, http of rag nodig.

VeldTypeStandaardWat het is
namestringverplichtDe naam van het systeem. Deel van zijn versie-identiteit.
versionstringafwezigJe eigen label voor deze versie. Verplicht voor een HTTP-systeem. Deel van de identiteit, dus wie hem wijzigt maakt gecachete uitvoeringen ongeldig.
callablemodule:attributeafwezigEen Python-functie, synchroon of asynchroon. Ze krijgt de input van de case en geeft de output terug.
httpmappingafwezigEen endpoint dat één keer per case wordt aangeroepen. Zie hieronder.
ragmappingafwezigEen RAG-klasse in fasen, gedeclareerd met @rag_system. Zie hieronder.
configmappingleegVrije instellingen die met de systeemversie worden vastgelegd. Wie ze wijzigt, wijzigt de versie.
code_pathslijst van globpatronenleegBronbestanden waarvan de inhoud meegaat in de versie van een callable systeem. Zonder dit wordt alleen de eigen module van de callable gehasht.
timeout_sgetal boven 0120Tijdslimiet per aanroep voor een callable systeem. Een HTTP-systeem gebruikt in plaats daarvan http.timeout_s.
recordslijst van artefactsoortenleegArtefactsoorten die een callable systeem vastlegt, zoals retrieval/v1. Geweigerd op een HTTP- of RAG-systeem.

system.http

VeldTypeStandaardWat het is
urlstringverplichtWaar elke case heen wordt gestuurd.
methodGET, POST of PUTPOSTDe HTTP-methode.
output_pathpad met puntenafwezigWelk veld van het JSON-antwoord de output is, zoals result.answer. Afwezig betekent de hele body.
artifactsmapping van soort naar pad met puntenleegAntwoordvelden die als artefacten worden vastgelegd, zoals retrieval/v1: debug.retrieval.
versionstringafwezigGebruikt als versie van het systeem als system.version afwezig is. Een HTTP-systeem heeft een van de twee nodig.
timeout_sgetal boven 030Tijdslimiet per verzoek.
# oloproof.yaml
version: 1
project: support-api
dataset: datasets/support.jsonl
system:
  name: support-api
  version: "2026-10-08"
  http:
    url: http://localhost:8000/answer
    output_path: answer
    artifacts:
      retrieval/v1: debug.retrieval
evaluators:
  - type: hit_rate
    k: 5

Het contract voor verzoek en antwoord, en wat er gebeurt bij timeouts en HTTP-fouten, staan in Resultaten en uitvoering.

system.rag

VeldTypeStandaardWat het is
objectmodule:attributeverplichtDe klasse die met @rag_system is gedeclareerd, of een instantie ervan.
depthgeheel getal, minstens 1die van de klasseHoeveel passages retrieval teruggeeft.
top_kgeheel getal, minstens 1die van de klasseHoeveel daarvan de generatie bereiken.
token_budgetgeheel getal, minstens 1die van de klasseEen tokenlimiet op de context. Vereist count_tokens(passage) van de klasse.
index_versionstringdie van de klasseDeel van de retrievalidentiteit. Wijzig het telkens als de index opnieuw wordt gebouwd.

Instellingen die je hier geeft gaan voor op de instellingen die de klasse declareert. Een systeem in fasen legt zijn eigen retrieval/v1-, context/v1- en citations/v1-artefacten vast, dus records wordt ernaast geweigerd. Zie RAG.

evaluators

Elk item neemt een type en deze twee gemeenschappelijke velden:

VeldTypeStandaardWat het is
criterionstringverplicht, tenzij het type een standaard heeftDe naam van wat er gemeten wordt. Elk criterium is een metriek, en het metric: van een regel noemt het.
on_execution_errormissing of failmissingWaarvoor een case waarvan de systeemaanroep mislukte voor dit criterium telt. missing houdt hem in de noemer als niet waargenomen; fail telt hem als mislukking.

fail geldt alleen voor geslaagd/mislukt-evaluators; een score-evaluator ermee is een configuratiefout. on_execution_error is een YAML-veld; de SDK-evaluatorklassen nemen zo'n argument niet, en een case met een fout telt als ontbrekend.

Evaluatortypen

"Leest" noemt waar het oordeel van de evaluator van afhangt, en dat is ook waarop zijn gecachete oordeel is gesleuteld. "SDK" noemt de klasse in oloproof.evaluators.

YAML typeLeestSDKNetwerk of sleutel nodig
exact_matchoutput, expectedExactMatchnee
containsoutput, expectedContainsnee
regexoutputRegexnee
json_schemaoutputJsonSchemanee
rubric_judgeinput, output, expectedRubricJudgeja, een modelprovider
model_classifieroutput (of het veld dat text noemt), optioneel premisealleen YAMLja, een TEI-compatibele server
probability_judgede case en de outputalleen YAMLja, een OpenAI-compatibele provider die logkansen teruggeeft
cascadeals zijn twee fasenalleen YAMLja
hit_rate, recall, mrr, ndcgartifacts.retrieval, expectedHitRate, Recall, MRR, NDCGnee
citation_validityartifacts.citations, artifacts.contextCitationValiditynee
groundedness_judgeinput, output, artifacts.contextGroundednessja
citation_support_judgeinput, output, artifacts.context, artifacts.citationsCitationSupportja
agent_max_stepsartifacts.agent_trajectoryAgentMaxStepsnee
agent_tool_calledartifacts.agent_trajectoryAgentToolCallednee
agent_no_tool_loopartifacts.agent_trajectoryAgentNoToolLoopnee
agent_tool_sequenceartifacts.agent_trajectory, expectedAgentToolSequencenee
agent_no_undeclared_toolartifacts.agent_trajectory, expectedAgentNoUndeclaredToolnee
agent_constraints_satisfiedartifacts.agent_trajectoryAgentConstraintsSatisfiednee
agent_routeartifacts.agent_trajectoryAgentRoutenee
agent_tool_permissionsartifacts.agent_trajectoryAgentToolPermissionsnee
agent_max_handoffsartifacts.agent_trajectoryAgentMaxHandoffsnee
predictive_correcthet labelveld van output en expectedPredictiveCorrectnee
predictive_recallals hierbovenPredictiveRecallnee
predictive_precisionals hierbovenPredictivePrecisionnee
predictive_absolute_errorals hierboven, numeriekAbsoluteErrornee
predictive_brierhet scoreveld van output, het label van expectedBriernee
predictive_log_lossals hierbovenLogLossnee
predictive_rankingals hierbovenPredictiveRankingnee
geen YAML-typeartifacts.conversationConversationCompleted (alleen SDK)nee
geen YAML-typeexpected, artifacts.conversationConversationJudge (alleen SDK)ja
geen YAML-typewat je declareert@evaluator en CustomEvaluator (alleen SDK)aan jou

Een judge die een gehost model aanroept stuurt caseinhoud naar die provider en wordt door die provider gefactureerd. Sleutels worden gelezen uit de omgevingsvariabele die api_key_env noemt; Oloproof slaat ze nooit op in deze bestanden.

Deterministische evaluators

TypeVeldTypeStandaard
exact_matchfieldpad met punten in de outputafwezig: de hele output
exact_matchexpected_fieldpad met punten in expectedafwezig: gelijk aan field
exact_matchstripbooleantrue
exact_matchcasefoldbooleanfalse
containsfield, expected_fieldals exact_matchafwezig
regexpatternreguliere expressieverplicht
regexfieldpad met puntenafwezig
regexpass_ifmatch of no_matchmatch
json_schemaschemaeen JSON Schema inline, of een pad naar een JSON-bestand relatief aan het projectverplicht
json_schemafieldpad met puntenafwezig

Modeljudges

rubric_judge, groundedness_judge en citation_support_judge delen deze velden. rubric_judge vereist precies één van rubric_file of rubric_text; de twee RAG-judges nemen er hooguit één en gebruiken anders een ingebouwde rubric. Hun criterion is standaard groundedness en citation_support.

VeldTypeStandaard
provideranthropic, openai of openai_compatibleverplicht
modelstringverplicht
rubric_filepadafwezig
rubric_textstringafwezig
api_key_envnaam van een omgevingsvariabeleANTHROPIC_API_KEY of OPENAI_API_KEY
base_urlURLdie van de provider
temperaturegetal0
max_tokensgeheel getal, minstens 1512
timeout_sgetal boven 060

probability_judge stelt een getypeerde vraag en leest de kansen van het model:

VeldTypeStandaard
provideropenai of openai_compatibleverplicht
modelstringverplicht
questionstringverplicht
formyes_no, choice of scoreverplicht
min_probabilitygetal in (0, 1]verplicht
optionsmapping van antwoord naar beschrijvingvoor choice
pass_optionslijst van antwoordenvoor choice
levelsmapping van niveau naar beschrijving, laagste eerstvoor score
pass_at_leasteen niveauvoor score
calibrationslope (boven 0), intercept, from_versionafwezig
api_key_env, base_urlals hierbovenafwezig
timeout_sgetal boven 060

cascade draait eerst een goedkope judge en escaleert de onzekere cases:

VeldTypeStandaard
firsteen probability_judge-itemverplicht
theneen rubric_judge- of probability_judge-itemverplicht
escalate_betweentwee kansenverplicht

De fasen beoordelen het eigen criterion van de cascade; een fase die een ander noemt wordt geweigerd.

model_classifier scoort tekst met een getraind model op een TEI-compatibele server:

VeldTypeStandaard
modelstringverplicht
base_urlURLverplicht
labelhet te lezen classifierlabelverplicht
min_score of max_scoregetal in [0, 1], precies éénverplicht
textwelk veld wordt geclassificeerdoutput
premiseeen tweede tekst, voor paarclassifiersafwezig
api_key_envnaam van een omgevingsvariabeleafwezig
timeout_sgetal boven 030

RAG-evaluators

TypeVeldTypeStandaard
hit_rate, recall, mrr, ndcgkgeheel getal, minstens 15 voor hit_rate en recall, 10 voor mrr en ndcg
hit_rate, recall, mrr, ndcgrelevance_unitdoc of chunkdoc
hit_rate, recall, mrr, ndcgcriterionstring<type>_at_<k>, zoals hit_rate_at_5
citation_validityrequire_citationsbooleanfalse
citation_validitycriterionstringcitations_valid

Agentevaluators

TypeVeldTypeStandaard
agent_max_stepsmax_stepsgeheel getal, minstens 1verplicht
agent_tool_calledtool_namestringverplicht
agent_tool_calledmin_callsgeheel getal, minstens 11
agent_no_tool_loopmax_repeatsgeheel getal, minstens 12
agent_tool_sequenceorderedbooleantrue
agent_constraints_satisfiedconstraintslijst van namen van beperkingenleeg
agent_tool_permissionspermissionsmapping van agent naar toegestane toolsverplicht
agent_max_handoffsmax_handoffsgeheel getal, 0 of meerverplicht

Elk agenttype heeft een standaard-criterion, dus je mag het weglaten: zijn eigen typenaam, of een naam gebouwd uit zijn instelling (agent_steps_le_8, agent_tool_lookup_called, agent_handoffs_le_2). Zie Agents.

Voorspellende evaluators

TypeVeldTypeStandaard
predictive_correct, predictive_recall, predictive_precisionpositiveelke JSON-waardetrue, of die van het predictive:-blok
idemfieldoutputveldlabel, of predictive.label_field
idemexpected_fieldverwacht veldlabel, of predictive.expected_field
predictive_absolute_errortarget_rangetwee getallenverplicht
predictive_absolute_errorfield, expected_fieldals hierbovenlabel
predictive_brier, predictive_log_loss, predictive_rankingpositiveelke JSON-waardetrue, of die van het blok
idemfieldoutputveldscore, of predictive.score_field
idemexpected_fieldverwacht veldlabel, of die van het blok
predictive_log_lossclipgetal in (0, 0.5)verplicht

Een voorspellende evaluator die positive, field of expected_field niet invult, neemt die over van het predictive:-blok; een waarde die hij zelf invult blijft staan.

predictive

VeldTypeStandaard
label_fieldstringlabel
score_fieldstringscore
expected_fieldstringlabel
positiveelke JSON-waardetrue
calibration_binsgeheel getal, minstens 110
thresholdslijst van getallenleeg
averagemacro of microafwezig: geen aggregaat

metrics

Elk evaluatorcriterium is al een metriek. Een metrics:-item voegt er een toe, onderscheiden door type.

typeVeldenWat het is
quantileid, source, quantile in (0, 1)Een kwantiel van latency_ms, input_tokens, output_tokens, cost_usd, agent_steps of agent_tool_calls.
rankingid, criterion, statistic: roc_auc of average_precisionEen statistiek over de volgorde van de scores van een rangschikkingscriterium.
human_score, human_preferenceidGeweigerd: nog geen toegelaten methode leest deze labels.
cost_per_acceptedid, criterion, cost_ceiling_usd, cost_ceiling_sourceGeweigerd totdat de aansluiting door een audit is toegelaten.
# oloproof.yaml
version: 1
project: support-bot
dataset: datasets/support.jsonl
system:
  name: support-bot
  callable: app.bot:answer
evaluators:
  - type: exact_match
    criterion: correct_label
    field: label
metrics:
  - id: latency_p95
    type: quantile
    source: latency_ms
    quantile: 0.95

release.yaml

Het releasebeleid: welke regels beslissen, en welke beslissingen blokkeren. Weggelaten instellingen houden hun standaard, dus een beleid dat alleen zijn regels noemt blokkeert nog steeds op FAIL, INSUFFICIENT_EVIDENCE en MANUAL_REVIEW.

# release.yaml
version: 1
rules:
  - id: label_accuracy
    metric: correct_label
    min: 0.8
VeldTypeStandaardWat het is
version11Versie van het bestandsformaat.
confidence_levelkans0.95Het niveau van elk interval dat een regel leest.
block_onlijst van beslissingstoestandenFAIL, INSUFFICIENT_EVIDENCE, MANUAL_REVIEWToestanden die de gate laten blokkeren en de exitcode bepalen.
warn_onlijst van beslissingstoestandenleegToestanden die waarschuwen zonder te blokkeren. Mogen niet overlappen met block_on.
block_on_partial_runbooleantrueOf een run die niet voltooid is blokkeert, met exit 5.
require_validated_evaluatorsbooleantrueOf een regel over een modeljudge zijn beslissing achterhoudt totdat de judge tegen menselijke labels is gevalideerd. Deterministische evaluators zijn uitgezonderd.
minimum_evaluator_agreementgetal in [0, 1]afwezigDe overeenstemming met menselijke labels die een judge, gemeten aan zijn ondergrens, moet halen voordat hij gevalideerd mag worden.
maximum_evaluator_biasgetal in (0, 1]afwezigHoe ver het slagingspercentage van een judge van dat van de mensen mag liggen voordat hij gevalideerd mag worden.
allow_approximate_methodsbooleanfalseOf een regel mag beslissen op een interval dat de engine als benaderend markeert (het geclusterde binaire interval). Anders leest hij MANUAL_REVIEW.
min_clustersgeheel getal, minstens 1020Bij minder clusters leest een geclusterde regel INSUFFICIENT_EVIDENCE.
difference_methodbounded_paired_difference@1 of conditional_exact_paired_difference@1afwezig: de eersteWelke toegelaten methode een gepaard verschil tussen binaire percentages begrenst.
early_stoppingbooleanfalseDraai cases in batches en stop zodra elke regel beslist is. Zie Gating.
early_stopping_seedgeheel getal, 0 of meerafwezigDe seed van de casevolgorde.
early_stopping_batch_sizegeheel getal, minstens 125Cases per batch.
ruleslijstverplicht, minstens éénDe regels. Zie hieronder.
familieslijstleegRegels waarvan de onterechte FAILs samen worden beheerst.
review_rulemappingafwezigGeweigerd: de aansluiting is nog niet toegelaten.

rules

Eén lijst bevat beide soorten. Een runregel neemt precies één van min, max of max_failures. Een vergelijkingsregel noemt zijn kind en beslist over een verschil tussen twee runs; zie Vergelijkingsregels.

VeldTypeStandaardGeldt voor
idstringverplichtalle
metriceen metriek-id of criteriumverplichtalle
kindinterval_threshold, observed_count, superiority, non_inferiority, equivalenceafgeleid voor runregelsalle
mingetalafwezigrunregels: PASS als de ondergrens van het interval minstens dit is
maxgetalafwezigrunregels: PASS als de bovengrens van het interval hooguit dit is
max_failuresgeheel getal, 0 of meerafwezigobserved_count: een telling over de uitgevoerde suite, geen interval
margingetal boven 0, in de eenheden van de metriekafwezignon_inferiority en equivalence; geweigerd op superiority
directionmin of maxminalleen non_inferiority: of hoger of lager beter is
max_missing_fractiongetal in [0, 1]afweziginterval- en vergelijkingsregels
requires_manual_reviewbooleanfalsealle: de regel leest altijd MANUAL_REVIEW
scopeglobal of een sliceglobalinterval- en vergelijkingsregels
min_supportgeheel getal, minstens 1afwezigvergelijkingsregels op een slice

families

VeldTypeStandaard
idstringverplicht
correctionholmholm
ruleslijst van regel-idsverplicht, minstens één
# release.yaml
version: 1
warn_on: [INSUFFICIENT_EVIDENCE]
block_on: [FAIL, MANUAL_REVIEW]
rules:
  - id: label_accuracy
    metric: correct_label
    min: 0.8
    max_missing_fraction: 0.05
  - id: no_regression
    metric: correct_label
    kind: non_inferiority
    margin: 0.02

Artefactsoorten

Een artefact is een getypeerd record dat een systeem naast zijn output schrijft, zoals wat het ophaalde. Een soort is een naam in kleine letters met een optionele versie, die overeenkomt met ^[a-z][a-z0-9_]*(/v[1-9][0-9]*)?$. Evaluators die een artefact nodig hebben noemen het, en een run waarvan het systeem een vereiste soort niet declareert wordt geweigerd voordat hij begint, in plaats van elke case als ontbrekend te tellen.

SoortGeschreven doorVereist door
retrieval/v1current_case().retrieval(...), een @rag_system, of http.artifactshit_rate, recall, mrr, ndcg
context/v1current_case().context(...) of een @rag_systemcitation_validity, groundedness_judge, citation_support_judge
citations/v1current_case().citations(...) of een @rag_systemcitation_validity, citation_support_judge
agent_trajectory/v1current_case().agent_trajectory(...)elke agent_*-evaluator, en de bronnen agent_steps en agent_tool_calls
conversation/v1current_case().artifact(CONVERSATION, ...)ConversationCompleted, ConversationJudge
stage_timings/v1een @rag_systemgeen; getoond naast de latentie

Een callable systeem declareert de soorten die het vastlegt in records: (of @system(records=...)); een HTTP-systeem in http.artifacts; een RAG-systeem in fasen legt zijn eigen vast.

Versies, cachesleutels en ongeldig maken

Oloproof hergebruikt werk waarvan de inputs niet veranderd zijn, en bepaalt wat "ongewijzigd" betekent aan de hand van inhoudsdigests. Elke digest wordt door de engine berekend en met de run vastgelegd.

RecordHergebruikt als deze identiek zijn
Systeemversiename, version, config, en een codedigest: de modulebron van een callable (of elk bestand dat code_paths matcht), de url, method, output_path en artifacts van een HTTP-systeem
Uitvoeringde systeemversie, de input van de case en de replicaatindex. Alleen geslaagde uitvoeringen worden hergebruikt.
Oordeelde evaluatorversie (zijn type en elke instelling) en een digest van elk veld dat hij leest, zoals vermeld in de evaluatortabel
Analysehet analyseplan, de metriek, het betrouwbaarheidsniveau, de suitedigest en elke input die het telde
Gateelke analyse, de beleidsdigest, of de run voltooid is, en de effectieve status van elke evaluator die de beslissingen noemen

Wat Oloproof niet kan zien, moet jij declareren:

  • Het gedrag van een HTTP-systeem woont op de server. Wijzig system.version telkens als wat achter de URL zit verandert, anders staat een oude gecachete output voor het nieuwe systeem.
  • De hulpmodules van een callable worden alleen gehasht als code_paths ze matcht. Zonder dat verandert het bewerken van een hulpmodule de versie niet.
  • Een methode of een callable object moet een versie declareren, en die versie moet veranderen als de toestand van het object verandert.
  • Een RAG-index wordt geïdentificeerd door index_version; wijzig die als de index opnieuw wordt gebouwd.
  • De identiteit van een modeljudge zijn zijn instellingen, niet de gewichten van de provider. Een provider die het model achter dezelfde naam bijwerkt, wordt door de cache niet opgemerkt.
  • Een eigen @evaluator hasht het modulebestand dat hem definieert, en zijn oordelen worden alleen tussen runs hergebruikt als hij cacheable=True declareert. Ingebouwde rubricjudges zijn cachebaar; deterministische evaluators worden opnieuw berekend, wat goedkoop is.

Gecachet werk staat in de lokale store van het project, .oloproof/store.sqlite naast oloproof.yaml (of onder OLOPROOF_HOME). Wie de store verwijdert, gooit elke cache en elke run weg. In een gehoste workspace hergebruikt de engine geen gecachete uitvoeringen, oordelen of analyses, omdat een push ze kan beschrijven; hij berekent ze opnieuw.