Skip to main content
Tests live in their own .test.yml files. Each file points at one agent (its target), lists a set of cases — a prompt plus the answer you expect — and says how many times to run each one. An LLM judge scores every run against the expected answer.
Only .agentic.yml agents can be tested. Inline tests: blocks in .agent.yml or .workflow.yml files are no longer supported — .test.yml is the only way to define tests.

Test file format

sales.agentic.test.yml

Top-level fields

settings

cases

How evaluation works

For each case, Oxygen:
  1. Runs the target agent runs times with the case’s prompt
  2. Asks the judge model whether each answer is factually consistent with expected — formatting and wording differences are ignored
  3. Records a pass rate per case, and whether all runs reached the same verdict
Across the file, the score is the overall pass rate over every case and run, and consistency is the fraction of cases whose runs all agreed.

Running tests

Run tests from the Tests page in the Oxygen IDE, which lists every test file in the project along with past runs, or from the CLI:

Accuracy thresholds

Use --min-accuracy to fail the command (exit code 1) when the score is below a threshold — useful as a CI quality gate:
Each test file produces one score. When several files run, --threshold-mode controls how the threshold is applied: average (default) checks the average score across files; all requires every file’s score to meet it.

Machine-readable output

--format json prints the full results as JSON on stdout. --output-json also writes the JSON to a file next to the test file (sales.agentic.test.results.json, or test-results.json when running every file).

CLI reference

  • FILE — path to a .test.yml file. Omit it to run every .test.yml file in the project.

CI example

Error handling

  • Wrong file type — oxy test rejects any file that doesn’t end in .test.yml, and any test whose target isn’t an .agentic.yml agent.
  • No tests found — running oxy test with no file fails if the project has no .test.yml files.
  • Threshold failures — the command exits with code 1 only when --min-accuracy is set and not met. If no score was produced, it prints a warning and exits 0.