Module: OmniAgent::Eval::Runner

Defined in:
lib/omni_agent/eval/runner.rb

Class Method Summary collapse

Class Method Details

.run(eval_case, agent_class) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/omni_agent/eval/runner.rb', line 6

def self.run(eval_case, agent_class)
  agent = agent_class.new

  cache_key = Cache.key_for(
    agent_class: agent_class,
    run_alias: eval_case.configured_run_alias,
    input: eval_case.configured_input,
    context: eval_case.configured_context
  )

  cached = Cache.fetch(cache_key) { invoke_agent(agent, eval_case) }
  run = Run.new(output: cached["output"], tool_calls: normalize_tool_calls(cached["tool_calls"]), agent: agent)

  outcomes = eval_case.configured_assertions.map { |assertion| assertion.call(run) }
  CaseResult.new(case_name: eval_case.name, outcomes: outcomes)
end