sandbox declaration.
Define multiple lifecycles
Import every Plugin API fromniceeval/plugin:
name names the Plugin family. instanceKey(options) distinguishes configurations within one family. Raise behaviorRevision when implementation semantics change so old results are no longer adopted exactly.
A family with no options can omit instanceKey; its fixed instance key is "default". Each fragment can declare identity, and must provide at least setup or teardown.
Compose several Plugins in one place
plugins always accepts an array:
Choose a lifecycle scope
One family can declare four fragments:
The caller mounts an occurrence only in the
plugins array of defineExperiment, defineEvalGroup, or defineEval. If an occurrence also declares a sandbox fragment, NiceEval automatically applies it to that owner’s physical Sandbox. SandboxLayer has no additional Plugin mounting syntax.
Inspect the plan first
First confirm the Plugin identity and the Attempts that need to run:behaviorRevision too. NiceEval cannot know that an old result corresponds to changed behavior when you change only a callback function body and leave its identity unchanged.
Continue reading
- Experiments and Lifecycles — configure an Agent, Provider, and Experiment-level lifecycle.
- Eval Groups — have Attempts in one group share a Sandbox serially.
- Rerun and Carry Results — see how identity changes affect existing results.