Skip to content

[kbn-evals] Experiment aborts on any exception #31

Description

@milistu

Summary

The executor has no error handling around evaluator calls. One network blip during a long run kills everything. Already-ingested scores survive, but the rest of the run is lost with no partial result.

Problem

executor/client.py:174-180 calls await evaluator.evaluate(params) with no try/except. asyncio.gather without return_exceptions=True means one failure propagates and aborts the whole run.

Kibana evaluators propagate exceptions. The executor has no safety net.

Fix

Wrap evaluator calls in the executor. Catch exceptions, convert to EvaluationResult(label="error", explanation=...), log at error level, and continue the run.

kbn-evals wraps every evaluator call in try/catch and converts exceptions to a {status: "error"} entry without aborting the run. The SDK should mirror that.

Done when

  • A failed evaluator does not abort other evaluators or the run
  • The failed score is ingested with label="error" and an explanation
  • The test test_kibana_evaluators_propagate_request_errors is updated to match the new policy

Metadata

Metadata

Assignees

No one assigned

    Labels

    Team:nightshift-context-and-researchNightshift Context & Research Teamkbn-evalsIssue related to the work on Kibana's LLM evaluation framework.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions